summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEmir SARI <[email protected]>2025-03-15 22:35:47 +0300
committerEmir SARI <[email protected]>2025-04-03 19:18:50 +0300
commitbfb7a47e138b2c91a319da5aefe3d6b670c3d921 (patch)
tree12b0c65606e9ac57cd821eac99d504017bdeb299
parent1e10ede244b70455201df1c459b9586f3c015552 (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.cpp13
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);
}
}