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 <eirik.aavitsland@qt.io>
This commit is contained in:
parent
1e10ede244
commit
bfb7a47e13
@ -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);
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user