view ui/mainwindow.h @ 113:02ad0922c01f

Start over (only leave comments).
author Sascha Wilde <wilde@intevation.de>
date Fri, 21 Mar 2014 17:12:53 +0100
parents f22a99f7cb69
children 252ffe6e27fd
line wrap: on
line source
#ifndef MAINWINDOW_H
#define MAINWINDOW_H

/**
 * @file mainwindow.h
 * @brief Main UI controller
 */

#include <QSystemTrayIcon>
#include <QDialog>
#include <QSettings>

#include "downloader.h"
#include "certificatelist.h"
class QMenu;
class QAction;
class QTimer;

class MainWindow : public QDialog
{
    Q_OBJECT

public:
    MainWindow();

    void setMessage(const QString message) {mCurMessage = message;}
    QString getMessage() {return mCurMessage;}

    enum CurrentState {
        BeforeDownload,
        NewListAvailable,
        NewSoftwareAvailable,
        TransferError
    };

    CurrentState getState() {return mCurState;}
    void setState(CurrentState state) {mCurState = state;}

private slots:
    void showMessage();
    void iconActivated(QSystemTrayIcon::ActivationReason reason);
    void checkUpdates();
    void handleNewList(const QString& fileName, const QDateTime& modDate);
    void handleNewSW(const QString& fileName, const QDateTime& modDate);
    void downloaderError(const QString &message, SSLConnection::ErrorCode error);
    /** @brief Trigger the appropiate action depending on the state */
    void messageClicked();

private:
    /** @brief check the integrity of available files.
     *
     * Do not use this as a trust check as this only works on
     * FileNames where the underlying files can change. This
     * is just meant to check if the downloaded data was somehow
     * removed or corrupted.
     *
     */
    void verifyAvailableData();
    void createTrayIcon();
    void createActions();

    QString mCurMessage;
    QString mInstalledSWVersion;
    QString mInstalledListVersion;

    QSettings mSettings;

    QSystemTrayIcon *mTrayIcon;
    QTimer *mMessageTimer;
    QMenu *mTrayMenu;
    QAction *mCheckUpdates;
    QAction *mQuitAction;
    CurrentState mCurState;

    CertificateList mListToInstall;
};

#endif // MAINWINDOW_H

http://wald.intevation.org/projects/trustbridge/