Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 #ifndef QTXPATHDIALOG_H
00027 #define QTXPATHDIALOG_H
00028
00029 #include "QtxDialog.h"
00030
00031 #include <QMap>
00032
00033 class QFrame;
00034 class QLineEdit;
00035 class QPushButton;
00036 class QFileDialog;
00037
00038 #ifdef WIN32
00039 #pragma warning( disable:4251 )
00040 #endif
00041
00042 class QTX_EXPORT QtxPathDialog : public QtxDialog
00043 {
00044 Q_OBJECT
00045
00046 protected:
00047 QtxPathDialog( QWidget* = 0, const bool = true, const bool = false,
00048 const int = Standard, Qt::WindowFlags = 0 );
00049
00050 public:
00051 QtxPathDialog( const bool, QWidget* = 0, const bool = true,
00052 const bool = false, const int = Standard, Qt::WindowFlags = 0 );
00053 virtual ~QtxPathDialog();
00054
00055 QString fileName() const;
00056 void setFileName( const QString&, const bool = false );
00057
00058 QString filter() const;
00059 void setFilter( const QString& );
00060
00061 signals:
00062 void fileNameChanged( QString );
00063
00064 public slots:
00065 virtual void setVisible( bool );
00066
00067 protected slots:
00068 void validate();
00069
00070 private slots:
00071 void onBrowse();
00072 void onReturnPressed();
00073 void onTextChanged( const QString& );
00074
00075 protected:
00076 virtual bool isValid();
00077 virtual bool acceptData() const;
00078 virtual void fileNameChanged( int, QString );
00079
00080 QFrame* optionsFrame();
00081 QString fileName( const int ) const;
00082 void setFileName( const int, const QString&, const bool = false );
00083
00084 QString filter( const int ) const;
00085 void setFilter( const int, const QString& );
00086
00087 QLineEdit* fileEntry( const int ) const;
00088 QLineEdit* fileEntry( const int, int& ) const;
00089 int createFileEntry( const QString&, const int,
00090 const QString& = QString(), const int = -1 );
00091
00092 int defaultEntry() const;
00093 void setDefaultEntry( const int );
00094
00095 private:
00096 void initialize();
00097 void updateVisibility();
00098 QStringList prepareFilters( const QString& ) const;
00099 bool hasVisibleChildren( QWidget* ) const;
00100 QStringList filterWildCards( const QString& ) const;
00101 QString autoExtension( const QString&, const QString& = QString() ) const;
00102
00103 protected:
00104 enum { OpenFile, SaveFile, OpenDir, SaveDir, NewDir };
00105
00106 private:
00107 typedef struct { int mode; QLineEdit* edit; QString filter;
00108 QPushButton* btn; QFileDialog* dlg; } FileEntry;
00109 typedef QMap<int, FileEntry> FileEntryMap;
00110
00111 private:
00112 FileEntryMap myEntries;
00113 int myDefault;
00114 QWidget* myEntriesFrame;
00115 QFrame* myOptionsFrame;
00116 };
00117
00118 #ifdef WIN32
00119 #pragma warning( default:4251 )
00120 #endif
00121
00122 #endif