andre@0: /* Copyright (C) 2014 by Intevation GmbH andre@0: * andre@0: * This file is Free Software under the GNU GPL (v>=2) andre@0: * and comes with ABSOLUTELY NO WARRANTY! andre@0: * See LICENSE.txt for details. andre@0: */ andre@0: andre@0: andre@0: /** @file The Main UI class. andre@0: * andre@0: * Parent class of all dialogs and graphical user interaction. andre@0: */ andre@0: #include andre@0: #include andre@0: andre@0: class QPushButton; andre@0: class QDropEvent; andre@0: class QDragLeaveEvent; andre@0: class QDragMoveEvent; andre@0: class QDragEnterEvent; andre@0: andre@0: class MainWindow : public QMainWindow andre@0: { andre@0: Q_OBJECT andre@0: andre@0: public: andre@0: MainWindow(); andre@0: andre@0: protected: andre@0: /** @brief UI setup */ andre@0: void setupGUI(); andre@0: andre@0: /** @brief Cleanup and save the current state */ andre@0: virtual void closeEvent(QCloseEvent *event); andre@0: andre@0: /** @brief Restores the last window state */ andre@0: void readSettings(); andre@0: andre@0: /* The drag drop actions */ andre@0: void dragEnterEvent(QDragEnterEvent *event); andre@0: void dragMoveEvent(QDragMoveEvent *event); andre@0: void dragLeaveEvent(QDragLeaveEvent *event); andre@0: void dropEvent(QDropEvent *event); andre@0: andre@0: public slots: andre@0: /** @brief set an absolute folder to read a metadata.csv from. */ andre@0: void setFolder(const QString &folder); andre@0: andre@0: protected slots: andre@0: /** @brief Show an error dialog to the user. */ andre@0: void showErrorMessage(const QString& errMsg); andre@0: andre@0: private: andre@0: QSettings mSettings; andre@0: andre@0: bool mHasValidFolder; andre@0: QString mCurFolder; andre@0: };