diff options
Diffstat (limited to 'src/printsupport/dialogs/qpagesetupdialog_win.cpp')
-rw-r--r-- | src/printsupport/dialogs/qpagesetupdialog_win.cpp | 58 |
1 files changed, 12 insertions, 46 deletions
diff --git a/src/printsupport/dialogs/qpagesetupdialog_win.cpp b/src/printsupport/dialogs/qpagesetupdialog_win.cpp index 6d51473d52..1d2fdc98b7 100644 --- a/src/printsupport/dialogs/qpagesetupdialog_win.cpp +++ b/src/printsupport/dialogs/qpagesetupdialog_win.cpp @@ -1,41 +1,5 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the QtGui module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 3 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL3 included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 3 requirements -** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 2.0 or (at your option) the GNU General -** Public license version 3 or any later version approved by the KDE Free -** Qt Foundation. The licenses are as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-2.0.html and -** https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only #include "qpagesetupdialog.h" @@ -56,7 +20,7 @@ QPageSetupDialog::QPageSetupDialog(QPrinter *printer, QWidget *parent) } QPageSetupDialog::QPageSetupDialog(QWidget *parent) - : QDialog(*(new QPageSetupDialogPrivate(0)), parent) + : QDialog(*(new QPageSetupDialogPrivate(nullptr)), parent) { setWindowTitle(QCoreApplication::translate("QPrintPreviewDialog", "Page Setup")); setAttribute(Qt::WA_DontShowOnScreen); @@ -77,7 +41,7 @@ int QPageSetupDialog::exec() psd.lStructSize = sizeof(PAGESETUPDLG); // we need a temp DEVMODE struct if we don't have a global DEVMODE - HGLOBAL hDevMode = 0; + HGLOBAL hDevMode = nullptr; int devModeSize = 0; if (!engine->globalDevMode()) { devModeSize = sizeof(DEVMODE) + ep->devMode->dmDriverExtra; @@ -99,9 +63,10 @@ int QPageSetupDialog::exec() parent = parent ? parent->window() : QApplication::activeWindow(); Q_ASSERT(!parent ||parent->testAttribute(Qt::WA_WState_Created)); - QWindow *parentWindow = parent ? parent->windowHandle() : 0; - psd.hwndOwner = parentWindow ? (HWND)QGuiApplication::platformNativeInterface()->nativeResourceForWindow("handle", parentWindow) : 0; - + QWindow *parentWindow = parent ? parent->windowHandle() : nullptr; + psd.hwndOwner = parentWindow + ? HWND(QGuiApplication::platformNativeInterface()->nativeResourceForWindow("handle", parentWindow)) + : nullptr; psd.Flags = PSD_MARGINS; QPageLayout layout = d->printer->pageLayout(); switch (layout.units()) { @@ -158,10 +123,10 @@ int QPageSetupDialog::exec() pageSize = QPageSize(unitSize, layout.units() == QPageLayout::Inch ? QPageSize::Inch : QPageSize::Millimeter); } - layout.setPageSize(pageSize); + layout.setPageSize(pageSize, layout.minimumMargins()); const QMarginsF margins(psd.rtMargin.left, psd.rtMargin.top, psd.rtMargin.right, psd.rtMargin.bottom); - layout.setMargins(margins / multiplier); + layout.setMargins(margins / multiplier, QPageLayout::OutOfBoundsPolicy::Clamp); d->printer->setPageLayout(layout); // copy from our temp DEVMODE struct @@ -169,7 +134,8 @@ int QPageSetupDialog::exec() // Make sure memory is allocated if (ep->ownsDevMode && ep->devMode) free(ep->devMode); - ep->devMode = (DEVMODE *) malloc(devModeSize); + ep->devMode = reinterpret_cast<DEVMODE *>(malloc(devModeSize)); + QWin32PrintEnginePrivate::initializeDevMode(ep->devMode); ep->ownsDevMode = true; // Copy |