[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">&amp;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&amp;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&amp;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>&amp;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>&amp;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