Use themed file dialogs everywhere. (#4298)

Previously lmms used themed dialogs for project saving/opening, but not
when editing settings (edit -> settings).

With this change, the settings editor also uses themed dialogs.
This commit is contained in:
Colin Wallace
2018-04-20 19:01:11 -07:00
committed by GitHub
parent ef264eafa7
commit 3401de4a83
2 changed files with 43 additions and 2 deletions

View File

@@ -38,6 +38,16 @@ public:
const QString &directory = QString(),
const QString &filter = QString() );
static QString getExistingDirectory(QWidget *parent,
const QString &caption,
const QString &directory,
QFileDialog::Options options = QFileDialog::ShowDirsOnly);
static QString getOpenFileName(QWidget *parent = 0,
const QString &caption = QString(),
const QString &directory = QString(),
const QString &filter = QString(),
QString *selectedFilter = 0,
QFileDialog::Options options = 0);
void clearSelection();
};

View File

@@ -78,6 +78,39 @@ FileDialog::FileDialog( QWidget *parent, const QString &caption,
}
QString FileDialog::getExistingDirectory(QWidget *parent,
const QString &caption,
const QString &directory,
QFileDialog::Options options)
{
FileDialog dialog(parent, caption, directory, QString());
dialog.setFileMode(QFileDialog::Directory);
dialog.setOptions(dialog.options() | options);
if (dialog.exec() == QDialog::Accepted) {
return dialog.selectedFiles().value(0);
}
return QString();
}
QString FileDialog::getOpenFileName(QWidget *parent,
const QString &caption,
const QString &directory,
const QString &filter,
QString *selectedFilter,
QFileDialog::Options options)
{
FileDialog dialog(parent, caption, directory, filter);
dialog.setOptions(dialog.options() | options);
if (selectedFilter && !selectedFilter->isEmpty())
dialog.selectNameFilter(*selectedFilter);
if (dialog.exec() == QDialog::Accepted) {
if (selectedFilter)
*selectedFilter = dialog.selectedNameFilter();
return dialog.selectedFiles().value(0);
}
return QString();
}
void FileDialog::clearSelection()
{
@@ -86,5 +119,3 @@ void FileDialog::clearSelection()
view->clearSelection();
}