Mercurial > retraceit
view src/folderselectdialog.h @ 45:213d9163dab0
Add error handling to the folder selection dialog
author | Andre Heinecke <andre.heinecke@intevation.de> |
---|---|
date | Wed, 06 May 2015 19:45:44 +0200 |
parents | 64a51a42c01f |
children | 098a10fc2e83 |
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 QSortFilterProxyModel; class FilterWidget; class QStandardItemModel; class QLabel; class QPushButton; class QLineEdit; 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); private: QTableView *mView; FilterWidget *mFilterWidget; QSortFilterProxyModel *mSortModel; QString mCurFolder, mFolderPattern; QString mPathLabelString; QStandardItemModel *mModel; QLabel *mPathLabel; QLineEdit *mPathLineEdit; QPushButton *mGoButton, *mOkButton; bool mShowPathSelection; }; #endif // FOLDERSELECTDIALOG_H