aboutsummaryrefslogtreecommitdiffstats
path: root/include/ui/KeygenDialog.h
diff options
context:
space:
mode:
authorSaturneric <[email protected]>2021-05-12 02:14:58 +0000
committerSaturneric <[email protected]>2021-05-12 02:14:58 +0000
commit26691b14d7d3294769c1cb0d0e099efd75dcc6c6 (patch)
tree7e16cb949955e635bada530ba7fd23a43ef8e4bb /include/ui/KeygenDialog.h
parentSrouce Files Tidy and Reform (diff)
downloadGpgFrontend-26691b14d7d3294769c1cb0d0e099efd75dcc6c6.tar.gz
GpgFrontend-26691b14d7d3294769c1cb0d0e099efd75dcc6c6.zip
File Structure Modified.
Change Headers and Source Files Name. Modified CMake Structure.
Diffstat (limited to 'include/ui/KeygenDialog.h')
-rw-r--r--include/ui/KeygenDialog.h89
1 files changed, 89 insertions, 0 deletions
diff --git a/include/ui/KeygenDialog.h b/include/ui/KeygenDialog.h
new file mode 100644
index 00000000..cca92830
--- /dev/null
+++ b/include/ui/KeygenDialog.h
@@ -0,0 +1,89 @@
+/*
+ * keygendialog.h
+ *
+ * Copyright 2008 gpg4usb-team <[email protected]>
+ *
+ * This file is part of gpg4usb.
+ *
+ * Gpg4usb is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Gpg4usb is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with gpg4usb. If not, see <http://www.gnu.org/licenses/>
+ */
+
+#ifndef __KEYGENDIALOG_H__
+#define __KEYGENDIALOG_H__
+
+#include "KeygenThread.h"
+#include "gpg/GpgContext.h"
+
+
+class KeyGenDialog : public QDialog {
+Q_OBJECT
+
+
+public:
+
+ /**
+ * @details Constructor of this class
+ *
+ * @param ctx The current GpgME context
+ * @param key The key to show details of
+ * @param parent The parent of this widget
+ */
+ explicit KeyGenDialog(GpgME::GpgContext *ctx, QWidget *parent = nullptr);
+
+private:
+ void generateKeyDialog();
+
+ /**
+ * @details Check the password strength of the text in the passwordEdit member
+ *
+ * @return digit between 0 and 6, the higher the more secure is the password
+ */
+ int checkPassWordStrength();
+
+ GpgME::GpgContext *mCtx; /** The current gpg context */
+ __attribute__((unused)) KeyGenThread *keyGenThread{}; /** Thread for key generation */
+ __attribute__((unused)) QStringList errorMessages; /** List of errors occuring when checking entries of lineedits */
+ QDialogButtonBox *buttonBox; /** Box for standardbuttons */
+ QLabel *errorLabel{}; /** Label containing error message */
+ QLineEdit *nameEdit{}; /** Lineedit for the keys name */
+ QLineEdit *emailEdit{}; /** Lineedit for the keys email */
+ QLineEdit *commentEdit{}; /** Lineedit for the keys comment */
+ QLineEdit *passwordEdit{}; /** Lineedit for the keys password */
+ QLineEdit *repeatpwEdit{}; /** Lineedit for the repetition of the keys password */
+ QSpinBox *keySizeSpinBox{}; /** Spinbox for the keys size (in bit) */
+ QComboBox *keyTypeComboBox{}; /** Combobox for Keytpe */
+ QDateTimeEdit *dateEdit{}; /** Dateedit for expiration date */
+ QCheckBox *expireCheckBox{}; /** Checkbox, if key should expire */
+ QSlider *pwStrengthSlider{}; /** Slider showing the password strength */
+
+private slots:
+
+ /**
+ * @details when expirebox was checked/unchecked, enable/disable the expiration date box
+ */
+ void slotExpireBoxChanged();
+
+ /**
+ * @details When passwordedit changed, set new value for password strength slider
+ */
+ void slotPasswordEditChanged();
+
+ /**
+ * @details check all lineedits for false entries. Show error, when there is one, otherwise generate the key
+ */
+ void slotKeyGenAccept();
+
+};
+
+#endif // __KEYGENDIALOG_H__