From 49b14f7a8b8e88833a5357215bc0311907f794fd Mon Sep 17 00:00:00 2001 From: J-P Nurmi Date: Mon, 10 Mar 2014 10:16:21 +0100 Subject: Remove the _qt_filedialog_xxx hooks These internal and obsolete hooks are no longer used. The correct way to provide platform dialogs in Qt 5.x is to implement a platform theme plugin, as was done for GTK+ 2.x. Change-Id: I3f1474fbf760130106b3c47173eaedd2f1a919bf Reviewed-by: Shawn Rutledge Reviewed-by: David Faure --- src/widgets/dialogs/qfiledialog.cpp | 49 +----------- .../dialogs/qfiledialog/tst_qfiledialog.cpp | 93 ---------------------- 2 files changed, 4 insertions(+), 138 deletions(-) diff --git a/src/widgets/dialogs/qfiledialog.cpp b/src/widgets/dialogs/qfiledialog.cpp index bea92e9f84..bb73ef5cda 100644 --- a/src/widgets/dialogs/qfiledialog.cpp +++ b/src/widgets/dialogs/qfiledialog.cpp @@ -79,35 +79,6 @@ QT_BEGIN_NAMESPACE Q_GLOBAL_STATIC(QString, lastVisitedDir) -/* - \internal - - Exported hooks that can be used to customize the static functions. - */ -typedef QString (*_qt_filedialog_existing_directory_hook)(QWidget *parent, const QString &caption, const QString &dir, QFileDialog::Options options); -Q_WIDGETS_EXPORT _qt_filedialog_existing_directory_hook qt_filedialog_existing_directory_hook = 0; - -typedef QUrl (*_qt_filedialog_existing_directory_url_hook)(QWidget *parent, const QString &caption, const QUrl &dir, QFileDialog::Options options, const QStringList &supportedSchemes); -Q_WIDGETS_EXPORT _qt_filedialog_existing_directory_url_hook qt_filedialog_existing_directory_url_hook = 0; - -typedef QString (*_qt_filedialog_open_filename_hook)(QWidget * parent, const QString &caption, const QString &dir, const QString &filter, QString *selectedFilter, QFileDialog::Options options); -Q_WIDGETS_EXPORT _qt_filedialog_open_filename_hook qt_filedialog_open_filename_hook = 0; - -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); -Q_WIDGETS_EXPORT _qt_filedialog_open_file_url_hook qt_filedialog_open_file_url_hook = 0; - -typedef QStringList (*_qt_filedialog_open_filenames_hook)(QWidget * parent, const QString &caption, const QString &dir, const QString &filter, QString *selectedFilter, QFileDialog::Options options); -Q_WIDGETS_EXPORT _qt_filedialog_open_filenames_hook qt_filedialog_open_filenames_hook = 0; - -typedef QList (*_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); -Q_WIDGETS_EXPORT _qt_filedialog_open_file_urls_hook qt_filedialog_open_file_urls_hook = 0; - -typedef QString (*_qt_filedialog_save_filename_hook)(QWidget * parent, const QString &caption, const QString &dir, const QString &filter, QString *selectedFilter, QFileDialog::Options options); -Q_WIDGETS_EXPORT _qt_filedialog_save_filename_hook qt_filedialog_save_filename_hook = 0; - -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); -Q_WIDGETS_EXPORT _qt_filedialog_save_file_url_hook qt_filedialog_save_file_url_hook = 0; - /*! \class QFileDialog \brief The QFileDialog class provides a dialog that allow users to select files or directories. @@ -2099,8 +2070,6 @@ QString QFileDialog::getOpenFileName(QWidget *parent, QString *selectedFilter, Options options) { - if (qt_filedialog_open_filename_hook && !(options & DontUseNativeDialog)) - return qt_filedialog_open_filename_hook(parent, caption, dir, filter, selectedFilter, options); QFileDialogArgs args; args.parent = parent; args.caption = caption; @@ -2162,8 +2131,7 @@ QUrl QFileDialog::getOpenFileUrl(QWidget *parent, Options options, const QStringList &supportedSchemes) { - if (qt_filedialog_open_file_url_hook && !(options & DontUseNativeDialog)) - return qt_filedialog_open_file_url_hook(parent, caption, dir, filter, selectedFilter, options, supportedSchemes); + Q_UNUSED(supportedSchemes); // Falls back to local file return QUrl::fromLocalFile(getOpenFileName(parent, caption, dir.toLocalFile(), filter, selectedFilter, options)); @@ -2225,8 +2193,6 @@ QStringList QFileDialog::getOpenFileNames(QWidget *parent, QString *selectedFilter, Options options) { - if (qt_filedialog_open_filenames_hook && !(options & DontUseNativeDialog)) - return qt_filedialog_open_filenames_hook(parent, caption, dir, filter, selectedFilter, options); QFileDialogArgs args; args.parent = parent; args.caption = caption; @@ -2290,8 +2256,7 @@ QList QFileDialog::getOpenFileUrls(QWidget *parent, Options options, const QStringList &supportedSchemes) { - if (qt_filedialog_open_file_urls_hook && !(options & DontUseNativeDialog)) - return qt_filedialog_open_file_urls_hook(parent, caption, dir, filter, selectedFilter, options, supportedSchemes); + Q_UNUSED(supportedSchemes); // Falls back to local files QList urls; @@ -2360,8 +2325,6 @@ QString QFileDialog::getSaveFileName(QWidget *parent, QString *selectedFilter, Options options) { - if (qt_filedialog_save_filename_hook && !(options & DontUseNativeDialog)) - return qt_filedialog_save_filename_hook(parent, caption, dir, filter, selectedFilter, options); QFileDialogArgs args; args.parent = parent; args.caption = caption; @@ -2426,8 +2389,7 @@ QUrl QFileDialog::getSaveFileUrl(QWidget *parent, Options options, const QStringList &supportedSchemes) { - if (qt_filedialog_save_file_url_hook && !(options & DontUseNativeDialog)) - return qt_filedialog_save_file_url_hook(parent, caption, dir, filter, selectedFilter, options, supportedSchemes); + Q_UNUSED(supportedSchemes); // Falls back to local file return QUrl::fromLocalFile(getSaveFileName(parent, caption, dir.toLocalFile(), filter, selectedFilter, options)); @@ -2477,8 +2439,6 @@ QString QFileDialog::getExistingDirectory(QWidget *parent, const QString &dir, Options options) { - if (qt_filedialog_existing_directory_hook && !(options & DontUseNativeDialog)) - return qt_filedialog_existing_directory_hook(parent, caption, dir, options); QFileDialogArgs args; args.parent = parent; args.caption = caption; @@ -2537,8 +2497,7 @@ QUrl QFileDialog::getExistingDirectoryUrl(QWidget *parent, Options options, const QStringList &supportedSchemes) { - if (qt_filedialog_existing_directory_url_hook && !(options & DontUseNativeDialog)) - return qt_filedialog_existing_directory_url_hook(parent, caption, dir, options, supportedSchemes); + Q_UNUSED(supportedSchemes); // Falls back to local file return QUrl::fromLocalFile(getExistingDirectory(parent, caption, dir.toLocalFile(), options)); diff --git a/tests/auto/widgets/dialogs/qfiledialog/tst_qfiledialog.cpp b/tests/auto/widgets/dialogs/qfiledialog/tst_qfiledialog.cpp index 54a3a85e87..d360a646f1 100644 --- a/tests/auto/widgets/dialogs/qfiledialog/tst_qfiledialog.cpp +++ b/tests/auto/widgets/dialogs/qfiledialog/tst_qfiledialog.cpp @@ -146,7 +146,6 @@ private slots: void saveButtonText(); void clearLineEdit(); void enableChooseButton(); - void hooks(); void widgetlessNativeDialog(); void trailingDotsAndSpaces(); #ifdef Q_OS_UNIX @@ -1308,98 +1307,6 @@ void tst_QFiledialog::enableChooseButton() QCOMPARE(button->isEnabled(), true); } -QT_BEGIN_NAMESPACE -typedef QString (*_qt_filedialog_existing_directory_hook)(QWidget *parent, const QString &caption, const QString &dir, QFileDialog::Options options); -extern Q_GUI_EXPORT _qt_filedialog_existing_directory_hook qt_filedialog_existing_directory_hook; -QT_END_NAMESPACE -QString existing(QWidget *, const QString &, const QString &, QFileDialog::Options) { - return "dir"; -} - -QT_BEGIN_NAMESPACE -typedef QString (*_qt_filedialog_open_filename_hook)(QWidget * parent, const QString &caption, const QString &dir, const QString &filter, QString *selectedFilter, QFileDialog::Options options); -extern Q_GUI_EXPORT _qt_filedialog_open_filename_hook qt_filedialog_open_filename_hook; -QT_END_NAMESPACE -QString openName(QWidget *, const QString &, const QString &, const QString &, QString *, QFileDialog::Options) { - return "openName"; -} - -QT_BEGIN_NAMESPACE -typedef QStringList (*_qt_filedialog_open_filenames_hook)(QWidget * parent, const QString &caption, const QString &dir, const QString &filter, QString *selectedFilter, QFileDialog::Options options); -extern Q_GUI_EXPORT _qt_filedialog_open_filenames_hook qt_filedialog_open_filenames_hook; -QT_END_NAMESPACE -QStringList openNames(QWidget *, const QString &, const QString &, const QString &, QString *, QFileDialog::Options) { - return QStringList("openNames"); -} - -QT_BEGIN_NAMESPACE -typedef QString (*_qt_filedialog_save_filename_hook)(QWidget * parent, const QString &caption, const QString &dir, const QString &filter, QString *selectedFilter, QFileDialog::Options options); -extern Q_GUI_EXPORT _qt_filedialog_save_filename_hook qt_filedialog_save_filename_hook; -QT_END_NAMESPACE -QString saveName(QWidget *, const QString &, const QString &, const QString &, QString *, QFileDialog::Options) { - 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 (*_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 openUrls(QWidget *, const QString &, const QUrl &, const QString &, QString *, QFileDialog::Options, const QStringList &) { - return QList() << 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() -{ - qt_filedialog_existing_directory_hook = &existing; - qt_filedialog_save_filename_hook = &saveName; - qt_filedialog_open_filename_hook = &openName; - qt_filedialog_open_filenames_hook = &openNames; - - QCOMPARE(QFileDialog::getExistingDirectory(), QString("dir")); - 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::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("http://openUrls")); - QCOMPARE(QFileDialog::getSaveFileUrl(), QUrl("http://saveUrl")); -} - void tst_QFiledialog::widgetlessNativeDialog() { if (!QGuiApplicationPrivate::platformTheme()->usePlatformNativeDialog(QPlatformTheme::FileDialog)) -- cgit v1.2.3