Redesigned GenCertDialog for the usage in Profile Manager.

git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@5738 b45a01b8-16f6-495d-af2f-9b41ad6348cc
This commit is contained in:
thunder2 2012-10-29 11:02:03 +00:00
parent a7c29c0f24
commit e99b30d015
6 changed files with 173 additions and 197 deletions

View File

@ -36,8 +36,8 @@
/** Default constructor */
GenCertDialog::GenCertDialog(QWidget *parent, Qt::WFlags flags)
: QDialog(parent, flags)
GenCertDialog::GenCertDialog(bool onlyGenerateIdentity, QWidget *parent, Qt::WFlags flags)
: QDialog(parent, flags), mOnlyGenerateIdentity(onlyGenerateIdentity)
{
/* Invoke Qt Designer generated QObject setup routine */
ui.setupUi(this);
@ -74,6 +74,7 @@ void GenCertDialog::init()
std::list<std::string> pgpIds;
std::list<std::string>::iterator it;
bool foundGPGKeys = false;
if (!mOnlyGenerateIdentity) {
if (RsInit::GetPGPLogins(pgpIds)) {
for(it = pgpIds.begin(); it != pgpIds.end(); it++)
{
@ -86,6 +87,7 @@ void GenCertDialog::init()
foundGPGKeys = true;
}
}
}
if (foundGPGKeys) {
ui.no_gpg_key_label->hide();
@ -95,7 +97,7 @@ void GenCertDialog::init()
ui.headerLabel->setText(tr("Create a new Location"));
genNewGPGKey = false;
} else {
ui.no_gpg_key_label->show();
ui.no_gpg_key_label->setVisible(!mOnlyGenerateIdentity);
ui.new_gpg_key_checkbox->setChecked(true);
ui.new_gpg_key_checkbox->setEnabled(false);
setWindowTitle(tr("Create new Identity"));
@ -103,6 +105,19 @@ void GenCertDialog::init()
ui.headerLabel->setText(tr("Create a new Identity"));
genNewGPGKey = true;
}
QString text = ui.headerLabel2->text() + "\n";
if (mOnlyGenerateIdentity) {
ui.new_gpg_key_checkbox->setChecked(true);
ui.new_gpg_key_checkbox->hide();
ui.label->hide();
text += tr("You can create a new identity with this form.");
} else {
text += tr("You can use an existing identity (i.e. a gpg key pair), from the list below, or create a new one with this form.");
}
ui.headerLabel2->setText(text);
newGPGKeyGenUiSetup();
}
@ -118,11 +133,8 @@ void GenCertDialog::newGPGKeyGenUiSetup() {
ui.password_input->show();
ui.genPGPuserlabel->hide();
ui.genPGPuser->hide();
if(ui.genPGPuser->count() == 0)
ui.importIdentity_PB->hide() ;
ui.exportIdentity_PB->hide();
// ui.importIdentity_PB->hide() ;
setWindowTitle(tr("Create new Identity"));
ui.genButton->setText(tr("Generate new Identity"));
ui.headerLabel->setText(tr("Create a new Identity"));
@ -136,8 +148,9 @@ void GenCertDialog::newGPGKeyGenUiSetup() {
ui.password_input->hide();
ui.genPGPuserlabel->show();
ui.genPGPuser->show();
ui.exportIdentity_PB->show() ;
ui.importIdentity_PB->show() ;
ui.importIdentity_PB->setVisible(!mOnlyGenerateIdentity);
ui.exportIdentity_PB->setVisible(!mOnlyGenerateIdentity);
ui.exportIdentity_PB->setEnabled(ui.genPGPuser->count() != 0);
setWindowTitle(tr("Create new Location"));
ui.genButton->setText(tr("Generate new Location"));
ui.headerLabel->setText(tr("Create a new Location"));
@ -368,11 +381,3 @@ void GenCertDialog::loadCertificates()
default: std::cerr << "StartDialog::loadCertificates() unexpected switch value " << retVal << std::endl;
}
}
void GenCertDialog::hideButtons()
{
ui.exportIdentity_PB->hide() ;
ui.importIdentity_PB->hide() ;
ui.new_gpg_key_checkbox->setChecked(true);
newGPGKeyGenUiSetup();
}

View File

