view src/folderselectdialog.h @ 113:20ec21924338 tip

Added tag 1.4 for changeset 9daf778feaf1
author Andre Heinecke <andre.heinecke@intevation.de>
date Thu, 08 Dec 2016 15:34:30 +0100
parents 0ad468912ff3
children
line wrap: on
line source
#ifndef FOLDERSELECTDIALOG_H
#define FOLDERSELECTDIALOG_H
/* Copyright (C) 2015 by ETH Zürich
 * Software engineering 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.
 */
#include <QWidget>
#include <QDialog>
#include <QItemSelection>

#include "filterwidget.h"

class QTableView;
class IPAwareSortModel;
class FilterWidget;
class QStandardItemModel;
class QLabel;
class QPushButton;
class QLineEdit;

/**
 * @class FolderSelectDialog
 * @brief Dialog for Folder configurable folder selection.
 */
class FolderSelectDialog : public QDialog
{
    Q_OBJECT

public:
    /** @brief initialize a folder select dialog with a start folder and
     * for a specific folder name pattern.
     *
     * If the parameter pathLabel is not empty it includes a path selection
     * area.
     * */
    FolderSelectDialog(const QString& startFolder,
            const QString& folderPattern,
            const QString& pathLabel = QString(),
            QWidget * parent = 0, Qt::WindowFlags f = 0);

    void setFolder(const QString& folder);

protected:
    void setupGUI();

protected slots:
    /** @brief The user wants to accept the selection */
    void wantToAccept();

    /** @brief Open the folder selection dialog for the output folder */
    void changeFolderClicked();

    /** @brief try to load the folder line into the model */
    void goClicked();

    /** @brief enable or disable the go button depending on the path. */
    void pathLineChanged();

    /** @brief enable or disable the ok button depending on the selection. */
    void selectionChanged (const QItemSelection& selected,
                           const QItemSelection& deselected);

Q_SIGNALS:
    /** @brief emited before the dialog is closed when a folder is selected */
    void folderSelected(const QString& folder);

    /** @brief Back button was clicked */
    void backClicked();

private:
    QTableView *mView;
    FilterWidget *mFilterWidget;
    IPAwareSortModel *mSortModel;
    QString mCurFolder,
            mFolderPattern;
    QString mPathLabelString;
    QStandardItemModel *mModel;
    QLabel *mPathLabel;
    QLineEdit *mPathLineEdit;
    QPushButton *mGoButton,
                *mOkButton;
    QWidget *mErrorWidget;
    QString mErrMsg;
    bool mShowPathSelection;
};

#endif // FOLDERSELECTDIALOG_H
This site is hosted by Intevation GmbH (Datenschutzerklärung und Impressum | Privacy Policy and Imprint)