diff --git a/src/filewidgets/kfilecustomdialog.h b/src/filewidgets/kfilecustomdialog.h --- a/src/filewidgets/kfilecustomdialog.h +++ b/src/filewidgets/kfilecustomdialog.h @@ -36,7 +36,18 @@ { Q_OBJECT public: + /** + * Constructs a custom file dialog + */ explicit KFileCustomDialog(QWidget *parent = nullptr); + + /** + * Constructs a custom file dialog + * @param startDir see the KFileWidget constructor for documentation + * @since 5.67 + */ + explicit KFileCustomDialog(const QUrl &startDir, QWidget *parent = nullptr); + ~KFileCustomDialog() override; /** diff --git a/src/filewidgets/kfilecustomdialog.cpp b/src/filewidgets/kfilecustomdialog.cpp --- a/src/filewidgets/kfilecustomdialog.cpp +++ b/src/filewidgets/kfilecustomdialog.cpp @@ -31,20 +31,19 @@ explicit KFileCustomDialogPrivate(KFileCustomDialog *qq) : q(qq) { - init(); } - void init(); + void init(const QUrl &startDir); KFileWidget *mFileWidget = nullptr; KFileCustomDialog * const q; }; -void KFileCustomDialogPrivate::init() +void KFileCustomDialogPrivate::init(const QUrl &startDir) { QVBoxLayout *mainLayout = new QVBoxLayout(q); mainLayout->setObjectName(QStringLiteral("mainlayout")); - mFileWidget = new KFileWidget(QUrl(), q); + mFileWidget = new KFileWidget(startDir, q); mFileWidget->setObjectName(QStringLiteral("filewidget")); mainLayout->addWidget(mFileWidget); @@ -62,6 +61,14 @@ : QDialog(parent), d(new KFileCustomDialogPrivate(this)) { + d->init(QUrl()); +} + +KFileCustomDialog::KFileCustomDialog(const QUrl &startDir, QWidget *parent) + : QDialog(parent), + d(new KFileCustomDialogPrivate(this)) +{ + d->init(startDir); } KFileCustomDialog::~KFileCustomDialog()