From f5dbc876378ae58a7bdfe1e9664fc81caca18dfb Mon Sep 17 00:00:00 2001 From: Kevin Ottens Date: Wed, 15 May 2013 16:22:39 +0200 Subject: Have QFileDialog use QUrl internally When using the native dialog and through the helper, we use QUrl in QFileDialog. It is preparatory work for having QUrl based methods on QFileDialog interface itself. Done-with: sean.harmer@kdab.com Done-with: faure@kde.org Change-Id: I61e99d498252241f38ec05724702a90ba050c4bb Reviewed-by: Friedemann Kleint --- .../platformthemes/gtk2/qgtk2dialoghelpers.cpp | 28 +++++++++++----------- .../platformthemes/gtk2/qgtk2dialoghelpers.h | 12 +++++----- 2 files changed, 20 insertions(+), 20 deletions(-) (limited to 'src/plugins/platformthemes/gtk2') diff --git a/src/plugins/platformthemes/gtk2/qgtk2dialoghelpers.cpp b/src/plugins/platformthemes/gtk2/qgtk2dialoghelpers.cpp index 77a78d2140..4e9cc446b3 100644 --- a/src/plugins/platformthemes/gtk2/qgtk2dialoghelpers.cpp +++ b/src/plugins/platformthemes/gtk2/qgtk2dialoghelpers.cpp @@ -282,13 +282,13 @@ bool QGtk2FileDialogHelper::defaultNameFilterDisables() const return false; } -void QGtk2FileDialogHelper::setDirectory(const QString &directory) +void QGtk2FileDialogHelper::setDirectory(const QUrl &directory) { GtkDialog *gtkDialog = d->gtkDialog(); - gtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER(gtkDialog), directory.toUtf8()); + gtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER(gtkDialog), directory.toLocalFile().toUtf8()); } -QString QGtk2FileDialogHelper::directory() const +QUrl QGtk2FileDialogHelper::directory() const { // While GtkFileChooserDialog is hidden, gtk_file_chooser_get_current_folder() // returns a bogus value -> return the cached value before hiding @@ -302,27 +302,27 @@ QString QGtk2FileDialogHelper::directory() const ret = QString::fromUtf8(folder); g_free(folder); } - return ret; + return QUrl::fromLocalFile(ret); } -void QGtk2FileDialogHelper::selectFile(const QString &filename) +void QGtk2FileDialogHelper::selectFile(const QUrl &filename) { GtkDialog *gtkDialog = d->gtkDialog(); - gtk_file_chooser_select_filename(GTK_FILE_CHOOSER(gtkDialog), filename.toUtf8()); + gtk_file_chooser_select_filename(GTK_FILE_CHOOSER(gtkDialog), filename.toLocalFile().toUtf8()); } -QStringList QGtk2FileDialogHelper::selectedFiles() const +QList QGtk2FileDialogHelper::selectedFiles() const { // While GtkFileChooserDialog is hidden, gtk_file_chooser_get_filenames() // returns a bogus value -> return the cached value before hiding if (!_selection.isEmpty()) return _selection; - QStringList selection; + QList selection; GtkDialog *gtkDialog = d->gtkDialog(); GSList *filenames = gtk_file_chooser_get_filenames(GTK_FILE_CHOOSER(gtkDialog)); for (GSList *it = filenames; it; it = it->next) - selection += QString::fromUtf8((const char*)it->data); + selection += QUrl::fromLocalFile(QString::fromUtf8((const char*)it->data)); g_slist_free(filenames); return selection; } @@ -356,7 +356,7 @@ void QGtk2FileDialogHelper::onAccepted() if (filter.isEmpty()) emit filterSelected(filter); - QStringList files = selectedFiles(); + QList files = selectedFiles(); emit filesSelected(files); if (files.count() == 1) emit fileSelected(files.first()); @@ -370,7 +370,7 @@ void QGtk2FileDialogHelper::onSelectionChanged(GtkDialog *gtkDialog, QGtk2FileDi selection = QString::fromUtf8(filename); g_free(filename); } - emit helper->currentChanged(selection); + emit helper->currentChanged(QUrl::fromLocalFile(selection)); } void QGtk2FileDialogHelper::onCurrentFolderChanged(QGtk2FileDialogHelper *dialog) @@ -419,12 +419,12 @@ void QGtk2FileDialogHelper::applyOptions() if (!nameFilters.isEmpty()) setNameFilters(nameFilters); - const QString initialDirectory = opts->initialDirectory(); + const QString initialDirectory = opts->initialDirectory().toLocalFile(); if (!initialDirectory.isEmpty()) setDirectory(initialDirectory); - foreach (const QString &filename, opts->initiallySelectedFiles()) - selectFile(filename); + foreach (const QUrl &filename, opts->initiallySelectedFiles()) + selectFile(filename.toLocalFile()); const QString initialNameFilter = opts->initiallySelectedNameFilter(); if (!initialNameFilter.isEmpty()) diff --git a/src/plugins/platformthemes/gtk2/qgtk2dialoghelpers.h b/src/plugins/platformthemes/gtk2/qgtk2dialoghelpers.h index c2d12625f5..47a6153fbc 100644 --- a/src/plugins/platformthemes/gtk2/qgtk2dialoghelpers.h +++ b/src/plugins/platformthemes/gtk2/qgtk2dialoghelpers.h @@ -90,10 +90,10 @@ public: void hide(); bool defaultNameFilterDisables() const; - void setDirectory(const QString &directory); - QString directory() const; - void selectFile(const QString &filename); - QStringList selectedFiles() const; + void setDirectory(const QUrl &directory) Q_DECL_OVERRIDE; + QUrl directory() const Q_DECL_OVERRIDE; + void selectFile(const QUrl &filename) Q_DECL_OVERRIDE; + QList selectedFiles() const Q_DECL_OVERRIDE; void setFilter(); void selectNameFilter(const QString &filter); QString selectedNameFilter() const; @@ -107,8 +107,8 @@ private: void applyOptions(); void setNameFilters(const QStringList &filters); - QString _dir; - QStringList _selection; + QUrl _dir; + QList _selection; QHash _filters; QHash _filterNames; QScopedPointer d; -- cgit v1.2.3