aboutsummaryrefslogtreecommitdiffstats
path: root/src/wizard.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/wizard.h')
-rw-r--r--src/wizard.h167
1 files changed, 167 insertions, 0 deletions
diff --git a/src/wizard.h b/src/wizard.h
new file mode 100644
index 0000000..4ed34c1
--- /dev/null
+++ b/src/wizard.h
@@ -0,0 +1,167 @@
+/*
+ * wizard.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 WIZARD_H
+#define WIZARD_H
+
+#include <QWizard>
+#include "keygendialog.h"
+#include "keymgmt.h"
+#include "gpgconstants.h"
+#include "settingsdialog.h"
+
+class QCheckBox;
+class QLabel;
+class QLineEdit;
+class QRadioButton;
+
+class Wizard : public QWizard
+{
+ Q_OBJECT
+ Q_ENUMS(WizardPages)
+
+public:
+ enum WizardPages { Page_Intro, Page_Choose, Page_ImportFromGpg4usb, Page_ImportFromGnupg, Page_GenKey,
+ Page_Conclusion };
+
+ Wizard(GpgME::GpgContext *ctx, KeyMgmt *keyMgmt, QWidget *parent = 0);
+ static bool importPubAndSecKeysFromDir(const QString dir, KeyMgmt *keyMgmt);
+
+private:
+ GpgME::GpgContext *mCtx;
+ KeyMgmt *mKeyMgmt;
+
+private slots:
+ void slotWizardAccepted();
+
+signals:
+ void signalOpenHelp(QString page);
+};
+
+class IntroPage : public QWizardPage
+{
+ Q_OBJECT
+
+public:
+ IntroPage(QWidget *parent = 0);
+ QHash<QString,QString> languages;
+ int nextId() const;
+
+private slots:
+ void slotLangChange(QString lang);
+};
+
+class ChoosePage : public QWizardPage
+{
+ Q_OBJECT
+
+public:
+ ChoosePage(QWidget *parent = 0);
+
+private slots:
+ void slotJumpPage(const QString& page);
+
+private:
+ int nextId() const;
+ int nextPage;
+};
+
+class ImportFromGpg4usbPage : public QWizardPage
+{
+ Q_OBJECT
+
+public:
+ ImportFromGpg4usbPage(GpgME::GpgContext *ctx, KeyMgmt *keyMgmt, QWidget *parent = 0);
+
+private slots:
+ /**
+ * @details Import keys from gnupg-homedir, private or/and public depend on the checked boxes
+ */
+ void slotImportFromOlderGpg4usb();
+ bool slotImportConfFromGpg4usb(QString dir);
+
+private:
+ int nextId() const;
+
+ KeyMgmt *mKeyMgmt;
+ GpgME::GpgContext *mCtx;
+ QCheckBox *gpg4usbKeyCheckBox;
+ QCheckBox *gpg4usbConfigCheckBox;
+};
+
+class ImportFromGnupgPage : public QWizardPage
+{
+ Q_OBJECT
+
+public:
+ ImportFromGnupgPage(GpgME::GpgContext *ctx, KeyMgmt *keyMgmt, QWidget *parent = 0);
+
+private slots:
+ /**
+ * @details Import keys from gnupg-homedir, private or/and public depend on the checked boxes
+ */
+ void slotrImportKeysFromGnupg();
+
+private:
+ KeyMgmt *mKeyMgmt;
+ int nextId() const;
+
+ /**
+ * @details String containing the gnupg-homedir
+ * @returns String containg the gnupg-homedir, but NULL, if the in windows registry entry
+ * doesn't exist or in linux ~/.gnupg doesn't exist
+ */
+ QString getGnuPGHome();
+
+ GpgME::GpgContext *mCtx;
+ QPushButton *importFromGnupgButton;
+};
+
+class KeyGenPage : public QWizardPage
+{
+ Q_OBJECT
+
+public:
+ KeyGenPage(GpgME::GpgContext *ctx, QWidget *parent = 0);
+ int nextId() const;
+
+private slots:
+ void slotGenerateKeyDialog();
+
+private:
+ GpgME::GpgContext *mCtx;
+};
+
+class ConclusionPage : public QWizardPage
+{
+ Q_OBJECT
+
+public:
+ ConclusionPage(QWidget *parent = 0);
+ int nextId() const;
+
+private:
+ QCheckBox *dontShowWizardCheckBox;
+ QCheckBox *openHelpCheckBox;
+};
+
+#endif