From 4dbeb8c5aa61bd096c9ae06da65823578d2f25d2 Mon Sep 17 00:00:00 2001 From: wmayer Date: Mon, 4 Jul 2022 13:17:11 +0200 Subject: [PATCH] Gui: make sure to use FileIconProvider in FileDialog and delete it after closing the dialog --- src/Gui/FileDialog.cpp | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/Gui/FileDialog.cpp b/src/Gui/FileDialog.cpp index 80d15f62ff..3cf30018fb 100644 --- a/src/Gui/FileDialog.cpp +++ b/src/Gui/FileDialog.cpp @@ -195,6 +195,7 @@ QString FileDialog::getSaveFileName (QWidget * parent, const QString & caption, urls << QUrl::fromLocalFile(QDir::currentPath()); FileDialog dlg(parent); + dlg.setOptions(options); dlg.setWindowTitle(windowTitle); dlg.setSidebarUrls(urls); auto iconprov = std::make_unique(); @@ -204,7 +205,6 @@ QString FileDialog::getSaveFileName (QWidget * parent, const QString & caption, dlg.setDirectory(dirName); if (hasFilename) dlg.selectFile(dirName); - dlg.setOptions(options); dlg.setNameFilters(filter.split(QLatin1String(";;"))); if (selectedFilter && !selectedFilter->isEmpty()) dlg.selectNameFilter(*selectedFilter); @@ -277,13 +277,14 @@ QString FileDialog::getOpenFileName(QWidget * parent, const QString & caption, c urls << QUrl::fromLocalFile(QDir::currentPath()); FileDialog dlg(parent); + dlg.setOptions(options); dlg.setWindowTitle(windowTitle); dlg.setSidebarUrls(urls); - dlg.setIconProvider(new FileIconProvider()); + auto iconprov = std::make_unique(); + dlg.setIconProvider(iconprov.get()); dlg.setFileMode(QFileDialog::ExistingFile); dlg.setAcceptMode(QFileDialog::AcceptOpen); dlg.setDirectory(dirName); - dlg.setOptions(options); dlg.setNameFilters(filter.split(QLatin1String(";;"))); dlg.setOption(QFileDialog::HideNameFilterDetails, false); if (selectedFilter && !selectedFilter->isEmpty()) @@ -338,13 +339,14 @@ QStringList FileDialog::getOpenFileNames (QWidget * parent, const QString & capt urls << QUrl::fromLocalFile(QDir::currentPath()); FileDialog dlg(parent); + dlg.setOptions(options); dlg.setWindowTitle(windowTitle); dlg.setSidebarUrls(urls); - dlg.setIconProvider(new FileIconProvider()); + auto iconprov = std::make_unique(); + dlg.setIconProvider(iconprov.get()); dlg.setFileMode(QFileDialog::ExistingFiles); dlg.setAcceptMode(QFileDialog::AcceptOpen); dlg.setDirectory(dirName); - dlg.setOptions(options); dlg.setNameFilters(filter.split(QLatin1String(";;"))); dlg.setOption(QFileDialog::HideNameFilterDetails, false); if (selectedFilter && !selectedFilter->isEmpty())