![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /******************************************************************************* 00002 ** Copyright (c) 2007 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 *******************************************************************************/ 00005 /******************************************************************************* 00006 ** $RCSfile: fileListDialog.h,v $ $Revision: 1.4 $ $State: Exp $ 00007 *******************************************************************************/ 00008 00011 00012 #pragma once 00013 00018 00019 #include <vrfGuiCoreQt/vrfGuiCoreQt.h> 00020 #include <QtGui/QDialog> 00021 #include <QtCore/QEvent> 00022 00023 class QListWidget; 00024 class QPushButton; 00025 class QLineEdit; 00026 class QVBoxLayout; 00027 class QHBoxLayout; 00028 class QLayout; 00029 00030 namespace makVrf 00031 { 00032 class DT_DLL_VRFGUICOREQT DtFileListDialog : public QDialog 00033 { 00034 Q_OBJECT 00035 00036 public: 00037 DtFileListDialog(QWidget* parent, const Qt::WindowFlags& flags = 0); 00038 virtual ~DtFileListDialog(); 00039 00040 virtual void init(const QStringList& = QStringList()); 00041 00043 virtual void setFiles(const QStringList& files); 00044 00046 void setFilter(const QString&); 00047 const QString& filter() const; 00048 00051 void setStartingDirectory(const QString&); 00052 const QString& startingDirectory() const; 00053 00055 virtual QStringList files() const; 00056 virtual QString mergedFiles(const QChar& separator = ';') const; 00057 00059 virtual void setDirectoryMode(bool); 00060 bool directoryMode() const; 00061 00063 virtual void setPathsRelativeToApplication(bool); 00064 bool pathsRelativeToApplication() const; 00065 00066 QListWidget* fileList() const; 00067 00068 virtual QString makeRelativeTo(QString origFile) const; 00069 00072 virtual QString makeRelativeTo(QString filename, QString path) const; 00073 00075 virtual QString relativePath() const; 00076 00079 virtual QString dataFolder() const; 00080 00081 virtual QString cleanPath(const QString& path) const; 00082 00083 protected: 00084 virtual void createAcceptButtons(); 00085 virtual QLayout* createAddRemoveButtons(QHBoxLayout* fileLayout); 00086 virtual QLayout* createAddRemoveButtonLayout(); 00087 virtual QString relativeFilename(const QString& file) const; 00088 virtual bool eventFilter(QObject* p, QEvent* e); 00089 00090 signals: 00091 void filesChanged(const QStringList&); 00092 00093 protected slots: 00094 virtual void itemSelectionChanged(); 00095 virtual void addItem(); 00096 virtual void removeItem(); 00097 00098 virtual void fileChanged(); 00099 00100 virtual void selectFile(); 00101 00102 protected: 00103 QListWidget* myFileList; 00104 QPushButton* myRemove; 00105 00106 QPushButton* myFileSelect; 00107 QLineEdit* myFileEdit; 00108 QWidget* myFilePanel; 00109 00110 QString myFilter; 00111 QString myStartingDirectory; 00112 00113 bool myDirectoryMode; 00114 bool myPathsRelativeToApplication; 00115 }; 00116 00119 class DT_DLL_VRFGUICOREQT DtFileListWidget : public DtFileListDialog 00120 { 00121 public: 00122 DtFileListWidget(QWidget*); 00123 00124 virtual void init(const QStringList& = QStringList()); 00125 00126 protected: 00127 virtual void createAcceptButtons(); 00128 virtual QLayout* createAddRemoveButtonLayout(); 00129 virtual QLayout* createAddRemoveButtons(QHBoxLayout* fileLayout); 00130 }; 00131 00132 inline void DtFileListDialog::setFilter(const QString& f) 00133 { 00134 myFilter = f; 00135 } 00136 00137 inline const QString& DtFileListDialog::filter() const 00138 { 00139 return myFilter; 00140 } 00141 00142 inline void DtFileListDialog::setStartingDirectory(const QString& f) 00143 { 00144 myStartingDirectory = f; 00145 } 00146 00147 inline const QString& DtFileListDialog::startingDirectory() const 00148 { 00149 return myStartingDirectory; 00150 } 00151 00152 inline bool DtFileListDialog::directoryMode() const 00153 { 00154 return myDirectoryMode; 00155 } 00156 00157 inline bool DtFileListDialog::pathsRelativeToApplication() const 00158 { 00159 return myPathsRelativeToApplication; 00160 } 00161 00162 inline QListWidget* DtFileListDialog::fileList() const 00163 { 00164 return myFileList; 00165 } 00166 }