diff options
author | Emir SARI <[email protected]> | 2025-03-15 22:35:47 +0300 |
---|---|---|
committer | Emir SARI <[email protected]> | 2025-04-03 19:18:50 +0300 |
commit | bfb7a47e138b2c91a319da5aefe3d6b670c3d921 (patch) | |
tree | 12b0c65606e9ac57cd821eac99d504017bdeb299 | |
parent | 1e10ede244b70455201df1c459b9586f3c015552 (diff) |
QPrintPreviewDialog: Improve i18n for percent value
This fixes the initial percent value being in the wrong format
for languages that have a different format set. Also enables
locale-aware decimals separator.
Change-Id: I77db487635284e58ed47ed3807fe4390d8d97123
Reviewed-by: Eirik Aavitsland <[email protected]>
-rw-r--r-- | src/printsupport/dialogs/qprintpreviewdialog.cpp | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/src/printsupport/dialogs/qprintpreviewdialog.cpp b/src/printsupport/dialogs/qprintpreviewdialog.cpp index 3c19e25c647..86742c4906e 100644 --- a/src/printsupport/dialogs/qprintpreviewdialog.cpp +++ b/src/printsupport/dialogs/qprintpreviewdialog.cpp @@ -141,6 +141,7 @@ public: void layoutPages(); void setupActions(); void updateNavActions(); + QString formattedZoomFactor(double value); void setFitting(bool on); bool isFitting(); void updatePageNumLabel(); @@ -223,7 +224,7 @@ void QPrintPreviewDialogPrivate::init(QPrinter *_printer) zoomFactor->setLineEdit(zoomEditor); static const short factorsX2[] = { 25, 50, 100, 200, 250, 300, 400, 800, 1600 }; for (auto factorX2 : factorsX2) - zoomFactor->addItem(QPrintPreviewDialog::tr("%1%").arg(factorX2 / 2.0)); + zoomFactor->addItem(formattedZoomFactor(factorX2 / 2.0)); QObject::connect(zoomFactor->lineEdit(), SIGNAL(editingFinished()), q, SLOT(_q_zoomFactorChanged())); QObject::connect(zoomFactor, SIGNAL(currentIndexChanged(int)), @@ -436,6 +437,12 @@ void QPrintPreviewDialogPrivate::setFitting(bool on) } } +QString QPrintPreviewDialogPrivate::formattedZoomFactor(double value) +{ + //: Zoom factor percentage value, % is the percent sign + return QPrintPreviewDialog::tr("%1%").arg(QLocale().toString(value, 'f', 1)); +} + void QPrintPreviewDialogPrivate::updateNavActions() { int curPage = preview->currentPage(); @@ -464,7 +471,7 @@ void QPrintPreviewDialogPrivate::updatePageNumLabel() void QPrintPreviewDialogPrivate::updateZoomFactor() { - zoomFactor->lineEdit()->setText(QString::asprintf("%.1f%%", preview->zoomFactor()*100)); + zoomFactor->lineEdit()->setText(formattedZoomFactor(preview->zoomFactor() * 100)); } void QPrintPreviewDialogPrivate::_q_fit(QAction* action) @@ -601,7 +608,7 @@ void QPrintPreviewDialogPrivate::_q_zoomFactorChanged() factor = qMax(qreal(1.0), qMin(qreal(1000.0), factor)); if (ok) { preview->setZoomFactor(factor/100.0); - zoomFactor->setEditText(QString::fromLatin1("%1%").arg(factor)); + zoomFactor->setEditText(formattedZoomFactor(factor)); setFitting(false); } } |