From d8c3a0ac813e4dba2bc58869185e413ab7c32e0a Mon Sep 17 00:00:00 2001 From: Roman Telezhynskyi Date: Wed, 4 Apr 2018 08:34:48 +0300 Subject: [PATCH] Use native dialog on all platforms except Linux. We have a bug with native dialog on Linux that's why we cannot use it. --HG-- branch : develop --- src/app/tape/tmainwindow.cpp | 7 +++-- .../configpages/preferencespathpage.cpp | 5 +++- .../dialogs/dialogpatternproperties.cpp | 14 +++++++--- .../valentina/dialogs/dialogsavelayout.cpp | 5 +++- src/app/valentina/mainwindow.cpp | 27 ++++++++++++++----- .../plugins/vfilepropertyeditor.cpp | 12 ++++++--- .../dialogs/support/dialogeditlabel.cpp | 13 ++++++--- src/libs/vwidgets/vabstractmainwindow.cpp | 7 +++-- 8 files changed, 67 insertions(+), 23 deletions(-) diff --git a/src/app/tape/tmainwindow.cpp b/src/app/tape/tmainwindow.cpp index bec1fb139..d86868359 100644 --- a/src/app/tape/tmainwindow.cpp +++ b/src/app/tape/tmainwindow.cpp @@ -972,8 +972,11 @@ void TMainWindow::ImportDataFromCSV() const QString filters = tr("Comma-Separated Values") + QLatin1String(" (*.csv)"); const QString suffix("csv"); - QString fileName = QFileDialog::getOpenFileName(this, tr("Import from CSV"), QDir::homePath(), filters, nullptr, - QFileDialog::DontUseNativeDialog); + QString fileName = QFileDialog::getOpenFileName(this, tr("Import from CSV"), QDir::homePath(), filters, nullptr +#ifdef Q_OS_LINUX + , QFileDialog::DontUseNativeDialog +#endif + ); if (fileName.isEmpty()) { diff --git a/src/app/valentina/dialogs/configpages/preferencespathpage.cpp b/src/app/valentina/dialogs/configpages/preferencespathpage.cpp index d4c6328d8..e7bd64380 100644 --- a/src/app/valentina/dialogs/configpages/preferencespathpage.cpp +++ b/src/app/valentina/dialogs/configpages/preferencespathpage.cpp @@ -148,7 +148,10 @@ void PreferencesPathPage::EditPath() const QString dir = QFileDialog::getExistingDirectory(this, tr("Open Directory"), path, QFileDialog::ShowDirsOnly | QFileDialog::DontResolveSymlinks - | QFileDialog::DontUseNativeDialog); +#ifdef Q_OS_LINUX + | QFileDialog::DontUseNativeDialog +#endif + ); if (dir.isEmpty()) { if (usedNotExistedDir) diff --git a/src/app/valentina/dialogs/dialogpatternproperties.cpp b/src/app/valentina/dialogs/dialogpatternproperties.cpp index 1844cb65d..970fcf5c1 100644 --- a/src/app/valentina/dialogs/dialogpatternproperties.cpp +++ b/src/app/valentina/dialogs/dialogpatternproperties.cpp @@ -837,8 +837,11 @@ void DialogPatternProperties::InitImage() void DialogPatternProperties::ChangeImage() { const QString filter = tr("Images") + QLatin1String(" (*.png *.jpg *.jpeg *.bmp)"); - const QString fileName = QFileDialog::getOpenFileName(this, tr("Image for pattern"), QString(), filter, nullptr, - QFileDialog::DontUseNativeDialog); + const QString fileName = QFileDialog::getOpenFileName(this, tr("Image for pattern"), QString(), filter, nullptr +#ifdef Q_OS_LINUX + , QFileDialog::DontUseNativeDialog +#endif + ); if (not fileName.isEmpty()) { QImage image; @@ -879,8 +882,11 @@ void DialogPatternProperties::SaveImage() QByteArray ba = QByteArray::fromBase64(byteArray); const QString extension = QLatin1String(".") + doc->GetImageExtension(); QString filter = tr("Images") + QLatin1String(" (*") + extension + QLatin1String(")"); - QString filename = QFileDialog::getSaveFileName(this, tr("Save File"), tr("untitled"), filter, &filter, - QFileDialog::DontUseNativeDialog); + QString filename = QFileDialog::getSaveFileName(this, tr("Save File"), tr("untitled"), filter, &filter +#ifdef Q_OS_LINUX + , QFileDialog::DontUseNativeDialog +#endif + ); if (not filename.isEmpty()) { if (not filename.endsWith(extension.toUpper())) diff --git a/src/app/valentina/dialogs/dialogsavelayout.cpp b/src/app/valentina/dialogs/dialogsavelayout.cpp index e198ed0ee..eb9e4e20a 100644 --- a/src/app/valentina/dialogs/dialogsavelayout.cpp +++ b/src/app/valentina/dialogs/dialogsavelayout.cpp @@ -129,7 +129,10 @@ DialogSaveLayout::DialogSaveLayout(int count, Draw mode, const QString &fileName const QString dir = QFileDialog::getExistingDirectory(this, tr("Select folder"), dirPath, QFileDialog::ShowDirsOnly | QFileDialog::DontResolveSymlinks - | QFileDialog::DontUseNativeDialog); +#ifdef Q_OS_LINUX + | QFileDialog::DontUseNativeDialog +#endif + ); if (not dir.isEmpty()) {// If paths equal the signal will not be called, we will do this manually dir == ui->lineEditPath->text() ? PathChanged(dir) : ui->lineEditPath->setText(dir); diff --git a/src/app/valentina/mainwindow.cpp b/src/app/valentina/mainwindow.cpp index 90ce9ca13..461847f02 100644 --- a/src/app/valentina/mainwindow.cpp +++ b/src/app/valentina/mainwindow.cpp @@ -1659,8 +1659,11 @@ void MainWindow::LoadIndividual() usedNotExistedDir = directory.mkpath("."); } - const QString mPath = QFileDialog::getOpenFileName(this, tr("Open file"), path, filter, nullptr, - QFileDialog::DontUseNativeDialog); + const QString mPath = QFileDialog::getOpenFileName(this, tr("Open file"), path, filter, nullptr +#ifdef Q_OS_LINUX + , QFileDialog::DontUseNativeDialog +#endif + ); if (not mPath.isEmpty()) { @@ -1697,8 +1700,11 @@ void MainWindow::LoadMultisize() //Use standard path to multisize measurements QString path = qApp->ValentinaSettings()->GetPathMultisizeMeasurements(); path = VCommonSettings::PrepareMultisizeTables(path); - const QString mPath = QFileDialog::getOpenFileName(this, tr("Open file"), path, filter, nullptr, - QFileDialog::DontUseNativeDialog); + const QString mPath = QFileDialog::getOpenFileName(this, tr("Open file"), path, filter, nullptr +#ifdef Q_OS_LINUX + , QFileDialog::DontUseNativeDialog +#endif + ); if (not mPath.isEmpty()) { @@ -2744,7 +2750,11 @@ bool MainWindow::SaveAs() QString fileName = QFileDialog::getSaveFileName(this, tr("Save as"), dir + QLatin1String("/") + tr("pattern") + QLatin1String(".val"), - filters, nullptr, QFileDialog::DontUseNativeDialog); + filters, nullptr +#ifdef Q_OS_LINUX + , QFileDialog::DontUseNativeDialog +#endif + ); auto RemoveTempDir = [usedNotExistedDir, dir]() { @@ -2935,8 +2945,11 @@ void MainWindow::Open() dir = QFileInfo(files.first()).absolutePath(); } qCDebug(vMainWindow, "Run QFileDialog::getOpenFileName: dir = %s.", qUtf8Printable(dir)); - const QString filePath = QFileDialog::getOpenFileName(this, tr("Open file"), dir, filter, nullptr, - QFileDialog::DontUseNativeDialog); + const QString filePath = QFileDialog::getOpenFileName(this, tr("Open file"), dir, filter, nullptr +#ifdef Q_OS_LINUX + , QFileDialog::DontUseNativeDialog +#endif + ); if (filePath.isEmpty()) { return; diff --git a/src/libs/vpropertyexplorer/plugins/vfilepropertyeditor.cpp b/src/libs/vpropertyexplorer/plugins/vfilepropertyeditor.cpp index 373298be9..5e4731c4a 100644 --- a/src/libs/vpropertyexplorer/plugins/vfilepropertyeditor.cpp +++ b/src/libs/vpropertyexplorer/plugins/vfilepropertyeditor.cpp @@ -113,10 +113,16 @@ void VPE::VFileEditWidget::onToolButtonClicked() { QString filepath = (Directory ? QFileDialog::getExistingDirectory(nullptr, tr("Directory"), CurrentFilePath, QFileDialog::ShowDirsOnly - | QFileDialog::DontUseNativeDialog) +#ifdef Q_OS_LINUX + | QFileDialog::DontUseNativeDialog +#endif + ) : QFileDialog::getOpenFileName(nullptr, tr("Open File"), CurrentFilePath, - FileDialogFilter, nullptr, - QFileDialog::DontUseNativeDialog)); + FileDialogFilter, nullptr +#ifdef Q_OS_LINUX + , QFileDialog::DontUseNativeDialog +#endif + )); if (filepath.isNull() == false) { setFile(filepath, true); diff --git a/src/libs/vtools/dialogs/support/dialogeditlabel.cpp b/src/libs/vtools/dialogs/support/dialogeditlabel.cpp index 83a964ba3..c50881b45 100644 --- a/src/libs/vtools/dialogs/support/dialogeditlabel.cpp +++ b/src/libs/vtools/dialogs/support/dialogeditlabel.cpp @@ -291,7 +291,11 @@ void DialogEditLabel::ExportTemplate() QString fileName = QFileDialog::getSaveFileName(this, tr("Export label template"), path + QLatin1String("/") + tr("template") + QLatin1String(".xml"), - filters, nullptr, QFileDialog::DontUseNativeDialog); + filters, nullptr +#ifdef Q_OS_LINUX + , QFileDialog::DontUseNativeDialog +#endif + ); if (fileName.isEmpty()) { @@ -340,8 +344,11 @@ void DialogEditLabel::ImportTemplate() QString filter(tr("Label template") + QLatin1String(" (*.xml)")); //Use standard path to label templates const QString path = VCommonSettings::PrepareLabelTemplates(qApp->Settings()->GetPathLabelTemplate()); - const QString fileName = QFileDialog::getOpenFileName(this, tr("Import template"), path, filter, nullptr, - QFileDialog::DontUseNativeDialog); + const QString fileName = QFileDialog::getOpenFileName(this, tr("Import template"), path, filter, nullptr +#ifdef Q_OS_LINUX + , QFileDialog::DontUseNativeDialog +#endif + ); if (fileName.isEmpty()) { return; diff --git a/src/libs/vwidgets/vabstractmainwindow.cpp b/src/libs/vwidgets/vabstractmainwindow.cpp index 967e0b516..b513d0dc8 100644 --- a/src/libs/vwidgets/vabstractmainwindow.cpp +++ b/src/libs/vwidgets/vabstractmainwindow.cpp @@ -106,8 +106,11 @@ QString VAbstractMainWindow::CSVFilePath() const QString suffix("csv"); const QString path = QDir::homePath() + QLatin1String("/") + tr("values") + QLatin1String(".") + suffix; - QString fileName = QFileDialog::getSaveFileName(this, tr("Export to CSV"), path, filters, nullptr, - QFileDialog::DontUseNativeDialog); + QString fileName = QFileDialog::getSaveFileName(this, tr("Export to CSV"), path, filters, nullptr +#ifdef Q_OS_LINUX + , QFileDialog::DontUseNativeDialog +#endif + ); if (fileName.isEmpty()) {