25 #include <QHBoxLayout> 26 #include <QPushButton> 28 #include <QFileDialog> 29 #include <QDesktopServices> 37 :
QFrame(parent), _mode(0), _caption(), _filter(), _dlgconfirmoverwrite(true),
38 _pathFromDialog(false)
46 lyt->setContentsMargins(0,0,0,0);
49 lyt->addWidget(txtPath);
51 btnBrowse->setSizePolicy(
QSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed));
52 lyt->addWidget(btnBrowse);
56 QDir::AllEntries|QDir::AllDirs|QDir::NoDotAndDotDot,
57 QDir::DirsFirst|QDir::IgnoreCase,
this);
59 fileNameCompleter->
setModel(dirModel);
63 connect(txtPath, SIGNAL(textChanged(
const QString&)),
this, SLOT(slotTextChanged()));
64 connect(btnBrowse, SIGNAL(clicked()),
this, SLOT(
requestBrowse()));
74 return txtPath->text();
79 txtPath->setText(path);
80 _pathFromDialog =
false;
85 QFileDialog::Options options = 0;
86 if (_mode == 1 && !_dlgconfirmoverwrite)
87 options |= QFileDialog::DontConfirmOverwrite;
90 if (!txtPath->text().isEmpty())
91 path = txtPath->text();
93 path = QDesktopServices::storageLocation(QDesktopServices::DocumentsLocation);
99 }
else if (_mode == 2) {
107 if (_mode == 1 && _dlgconfirmoverwrite)
108 _pathFromDialog =
true;
122 _pathFromDialog =
false;
130 void KLFPathChooser::slotTextChanged()
132 _pathFromDialog =
false;
getExistingDirectory(QWidget *parent=0, const QString &caption=QString()
setModel(QAbstractItemModel *model)
virtual void setFilter(const QString &filter)
virtual QString caption() const
virtual QString path() const
void fileDialogPathChosen(const QString &fname)
virtual void setCaption(const QString &caption)
virtual void setMode(int mode)
getSaveFileName(QWidget *parent=0, const QString &caption=QString()
virtual void requestBrowse()
KLFPathChooser(QWidget *parent)
getOpenFileName(QWidget *parent=0, const QString &caption=QString()
virtual QString filter() const
virtual ~KLFPathChooser()
virtual void setPath(const QString &path)
setCompleter(QCompleter *c)