@ -35,12 +35,9 @@ class GenCertDialog : public QDialog
public:
/** Default constructor */
GenCertDialog(QWidget *parent = 0, Qt::WFlags flags = 0);
GenCertDialog(bool onlyGenerateIdentity, QWidget *parent = 0, Qt::WFlags flags = 0);
/** Default destructor */
void hideButtons();
private slots:
void genPerson();
//void loadPerson();
@ -65,6 +62,7 @@ private:
Ui::GenCertDialog ui;
bool genNewGPGKey;
bool mOnlyGenerateIdentity;
};
#endif

View File

@ -7,7 +7,7 @@
<x>0</x>
<y>0</y>
<width>664</width>
<height>524</height>
<height>474</height>
</rect>
</property>
<property name="windowTitle">
@ -50,21 +50,6 @@
</item>
<item row="1" column="0">
<widget class="QGroupBox" name="groupBox">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="minimumSize">
<size>
<width>0</width>
<height>20</height>
</size>
</property>
<property name="title">
<string/>
</property>
<layout class="QGridLayout" name="gridLayout_2">
<item row="0" column="0" colspan="2">
<widget class="QLabel" name="no_gpg_key_label">
@ -76,6 +61,135 @@
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QComboBox" name="genPGPuser">
<property name="toolTip">
<string>Your profile is associated to a GPG key. RetroShare currently ignores DSA keys.</string>
</property>
</widget>
</item>
<item row="3" column="0">
<widget class="QLabel" name="name_label">
<property name="text">
<string>Name</string>
</property>
</widget>
</item>
<item row="3" column="1">
<widget class="QLineEdit" name="name_input">
<property name="toolTip">
<string>Enter here your nickname</string>
</property>
</widget>
</item>
<item row="4" column="0">
<widget class="QLabel" name="email_label">
<property name="text">
<string>Email</string>
</property>
</widget>
</item>
<item row="4" column="1">
<widget class="QLineEdit" name="email_input">
<property name="toolTip">
<string>Be careful: this email will be visible to your friends and friends
of your friends. This information is required by GPG, but to stay
anonymous, you can use a fake email.</string>
</property>
</widget>
</item>
<item row="5" column="0">
<widget class="QLabel" name="password_label">
<property name="toolTip">
<string>This Password is for GPG</string>
</property>
<property name="text">
<string>Password</string>
</property>
</widget>
</item>
<item row="5" column="1">
<widget class="QLineEdit" name="password_input">
<property name="toolTip">
<string>Put a strong password here. This password protects your GPG key.</string>
</property>
<property name="inputMask">
<string/>
</property>
<property name="echoMode">
<enum>QLineEdit::Password</enum>
</property>
</widget>
</item>
<item row="6" column="0">
<widget class="QLabel" name="location_label">
<property name="text">
<string>Location</string>
</property>
</widget>
</item>
<item row="6" column="1">
<widget class="QLineEdit" name="location_input"/>
</item>
<item row="7" column="1">
<widget class="QLabel" name="label_location2">
<property name="minimumSize">
<size>
<width>0</width>
<height>30</height>
</size>
</property>
<property name="lineWidth">
<number>1</number>
</property>
<property name="text">
<string>Put a meaningful location. ex : home, laptop, etc. This field will be used to differentiate different installations with the same identity (gpg key).</string>
</property>
<property name="scaledContents">
<bool>false</bool>
</property>
<property name="wordWrap">
<bool>true</bool>
</property>
</widget>
</item>
<item row="8" column="1">
<widget class="QPushButton" name="genButton">
<property name="maximumSize">
<size>
<width>16777215</width>
<height>26</height>
</size>
</property>
<property name="text">
<string>Generate New Identity</string>
</property>
<property name="icon">
<iconset resource="images.qrc">
<normaloff>:/images/contact_new.png</normaloff>:/images/contact_new.png</iconset>
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="QLabel" name="genPGPuserlabel">
<property name="text">
<string>Use identity</string>
</property>
</widget>
</item>
<item row="9" column="0" colspan="2">
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>1</width>
<height>1</height>
</size>
</property>
</spacer>
</item>
<item row="1" column="0" colspan="2">
<layout class="QHBoxLayout" name="horizontalLayout_2" stretch="0,0,0,0">
<property name="spacing">
@ -145,148 +259,6 @@
</item>
</layout>
</item>
<item row="2" column="0">
<widget class="QLabel" name="progress_label">
<property name="maximumSize">
<size>
<width>16777215</width>
<height>32</height>
</size>
</property>
<property name="text">
<string/>
</property>
</widget>
</item>
<item row="3" column="0">
<widget class="QLabel" name="genPGPuserlabel">
<property name="text">
<string>Use identity</string>
</property>
</widget>
</item>
<item row="3" column="1">
<widget class="QComboBox" name="genPGPuser">
<property name="toolTip">
<string>Your profile is associated to a GPG key. RetroShare currently ignores DSA keys.</string>
</property>
</widget>
</item>
<item row="4" column="0">
<widget class="QLabel" name="name_label">
<property name="text">
<string>Name</string>
</property>
</widget>
</item>
<item row="4" column="1">
<widget class="QLineEdit" name="name_input">
<property name="toolTip">
<string>Enter here your nickname</string>
</property>
</widget>
</item>
<item row="5" column="0">
<widget class="QLabel" name="email_label">
<property name="text">
<string>Email</string>
</property>
</widget>
</item>
<item row="5" column="1">
<widget class="QLineEdit" name="email_input">
<property name="toolTip">
<string>Be careful: this email will be visible to your friends and friends
of your friends. This information is required by GPG, but to stay
anonymous, you can use a fake email.</string>
</property>
</widget>
</item>
<item row="6" column="0">
<widget class="QLabel" name="password_label">
<property name="toolTip">
<string>This Password is for GPG</string>
</property>
<property name="text">
<string>Password</string>
</property>
</widget>
</item>
<item row="6" column="1">
<widget class="QLineEdit" name="password_input">
<property name="toolTip">
<string>Put a strong password here. This password protects your GPG key.</string>
</property>
<property name="inputMask">
<string/>
</property>
<property name="echoMode">
<enum>QLineEdit::Password</enum>
</property>
</widget>
</item>
<item row="7" column="0">
<widget class="QLabel" name="location_label">
<property name="text">
<string>Location</string>
</property>
</widget>
</item>
<item row="7" column="1">
<widget class="QLineEdit" name="location_input"/>
</item>
<item row="8" column="1">
<widget class="QLabel" name="label_location2">
<property name="minimumSize">
<size>
<width>0</width>
<height>30</height>
</size>
</property>
<property name="lineWidth">
<number>1</number>
</property>
<property name="text">
<string>Put a meaningful location. ex : home, laptop, etc. This field will be used to differentiate different installations with the same identity (gpg key).</string>
</property>
<property name="scaledContents">
<bool>false</bool>
</property>
<property name="wordWrap">
<bool>true</bool>
</property>
</widget>
</item>
<item row="9" column="1">
<widget class="QPushButton" name="genButton">
<property name="maximumSize">
<size>
<width>16777215</width>
<height>26</height>
</size>
</property>
<property name="text">
<string>Generate New Identity</string>
</property>
<property name="icon">
<iconset resource="images.qrc">
<normaloff>:/images/contact_new.png</normaloff>:/images/contact_new.png</iconset>
</property>
</widget>
</item>
<item row="10" column="0" colspan="2">
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>1</width>
<height>1</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
</item>
@ -316,6 +288,12 @@ anonymous, you can use a fake email.</string>
</property>
<item>
<widget class="QLabel" name="headerImage">
<property name="minimumSize">
<size>
<width>128</width>
<height>0</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>128</width>
@ -350,11 +328,7 @@ anonymous, you can use a fake email.</string>
<item>
<widget class="QLabel" name="headerLabel2">
<property name="text">
<string>RetroShare uses gpg keys for identity management.
You can use an existing identity (i.e. a gpg key pair), from the list below, or create a new one with this form.</string>
</property>
<property name="wordWrap">
<bool>true</bool>
<string>RetroShare uses gpg keys for identity management.</string>
</property>
</widget>
</item>

View File

@ -211,8 +211,7 @@ void ProfileManager::checkChanged(int /*i*/)
void ProfileManager::newIdentity()
{
GenCertDialog gd;
gd.hideButtons();
GenCertDialog gd(true);
gd.exec();
fillIdentities();
}

View File

@ -153,7 +153,7 @@
<item row="2" column="0">
<widget class="QDialogButtonBox" name="buttonBox">
<property name="standardButtons">
<set>QDialogButtonBox::Ok</set>
<set>QDialogButtonBox::Close</set>
</property>
</widget>
</item>

View File

@ -230,7 +230,7 @@ int main(int argc, char *argv[])
if (genCert)
{
GenCertDialog gd;
GenCertDialog gd(false);
gd.exec ();
}