view ui/mainwindow.h @ 289:9ad00a3255f4

Change cinst from stdin input to use arguments. As we have to execute this process on Windows over the shell a stdin / stdout communication is not really possible without some major hacks. So you now have to supply an instructions file and the path to the certificatelist as arguments when this process is called
author Andre Heinecke <aheinecke@intevation.de>
date Wed, 02 Apr 2014 13:52:02 +0000
parents 1ae15ea73850
children 75f7288ad67b
line wrap: on
line source
#ifndef MAINWINDOW_H
#define MAINWINDOW_H

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

#include <QSystemTrayIcon>
#include <QMainWindow>
#include <QSettings>
#include <QMenuBar>
#include <QListWidget>
#include <QTextEdit>
#include <QPushButton>

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

class MainWindow : public QMainWindow
{
    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();
    void showSettings();
    void showStatus();
    void showHelp();
    void showAbout();
    void showDetails(QListWidgetItem*);
    void resizeButtons();

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();
    void createMenuBar();
    void createContent();
    void loadCertificateList();

    QString mCurMessage;
    QString mInstalledSWVersion;
    QString mInstalledListVersion;

    QSettings mSettings;

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

    CertificateList mListToInstall;

    QListWidget *certificateList;
    QTextEdit *certificateDetails;
    QPushButton *installButton;
    QPushButton *quitButton;
};

#endif // MAINWINDOW_H

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