#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 Öffnet eine Datei und zeigt sie wen möglich an. * Erzeugen, Importieren und Exportiern Schlüssel. * Ver- und Entschlüsselt Datein. */ class MainWindow : public QMainWindow { Q_OBJECT public: /** * @brief Ist der Konstrucktor der eine Objekt der Klasse erzeugt. * @param parent ist der Zeiger auf das Elter Fenster. */ explicit MainWindow(QWidget *parent = 0); ~MainWindow(); private slots: /** * @brief Entschlüsselt die Datei. * öfnet PublicKeyImportDialog * und Speichert Entschlüsselt Datei ap. */ void on_pushButtonDecrypt_clicked(); /** * @brief Verschlüsselt eine Datei. * öffnet DateiDialog für Verschlüsselte Datei. * Speichert Entschlüsselte Datei ab. */ void on_pushButtonEncrypt_clicked(); /** * @brief Öffnet einen Dateidialog * für eine Klartext Datei. * 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 Improtier ein Schlüsselpaar aus einer Datei. */ void on_actionImport_triggered(); /** * @brief Exportirt das im Programm vorhanden Schlüsselpaar. */ void on_actionExportMyKeypair_triggered(); /** * @brief Exportirt den im Programm vorhandenen Öffentlichenschlüssel. */ void on_actionExportMyPublicKey_triggered(); /** * @brief Setzt den text in aus der Datei in textEditPreview. * Datei wir nur angezeigt wen sie auf .txt oder .log ändert. * @param text der Text der in lineEditFilePath enthalten ist. */ void on_lineEditFilePath_textChanged(const QString &text); private: /** * @brief Zeit in Sekunden die, die Nachrichten in der Statusbar angezeigt werden. */ static const int messageTimeout = 20000; /** * @brief Schnittstelle für Schlüssel haltung und Ver- und Entschlüsselung. */ HybridCrypt hybridcrypt; /** * @brief Die Grafischen Oberfläche. */ Ui::MainWindow *ui; }; #endif // MAINWINDOW_H