diff options
author | Liang Qi <liang.qi@qt.io> | 2016-11-15 11:24:56 +0100 |
---|---|---|
committer | Liang Qi <liang.qi@qt.io> | 2016-11-15 11:25:03 +0100 |
commit | 79bd1646a8f317f4c6b5a6342b8aa6056b6c8b79 (patch) | |
tree | 8600efa91f44e73707b18a07658b63262e789004 /src/dialogs | |
parent | 3bc99dd69fb9099a13dd94ebd081dba5c68d6def (diff) | |
parent | 1e6db9fc4f9cfd52ea96b1b8576ba19a1442638e (diff) | |
download | qtquickcontrols-79bd1646a8f317f4c6b5a6342b8aa6056b6c8b79.tar.gz |
Merge remote-tracking branch 'origin/5.7' into 5.8
Change-Id: I67ccb5a6763045a0728d04e804f8a47c37b425f5
Diffstat (limited to 'src/dialogs')
-rw-r--r-- | src/dialogs/qquickabstractfiledialog.cpp | 16 | ||||
-rw-r--r-- | src/dialogs/qquickabstractfiledialog_p.h | 3 | ||||
-rw-r--r-- | src/dialogs/qquickplatformfiledialog.cpp | 2 |
3 files changed, 18 insertions, 3 deletions
diff --git a/src/dialogs/qquickabstractfiledialog.cpp b/src/dialogs/qquickabstractfiledialog.cpp index 6bfc1db0..c0b3400c 100644 --- a/src/dialogs/qquickabstractfiledialog.cpp +++ b/src/dialogs/qquickabstractfiledialog.cpp @@ -115,20 +115,32 @@ QUrl QQuickAbstractFileDialog::folder() const return m_options->initialDirectory(); } -void QQuickAbstractFileDialog::setFolder(const QUrl &f) +static QUrl fixupFolder(const QUrl &f) { QString lf = f.toLocalFile(); while (lf.startsWith("//")) lf.remove(0, 1); if (lf.isEmpty()) lf = QDir::currentPath(); - QUrl u = QUrl::fromLocalFile(lf); + return QUrl::fromLocalFile(lf); +} + +void QQuickAbstractFileDialog::setFolder(const QUrl &f) +{ + QUrl u = fixupFolder(f); if (m_dlgHelper) m_dlgHelper->setDirectory(u); m_options->setInitialDirectory(u); emit folderChanged(); } +void QQuickAbstractFileDialog::updateFolder(const QUrl &f) +{ + QUrl u = fixupFolder(f); + m_options->setInitialDirectory(u); + emit folderChanged(); +} + void QQuickAbstractFileDialog::setNameFilters(const QStringList &f) { m_options->setNameFilters(f); diff --git a/src/dialogs/qquickabstractfiledialog_p.h b/src/dialogs/qquickabstractfiledialog_p.h index 370a31cc..b4b7165d 100644 --- a/src/dialogs/qquickabstractfiledialog_p.h +++ b/src/dialogs/qquickabstractfiledialog_p.h @@ -117,6 +117,9 @@ Q_SIGNALS: void sidebarVisibleChanged(); void shortcutsChanged(); +protected Q_SLOTS: + void updateFolder(const QUrl &f); + protected: void updateModes(); void addShortcut(const QString &name, const QString &visibleName, const QString &path); diff --git a/src/dialogs/qquickplatformfiledialog.cpp b/src/dialogs/qquickplatformfiledialog.cpp index d70c44d9..2d99ae1e 100644 --- a/src/dialogs/qquickplatformfiledialog.cpp +++ b/src/dialogs/qquickplatformfiledialog.cpp @@ -213,7 +213,7 @@ QPlatformFileDialogHelper *QQuickPlatformFileDialog::helper() if (!m_dlgHelper) return m_dlgHelper; m_dlgHelper->setOptions(m_options); - connect(m_dlgHelper, SIGNAL(directoryEntered(QUrl)), this, SIGNAL(folderChanged())); + connect(m_dlgHelper, SIGNAL(directoryEntered(QUrl)), this, SLOT(updateFolder(QUrl))); connect(m_dlgHelper, SIGNAL(filterSelected(QString)), this, SIGNAL(filterSelected())); connect(m_dlgHelper, SIGNAL(accept()), this, SLOT(accept())); connect(m_dlgHelper, SIGNAL(reject()), this, SLOT(reject())); |