[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: [kgpg] /: switch KgpgKeyGenerate dialog to use a UI file
From: Rolf Eike Beer <kde () opensource ! sf-tec ! de>
Date: 2013-10-24 20:41:28
Message-ID: E1VZRii-0001Oi-Qu () scm ! kde ! org
[Download RAW message or body]
Git commit c801be0cb3d959e64e6123f2e21f2de90d0a18ce by Rolf Eike Beer.
Committed on 24/10/2013 at 19:43.
Pushed by dakon into branch 'master'.
switch KgpgKeyGenerate dialog to use a UI file
This also has some small behavior changes:
-do not offer 768 bit keys anymore, they are way too weak
-use RSA+RSA as default algorithm as GnuPG also does
-do not enable the Ok button for invalid names, but have a placeholder text
and a tooltip that explains the limitations by default
M +1 -0 CMakeLists.txt
M +13 -50 kgpgkeygenerate.cpp
M +8 -14 kgpgkeygenerate.h
A +141 -0 kgpgkeygenerate.ui
http://commits.kde.org/kgpg/c801be0cb3d959e64e6123f2e21f2de90d0a18ce
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 2a3452c..7104bbe 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -136,6 +136,7 @@ kde4_add_ui_files(kgpg_SRCS
keyexport.ui
conf_encryption.ui
kgpgKeyInfo.ui
+ kgpgkeygenerate.ui
kgpgrevokewidget.ui
keyserver.ui
conf_decryption.ui
diff --git a/kgpgkeygenerate.cpp b/kgpgkeygenerate.cpp
index 05ef983..8ac7cac 100644
--- a/kgpgkeygenerate.cpp
+++ b/kgpgkeygenerate.cpp
@@ -1,10 +1,7 @@
-/***************************************************************************
- keygen.cpp - description
- -------------------
- begin : Mon Jul 8 2002
- copyright : (C) 2002 by Jean-Baptiste Mardelle
- email : bj@altern.org
- ***************************************************************************/
+/*
+ * Copyright (C) 2002 Jean-Baptiste Mardelle <bj@altern.org>
+ * Copyright (C) 2007,2009,2010,2012,2013 Rolf Eike Beer <kde@opensource.sf-tec.de>
+ */
/***************************************************************************
* *
@@ -39,36 +36,21 @@ KgpgKeyGenerate::KgpgKeyGenerate(QWidget *parent)
: KDialog(parent),
m_expert(false)
{
- setCaption(i18n("Key Generation"));
+ setupUi(this);
+
setButtons(User1 | Ok | Cancel);
setButtonText(User1, i18n("&Expert Mode"));
setButtonToolTip(User1, i18n("Go to Expert Mode"));
setButtonWhatsThis(User1, i18n( "If you go to expert mode, you will use the \
command line to create your key." ));
-
- QGroupBox *vgroup = new QGroupBox(i18n("Generate Key Pair"), this);
-
- QLabel *nameLabel = new QLabel(i18nc("Name of key owner", "&Name:"), vgroup);
- m_kname = new KLineEdit(vgroup);
- nameLabel->setBuddy(m_kname);
- m_kname->setFocus();
connect(m_kname, SIGNAL(textChanged(QString)), this, SLOT(slotEnableOk()));
- QLabel *emailLabel = new QLabel(i18nc("Email address of key owner", "E&mail:"), \
vgroup);
- m_mail = new KLineEdit(vgroup);
- emailLabel->setBuddy(m_mail);
-
- QLabel *commentLabel = new QLabel(i18n("Commen&t (optional):"), vgroup);
- m_comment = new KLineEdit(vgroup);
- commentLabel->setBuddy(m_comment);
-
- QLabel *expLabel = new QLabel(i18n("Expiration:"), vgroup);
KHBox *hgroup = new KHBox(vgroup);
hgroup->setFrameShape(QFrame::StyledPanel);
hgroup->setMargin(marginHint());
hgroup->setSpacing(spacingHint());
- m_days = new KLineEdit(QLatin1String( "0" ), hgroup);
+ m_days->setParent(hgroup);
QIntValidator *validator = new QIntValidator(m_days);
validator->setBottom(0);
m_days->setValidator(validator);
@@ -84,39 +66,19 @@ KgpgKeyGenerate::KgpgKeyGenerate(QWidget *parent)
m_keyexp->setMinimumSize(m_keyexp->sizeHint());
connect(m_keyexp, SIGNAL(activated(int)), this, SLOT(slotEnableDays(int)));
- QLabel *sizeLabel = new QLabel(i18n("&Key size:"), vgroup);
- m_keysize = new KComboBox(vgroup);
- m_keysize->addItem(i18n("768"));
+ qobject_cast<QVBoxLayout *>(vgroup->layout())->insertWidget(7, hgroup);
+
m_keysize->addItem(i18n("1024"));
m_keysize->addItem(i18n("2048"));
m_keysize->addItem(i18n("4096"));
- m_keysize->setCurrentIndex(1); // 1024
+ m_keysize->setCurrentIndex(0); // 1024
m_keysize->setMinimumSize(m_keysize->sizeHint());
- sizeLabel->setBuddy(m_keysize);
- QLabel *algoLabel = new QLabel(i18n("&Algorithm:"), vgroup);
- m_keykind = new KComboBox(vgroup);
m_keykind->addItem(KgpgCore::Convert::toString(KgpgCore::ALGO_DSA_ELGAMAL));
m_keykind->addItem(KgpgCore::Convert::toString(KgpgCore::ALGO_RSA_RSA));
m_keykind->addItem(KgpgCore::Convert::toString(KgpgCore::ALGO_RSA));
+ m_keykind->setCurrentIndex(1); // RSA+RSA
m_keykind->setMinimumSize(m_keykind->sizeHint());
- algoLabel->setBuddy(m_keykind);
-
- QVBoxLayout *vlayout = new QVBoxLayout(vgroup);
- vlayout->addWidget(nameLabel);
- vlayout->addWidget(m_kname);
- vlayout->addWidget(emailLabel);
- vlayout->addWidget(m_mail);
- vlayout->addWidget(commentLabel);
- vlayout->addWidget(m_comment);
- vlayout->addWidget(expLabel);
- vlayout->addWidget(hgroup);
- vlayout->addWidget(sizeLabel);
- vlayout->addWidget(m_keysize);
- vlayout->addWidget(algoLabel);
- vlayout->addWidget(m_keykind);
- vlayout->addStretch();
- vgroup->setLayout(vlayout);
setMainWidget(vgroup);
@@ -191,7 +153,8 @@ void KgpgKeyGenerate::slotEnableDays(const int &state)
void KgpgKeyGenerate::slotEnableOk()
{
- enableButtonOk(!m_kname->text().simplified().isEmpty());
+ enableButtonOk((m_kname->text().simplified().length() >= 5) &&
+ !m_kname->text().simplified().at(0).isDigit());
}
bool KgpgKeyGenerate::isExpertMode() const
diff --git a/kgpgkeygenerate.h b/kgpgkeygenerate.h
index df61970..5dbbf75 100644
--- a/kgpgkeygenerate.h
+++ b/kgpgkeygenerate.h
@@ -1,10 +1,7 @@
-/***************************************************************************
- keygen.h - description
- -------------------
- begin : Mon Jul 8 2002
- copyright : (C) 2002 by Jean-Baptiste Mardelle
- email : bj@altern.org
- ***************************************************************************/
+/*
+ * Copyright (C) 2002 Jean-Baptiste Mardelle <bj@altern.org>
+ * Copyright (C) 2007,2009,2012,2013 Rolf Eike Beer <kde@opensource.sf-tec.de>
+ */
/***************************************************************************
* *
@@ -14,9 +11,12 @@
* (at your option) any later version. *
* *
***************************************************************************/
+
#ifndef KGPGKEYGENERATE_H
#define KGPGKEYGENERATE_H
+#include "ui_kgpgkeygenerate.h"
+
#include "core/kgpgkey.h"
#include <KDialog>
@@ -24,7 +24,7 @@
class KComboBox;
class KLineEdit;
-class KgpgKeyGenerate : public KDialog
+class KgpgKeyGenerate : public KDialog, public Ui::kgpgKeyGenerate
{
Q_OBJECT
@@ -48,13 +48,7 @@ private slots:
void slotEnableDays(const int &state);
private:
- KComboBox *m_keykind;
- KComboBox *m_keysize;
KComboBox *m_keyexp;
- KLineEdit *m_days;
- KLineEdit *m_comment;
- KLineEdit *m_kname;
- KLineEdit *m_mail;
bool m_expert;
};
diff --git a/kgpgkeygenerate.ui b/kgpgkeygenerate.ui
new file mode 100644
index 0000000..7daeaa6
--- /dev/null
+++ b/kgpgkeygenerate.ui
@@ -0,0 +1,141 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>kgpgKeyGenerate</class>
+ <widget class="KDialog" name="kgpgKeyGenerate">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>365</width>
+ <height>448</height>
+ </rect>
+ </property>
+ <property name="windowTitle">
+ <string>Key Generation</string>
+ </property>
+ <widget class="QGroupBox" name="vgroup">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>10</y>
+ <width>361</width>
+ <height>341</height>
+ </rect>
+ </property>
+ <property name="title">
+ <string>Generate Key Pair</string>
+ </property>
+ <layout class="QVBoxLayout" name="verticalLayout">
+ <item>
+ <widget class="QLabel" name="nameLabel">
+ <property name="text">
+ <string extracomment="Name of key owner">&Name:</string>
+ </property>
+ <property name="buddy">
+ <cstring>m_kname</cstring>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="KLineEdit" name="m_kname">
+ <property name="toolTip">
+ <string>The name must have a length of at least 5 characters and must not \
begin with a digit.</string> + </property>
+ <property name="placeholderText">
+ <string>Real name, at least 5 characters, no leading digits</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLabel" name="emailLabel">
+ <property name="text">
+ <string extracomment="Email address of key owner">E&mail \
(optional):</string> + </property>
+ <property name="buddy">
+ <cstring>m_mail</cstring>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="KLineEdit" name="m_mail"/>
+ </item>
+ <item>
+ <widget class="QLabel" name="label_2">
+ <property name="text">
+ <string>Commen&t (optional):</string>
+ </property>
+ <property name="buddy">
+ <cstring>m_comment</cstring>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="KLineEdit" name="m_comment"/>
+ </item>
+ <item>
+ <widget class="QLabel" name="label_3">
+ <property name="text">
+ <string>Expiration:</string>
+ </property>
+ <property name="buddy">
+ <cstring>m_days</cstring>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="KLineEdit" name="m_days">
+ <property name="text">
+ <string>0</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLabel" name="label_4">
+ <property name="text">
+ <string>&Key size:</string>
+ </property>
+ <property name="buddy">
+ <cstring>m_keysize</cstring>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="KComboBox" name="m_keysize"/>
+ </item>
+ <item>
+ <widget class="QLabel" name="label_5">
+ <property name="text">
+ <string>&Algorithm:</string>
+ </property>
+ <property name="buddy">
+ <cstring>m_keykind</cstring>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="KComboBox" name="m_keykind"/>
+ </item>
+ </layout>
+ </widget>
+ </widget>
+ <customwidgets>
+ <customwidget>
+ <class>KDialog</class>
+ <extends>QDialog</extends>
+ <header>kdialog.h</header>
+ <container>1</container>
+ </customwidget>
+ <customwidget>
+ <class>KComboBox</class>
+ <extends>QComboBox</extends>
+ <header>kcombobox.h</header>
+ </customwidget>
+ <customwidget>
+ <class>KLineEdit</class>
+ <extends>QLineEdit</extends>
+ <header>klineedit.h</header>
+ </customwidget>
+ </customwidgets>
+ <resources/>
+ <connections/>
+</ui>
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic