aheinecke@404: /* Copyright (C) 2014 by Bundesamt für Sicherheit in der Informationstechnik aheinecke@404: * Software engineering by Intevation GmbH aheinecke@404: * aheinecke@404: * This file is Free Software under the GNU GPL (v>=2) aheinecke@404: * and comes with ABSOLUTELY NO WARRANTY! aheinecke@404: * See LICENSE.txt for details. aheinecke@404: */ rrenkert@333: #ifndef ADMINSTRATORWINDOW_H rrenkert@333: #define ADMINSTRATORWINDOW_H rrenkert@333: rrenkert@333: /** rrenkert@333: * @file administratorwindow.h rrenkert@333: * @brief Administrator UI controller rrenkert@333: */ rrenkert@333: rrenkert@333: #include rrenkert@333: #include rrenkert@333: #include rrenkert@335: #include rrenkert@333: #include rrenkert@333: rrenkert@343: #include "certificatelist.h" rrenkert@343: #include "certificatetablemodel.h" rrenkert@343: rrenkert@333: class QMenu; rrenkert@333: class QAction; rrenkert@333: rrenkert@333: class AdministratorWindow : public QMainWindow rrenkert@333: { rrenkert@333: Q_OBJECT rrenkert@333: rrenkert@333: public: rrenkert@333: AdministratorWindow(); rrenkert@333: aheinecke@463: /** @brief obtain a reference to the certificates currently in the model aheinecke@463: * @returns the currently shown certificates aheinecke@453: */ aheinecke@463: const QList& certificates() const { aheinecke@463: return certificateModel->certificates(); aheinecke@463: } aheinecke@453: aheinecke@453: /** @brief get the settings for this application aheinecke@453: * @returns a reference the applications settings object aheinecke@453: */ aheinecke@453: QSettings* settings() {return &mSettings;} aheinecke@453: rrenkert@562: /** @brief log the diff between the initial certificate list and the list rrenkert@562: * saved as current. rrenkert@562: * rrenkert@562: * @param currentCerts Path to the current certificate list file. andre@679: * @param certFingerprint The fingerprint of the signing key used. rrenkert@562: */ andre@679: void logChanges(const QString ¤tCerts, const QString &keyFingerprint); rrenkert@562: rrenkert@565: /** @brief get the currently changed certificates. rrenkert@565: * @return a list of certificates. rrenkert@565: */ rrenkert@565: QList currentChanges(); rrenkert@565: rrenkert@333: private slots: rrenkert@333: void createInstaller(); rrenkert@333: void showAbout(); andre@1001: void showHelp(); rrenkert@344: void loadCertificateFile(); rrenkert@368: void saveCertificateFile(); rrenkert@358: void addCertificates(); rrenkert@376: void removeCertificates(); rrenkert@376: void clickedCertificate(const QModelIndex&); rrenkert@333: rrenkert@333: private: rrenkert@333: void createActions(); rrenkert@333: void createMenuBar(); rrenkert@333: void createContent(); rrenkert@344: void loadCertificateTable(); rrenkert@358: void addToCertificateTable(const QList &certs); andre@679: QByteArray createLogEntries(const CertificateList &list, const QString &keyFingerprint); rrenkert@333: aheinecke@453: QSettings mSettings; rrenkert@333: rrenkert@333: QMenuBar *menuBar; rrenkert@333: rrenkert@335: QTableView *certificateView; aheinecke@453: CertificateList mCertList; rrenkert@343: CertificateTabelModel *certificateModel; rrenkert@333: QPushButton *saveButton; rrenkert@333: QPushButton *loadButton; rrenkert@333: QPushButton *addButton; rrenkert@333: QPushButton *removeButton; rrenkert@333: }; rrenkert@333: rrenkert@333: #endif // ADMINSTRATORWINDOW_H