Gui: make sure to use FileIconProvider in FileDialog and delete it after closing the dialog
This commit is contained in:
@@ -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<FileIconProvider>();
|
||||
@@ -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<FileIconProvider>();
|
||||
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<FileIconProvider>();
|
||||
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())
|
||||
|
||||
Reference in New Issue
Block a user