aheinecke@0: #ifndef MAINWINDOW_H aheinecke@0: #define MAINWINDOW_H aheinecke@0: aheinecke@71: /** aheinecke@71: * @file mainwindow.h aheinecke@71: * @brief Main UI controller aheinecke@71: */ aheinecke@71: aheinecke@0: #include rrenkert@153: #include aheinecke@16: #include rrenkert@155: #include rrenkert@189: #include rrenkert@189: #include rrenkert@271: #include aheinecke@16: aheinecke@16: #include "downloader.h" aheinecke@71: #include "certificatelist.h" aheinecke@0: class QMenu; aheinecke@0: class QAction; aheinecke@19: class QTimer; aheinecke@0: rrenkert@153: class MainWindow : public QMainWindow aheinecke@0: { aheinecke@0: Q_OBJECT aheinecke@0: aheinecke@0: public: aheinecke@0: MainWindow(); aheinecke@0: aheinecke@0: void setMessage(const QString message) {mCurMessage = message;} aheinecke@0: QString getMessage() {return mCurMessage;} aheinecke@0: aheinecke@16: enum CurrentState { aheinecke@16: BeforeDownload, aheinecke@16: NewListAvailable, aheinecke@16: NewSoftwareAvailable, aheinecke@16: TransferError aheinecke@16: }; aheinecke@16: aheinecke@16: CurrentState getState() {return mCurState;} aheinecke@16: void setState(CurrentState state) {mCurState = state;} aheinecke@16: aheinecke@0: private slots: aheinecke@0: void showMessage(); aheinecke@0: void iconActivated(QSystemTrayIcon::ActivationReason reason); aheinecke@16: void checkUpdates(); aheinecke@16: void handleNewList(const QString& fileName, const QDateTime& modDate); aheinecke@16: void handleNewSW(const QString& fileName, const QDateTime& modDate); aheinecke@45: void downloaderError(const QString &message, SSLConnection::ErrorCode error); aheinecke@71: /** @brief Trigger the appropiate action depending on the state */ aheinecke@71: void messageClicked(); rrenkert@155: void showSettings(); rrenkert@212: void showStatus(); rrenkert@155: void showHelp(); rrenkert@155: void showAbout(); rrenkert@189: void showDetails(QListWidgetItem*); rrenkert@271: void resizeButtons(); aheinecke@0: aheinecke@0: private: aheinecke@71: /** @brief check the integrity of available files. aheinecke@71: * aheinecke@71: * Do not use this as a trust check as this only works on aheinecke@71: * FileNames where the underlying files can change. This aheinecke@71: * is just meant to check if the downloaded data was somehow aheinecke@71: * removed or corrupted. aheinecke@71: * aheinecke@71: */ aheinecke@16: void verifyAvailableData(); aheinecke@0: void createTrayIcon(); aheinecke@0: void createActions(); rrenkert@155: void createMenuBar(); rrenkert@187: void createContent(); rrenkert@189: void loadCertificateList(); aheinecke@2: aheinecke@0: QString mCurMessage; aheinecke@16: QString mInstalledSWVersion; aheinecke@16: QString mInstalledListVersion; aheinecke@16: aheinecke@17: QSettings mSettings; aheinecke@0: aheinecke@0: QSystemTrayIcon *mTrayIcon; aheinecke@19: QTimer *mMessageTimer; aheinecke@0: QMenu *mTrayMenu; aheinecke@0: QAction *mCheckUpdates; aheinecke@2: QAction *mQuitAction; aheinecke@16: CurrentState mCurState; rrenkert@155: QMenuBar *mMenuBar; aheinecke@71: aheinecke@71: CertificateList mListToInstall; rrenkert@189: rrenkert@189: QListWidget *certificateList; rrenkert@189: QTextEdit *certificateDetails; rrenkert@271: QPushButton *installButton; rrenkert@271: QPushButton *quitButton; aheinecke@0: }; aheinecke@0: aheinecke@0: #endif // MAINWINDOW_H