#ifndef MAINWINDOW_H #define MAINWINDOW_H #include #include #include #include #include #include #include #include #include "crypt/hybridcrypt.h" #include "passworddialog.h" #include "publickeyimportdialog.h" #include "decryptdatadialog.h" namespace Ui { class MainWindow; } /** * @brief Das Hauptfenster der Application. * Es ist für die Interaktion mit HybridCrypt zuständig, * deswegen ist es für das Erzeugen, Im- und Exportieren von Schlüsseln da. * Darüber hinaus ist es der Einstiegspunkt für die Ver- und Entschlüsselungs Dialoge. */ class MainWindow : public QMainWindow { Q_OBJECT public: /** * @brief Ist der Konstruktor der eine Objekt der Klasse erzeugt. * @param parent ist der Zeiger auf das Elternfenster. */ explicit MainWindow(QWidget *parent = 0); ~MainWindow(); private slots: /** * @brief Öffnet DecryptDataDialog * und entschlüsselt die ausgewählte Datei. */ void on_pushButtonDecrypt_clicked(); /** * @brief Öffnet PublicKeyImportDialog * und entschlüsselte die ausgewählte Datei. */ void on_pushButtonEncrypt_clicked(); /** * @brief Öffnet einen Dateidialog * zur Auswahl einer Klartextdatei. * Schreibt Dateipfad in lineEditFilePath(ChangeEvent). */ void on_pushButtonOpenFile_clicked(); /** * @brief Beendet die Anwendung. */ void on_actionClose_triggered(); /** * @brief Erzeugt ein neus Schlüsselpaar. * Schlüssel werden nur im Progamm gespeichert. */ void on_actionCreateKeypair_triggered(); /** * @brief Importiert ein Schlüsselpaar aus einer Datei. */ void on_actionImport_triggered(); /** * @brief Exportiert Schlüsselpaar des Nutzers. */ void on_actionExportMyKeypair_triggered(); /** * @brief Exportiert den öffentlichen Schlüssel des Nutzers. */ void on_actionExportMyPublicKey_triggered(); /** * @brief Setzt den Text aus der Datei in das textEditPreview, * falls die Datei auf .txt oder .log endet. * @param text Der Dateipfad der ausgewählten Datei. */ void on_lineEditFilePath_textChanged(const QString &text); private: /** * @brief Timeout für die Nachricht in der StatusBar. */ static const int messageTimeout = 5000; /** * @brief Stellt Funktionalität bereit. */ HybridCrypt hybridcrypt; /** * @brief Die grafische Oberfläche. */ Ui::MainWindow *ui; }; #endif // MAINWINDOW_H