25 #include <QHBoxLayout> 26 #include <QPushButton> 28 #include <QFileDialog> 29 #include <QStandardPaths> 37 : QFrame(parent), _mode(0), _caption(), _filter(), _dlgconfirmoverwrite(true),
38 _pathFromDialog(false)
42 setFrameStyle(QFrame::NoFrame|QFrame::Plain);
44 QHBoxLayout *lyt =
new QHBoxLayout(
this);
46 lyt->setContentsMargins(0,0,0,0);
48 txtPath =
new QLineEdit(
this);
49 lyt->addWidget(txtPath);
50 btnBrowse =
new QPushButton(tr(
"Browse"),
this);
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);
58 QCompleter *fileNameCompleter =
new QCompleter(
this);
59 fileNameCompleter->setModel(dirModel);
60 txtPath->setCompleter(fileNameCompleter);
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();
104 s = QFileDialog::getSaveFileName(
this, _caption, path, _filter, &_selectedfilter, options);
105 }
else if (_mode == 2) {
106 s = QFileDialog::getExistingDirectory(
this, _caption, path, 0);
109 s = QFileDialog::getOpenFileName(
this, _caption, path, _filter, &_selectedfilter);
113 if (_mode == 1 && _dlgconfirmoverwrite)
114 _pathFromDialog =
true;
128 _pathFromDialog =
false;
136 void KLFPathChooser::slotTextChanged()
138 _pathFromDialog =
false;
virtual void setMode(int mode)
virtual void setFilter(const QString &filter)
KLFPathChooser(QWidget *parent)
QStringList standardLocations(StandardLocation type)
virtual void setCaption(const QString &caption)
virtual QString filter() const
virtual QString caption() const
virtual ~KLFPathChooser()
virtual void setPath(const QString &path)
virtual QString path() const
void fileDialogPathChosen(const QString &fname)
virtual void requestBrowse()