diff options
Diffstat (limited to 'tests')
-rw-r--r-- | tests/auto/widgets/dialogs/qfiledialog/tst_qfiledialog.cpp | 46 | ||||
-rw-r--r-- | tests/manual/dialogs/filedialogpanel.cpp | 70 | ||||
-rw-r--r-- | tests/manual/dialogs/filedialogpanel.h | 6 |
3 files changed, 122 insertions, 0 deletions
diff --git a/tests/auto/widgets/dialogs/qfiledialog/tst_qfiledialog.cpp b/tests/auto/widgets/dialogs/qfiledialog/tst_qfiledialog.cpp index d797c553db..98c4bf69f3 100644 --- a/tests/auto/widgets/dialogs/qfiledialog/tst_qfiledialog.cpp +++ b/tests/auto/widgets/dialogs/qfiledialog/tst_qfiledialog.cpp @@ -1346,6 +1346,38 @@ QString saveName(QWidget *, const QString &, const QString &, const QString &, Q return "saveName"; } +QT_BEGIN_NAMESPACE +typedef QUrl (*_qt_filedialog_existing_directory_url_hook)(QWidget *parent, const QString &caption, const QUrl &dir, QFileDialog::Options options, const QStringList &supportedSchemes); +extern Q_WIDGETS_EXPORT _qt_filedialog_existing_directory_url_hook qt_filedialog_existing_directory_url_hook; +QT_END_NAMESPACE +QUrl existingUrl(QWidget *, const QString &, const QUrl &, QFileDialog::Options, const QStringList &) { + return QUrl("http://dirUrl"); +} + +QT_BEGIN_NAMESPACE +typedef QUrl (*_qt_filedialog_open_file_url_hook)(QWidget * parent, const QString &caption, const QUrl &dir, const QString &filter, QString *selectedFilter, QFileDialog::Options options, const QStringList &supportedSchemes); +extern Q_WIDGETS_EXPORT _qt_filedialog_open_file_url_hook qt_filedialog_open_file_url_hook; +QT_END_NAMESPACE +QUrl openUrl(QWidget *, const QString &, const QUrl &, const QString &, QString *, QFileDialog::Options, const QStringList &) { + return QUrl("http://openUrl"); +} + +QT_BEGIN_NAMESPACE +typedef QList<QUrl> (*_qt_filedialog_open_file_urls_hook)(QWidget * parent, const QString &caption, const QUrl &dir, const QString &filter, QString *selectedFilter, QFileDialog::Options options, const QStringList &supportedSchemes); +extern Q_WIDGETS_EXPORT _qt_filedialog_open_file_urls_hook qt_filedialog_open_file_urls_hook; +QT_END_NAMESPACE +QList<QUrl> openUrls(QWidget *, const QString &, const QUrl &, const QString &, QString *, QFileDialog::Options, const QStringList &) { + return QList<QUrl>() << QUrl("http://openUrls"); +} + +QT_BEGIN_NAMESPACE +typedef QUrl (*_qt_filedialog_save_file_url_hook)(QWidget * parent, const QString &caption, const QUrl &dir, const QString &filter, QString *selectedFilter, QFileDialog::Options options, const QStringList &supportedSchemes); +extern Q_WIDGETS_EXPORT _qt_filedialog_save_file_url_hook qt_filedialog_save_file_url_hook; +QT_END_NAMESPACE +QUrl saveUrl(QWidget *, const QString &, const QUrl &, const QString &, QString *, QFileDialog::Options, const QStringList &) { + return QUrl("http://saveUrl"); +} + void tst_QFiledialog::hooks() { @@ -1358,6 +1390,20 @@ void tst_QFiledialog::hooks() QCOMPARE(QFileDialog::getOpenFileName(), QString("openName")); QCOMPARE(QFileDialog::getOpenFileNames(), QStringList("openNames")); QCOMPARE(QFileDialog::getSaveFileName(), QString("saveName")); + QCOMPARE(QFileDialog::getExistingDirectoryUrl(), QUrl::fromLocalFile("dir")); + QCOMPARE(QFileDialog::getOpenFileUrl(), QUrl::fromLocalFile("openName")); + QCOMPARE(QFileDialog::getOpenFileUrls(), QList<QUrl>() << QUrl::fromLocalFile("openNames")); + QCOMPARE(QFileDialog::getSaveFileUrl(), QUrl::fromLocalFile("saveName")); + + qt_filedialog_existing_directory_url_hook = &existingUrl; + qt_filedialog_save_file_url_hook = &saveUrl; + qt_filedialog_open_file_url_hook = &openUrl; + qt_filedialog_open_file_urls_hook = &openUrls; + + QCOMPARE(QFileDialog::getExistingDirectoryUrl(), QUrl("http://dirUrl")); + QCOMPARE(QFileDialog::getOpenFileUrl(), QUrl("http://openUrl")); + QCOMPARE(QFileDialog::getOpenFileUrls(), QList<QUrl>() << QUrl("http://openUrls")); + QCOMPARE(QFileDialog::getSaveFileUrl(), QUrl("http://saveUrl")); } #ifdef Q_OS_UNIX diff --git a/tests/manual/dialogs/filedialogpanel.cpp b/tests/manual/dialogs/filedialogpanel.cpp index 2ca9dccf1b..69e25e753a 100644 --- a/tests/manual/dialogs/filedialogpanel.cpp +++ b/tests/manual/dialogs/filedialogpanel.cpp @@ -157,6 +157,7 @@ FileDialogPanel::FileDialogPanel(QWidget *parent) , m_acceptMode(createCombo(this, acceptModeComboData, sizeof(acceptModeComboData)/sizeof(ComboData))) , m_fileMode(createCombo(this, fileModeComboData, sizeof(fileModeComboData)/sizeof(ComboData))) , m_viewMode(createCombo(this, viewModeComboData, sizeof(viewModeComboData)/sizeof(ComboData))) + , m_allowedSchemes(new QLineEdit(this)) , m_defaultSuffix(new QLineEdit(this)) , m_directory(new QLineEdit(this)) , m_selectedFileName(new QLineEdit(this)) @@ -171,6 +172,7 @@ FileDialogPanel::FileDialogPanel(QWidget *parent) optionsLayout->addRow(tr("AcceptMode:"), m_acceptMode); optionsLayout->addRow(tr("FileMode:"), m_fileMode); optionsLayout->addRow(tr("ViewMode:"), m_viewMode); + optionsLayout->addRow(tr("Allowed Schemes:"), m_allowedSchemes); optionsLayout->addRow(m_native); optionsLayout->addRow(m_confirmOverWrite); optionsLayout->addRow(m_nameFilterDetailsVisible); @@ -216,9 +218,13 @@ FileDialogPanel::FileDialogPanel(QWidget *parent) row = 0; column++; addButton(tr("getOpenFileName"), buttonLayout, row, column, this, SLOT(getOpenFileName())); + addButton(tr("getOpenFileUrl"), buttonLayout, row, column, this, SLOT(getOpenFileUrl())); addButton(tr("getOpenFileNames"), buttonLayout, row, column, this, SLOT(getOpenFileNames())); + addButton(tr("getOpenFileUrls"), buttonLayout, row, column, this, SLOT(getOpenFileUrls())); addButton(tr("getSaveFileName"), buttonLayout, row, column, this, SLOT(getSaveFileName())); + addButton(tr("getSaveFileUrl"), buttonLayout, row, column, this, SLOT(getSaveFileUrl())); addButton(tr("getExistingDirectory"), buttonLayout, row, column, this, SLOT(getExistingDirectory())); + addButton(tr("getExistingDirectoryUrl"), buttonLayout, row, column, this, SLOT(getExistingDirectoryUrl())); addButton(tr("Restore defaults"), buttonLayout, row, column, this, SLOT(restoreDefaults())); // Main layout @@ -319,6 +325,11 @@ QFileDialog::Options FileDialogPanel::options() const return result; } +QStringList FileDialogPanel::allowedSchemes() const +{ + return m_allowedSchemes->text().simplified().split(' ', QString::SkipEmptyParts); +} + void FileDialogPanel::getOpenFileNames() { QString selectedFilter = m_selectedNameFilter->text().trimmed(); @@ -334,6 +345,22 @@ void FileDialogPanel::getOpenFileNames() } } +void FileDialogPanel::getOpenFileUrls() +{ + QString selectedFilter = m_selectedNameFilter->text().trimmed(); + const QList<QUrl> files = + QFileDialog::getOpenFileUrls(this, tr("getOpenFileNames Qt %1").arg(QLatin1String(QT_VERSION_STR)), + QUrl(m_directory->text()), filterString(), &selectedFilter, options(), + allowedSchemes()); + if (!files.isEmpty()) { + QString result; + QDebug(&result).nospace() + << "Files: " << QUrl::toStringList(files) + << "\nName filter: " << selectedFilter; + QMessageBox::information(this, tr("getOpenFileNames"), result, QMessageBox::Ok); + } +} + void FileDialogPanel::getOpenFileName() { QString selectedFilter = m_selectedNameFilter->text().trimmed(); @@ -349,6 +376,22 @@ void FileDialogPanel::getOpenFileName() } } +void FileDialogPanel::getOpenFileUrl() +{ + QString selectedFilter = m_selectedNameFilter->text().trimmed(); + const QUrl file = + QFileDialog::getOpenFileUrl(this, tr("getOpenFileUrl Qt %1").arg(QLatin1String(QT_VERSION_STR)), + QUrl(m_directory->text()), filterString(), &selectedFilter, options(), + allowedSchemes()); + if (file.isValid()) { + QString result; + QDebug(&result).nospace() + << "File: " << file.toString() + << "\nName filter: " << selectedFilter; + QMessageBox::information(this, tr("getOpenFileName"), result, QMessageBox::Ok); + } +} + void FileDialogPanel::getSaveFileName() { QString selectedFilter = m_selectedNameFilter->text().trimmed(); @@ -364,6 +407,22 @@ void FileDialogPanel::getSaveFileName() } } +void FileDialogPanel::getSaveFileUrl() +{ + QString selectedFilter = m_selectedNameFilter->text().trimmed(); + const QUrl file = + QFileDialog::getSaveFileUrl(this, tr("getSaveFileName Qt %1").arg(QLatin1String(QT_VERSION_STR)), + QUrl(m_directory->text()), filterString(), &selectedFilter, options(), + allowedSchemes()); + if (file.isValid()) { + QString result; + QDebug(&result).nospace() + << "File: " << file.toString() + << "\nName filter: " << selectedFilter; + QMessageBox::information(this, tr("getSaveFileNames"), result, QMessageBox::Ok); + } +} + void FileDialogPanel::getExistingDirectory() { const QString dir = @@ -373,12 +432,23 @@ void FileDialogPanel::getExistingDirectory() QMessageBox::information(this, tr("getExistingDirectory"), QLatin1String("Directory: ") + dir, QMessageBox::Ok); } +void FileDialogPanel::getExistingDirectoryUrl() +{ + const QUrl dir = + QFileDialog::getExistingDirectoryUrl(this, tr("getExistingDirectory Qt %1").arg(QLatin1String(QT_VERSION_STR)), + QUrl(m_directory->text()), options() | QFileDialog::ShowDirsOnly, + allowedSchemes()); + if (!dir.isEmpty()) + QMessageBox::information(this, tr("getExistingDirectory"), QLatin1String("Directory: ") + dir.toString(), QMessageBox::Ok); +} + void FileDialogPanel::restoreDefaults() { QFileDialog d; setComboBoxValue(m_acceptMode, d.acceptMode()); setComboBoxValue(m_fileMode, d.fileMode()); setComboBoxValue(m_viewMode, d.viewMode()); + m_allowedSchemes->setText(QString()); m_confirmOverWrite->setChecked(d.confirmOverwrite()); m_nameFilterDetailsVisible->setChecked(d.isNameFilterDetailsVisible()); m_resolveSymLinks->setChecked(d.resolveSymlinks()); diff --git a/tests/manual/dialogs/filedialogpanel.h b/tests/manual/dialogs/filedialogpanel.h index 7ee7cb3f60..601fb7fc51 100644 --- a/tests/manual/dialogs/filedialogpanel.h +++ b/tests/manual/dialogs/filedialogpanel.h @@ -66,9 +66,13 @@ public slots: void deleteNonModalDialog(); void deleteModalDialog(); void getOpenFileNames(); + void getOpenFileUrls(); void getOpenFileName(); + void getOpenFileUrl(); void getSaveFileName(); + void getSaveFileUrl(); void getExistingDirectory(); + void getExistingDirectoryUrl(); void accepted(); void showAcceptedResult(); void restoreDefaults(); @@ -80,6 +84,7 @@ private slots: private: QString filterString() const; QFileDialog::Options options() const; + QStringList allowedSchemes() const; void applySettings(QFileDialog *d) const; QCheckBox *m_readOnly; @@ -90,6 +95,7 @@ private: QComboBox *m_acceptMode; QComboBox *m_fileMode; QComboBox *m_viewMode; + QLineEdit *m_allowedSchemes; QLineEdit *m_defaultSuffix; QLineEdit *m_directory; QLineEdit *m_selectedFileName; |