diff options
Diffstat (limited to 'src/plugins/imageviewer/multiexportdialog.cpp')
-rw-r--r-- | src/plugins/imageviewer/multiexportdialog.cpp | 40 |
1 files changed, 22 insertions, 18 deletions
diff --git a/src/plugins/imageviewer/multiexportdialog.cpp b/src/plugins/imageviewer/multiexportdialog.cpp index 0befd2fe37..1b526c9b11 100644 --- a/src/plugins/imageviewer/multiexportdialog.cpp +++ b/src/plugins/imageviewer/multiexportdialog.cpp @@ -15,8 +15,6 @@ #include <utils/utilsicons.h> #include <QDialogButtonBox> -#include <QDir> -#include <QFileInfo> #include <QFormLayout> #include <QLabel> #include <QLineEdit> @@ -27,6 +25,8 @@ #include <QToolButton> #include <QWidgetAction> +using namespace Utils; + namespace ImageViewer::Internal { static const int standardIconSizesValues[] = {16, 24, 32, 48, 64, 128, 256}; @@ -95,11 +95,11 @@ static QVector<QSize> stringToSizes(const QString &s) return result; } -static QString fileNameForSize(QString pattern, const QSize &s) +static FilePath fileNameForSize(QString pattern, const QSize &s) { pattern.replace("%1", QString::number(s.width())); pattern.replace("%2", QString::number(s.height())); - return pattern; + return FilePath::fromString(pattern); } // Helpers for writing/reading the user-specified size specifications @@ -236,7 +236,7 @@ void MultiExportDialog::suggestSizes() QVector<ExportData> MultiExportDialog::exportData() const { const QVector<QSize> sizeList = sizes(); - const QString pattern = exportFileName(); + const QString pattern = exportFileName().toString(); QVector<ExportData> result; result.reserve(sizeList.size()); for (const QSize &s : sizeList) @@ -268,7 +268,7 @@ void MultiExportDialog::accept() Tr::tr("Invalid size specification: %1").arg(sizeSpec)); return; } - if (data.size() > 1 && data.at(0).fileName == data.at(1).fileName) { + if (data.size() > 1 && data.at(0).filePath == data.at(1).filePath) { QMessageBox::warning(this, windowTitle(), Tr::tr("The file name must contain one of the placeholders %1, %2.") .arg(QString("%1"), QString("%2"))); @@ -277,17 +277,17 @@ void MultiExportDialog::accept() writeSettings(m_svgSize, sizeSpec); - QStringList existingFiles; + FilePaths existingFiles; for (const ExportData &d : data) { - if (QFileInfo::exists(d.fileName)) - existingFiles.append(d.fileName); + if (d.filePath.exists()) + existingFiles.append(d.filePath); } if (!existingFiles.isEmpty()) { const QString message = existingFiles.size() == 1 ? Tr::tr("The file %1 already exists.\nWould you like to overwrite it?") - .arg(QDir::toNativeSeparators(existingFiles.constFirst())) + .arg(existingFiles.constFirst().toUserOutput()) : Tr::tr("The files %1 already exist.\nWould you like to overwrite them?") - .arg(QDir::toNativeSeparators(existingFiles.join(", "))); + .arg(FilePath::formatFilePaths(existingFiles, ", ")); QMessageBox messageBox(QMessageBox::Question, windowTitle(), message, QMessageBox::Yes | QMessageBox::No, this); if (messageBox.exec() != QMessageBox::Yes) @@ -297,17 +297,21 @@ void MultiExportDialog::accept() QDialog::accept(); } -QString MultiExportDialog::exportFileName() const +FilePath MultiExportDialog::exportFileName() const { - return m_pathChooser->filePath().toString(); + return m_pathChooser->filePath(); } -void MultiExportDialog::setExportFileName(QString f) +void MultiExportDialog::setExportFileName(const FilePath &filePath) { - const int lastDot = f.lastIndexOf('.'); - if (lastDot != -1) - f.insert(lastDot, "-%1"); - m_pathChooser->setFilePath(Utils::FilePath::fromString(f)); + FilePath f = filePath; + QString ff = f.path(); + const int lastDot = ff.lastIndexOf('.'); + if (lastDot != -1) { + ff.insert(lastDot, "-%1"); + f = f.withNewPath(ff); + }; + m_pathChooser->setFilePath(f); } } // ImageViewer:Internal |