An extension of the Qt Open/Save file dialog box. More...
#include <SUIT_FileDlg.h>

Public Member Functions | |
| SUIT_FileDlg (QWidget *, bool, bool=true, bool=true) | |
| Constructor. More... | |
| SUIT_FileDlg (QWidget *parent, const QString &initial, const QStringList &filters, const QString &caption=QString(), const bool open=true, const bool showQuickDir=true, SUIT_FileValidator *validator=0) | |
| Constructor. More... | |
| virtual | ~SUIT_FileDlg () |
| Destructor. More... | |
| bool | isOpenDlg () const |
| Check if the dialog box is used for opening or saving the file. More... | |
| bool | checkPermissions () const |
| Get 'check file permissions' flag. More... | |
| void | setCheckPermissions (const bool) |
| Set 'check file permissions' flag. More... | |
| SUIT_FileValidator * | validator () const |
| Get file validator. More... | |
| void | setValidator (SUIT_FileValidator *) |
| Set file validator. More... | |
| bool | addWidgets (QWidget *, QWidget *, QWidget *) |
| Adds the specified widgets to the bottom of the file dialog. More... | |
| QStringList | selectedFiles () const |
| Get list of selected files. More... | |
| QString | selectedFile () const |
| Get selected file. More... | |
| void | selectFile (const QString &) |
| Selects current file. More... | |
Static Public Member Functions | |
| static QString | getLastVisitedDirectory () |
| Get last visited directory. More... | |
| static QString | getFileName (QWidget *, const QString &, const QStringList &, const QString &=QString(), const bool=true, const bool=true, SUIT_FileValidator *=0) |
| Show dialog box for the file opening/saving. More... | |
| static QString | getFileName (QWidget *, const QString &, const QString &, const QString &=QString(), const bool=true, const bool=true, SUIT_FileValidator *=0) |
| Show dialog box for the file opening/saving. This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.This method can be used to select the file for opening or saving. The behavior is defined by the open parameter. Note, that selection validation depends on the dialog mode used. More... | |
| static QString | getFileName (QWidget *parent, const QString &initial, const QStringList &filters, QString &selectedFilter, const QString &caption=QString(), const bool open=true, const bool showQuickDir=true, SUIT_FileValidator *validator=0) |
| Show dialog box for the file opening/saving. More... | |
| static QStringList | getOpenFileNames (QWidget *, const QString &, const QStringList &, const QString &=QString(), const bool=true, SUIT_FileValidator *=0) |
| Show dialog box for the multiple files selection. More... | |
| static QStringList | getOpenFileNames (QWidget *, const QString &, const QString &, const QString &=QString(), const bool=true, SUIT_FileValidator *=0) |
| Show dialog box for the multiple file opening. This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.If initial parameter is not null string it is used as starting directory or file at which dialog box is opened. More... | |
| static QString | getExistingDirectory (QWidget *, const QString &, const QString &=QString(), const bool=true, SUIT_FileValidator *=0) |
| Show dialog box for the existing directory selection. More... | |
| static QString | getLastVisitedPath () |
| Get last visited path. More... | |
Protected Slots | |
| void | accept () |
| Called when the user presses "Open"or "Save" button. More... | |
| void | quickDir (const QString &) |
| Called when user selects directory from the "Quick Dir" combo box. More... | |
| void | addQuickDir () |
| Called when user presses "Quick Dir Add" button. More... | |
Protected Member Functions | |
| virtual bool | event (QEvent *) |
| Customize events processing. More... | |
| QLineEdit * | lineEdit () const |
| Get line edit which is used to enter file name. More... | |
| virtual bool | acceptData () |
| Validate user selection. More... | |
| QString | addExtension (const QString &) const |
| Add an extension to the specified file name. More... | |
| bool | processPath (const QString &) |
| Processes selection : tries to set specified sirectory or filename as current file dialog selection. More... | |
| void | addFilter (const QString &) |
| Add file filter and activates it. More... | |
Static Protected Member Functions | |
| static bool | hasWildCards (const QString &) |
| Check if the string contains wildcard symbols. More... | |
Private Member Functions | |
| void | polish () |
| Polish the dialog box. More... | |
| void | updateSideBar () |
| Update side bar URLs list. More... | |
Private Attributes | |
| SUIT_FileValidator * | myValidator |
| file validator More... | |
| QLabel * | myQuickLab |
| quick dir panel: label More... | |
| QComboBox * | myQuickCombo |
| quick dir panel: combo box More... | |
| QPushButton * | myQuickButton |
| quick dir panel: button More... | |
| QStringList | myUrls |
| sidebar urls More... | |
| bool | myCheckPermissions |
| check permissions option More... | |
Static Private Attributes | |
| static QString | myLastVisitedPath |
| last visited path More... | |
An extension of the Qt Open/Save file dialog box.
The class SUIT_FileDlg provides a set of static methods which canbe used for file or directories selection:
Examples:
The class SUIT_FileDlg can be subclassed to implement custom file dialog boxes. The class provides a set of methods which can be used in subclasses:
| SUIT_FileDlg::SUIT_FileDlg | ( | QWidget * | parent, |
| bool | open, | ||
| bool | showQuickDir = true, |
||
| bool | modal = true |
||
| ) |
Constructor.
| parent | parent widget |
| open | if true dialog box is used for file opening, otherwise - for saving |
| showQuickDir | if true the quick directory list widgets will be shown |
| modal | if true the dialog box will be modal |
References addQuickDir(), addWidgets(), QtxResourceMgr::booleanValue(), myLastVisitedPath, myQuickButton, myQuickCombo, myQuickLab, myUrls, myValidator, processPath(), quickDir(), SUIT_Session::resourceMgr(), SUIT_Session::session(), QtxResourceMgr::stringValue(), and updateSideBar().
| SUIT_FileDlg::SUIT_FileDlg | ( | QWidget * | parent, |
| const QString & | initial, | ||
| const QStringList & | filters, | ||
| const QString & | caption = QString(), |
||
| const bool | open = true, |
||
| const bool | showQuickDir = true, |
||
| SUIT_FileValidator * | validator = 0 |
||
| ) |
Constructor.
| parent | parent widget |
| initial | initial file (or directory) dialog box to be opened on |
| filters | file filters list |
| caption | dialog box title |
| open | if true dialog box is used for file opening, otherwise - for saving |
| showQuickDir | if true the quick directory list widgets will be shown |
| validator | custom file validator |
References processPath(), setValidator(), and validator().
|
virtual |
Destructor.
References setValidator().
|
protectedslot |
Called when the user presses "Open"or "Save" button.
Verifies the user choice and closes dialog box, setting the return code to QDialog::Accepted
References acceptData(), and myLastVisitedPath.
|
protectedvirtual |
Validate user selection.
The validation is done by calling the corresponding methods of the validator. If the validator is not set, this method always returns true.
This method can be re-implemented in the subclasses to customize the file dialog behavior. Another solution could be implementing own file validator class.
true if user selection (file(s) or directory) is valid References addFilter(), SUIT_FileValidator::canOpen(), SUIT_FileValidator::canReadDir(), SUIT_FileValidator::canSave(), SUIT_FileValidator::canWriteDir(), checkPermissions(), hasWildCards(), isOpenDlg(), lineEdit(), selectedFiles(), and validator().
|
protected |
Add an extension to the specified file name.
The extension is extracted from the active filter.
| fileName | file name to be processed |
References Qtx::extension(), and IGNORE_NON_MATCHING_EXTENSION.
|
protected |
Add file filter and activates it.
| filter | new file filter |
|
protectedslot |
Called when user presses "Quick Dir Add" button.
Adds current directory to the quick directories list and to the preferences.
References myQuickCombo, myUrls, SUIT_Session::resourceMgr(), SUIT_Session::session(), QtxResourceMgr::setValue(), QtxResourceMgr::stringValue(), and updateSideBar().
Adds the specified widgets to the bottom of the file dialog.
The first widget (usually label) l is placed underneath the "file name" and the "file types" labels. The widget w is placed underneath the file types combobox. The last widget (usually button) b is placed underneath the Cancel push button.
In general, the widgets can be arbitrary. This method is added to support the functionality provided by the Qt series 3.x.
If you don't want to have one of the widgets added, pass 0 in that widget's position. Every time this function is called, a new row of widgets is added to the bottom of the file dialog.
| l | first widget (e.g. text label) |
| w | second widget (e.g. combo box) |
| b | third widget (e.g. push button) |
true if widgets have been added successfully | bool SUIT_FileDlg::checkPermissions | ( | ) | const |
Get 'check file permissions' flag.
References myCheckPermissions.
|
protectedvirtual |
Customize events processing.
| e | event |
true if the event e was recognized and processed References polish().
|
static |
Show dialog box for the existing directory selection.
If initial parameter is not null string it is used as starting directory at which dialog box is opened.
The parameter caption is used as dialog box title. If it is is empty, the default title is used.
The parameter showQuickDir specifies if it is necessary to show additional quick directories list controls in the bottom part of the dialog box.
The validation of the user selection is done with help of the file validator (SUIT_FileValidator class). The last parameter validator can be used to pass the custom file validator to the dialog box.
| parent | parent widget |
| initial | initial directory dialog box to be opened on |
| caption | dialog box title |
| showQuickDir | if true the quick directory list widgets will be shown |
| validator | custom file validator |
References processPath(), selectedFile(), setValidator(), and validator().
|
static |
Show dialog box for the file opening/saving. This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.This method can be used to select the file for opening or saving. The behavior is defined by the open parameter. Note, that selection validation depends on the dialog mode used.
If initial parameter is not null string it is used as starting directory or file at which dialog box is opened.
The parameter filters defines file filters (wildcards) to be used. This is the list of wildcards, separated by the ";;" symbols. If filters list is empty, "All files (*)" is used by default.
The parameter caption is used as dialog box title. If it is is empty, the default title is used.
The parameter showQuickDir specifies if it is necessary to show additional quick directories list controls in the bottom part of the dialog box.
The validation of the user selection is done with help of the file validator (SUIT_FileValidator class). The last parameter validator can be used to pass the custom file validator to the dialog box.
| parent | parent widget |
| initial | initial file (or directory) dialog box to be opened on |
| filters | file filters separated by ";;" |
| caption | dialog box title |
| open | if true dialog box is used for file opening, otherwise - for saving |
| showQuickDir | if true the quick directory list widgets will be shown |
| validator | custom file validator |
References getFileName(), and validator().
|
static |
Show dialog box for the file opening/saving.
This method can be used to select the file for opening or saving. The behavior is defined by the open parameter. Note, that selection validation depends on the dialog mode used.
If initial parameter is not null string it is used as starting directory or file at which dialog box is opened.
The parameter filters defines file filters (wildcards) to be used. If filters list is empty, "All files (*)" is used by default.
The parameter caption is used as dialog box title. If it is is empty, the default title is used.
The parameter showQuickDir specifies if it is necessary to show additional quick directories list controls in the bottom part of the dialog box.
The validation of the user selection is done with help of the file validator (SUIT_FileValidator class). The last parameter validator can be used to pass the custom file validator to the dialog box.
| parent | parent widget |
| initial | initial file (or directory) dialog box to be opened on |
| filters | file filters list |
| caption | dialog box title |
| open | if true dialog box is used for file opening, otherwise - for saving |
| showQuickDir | if true the quick directory list widgets will be shown |
| validator | custom file validator |
References selectedFile(), and validator().
|
static |
Show dialog box for the file opening/saving.
This method can be used to select the file for opening or saving. The behavior is defined by the open parameter. Note, that selection validation depends on the dialog mode used.
If initial parameter is not null string it is used as starting directory or file at which dialog box is opened.
The parameter filters defines file filters (wildcards) to be used. If filters list is empty, "All files (*)" is used by default.
The parameter selectedFilter outputs a filter selected by user.
The parameter caption is used as dialog box title. If it is is empty, the default title is used.
The parameter showQuickDir specifies if it is necessary to show additional quick directories list controls in the bottom part of the dialog box.
The validation of the user selection is done with help of the file validator (SUIT_FileValidator class). The last parameter validator can be used to pass the custom file validator to the dialog box.
| parent | parent widget |
| initial | initial file (or directory) dialog box to be opened on |
| filters | file filters list |
| selectedFilter | outputs a filter selected by user |
| caption | dialog box title |
| open | if true dialog box is used for file opening, otherwise - for saving |
| showQuickDir | if true the quick directory list widgets will be shown |
| validator | custom file validator |
References selectedFile(), and validator().
|
static |
Get last visited directory.
Note, that last visited path is memorized only if the dialog box is accepted.
References myLastVisitedPath.
|
static |
|
static |
Show dialog box for the multiple file opening. This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.If initial parameter is not null string it is used as starting directory or file at which dialog box is opened.
The parameter filters defines file filters (wildcards) to be used. This is the list of wildcards, separated by the ";;" symbols. If filters list is empty, "All files (*)" is used by default.
The parameter caption is used as dialog box title. If it is is empty, the default title is used.
The parameter showQuickDir specifies if it is necessary to show additional quick directories list controls in the bottom part of the dialog box.
The validation of the user selection is done with help of the file validator (SUIT_FileValidator class). The last parameter validator can be used to pass the custom file validator to the dialog box.
| parent | parent widget |
| initial | initial file (or directory) dialog box to be opened on |
| filters | file filters separated by ";;" |
| caption | dialog box title |
| showQuickDir | if true the quick directory list widgets will be shown |
| validator | custom file validator |
References getOpenFileNames(), and validator().
|
static |
Show dialog box for the multiple files selection.
If initial parameter is not null string it is used as starting directory or file at which dialog box is opened.
The parameter filters defines file filters (wildcards) to be used. If filters list is empty, "All files (*)" is used by default.
The parameter caption is used as dialog box title. If it is is empty, the default title is used.
The parameter showQuickDir specifies if it is necessary to show additional quick directories list controls in the bottom part of the dialog box.
The validation of the user selection is done with help of the file validator (SUIT_FileValidator class). The last parameter validator can be used to pass the custom file validator to the dialog box.
| parent | parent widget |
| initial | initial file (or directory) dialog box to be opened on |
| filters | file filters list |
| caption | dialog box title |
| showQuickDir | if true the quick directory list widgets will be shown |
| validator | custom file validator |
References processPath(), selectedFiles(), setValidator(), and validator().
|
staticprotected |
Check if the string contains wildcard symbols.
| s | string to be checked (for example, file name) |
true if string contains "*" or "?" symbols | bool SUIT_FileDlg::isOpenDlg | ( | ) | const |
Check if the dialog box is used for opening or saving the file.
true if dialog is used for file opening and false otherwise
|
protected |
Get line edit which is used to enter file name.
|
private |
Polish the dialog box.
|
protected |
Processes selection : tries to set specified sirectory or filename as current file dialog selection.
| path | file or directory path |
true if path is processed correctly and false otherwise References Qtx::dir(), Qtx::file(), and selectFile().
|
protectedslot |
Called when user selects directory from the "Quick Dir" combo box.
Browses the file dialog to the specified directory (if it is valid).
| dirPath | selected directory |
References SUIT_MessageBox::critical(), and processPath().
| QString SUIT_FileDlg::selectedFile | ( | ) | const |
Get selected file.
References selectedFiles().
| QStringList SUIT_FileDlg::selectedFiles | ( | ) | const |
| void SUIT_FileDlg::selectFile | ( | const QString & | f | ) |
Selects current file.
This version of selectFile() methods works similar to Qt version 3.x: it selects the given file as current and it changes the current file dialog's directory to the directory of the file
| f | - new current file name |
References Qtx::dir().
| void SUIT_FileDlg::setCheckPermissions | ( | const bool | checkPerm | ) |
Set 'check file permissions' flag.
If this flag is set and file validator is not null, the validator will check the file permissions also.
| checkPerm | new flag value |
References myCheckPermissions.
| void SUIT_FileDlg::setValidator | ( | SUIT_FileValidator * | v | ) |
Set file validator.
Destroys previous validator if the dialog owns it.
| v | new file validator |
References myValidator, and SUIT_FileValidator::parent().
|
private |
Update side bar URLs list.
References myUrls.
| SUIT_FileValidator * SUIT_FileDlg::validator | ( | ) | const |
|
private |
check permissions option
|
staticprivate |
last visited path
|
private |
quick dir panel: button
|
private |
quick dir panel: combo box
|
private |
quick dir panel: label
|
private |
sidebar urls
|
private |
file validator