view src/mainwindow.h @ 9:e3c8f61e45a9

Implement folderselection dialogs
author Andre Heinecke <andre.heinecke@intevation.de>
date Thu, 26 Mar 2015 16:30:18 +0100
parents 107e435cb569
children 64a51a42c01f
line wrap: on
line source
/* Copyright (C) 2014 by Intevation GmbH
 *
 * This file is Free Software under the GNU GPL (v>=2)
 * and comes with ABSOLUTELY NO WARRANTY!
 * See LICENSE.txt for details.
 */


/** @file The Main UI class.
 *
 * Parent class of all dialogs and graphical user interaction.
 */
#include <QMainWindow>
#include <QSettings>
#include <QDateTime>

class QPushButton;
class QDropEvent;
class QDragLeaveEvent;
class QDragMoveEvent;
class QDragEnterEvent;
class MetaDataView;
class PNGPlayer;

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    MainWindow();

protected:
    /** @brief UI setup */
    void setupGUI();

    /** @brief Cleanup and save the current state */
    virtual void closeEvent(QCloseEvent *event);

    /** @brief Restores the last window state */
    void readSettings();

    /* The drag drop actions
    void dragEnterEvent(QDragEnterEvent *event);
    void dragMoveEvent(QDragMoveEvent *event);
    void dragLeaveEvent(QDragLeaveEvent *event);
    void dropEvent(QDropEvent *event);
 */
public slots:
    /** @brief set an absolute folder to read a metadata.csv from. */
    void setFolder(const QString &folder);

    /** @brief set an absolute folder to check for subfolders. */
    void setRootFolder(const QString &folder);

public:
    /** @brief start the folder selection and show afterwards. */
    void showWithFolderSelect();

    /** @brief start the subfolder selection and show afterwards. */
    void showSubFolderSelect();

protected slots:
    /** @brief Show an error dialog to the user. */
    void showErrorMessage(const QString& errMsg);

    /** @brief update the status bar for the image.
     *
     * Function signature is similar to showPicture in pngviewer
     */
    void showPictureNameStatus(const QString& fileName, int current,
            int max, const QDateTime& timestamp );

private:
    QSettings mSettings;

    QString mCurFolder;
    QString mRootFolder;
    QString mSubFolder;
    MetaDataView *mDataView;
    PNGPlayer *mPlayer;
};
This site is hosted by Intevation GmbH (Datenschutzerklärung und Impressum | Privacy Policy and Imprint)