QGtk3FileDialogHelper: provide proper filterSelected()
The GTK+ file dialog never had a proper filterSelected() signal. As a workaround, filterSelected() was emitted from accept() to ensure that the signal wasn't entirely missing. Now we can remove the improper emission on accept, because using the "notify::filter" signal gives proper notifications whenever the filter selection in the dialog changes. Change-Id: Iedfe08c49b85adf262af9cdc750efb1fd1698379 Task-number: QTBUG-55298 Reviewed-by: Dmitry Shachnev <mitya57@gmail.com> Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io> Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>bb10
parent
916a8c44c4
commit
e416cc553d
|
|
@ -245,6 +245,7 @@ QGtk3FileDialogHelper::QGtk3FileDialogHelper()
|
|||
|
||||
g_signal_connect(GTK_FILE_CHOOSER(d->gtkDialog()), "selection-changed", G_CALLBACK(onSelectionChanged), this);
|
||||
g_signal_connect_swapped(GTK_FILE_CHOOSER(d->gtkDialog()), "current-folder-changed", G_CALLBACK(onCurrentFolderChanged), this);
|
||||
g_signal_connect_swapped(GTK_FILE_CHOOSER(d->gtkDialog()), "notify::filter", G_CALLBACK(onFilterChanged), this);
|
||||
}
|
||||
|
||||
QGtk3FileDialogHelper::~QGtk3FileDialogHelper()
|
||||
|
|
@ -357,10 +358,6 @@ void QGtk3FileDialogHelper::onAccepted()
|
|||
{
|
||||
emit accept();
|
||||
|
||||
QString filter = selectedNameFilter();
|
||||
if (filter.isEmpty())
|
||||
emit filterSelected(filter);
|
||||
|
||||
QList<QUrl> files = selectedFiles();
|
||||
emit filesSelected(files);
|
||||
if (files.count() == 1)
|
||||
|
|
@ -383,6 +380,11 @@ void QGtk3FileDialogHelper::onCurrentFolderChanged(QGtk3FileDialogHelper *dialog
|
|||
emit dialog->directoryEntered(dialog->directory());
|
||||
}
|
||||
|
||||
void QGtk3FileDialogHelper::onFilterChanged(QGtk3FileDialogHelper *dialog)
|
||||
{
|
||||
emit dialog->filterSelected(dialog->selectedNameFilter());
|
||||
}
|
||||
|
||||
static GtkFileChooserAction gtkFileChooserAction(const QSharedPointer<QFileDialogOptions> &options)
|
||||
{
|
||||
switch (options->fileMode()) {
|
||||
|
|
|
|||
|
|
@ -107,6 +107,7 @@ private Q_SLOTS:
|
|||
private:
|
||||
static void onSelectionChanged(GtkDialog *dialog, QGtk3FileDialogHelper *helper);
|
||||
static void onCurrentFolderChanged(QGtk3FileDialogHelper *helper);
|
||||
static void onFilterChanged(QGtk3FileDialogHelper *helper);
|
||||
void applyOptions();
|
||||
void setNameFilters(const QStringList &filters);
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue