Ensure that printer orientation is preserved
After setting the printer name the initialization is no longer done for a printer with a name. Instead doReinit() method is called to preserve the orientation (set with setOrientation() method before calling setPrinterName()). Before the orientation was changed back to default when setPrinterName() method was called ignoring the orientation set. Updated also the autotest because the case: taskQTBUG4497_reusePrinterOnDifferentFiles() is no longer expected to fail on Windows. Task-number: QTBUG-26008 Change-Id: Ia6bc9ae14d79a646e61bfc97652f9f5af90738b3 Reviewed-by: Andy Shaw Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
This commit is contained in:
parent
f7de5b0923
commit
1cebd906af
@ -1174,6 +1174,16 @@ void QWin32PrintEnginePrivate::doReinit()
|
||||
if (state == QPrinter::Active) {
|
||||
reinit = true;
|
||||
} else {
|
||||
if (!name.isEmpty()) {
|
||||
HANDLE hCheckPrinter;
|
||||
if (!OpenPrinter((LPWSTR)name.utf16(), (LPHANDLE)&hCheckPrinter, 0)) {
|
||||
initialize();
|
||||
return;
|
||||
} else {
|
||||
ClosePrinter(hCheckPrinter);
|
||||
hCheckPrinter = 0;
|
||||
}
|
||||
}
|
||||
resetDC();
|
||||
initDevRects();
|
||||
reinit = false;
|
||||
@ -1296,9 +1306,12 @@ void QWin32PrintEngine::setProperty(PrintEnginePropertyKey key, const QVariant &
|
||||
|
||||
case PPK_PrinterName:
|
||||
d->name = value.toString();
|
||||
if(d->name.isEmpty())
|
||||
if (d->name.isEmpty()) {
|
||||
d->queryDefault();
|
||||
d->initialize();
|
||||
d->initialize();
|
||||
} else {
|
||||
d->doReinit();
|
||||
}
|
||||
break;
|
||||
|
||||
case PPK_Resolution:
|
||||
|
@ -985,7 +985,9 @@ void tst_QPrinter::taskQTBUG4497_reusePrinterOnDifferentFiles()
|
||||
QFile file2("out2.ps");
|
||||
QVERIFY(file2.open(QIODevice::ReadOnly));
|
||||
|
||||
#ifndef Q_OS_WIN
|
||||
QEXPECT_FAIL("", "QTBUG-22562, QTBUG-22296", Abort);
|
||||
#endif
|
||||
QCOMPARE(file1.readAll(), file2.readAll());
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user