summaryrefslogtreecommitdiffstats
path: root/src/widgets
diff options
context:
space:
mode:
Diffstat (limited to 'src/widgets')
-rw-r--r--src/widgets/dialogs/dialogs.pri30
-rw-r--r--src/widgets/dialogs/images/fit-page-24.pngbin985 -> 0 bytes
-rw-r--r--src/widgets/dialogs/images/fit-page-32.pngbin1330 -> 0 bytes
-rw-r--r--src/widgets/dialogs/images/fit-width-24.pngbin706 -> 0 bytes
-rw-r--r--src/widgets/dialogs/images/fit-width-32.pngbin1004 -> 0 bytes
-rw-r--r--src/widgets/dialogs/images/go-first-24.pngbin796 -> 0 bytes
-rw-r--r--src/widgets/dialogs/images/go-first-32.pngbin985 -> 0 bytes
-rw-r--r--src/widgets/dialogs/images/go-last-24.pngbin792 -> 0 bytes
-rw-r--r--src/widgets/dialogs/images/go-last-32.pngbin984 -> 0 bytes
-rw-r--r--src/widgets/dialogs/images/go-next-24.pngbin782 -> 0 bytes
-rw-r--r--src/widgets/dialogs/images/go-next-32.pngbin948 -> 0 bytes
-rw-r--r--src/widgets/dialogs/images/go-previous-24.pngbin797 -> 0 bytes
-rw-r--r--src/widgets/dialogs/images/go-previous-32.pngbin945 -> 0 bytes
-rw-r--r--src/widgets/dialogs/images/layout-landscape-24.pngbin820 -> 0 bytes
-rw-r--r--src/widgets/dialogs/images/layout-landscape-32.pngbin1353 -> 0 bytes
-rw-r--r--src/widgets/dialogs/images/layout-portrait-24.pngbin817 -> 0 bytes
-rw-r--r--src/widgets/dialogs/images/layout-portrait-32.pngbin1330 -> 0 bytes
-rw-r--r--src/widgets/dialogs/images/page-setup-24.pngbin620 -> 0 bytes
-rw-r--r--src/widgets/dialogs/images/page-setup-32.pngbin1154 -> 0 bytes
-rw-r--r--src/widgets/dialogs/images/print-24.pngbin914 -> 0 bytes
-rw-r--r--src/widgets/dialogs/images/print-32.pngbin1202 -> 0 bytes
-rw-r--r--src/widgets/dialogs/images/status-color.pngbin1475 -> 0 bytes
-rw-r--r--src/widgets/dialogs/images/status-gray-scale.pngbin1254 -> 0 bytes
-rw-r--r--src/widgets/dialogs/images/view-page-multi-24.pngbin390 -> 0 bytes
-rw-r--r--src/widgets/dialogs/images/view-page-multi-32.pngbin556 -> 0 bytes
-rw-r--r--src/widgets/dialogs/images/view-page-one-24.pngbin662 -> 0 bytes
-rw-r--r--src/widgets/dialogs/images/view-page-one-32.pngbin810 -> 0 bytes
-rw-r--r--src/widgets/dialogs/images/view-page-sided-24.pngbin700 -> 0 bytes
-rw-r--r--src/widgets/dialogs/images/view-page-sided-32.pngbin908 -> 0 bytes
-rw-r--r--src/widgets/dialogs/images/zoom-in-24.pngbin1302 -> 0 bytes
-rw-r--r--src/widgets/dialogs/images/zoom-in-32.pngbin1873 -> 0 bytes
-rw-r--r--src/widgets/dialogs/images/zoom-out-24.pngbin1247 -> 0 bytes
-rw-r--r--src/widgets/dialogs/images/zoom-out-32.pngbin1749 -> 0 bytes
-rw-r--r--src/widgets/dialogs/qabstractpagesetupdialog.cpp139
-rw-r--r--src/widgets/dialogs/qabstractpagesetupdialog.h82
-rw-r--r--src/widgets/dialogs/qabstractpagesetupdialog_p.h88
-rw-r--r--src/widgets/dialogs/qabstractprintdialog.cpp499
-rw-r--r--src/widgets/dialogs/qabstractprintdialog.h130
-rw-r--r--src/widgets/dialogs/qabstractprintdialog_p.h99
-rw-r--r--src/widgets/dialogs/qfscompleter_p.h2
-rw-r--r--src/widgets/dialogs/qpagesetupdialog.cpp240
-rw-r--r--src/widgets/dialogs/qpagesetupdialog.h112
-rw-r--r--src/widgets/dialogs/qpagesetupdialog_mac.mm315
-rw-r--r--src/widgets/dialogs/qpagesetupdialog_unix.cpp620
-rw-r--r--src/widgets/dialogs/qpagesetupdialog_unix_p.h105
-rw-r--r--src/widgets/dialogs/qpagesetupdialog_win.cpp168
-rw-r--r--src/widgets/dialogs/qpagesetupwidget.ui353
-rw-r--r--src/widgets/dialogs/qprintdialog.h174
-rw-r--r--src/widgets/dialogs/qprintdialog.qdoc58
-rw-r--r--src/widgets/dialogs/qprintdialog.qrc38
-rw-r--r--src/widgets/dialogs/qprintdialog_mac.mm429
-rw-r--r--src/widgets/dialogs/qprintdialog_unix.cpp1286
-rw-r--r--src/widgets/dialogs/qprintdialog_win.cpp316
-rw-r--r--src/widgets/dialogs/qprintpreviewdialog.cpp803
-rw-r--r--src/widgets/dialogs/qprintpreviewdialog.h108
-rw-r--r--src/widgets/dialogs/qprintpropertieswidget.ui70
-rw-r--r--src/widgets/dialogs/qprintsettingsoutput.ui363
-rw-r--r--src/widgets/dialogs/qprintwidget.ui116
-rw-r--r--src/widgets/kernel/qapplication.cpp4
-rw-r--r--src/widgets/widgets/qprintpreviewwidget.cpp844
-rw-r--r--src/widgets/widgets/qprintpreviewwidget.h127
-rw-r--r--src/widgets/widgets/widgets.pri7
62 files changed, 6 insertions, 7719 deletions
diff --git a/src/widgets/dialogs/dialogs.pri b/src/widgets/dialogs/dialogs.pri
index fdbca9122f..41d81b8afc 100644
--- a/src/widgets/dialogs/dialogs.pri
+++ b/src/widgets/dialogs/dialogs.pri
@@ -1,10 +1,6 @@
# Qt dialogs module
HEADERS += \
- dialogs/qabstractprintdialog.h \
- dialogs/qabstractprintdialog_p.h \
- dialogs/qabstractpagesetupdialog.h \
- dialogs/qabstractpagesetupdialog_p.h \
dialogs/qcolordialog.h \
dialogs/qcolordialog_p.h \
dialogs/qfscompleter_p.h \
@@ -17,22 +13,17 @@ HEADERS += \
dialogs/qfontdialog_p.h \
dialogs/qinputdialog.h \
dialogs/qmessagebox.h \
- dialogs/qpagesetupdialog.h \
- dialogs/qprintdialog.h \
dialogs/qprogressdialog.h \
dialogs/qsidebar_p.h \
dialogs/qfilesystemmodel.h \
dialogs/qfilesystemmodel_p.h \
dialogs/qfileinfogatherer_p.h \
- dialogs/qwizard.h \
- dialogs/qprintpreviewdialog.h
+ dialogs/qwizard.h
!qpa:mac {
OBJECTIVE_SOURCES += dialogs/qfiledialog_mac.mm \
dialogs/qfontdialog_mac.mm \
- dialogs/qnspanelproxy_mac.mm \
- dialogs/qpagesetupdialog_mac.mm \
- dialogs/qprintdialog_mac.mm
+ dialogs/qnspanelproxy_mac.mm
# Compile qcolordialog_mac.mm with exception support, disregarding the -no-exceptions
# configure option. (qcolordialog_mac needs to catch exceptions thrown by cocoa)
@@ -56,29 +47,16 @@ win32 {
dialogs/qfiledialog_win_p.h
SOURCES += dialogs/qdialogsbinarycompat_win.cpp \
dialogs/qfiledialog_win.cpp \
- dialogs/qpagesetupdialog_win.cpp \
- dialogs/qprintdialog_win.cpp \
dialogs/qwizard_win.cpp
!win32-borland:!wince*: LIBS += -lshell32 # the filedialog needs this library
}
-!mac:!symbian:unix|qpa:!win32 {
- HEADERS += dialogs/qpagesetupdialog_unix_p.h
- SOURCES += dialogs/qprintdialog_unix.cpp \
- dialogs/qpagesetupdialog_unix.cpp
- FORMS += dialogs/qprintsettingsoutput.ui \
- dialogs/qprintwidget.ui \
- dialogs/qprintpropertieswidget.ui
-}
-
wince*|symbian: FORMS += dialogs/qfiledialog_embedded.ui
else: FORMS += dialogs/qfiledialog.ui
INCLUDEPATH += $$PWD
SOURCES += \
- dialogs/qabstractprintdialog.cpp \
- dialogs/qabstractpagesetupdialog.cpp \
dialogs/qcolordialog.cpp \
dialogs/qdialog.cpp \
dialogs/qerrormessage.cpp \
@@ -90,9 +68,7 @@ SOURCES += \
dialogs/qsidebar.cpp \
dialogs/qfilesystemmodel.cpp \
dialogs/qfileinfogatherer.cpp \
- dialogs/qpagesetupdialog.cpp \
dialogs/qwizard.cpp \
- dialogs/qprintpreviewdialog.cpp
symbian:contains(QT_CONFIG, s60) {
LIBS += -lCommonDialogs
@@ -100,8 +76,6 @@ symbian:contains(QT_CONFIG, s60) {
dialogs/qcolordialog_symbian.cpp
}
-FORMS += dialogs/qpagesetupwidget.ui
-RESOURCES += dialogs/qprintdialog.qrc
RESOURCES += dialogs/qmessagebox.qrc
# Compensate for lack of platform defines in Symbian3
diff --git a/src/widgets/dialogs/images/fit-page-24.png b/src/widgets/dialogs/images/fit-page-24.png
deleted file mode 100644
index c7b39d8853..0000000000
--- a/src/widgets/dialogs/images/fit-page-24.png
+++ /dev/null
Binary files differ
diff --git a/src/widgets/dialogs/images/fit-page-32.png b/src/widgets/dialogs/images/fit-page-32.png
deleted file mode 100644
index 98bc12d3ed..0000000000
--- a/src/widgets/dialogs/images/fit-page-32.png
+++ /dev/null
Binary files differ
diff --git a/src/widgets/dialogs/images/fit-width-24.png b/src/widgets/dialogs/images/fit-width-24.png
deleted file mode 100644
index a729ffda54..0000000000
--- a/src/widgets/dialogs/images/fit-width-24.png
+++ /dev/null
Binary files differ
diff --git a/src/widgets/dialogs/images/fit-width-32.png b/src/widgets/dialogs/images/fit-width-32.png
deleted file mode 100644
index 470a8b45d0..0000000000
--- a/src/widgets/dialogs/images/fit-width-32.png
+++ /dev/null
Binary files differ
diff --git a/src/widgets/dialogs/images/go-first-24.png b/src/widgets/dialogs/images/go-first-24.png
deleted file mode 100644
index 55315ffa38..0000000000
--- a/src/widgets/dialogs/images/go-first-24.png
+++ /dev/null
Binary files differ
diff --git a/src/widgets/dialogs/images/go-first-32.png b/src/widgets/dialogs/images/go-first-32.png
deleted file mode 100644
index 0fe6f94b77..0000000000
--- a/src/widgets/dialogs/images/go-first-32.png
+++ /dev/null
Binary files differ
diff --git a/src/widgets/dialogs/images/go-last-24.png b/src/widgets/dialogs/images/go-last-24.png
deleted file mode 100644
index 81061b80f2..0000000000
--- a/src/widgets/dialogs/images/go-last-24.png
+++ /dev/null
Binary files differ
diff --git a/src/widgets/dialogs/images/go-last-32.png b/src/widgets/dialogs/images/go-last-32.png
deleted file mode 100644
index 887506107e..0000000000
--- a/src/widgets/dialogs/images/go-last-32.png
+++ /dev/null
Binary files differ
diff --git a/src/widgets/dialogs/images/go-next-24.png b/src/widgets/dialogs/images/go-next-24.png
deleted file mode 100644
index 9a55ef3d86..0000000000
--- a/src/widgets/dialogs/images/go-next-24.png
+++ /dev/null
Binary files differ
diff --git a/src/widgets/dialogs/images/go-next-32.png b/src/widgets/dialogs/images/go-next-32.png
deleted file mode 100644
index 6d98f50f4f..0000000000
--- a/src/widgets/dialogs/images/go-next-32.png
+++ /dev/null
Binary files differ
diff --git a/src/widgets/dialogs/images/go-previous-24.png b/src/widgets/dialogs/images/go-previous-24.png
deleted file mode 100644
index 2ea769eb8d..0000000000
--- a/src/widgets/dialogs/images/go-previous-24.png
+++ /dev/null
Binary files differ
diff --git a/src/widgets/dialogs/images/go-previous-32.png b/src/widgets/dialogs/images/go-previous-32.png
deleted file mode 100644
index 37ba0c4e8d..0000000000
--- a/src/widgets/dialogs/images/go-previous-32.png
+++ /dev/null
Binary files differ
diff --git a/src/widgets/dialogs/images/layout-landscape-24.png b/src/widgets/dialogs/images/layout-landscape-24.png
deleted file mode 100644
index 6f89a31cb6..0000000000
--- a/src/widgets/dialogs/images/layout-landscape-24.png
+++ /dev/null
Binary files differ
diff --git a/src/widgets/dialogs/images/layout-landscape-32.png b/src/widgets/dialogs/images/layout-landscape-32.png
deleted file mode 100644
index 6a94946c36..0000000000
--- a/src/widgets/dialogs/images/layout-landscape-32.png
+++ /dev/null
Binary files differ
diff --git a/src/widgets/dialogs/images/layout-portrait-24.png b/src/widgets/dialogs/images/layout-portrait-24.png
deleted file mode 100644
index e0dbabc83b..0000000000
--- a/src/widgets/dialogs/images/layout-portrait-24.png
+++ /dev/null
Binary files differ
diff --git a/src/widgets/dialogs/images/layout-portrait-32.png b/src/widgets/dialogs/images/layout-portrait-32.png
deleted file mode 100644
index d17468c0a4..0000000000
--- a/src/widgets/dialogs/images/layout-portrait-32.png
+++ /dev/null
Binary files differ
diff --git a/src/widgets/dialogs/images/page-setup-24.png b/src/widgets/dialogs/images/page-setup-24.png
deleted file mode 100644
index 4bfafdace0..0000000000
--- a/src/widgets/dialogs/images/page-setup-24.png
+++ /dev/null
Binary files differ
diff --git a/src/widgets/dialogs/images/page-setup-32.png b/src/widgets/dialogs/images/page-setup-32.png
deleted file mode 100644
index 2313b8fe3b..0000000000
--- a/src/widgets/dialogs/images/page-setup-32.png
+++ /dev/null
Binary files differ
diff --git a/src/widgets/dialogs/images/print-24.png b/src/widgets/dialogs/images/print-24.png
deleted file mode 100644
index c6bf3e8672..0000000000
--- a/src/widgets/dialogs/images/print-24.png
+++ /dev/null
Binary files differ
diff --git a/src/widgets/dialogs/images/print-32.png b/src/widgets/dialogs/images/print-32.png
deleted file mode 100644
index 5830888653..0000000000
--- a/src/widgets/dialogs/images/print-32.png
+++ /dev/null
Binary files differ
diff --git a/src/widgets/dialogs/images/status-color.png b/src/widgets/dialogs/images/status-color.png
deleted file mode 100644
index af3cbfa31c..0000000000
--- a/src/widgets/dialogs/images/status-color.png
+++ /dev/null
Binary files differ
diff --git a/src/widgets/dialogs/images/status-gray-scale.png b/src/widgets/dialogs/images/status-gray-scale.png
deleted file mode 100644
index 4462588809..0000000000
--- a/src/widgets/dialogs/images/status-gray-scale.png
+++ /dev/null
Binary files differ
diff --git a/src/widgets/dialogs/images/view-page-multi-24.png b/src/widgets/dialogs/images/view-page-multi-24.png
deleted file mode 100644
index 87241472ae..0000000000
--- a/src/widgets/dialogs/images/view-page-multi-24.png
+++ /dev/null
Binary files differ
diff --git a/src/widgets/dialogs/images/view-page-multi-32.png b/src/widgets/dialogs/images/view-page-multi-32.png
deleted file mode 100644
index 130885a041..0000000000
--- a/src/widgets/dialogs/images/view-page-multi-32.png
+++ /dev/null
Binary files differ
diff --git a/src/widgets/dialogs/images/view-page-one-24.png b/src/widgets/dialogs/images/view-page-one-24.png
deleted file mode 100644
index 4c6457b892..0000000000
--- a/src/widgets/dialogs/images/view-page-one-24.png
+++ /dev/null
Binary files differ
diff --git a/src/widgets/dialogs/images/view-page-one-32.png b/src/widgets/dialogs/images/view-page-one-32.png
deleted file mode 100644
index 537193984e..0000000000
--- a/src/widgets/dialogs/images/view-page-one-32.png
+++ /dev/null
Binary files differ
diff --git a/src/widgets/dialogs/images/view-page-sided-24.png b/src/widgets/dialogs/images/view-page-sided-24.png
deleted file mode 100644
index 2131305c41..0000000000
--- a/src/widgets/dialogs/images/view-page-sided-24.png
+++ /dev/null
Binary files differ
diff --git a/src/widgets/dialogs/images/view-page-sided-32.png b/src/widgets/dialogs/images/view-page-sided-32.png
deleted file mode 100644
index e4d63f9992..0000000000
--- a/src/widgets/dialogs/images/view-page-sided-32.png
+++ /dev/null
Binary files differ
diff --git a/src/widgets/dialogs/images/zoom-in-24.png b/src/widgets/dialogs/images/zoom-in-24.png
deleted file mode 100644
index d29b142b6c..0000000000
--- a/src/widgets/dialogs/images/zoom-in-24.png
+++ /dev/null
Binary files differ
diff --git a/src/widgets/dialogs/images/zoom-in-32.png b/src/widgets/dialogs/images/zoom-in-32.png
deleted file mode 100644
index 34d70af37b..0000000000
--- a/src/widgets/dialogs/images/zoom-in-32.png
+++ /dev/null
Binary files differ
diff --git a/src/widgets/dialogs/images/zoom-out-24.png b/src/widgets/dialogs/images/zoom-out-24.png
deleted file mode 100644
index 19703474f8..0000000000
--- a/src/widgets/dialogs/images/zoom-out-24.png
+++ /dev/null
Binary files differ
diff --git a/src/widgets/dialogs/images/zoom-out-32.png b/src/widgets/dialogs/images/zoom-out-32.png
deleted file mode 100644
index b832206612..0000000000
--- a/src/widgets/dialogs/images/zoom-out-32.png
+++ /dev/null
Binary files differ
diff --git a/src/widgets/dialogs/qabstractpagesetupdialog.cpp b/src/widgets/dialogs/qabstractpagesetupdialog.cpp
deleted file mode 100644
index 7a0e0080b2..0000000000
--- a/src/widgets/dialogs/qabstractpagesetupdialog.cpp
+++ /dev/null
@@ -1,139 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the QtGui module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** GNU Lesser General Public License Usage
-** This file may be used under the terms of the GNU Lesser General Public
-** License version 2.1 as published by the Free Software Foundation and
-** appearing in the file LICENSE.LGPL included in the packaging of this
-** file. Please review the following information to ensure the GNU Lesser
-** General Public License version 2.1 requirements will be met:
-** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Nokia gives you certain additional
-** rights. These rights are described in the Nokia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU General
-** Public License version 3.0 as published by the Free Software Foundation
-** and appearing in the file LICENSE.GPL included in the packaging of this
-** file. Please review the following information to ensure the GNU General
-** Public License version 3.0 requirements will be met:
-** http://www.gnu.org/copyleft/gpl.html.
-**
-** Other Usage
-** Alternatively, this file may be used in accordance with the terms and
-** conditions contained in a signed written agreement between you and Nokia.
-**
-**
-**
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qabstractpagesetupdialog.h"
-#include "qabstractpagesetupdialog_p.h"
-
-#ifndef QT_NO_PRINTDIALOG
-
-#include <QtCore/qcoreapplication.h>
-#include <QtGui/qprinter.h>
-
-QT_BEGIN_NAMESPACE
-
-/*!
- \internal
- \class QAbstractPageSetupDialog
-
- \brief The QAbstractPageSetupDialog class provides a base for
- implementations of page setup dialogs.
-*/
-
-/*!
- Constructs the page setup dialog for the printer \a printer with
- \a parent as parent widget.
-*/
-QAbstractPageSetupDialog::QAbstractPageSetupDialog(QPrinter *printer, QWidget *parent)
- : QDialog(*(new QAbstractPageSetupDialogPrivate), parent)
-{
- Q_D(QAbstractPageSetupDialog);
- setWindowTitle(QCoreApplication::translate("QPrintPreviewDialog", "Page Setup"));
- d->setPrinter(printer);
-}
-
-/*!
- \internal
-*/
-QAbstractPageSetupDialog::QAbstractPageSetupDialog(QAbstractPageSetupDialogPrivate &ptr,
- QPrinter *printer, QWidget *parent)
- : QDialog(ptr, parent)
-{
- Q_D(QAbstractPageSetupDialog);
- setWindowTitle(QCoreApplication::translate("QPrintPreviewDialog", "Page Setup"));
- d->setPrinter(printer);
-}
-
-QAbstractPageSetupDialog::~QAbstractPageSetupDialog()
-{
- Q_D(QAbstractPageSetupDialog);
- if (d->opts & QPageSetupDialog::OwnsPrinter)
- delete d->printer;
-}
-
-/*!
- Returns the printer that this page setup dialog is operating on.
-*/
-QPrinter *QAbstractPageSetupDialog::printer()
-{
- Q_D(QAbstractPageSetupDialog);
- return d->printer;
-}
-
-void QAbstractPageSetupDialogPrivate::setPrinter(QPrinter *newPrinter)
-{
- if (newPrinter) {
- printer = newPrinter;
- } else {
- printer = new QPrinter;
- opts |= QPageSetupDialog::OwnsPrinter;
- }
-#ifndef Q_WS_X11
- if (printer->outputFormat() != QPrinter::NativeFormat)
- qWarning("QPageSetupDialog: Cannot be used on non-native printers");
-#endif
-}
-
-/*!
- \fn int QAbstractPageSetupDialog::exec()
-
- This virtual function is called to pop up the dialog. It must be
- reimplemented in subclasses.
-*/
-
-/*!
- \reimp
-*/
-void QAbstractPageSetupDialog::done(int result)
-{
- Q_D(QAbstractPageSetupDialog);
- QDialog::done(result);
- if (d->receiverToDisconnectOnClose) {
- disconnect(this, SIGNAL(accepted()),
- d->receiverToDisconnectOnClose, d->memberToDisconnectOnClose);
- d->receiverToDisconnectOnClose = 0;
- }
- d->memberToDisconnectOnClose.clear();
-
-}
-
-QT_END_NAMESPACE
-
-#endif // QT_NO_PRINTDIALOG
diff --git a/src/widgets/dialogs/qabstractpagesetupdialog.h b/src/widgets/dialogs/qabstractpagesetupdialog.h
deleted file mode 100644
index a867a8155b..0000000000
--- a/src/widgets/dialogs/qabstractpagesetupdialog.h
+++ /dev/null
@@ -1,82 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the QtGui module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** GNU Lesser General Public License Usage
-** This file may be used under the terms of the GNU Lesser General Public
-** License version 2.1 as published by the Free Software Foundation and
-** appearing in the file LICENSE.LGPL included in the packaging of this
-** file. Please review the following information to ensure the GNU Lesser
-** General Public License version 2.1 requirements will be met:
-** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Nokia gives you certain additional
-** rights. These rights are described in the Nokia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU General
-** Public License version 3.0 as published by the Free Software Foundation
-** and appearing in the file LICENSE.GPL included in the packaging of this
-** file. Please review the following information to ensure the GNU General
-** Public License version 3.0 requirements will be met:
-** http://www.gnu.org/copyleft/gpl.html.
-**
-** Other Usage
-** Alternatively, this file may be used in accordance with the terms and
-** conditions contained in a signed written agreement between you and Nokia.
-**
-**
-**
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QABSTRACTPAGESETUPDIALOG_H
-#define QABSTRACTPAGESETUPDIALOG_H
-
-#include <QtWidgets/qdialog.h>
-
-QT_BEGIN_HEADER
-
-QT_BEGIN_NAMESPACE
-
-QT_MODULE(Gui)
-
-#ifndef QT_NO_PRINTDIALOG
-
-class QAbstractPageSetupDialogPrivate;
-class QPrinter;
-
-// ### Qt 5: Remove this class
-class Q_WIDGETS_EXPORT QAbstractPageSetupDialog : public QDialog
-{
- Q_DECLARE_PRIVATE(QAbstractPageSetupDialog)
- Q_OBJECT
-
-public:
- explicit QAbstractPageSetupDialog(QPrinter *printer, QWidget *parent = 0);
- QAbstractPageSetupDialog(QAbstractPageSetupDialogPrivate &ptr,
- QPrinter *printer, QWidget *parent = 0);
- ~QAbstractPageSetupDialog();
-
- virtual int exec() = 0;
- void done(int result);
-
- QPrinter *printer();
-};
-
-#endif // QT_NO_PRINTDIALOG
-
-QT_END_NAMESPACE
-
-QT_END_HEADER
-
-#endif // QABSTRACTPAGESETUPDIALOG_H
diff --git a/src/widgets/dialogs/qabstractpagesetupdialog_p.h b/src/widgets/dialogs/qabstractpagesetupdialog_p.h
deleted file mode 100644
index 3a4711dd6b..0000000000
--- a/src/widgets/dialogs/qabstractpagesetupdialog_p.h
+++ /dev/null
@@ -1,88 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the QtGui module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** GNU Lesser General Public License Usage
-** This file may be used under the terms of the GNU Lesser General Public
-** License version 2.1 as published by the Free Software Foundation and
-** appearing in the file LICENSE.LGPL included in the packaging of this
-** file. Please review the following information to ensure the GNU Lesser
-** General Public License version 2.1 requirements will be met:
-** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Nokia gives you certain additional
-** rights. These rights are described in the Nokia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU General
-** Public License version 3.0 as published by the Free Software Foundation
-** and appearing in the file LICENSE.GPL included in the packaging of this
-** file. Please review the following information to ensure the GNU General
-** Public License version 3.0 requirements will be met:
-** http://www.gnu.org/copyleft/gpl.html.
-**
-** Other Usage
-** Alternatively, this file may be used in accordance with the terms and
-** conditions contained in a signed written agreement between you and Nokia.
-**
-**
-**
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QABSTRACTPAGESETUPDIALOG_P_H
-#define QABSTRACTPAGESETUPDIALOG_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// to version without notice, or even be removed.
-//
-// We mean it.
-//
-//
-
-#include "private/qdialog_p.h"
-
-#ifndef QT_NO_PRINTDIALOG
-
-#include "qbytearray.h"
-#include "qpagesetupdialog.h"
-#include "qpointer.h"
-
-QT_BEGIN_NAMESPACE
-
-class QPrinter;
-
-class QAbstractPageSetupDialogPrivate : public QDialogPrivate
-{
- Q_DECLARE_PUBLIC(QAbstractPageSetupDialog)
-
-public:
- QAbstractPageSetupDialogPrivate() : printer(0) {}
-
- void setPrinter(QPrinter *newPrinter);
-
- QPrinter *printer;
- QPageSetupDialog::PageSetupDialogOptions opts;
- QPointer<QObject> receiverToDisconnectOnClose;
- QByteArray memberToDisconnectOnClose;
-};
-
-QT_END_NAMESPACE
-
-#endif // QT_NO_PRINTDIALOG
-
-#endif // QABSTRACTPAGESETUPDIALOG_P_H
diff --git a/src/widgets/dialogs/qabstractprintdialog.cpp b/src/widgets/dialogs/qabstractprintdialog.cpp
deleted file mode 100644
index ff572dd9f3..0000000000
--- a/src/widgets/dialogs/qabstractprintdialog.cpp
+++ /dev/null
@@ -1,499 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the QtGui module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** GNU Lesser General Public License Usage
-** This file may be used under the terms of the GNU Lesser General Public
-** License version 2.1 as published by the Free Software Foundation and
-** appearing in the file LICENSE.LGPL included in the packaging of this
-** file. Please review the following information to ensure the GNU Lesser
-** General Public License version 2.1 requirements will be met:
-** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Nokia gives you certain additional
-** rights. These rights are described in the Nokia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU General
-** Public License version 3.0 as published by the Free Software Foundation
-** and appearing in the file LICENSE.GPL included in the packaging of this
-** file. Please review the following information to ensure the GNU General
-** Public License version 3.0 requirements will be met:
-** http://www.gnu.org/copyleft/gpl.html.
-**
-** Other Usage
-** Alternatively, this file may be used in accordance with the terms and
-** conditions contained in a signed written agreement between you and Nokia.
-**
-**
-**
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qabstractprintdialog_p.h"
-#include "qcoreapplication.h"
-#include "qprintdialog.h"
-#include "qprinter.h"
-#include "private/qprinter_p.h"
-
-#ifndef QT_NO_PRINTDIALOG
-
-QT_BEGIN_NAMESPACE
-
-// hack
-class QPrintDialogPrivate : public QAbstractPrintDialogPrivate
-{
-};
-
-/*!
- \class QAbstractPrintDialog
- \brief The QAbstractPrintDialog class provides a base implementation for
- print dialogs used to configure printers.
-
- \ingroup printing
-
- This class implements getter and setter functions that are used to
- customize settings shown in print dialogs, but it is not used directly.
- Use QPrintDialog to display a print dialog in your application.
-
- In Symbian, there is no support for printing. Hence, this dialog should not
- be used in Symbian.
-
- \sa QPrintDialog, QPrinter, {Printing with Qt}
-*/
-
-/*!
- \enum QAbstractPrintDialog::PrintRange
-
- Used to specify the print range selection option.
-
- \value AllPages All pages should be printed.
- \value Selection Only the selection should be printed.
- \value PageRange The specified page range should be printed.
- \value CurrentPage Only the currently visible page should be printed.
-
- \sa QPrinter::PrintRange
-*/
-
-/*!
- \enum QAbstractPrintDialog::PrintDialogOption
-
- Used to specify which parts of the print dialog should be visible.
-
- \value None None of the options are enabled.
- \value PrintToFile The print to file option is enabled.
- \value PrintSelection The print selection option is enabled.
- \value PrintPageRange The page range selection option is enabled.
- \value PrintShowPageSize Show the page size + margins page only if this is enabled.
- \value PrintCollateCopies The collate copies option is enabled
- \value PrintCurrentPage The print current page option is enabled
-
- This value is obsolete and does nothing since Qt 4.5:
-
- \value DontUseSheet In previous versions of Qt, exec() the print dialog
- would create a sheet by default the dialog was given a parent.
- This is no longer supported in Qt 4.5. If you want to use sheets, use
- QPrintDialog::open() instead.
-*/
-
-/*!
- Constructs an abstract print dialog for \a printer with \a parent
- as parent widget.
-*/
-QAbstractPrintDialog::QAbstractPrintDialog(QPrinter *printer, QWidget *parent)
- : QDialog(*(new QAbstractPrintDialogPrivate), parent)
-{
- Q_D(QAbstractPrintDialog);
- setWindowTitle(QCoreApplication::translate("QPrintDialog", "Print"));
- d->setPrinter(printer);
-}
-
-/*!
- \internal
-*/
-QAbstractPrintDialog::QAbstractPrintDialog(QAbstractPrintDialogPrivate &ptr,
- QPrinter *printer,
- QWidget *parent)
- : QDialog(ptr, parent)
-{
- Q_D(QAbstractPrintDialog);
- setWindowTitle(QCoreApplication::translate("QPrintDialog", "Print"));
- d->setPrinter(printer);
-}
-
-/*!
- \internal
-*/
-QAbstractPrintDialog::~QAbstractPrintDialog()
-{
- Q_D(QAbstractPrintDialog);
- if (d->ownsPrinter)
- delete d->printer;
-}
-
-/*!
- Sets the given \a option to be enabled if \a on is true;
- otherwise, clears the given \a option.
-
- \sa options, testOption()
-*/
-void QPrintDialog::setOption(PrintDialogOption option, bool on)
-{
- Q_D(QPrintDialog);
- if (!(d->options & option) != !on)
- setOptions(d->options ^ option);
-}
-
-/*!
- Returns true if the given \a option is enabled; otherwise, returns
- false.
-
- \sa options, setOption()
-*/
-bool QPrintDialog::testOption(PrintDialogOption option) const
-{
- Q_D(const QPrintDialog);
- return (d->options & option) != 0;
-}
-
-/*!
- \property QPrintDialog::options
- \brief the various options that affect the look and feel of the dialog
- \since 4.5
-
- By default, all options are disabled.
-
- Options should be set before showing the dialog. Setting them while the
- dialog is visible is not guaranteed to have an immediate effect on the
- dialog (depending on the option and on the platform).
-
- \sa setOption(), testOption()
-*/
-void QPrintDialog::setOptions(PrintDialogOptions options)
-{
- Q_D(QPrintDialog);
-
- PrintDialogOptions changed = (options ^ d->options);
- if (!changed)
- return;
-
- d->options = options;
-}
-
-QPrintDialog::PrintDialogOptions QPrintDialog::options() const
-{
- Q_D(const QPrintDialog);
- return d->options;
-}
-
-/*!
- \obsolete
-
- Use QPrintDialog::setOptions() instead.
-*/
-void QAbstractPrintDialog::setEnabledOptions(PrintDialogOptions options)
-{
- Q_D(QAbstractPrintDialog);
- d->options = options;
-}
-
-/*!
- \obsolete
-
- Use QPrintDialog::setOption(\a option, true) instead.
-*/
-void QAbstractPrintDialog::addEnabledOption(PrintDialogOption option)
-{
- Q_D(QAbstractPrintDialog);
- d->options |= option;
-}
-
-/*!
- \obsolete
-
- Use QPrintDialog::options() instead.
-*/
-QAbstractPrintDialog::PrintDialogOptions QAbstractPrintDialog::enabledOptions() const
-{
- Q_D(const QAbstractPrintDialog);
- return d->options;
-}
-
-/*!
- \obsolete
-
- Use QPrintDialog::testOption(\a option) instead.
-*/
-bool QAbstractPrintDialog::isOptionEnabled(PrintDialogOption option) const
-{
- Q_D(const QAbstractPrintDialog);
- return d->options & option;
-}
-
-/*!
- Sets the print range option in to be \a range.
- */
-void QAbstractPrintDialog::setPrintRange(PrintRange range)
-{
- Q_D(QAbstractPrintDialog);
- d->pd->printRange = QPrinter::PrintRange(range);
-}
-
-/*!
- Returns the print range.
-*/
-QAbstractPrintDialog::PrintRange QAbstractPrintDialog::printRange() const
-{
- Q_D(const QAbstractPrintDialog);
- return QAbstractPrintDialog::PrintRange(d->pd->printRange);
-}
-
-/*!
- Sets the page range in this dialog to be from \a min to \a max. This also
- enables the PrintPageRange option.
-*/
-void QAbstractPrintDialog::setMinMax(int min, int max)
-{
- Q_D(QAbstractPrintDialog);
- Q_ASSERT_X(min <= max, "QAbstractPrintDialog::setMinMax",
- "'min' must be less than or equal to 'max'");
- d->pd->minPage = min;
- d->pd->maxPage = max;
- d->options |= PrintPageRange;
-}
-
-/*!
- Returns the minimum page in the page range.
- By default, this value is set to 1.
-*/
-int QAbstractPrintDialog::minPage() const
-{
- Q_D(const QAbstractPrintDialog);
- return d->pd->minPage;
-}
-
-/*!
- Returns the maximum page in the page range. As of Qt 4.4, this
- function returns INT_MAX by default. Previous versions returned 1
- by default.
-*/
-int QAbstractPrintDialog::maxPage() const
-{
- Q_D(const QAbstractPrintDialog);
- return d->pd->maxPage;
-}
-
-/*!
- Sets the range in the print dialog to be from \a from to \a to.
-*/
-void QAbstractPrintDialog::setFromTo(int from, int to)
-{
- Q_D(QAbstractPrintDialog);
- Q_ASSERT_X(from <= to, "QAbstractPrintDialog::setFromTo",
- "'from' must be less than or equal to 'to'");
- d->pd->fromPage = from;
- d->pd->toPage = to;
-
- if (d->pd->minPage == 0 && d->pd->maxPage == 0)
- setMinMax(1, to);
-}
-
-/*!
- Returns the first page to be printed
- By default, this value is set to 0.
-*/
-int QAbstractPrintDialog::fromPage() const
-{
- Q_D(const QAbstractPrintDialog);
- return d->pd->fromPage;
-}
-
-/*!
- Returns the last page to be printed.
- By default, this value is set to 0.
-*/
-int QAbstractPrintDialog::toPage() const
-{
- Q_D(const QAbstractPrintDialog);
- return d->pd->toPage;
-}
-
-
-/*!
- Returns the printer that this printer dialog operates
- on.
-*/
-QPrinter *QAbstractPrintDialog::printer() const
-{
- Q_D(const QAbstractPrintDialog);
- return d->printer;
-}
-
-void QAbstractPrintDialogPrivate::setPrinter(QPrinter *newPrinter)
-{
- if (newPrinter) {
- printer = newPrinter;
- ownsPrinter = false;
- if (printer->fromPage() || printer->toPage())
- options |= QAbstractPrintDialog::PrintPageRange;
- } else {
- printer = new QPrinter;
- ownsPrinter = true;
- }
- pd = printer->d_func();
-}
-
-/*!
- \fn int QAbstractPrintDialog::exec()
-
- This virtual function is called to pop up the dialog. It must be
- reimplemented in subclasses.
-*/
-
-/*!
- \class QPrintDialog
-
- \brief The QPrintDialog class provides a dialog for specifying
- the printer's configuration.
-
- \ingroup standard-dialogs
- \ingroup printing
-
- The dialog allows users to change document-related settings, such
- as the paper size and orientation, type of print (color or
- grayscale), range of pages, and number of copies to print.
-
- Controls are also provided to enable users to choose from the
- printers available, including any configured network printers.
-
- Typically, QPrintDialog objects are constructed with a QPrinter
- object, and executed using the exec() function.
-
- \snippet doc/src/snippets/code/src_gui_dialogs_qabstractprintdialog.cpp 0
-
- If the dialog is accepted by the user, the QPrinter object is
- correctly configured for printing.
-
- \table
- \row
- \o \inlineimage plastique-printdialog.png
- \o \inlineimage plastique-printdialog-properties.png
- \endtable
-
- The printer dialog (shown above in Plastique style) enables access to common
- printing properties. On X11 platforms that use the CUPS printing system, the
- settings for each available printer can be modified via the dialog's
- \gui{Properties} push button.
-
- On Windows and Mac OS X, the native print dialog is used, which means that
- some QWidget and QDialog properties set on the dialog won't be respected.
- The native print dialog on Mac OS X does not support setting printer options,
- i.e. setOptions() and setOption() have no effect.
-
- In Qt 4.4, it was possible to use the static functions to show a sheet on
- Mac OS X. This is no longer supported in Qt 4.5. If you want this
- functionality, use QPrintDialog::open().
-
- \sa QPageSetupDialog, QPrinter, {Pixelator Example}, {Order Form Example},
- {Image Viewer Example}, {Scribble Example}
-*/
-
-/*!
- \fn QPrintDialog::QPrintDialog(QPrinter *printer, QWidget *parent)
-
- Constructs a new modal printer dialog for the given \a printer
- with the given \a parent.
-*/
-
-/*!
- \fn QPrintDialog::~QPrintDialog()
-
- Destroys the print dialog.
-*/
-
-/*!
- \fn int QPrintDialog::exec()
- \reimp
-*/
-
-/*!
- \since 4.4
-
- Set a list of widgets as \a tabs to be shown on the print dialog, if supported.
-
- Currently this option is only supported on X11.
-
- Setting the option tabs will transfer their ownership to the print dialog.
-*/
-void QAbstractPrintDialog::setOptionTabs(const QList<QWidget*> &tabs)
-{
- Q_D(QAbstractPrintDialog);
- d->setTabs(tabs);
-}
-
-/*!
-
- \fn void QPrintDialog::accepted(QPrinter *printer)
-
- This signal is emitted when the user accepts the values set in the print dialog.
- The \a printer parameter includes the printer that the settings were applied to.
-*/
-
-/*!
- \fn QPrinter *QPrintDialog::printer()
-
- Returns the printer that this printer dialog operates
- on. This can be useful when using the QPrintDialog::open() method.
-*/
-
-/*!
- Closes the dialog and sets its result code to \a result. If this dialog
- is shown with exec(), done() causes the local event loop to finish,
- and exec() to return \a result.
-
- \sa QDialog::done()
-*/
-void QPrintDialog::done(int result)
-{
- Q_D(QPrintDialog);
- QDialog::done(result);
- if (result == Accepted)
- emit accepted(printer());
- if (d->receiverToDisconnectOnClose) {
- disconnect(this, SIGNAL(accepted(QPrinter*)),
- d->receiverToDisconnectOnClose, d->memberToDisconnectOnClose);
- d->receiverToDisconnectOnClose = 0;
- }
- d->memberToDisconnectOnClose.clear();
-}
-
-/*!
- \since 4.5
- \overload
-
- Opens the dialog and connects its accepted() signal to the slot specified
- by \a receiver and \a member.
-
- The signal will be disconnected from the slot when the dialog is closed.
-*/
-void QPrintDialog::open(QObject *receiver, const char *member)
-{
- Q_D(QPrintDialog);
- connect(this, SIGNAL(accepted(QPrinter*)), receiver, member);
- d->receiverToDisconnectOnClose = receiver;
- d->memberToDisconnectOnClose = member;
- QDialog::open();
-}
-
-QT_END_NAMESPACE
-
-#endif // QT_NO_PRINTDIALOG
diff --git a/src/widgets/dialogs/qabstractprintdialog.h b/src/widgets/dialogs/qabstractprintdialog.h
deleted file mode 100644
index 29c05d544b..0000000000
--- a/src/widgets/dialogs/qabstractprintdialog.h
+++ /dev/null
@@ -1,130 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the QtGui module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** GNU Lesser General Public License Usage
-** This file may be used under the terms of the GNU Lesser General Public
-** License version 2.1 as published by the Free Software Foundation and
-** appearing in the file LICENSE.LGPL included in the packaging of this
-** file. Please review the following information to ensure the GNU Lesser
-** General Public License version 2.1 requirements will be met:
-** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Nokia gives you certain additional
-** rights. These rights are described in the Nokia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU General
-** Public License version 3.0 as published by the Free Software Foundation
-** and appearing in the file LICENSE.GPL included in the packaging of this
-** file. Please review the following information to ensure the GNU General
-** Public License version 3.0 requirements will be met:
-** http://www.gnu.org/copyleft/gpl.html.
-**
-** Other Usage
-** Alternatively, this file may be used in accordance with the terms and
-** conditions contained in a signed written agreement between you and Nokia.
-**
-**
-**
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QABSTRACTPRINTDIALOG_H
-#define QABSTRACTPRINTDIALOG_H
-
-#include <QtWidgets/qdialog.h>
-
-QT_BEGIN_HEADER
-
-QT_BEGIN_NAMESPACE
-
-QT_MODULE(Gui)
-
-#ifndef QT_NO_PRINTER
-
-class QAbstractPrintDialogPrivate;
-class QPrinter;
-
-// ### Qt 5: remove this class
-class Q_WIDGETS_EXPORT QAbstractPrintDialog : public QDialog
-{
- Q_DECLARE_PRIVATE(QAbstractPrintDialog)
- Q_OBJECT
-
-public:
- // Keep in sync with QPrinter::PrintRange
- enum PrintRange {
- AllPages,
- Selection,
- PageRange,
- CurrentPage
- };
-
- enum PrintDialogOption {
- None = 0x0000, // obsolete
- PrintToFile = 0x0001,
- PrintSelection = 0x0002,
- PrintPageRange = 0x0004,
- PrintShowPageSize = 0x0008,
- PrintCollateCopies = 0x0010,
- DontUseSheet = 0x0020,
- PrintCurrentPage = 0x0040
- };
-
- Q_DECLARE_FLAGS(PrintDialogOptions, PrintDialogOption)
-
-#ifndef QT_NO_PRINTDIALOG
- explicit QAbstractPrintDialog(QPrinter *printer, QWidget *parent = 0);
- ~QAbstractPrintDialog();
-
- virtual int exec() = 0;
-
- // obsolete
- void addEnabledOption(PrintDialogOption option);
- void setEnabledOptions(PrintDialogOptions options);
- PrintDialogOptions enabledOptions() const;
- bool isOptionEnabled(PrintDialogOption option) const;
-
- void setOptionTabs(const QList<QWidget*> &tabs);
-
- void setPrintRange(PrintRange range);
- PrintRange printRange() const;
-
- void setMinMax(int min, int max);
- int minPage() const;
- int maxPage() const;
-
- void setFromTo(int fromPage, int toPage);
- int fromPage() const;
- int toPage() const;
-
- QPrinter *printer() const;
-
-protected:
- QAbstractPrintDialog(QAbstractPrintDialogPrivate &ptr, QPrinter *printer, QWidget *parent = 0);
-
-private:
- Q_DISABLE_COPY(QAbstractPrintDialog)
-
-#endif // QT_NO_PRINTDIALOG
-};
-
-Q_DECLARE_OPERATORS_FOR_FLAGS(QAbstractPrintDialog::PrintDialogOptions)
-
-#endif // QT_NO_PRINTER
-
-QT_END_NAMESPACE
-
-QT_END_HEADER
-
-#endif // QABSTRACTPRINTDIALOG_H
diff --git a/src/widgets/dialogs/qabstractprintdialog_p.h b/src/widgets/dialogs/qabstractprintdialog_p.h
deleted file mode 100644
index 939e3f2804..0000000000
--- a/src/widgets/dialogs/qabstractprintdialog_p.h
+++ /dev/null
@@ -1,99 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the QtGui module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** GNU Lesser General Public License Usage
-** This file may be used under the terms of the GNU Lesser General Public
-** License version 2.1 as published by the Free Software Foundation and
-** appearing in the file LICENSE.LGPL included in the packaging of this
-** file. Please review the following information to ensure the GNU Lesser
-** General Public License version 2.1 requirements will be met:
-** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Nokia gives you certain additional
-** rights. These rights are described in the Nokia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU General
-** Public License version 3.0 as published by the Free Software Foundation
-** and appearing in the file LICENSE.GPL included in the packaging of this
-** file. Please review the following information to ensure the GNU General
-** Public License version 3.0 requirements will be met:
-** http://www.gnu.org/copyleft/gpl.html.
-**
-** Other Usage
-** Alternatively, this file may be used in accordance with the terms and
-** conditions contained in a signed written agreement between you and Nokia.
-**
-**
-**
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QABSTRACTPRINTDIALOG_P_H
-#define QABSTRACTPRINTDIALOG_P_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// version without notice, or even be removed.
-//
-// We mean it.
-//
-
-#include "private/qdialog_p.h"
-
-#ifndef QT_NO_PRINTDIALOG
-
-#include "QtWidgets/qabstractprintdialog.h"
-
-QT_BEGIN_NAMESPACE
-
-#ifndef QT_NO_PRINTER
-
-class QPrinter;
-class QPrinterPrivate;
-
-class QAbstractPrintDialogPrivate : public QDialogPrivate
-{
- Q_DECLARE_PUBLIC(QAbstractPrintDialog)
-
-public:
- QAbstractPrintDialogPrivate()
- : printer(0), pd(0), ownsPrinter(false)
- , options(QAbstractPrintDialog::PrintToFile | QAbstractPrintDialog::PrintPageRange |
- QAbstractPrintDialog::PrintCollateCopies | QAbstractPrintDialog::PrintShowPageSize)
- {
- }
-
- QPrinter *printer;
- QPrinterPrivate *pd;
- bool ownsPrinter;
- QPointer<QObject> receiverToDisconnectOnClose;
- QByteArray memberToDisconnectOnClose;
-
- QAbstractPrintDialog::PrintDialogOptions options;
-
- virtual void setTabs(const QList<QWidget *> &) {}
- void setPrinter(QPrinter *newPrinter);
-};
-
-#endif //QT_NO_PRINTER
-
-QT_END_NAMESPACE
-
-#endif // QT_NO_PRINTDIALOG
-
-#endif // QABSTRACTPRINTDIALOG_P_H
diff --git a/src/widgets/dialogs/qfscompleter_p.h b/src/widgets/dialogs/qfscompleter_p.h
index a449f1926d..e078542cdc 100644
--- a/src/widgets/dialogs/qfscompleter_p.h
+++ b/src/widgets/dialogs/qfscompleter_p.h
@@ -61,7 +61,7 @@ QT_BEGIN_NAMESPACE
/*!
QCompleter that can deal with QFileSystemModel
*/
-class QFSCompleter : public QCompleter {
+class Q_WIDGETS_EXPORT QFSCompleter : public QCompleter {
public:
QFSCompleter(QFileSystemModel *model, QObject *parent = 0)
: QCompleter(model, parent), proxyModel(0), sourceModel(model)
diff --git a/src/widgets/dialogs/qpagesetupdialog.cpp b/src/widgets/dialogs/qpagesetupdialog.cpp
deleted file mode 100644
index 658dfc1def..0000000000
--- a/src/widgets/dialogs/qpagesetupdialog.cpp
+++ /dev/null
@@ -1,240 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the QtGui module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** GNU Lesser General Public License Usage
-** This file may be used under the terms of the GNU Lesser General Public
-** License version 2.1 as published by the Free Software Foundation and
-** appearing in the file LICENSE.LGPL included in the packaging of this
-** file. Please review the following information to ensure the GNU Lesser
-** General Public License version 2.1 requirements will be met:
-** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Nokia gives you certain additional
-** rights. These rights are described in the Nokia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU General
-** Public License version 3.0 as published by the Free Software Foundation
-** and appearing in the file LICENSE.GPL included in the packaging of this
-** file. Please review the following information to ensure the GNU General
-** Public License version 3.0 requirements will be met:
-** http://www.gnu.org/copyleft/gpl.html.
-**
-** Other Usage
-** Alternatively, this file may be used in accordance with the terms and
-** conditions contained in a signed written agreement between you and Nokia.
-**
-**
-**
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include <private/qabstractpagesetupdialog_p.h>
-
-#ifndef QT_NO_PRINTDIALOG
-
-QT_BEGIN_NAMESPACE
-
-/*!
- \class QPageSetupDialog
-
- \brief The QPageSetupDialog class provides a configuration dialog
- for the page-related options on a printer.
-
- \ingroup standard-dialogs
- \ingroup printing
-
- On Windows and Mac OS X the page setup dialog is implemented using
- the native page setup dialogs.
-
- Note that on Windows and Mac OS X custom paper sizes won't be
- reflected in the native page setup dialogs. Additionally, custom
- page margins set on a QPrinter won't show in the native Mac OS X
- page setup dialog.
-
- In Symbian, there is no support for printing. Hence, this dialog should not
- be used in Symbian.
-
- \sa QPrinter, QPrintDialog
-*/
-
-
-/*!
- \fn QPageSetupDialog::QPageSetupDialog(QPrinter *printer, QWidget *parent)
-
- Constructs a page setup dialog that configures \a printer with \a
- parent as the parent widget.
-*/
-
-/*!
- \since 4.5
-
- \fn QPageSetupDialog::QPageSetupDialog(QWidget *parent)
-
- Constructs a page setup dialog that configures a default-constructed
- QPrinter with \a parent as the parent widget.
-
- \sa printer()
-*/
-
-/*!
- \fn QPrinter *QPageSetupDialog::printer()
-
- Returns the printer that was passed to the QPageSetupDialog
- constructor.
-*/
-
-// hack
-class QPageSetupDialogPrivate : public QAbstractPageSetupDialogPrivate
-{
-};
-
-/*!
- \enum QPageSetupDialog::PageSetupDialogOption
- \since 4.4
-
- Used to specify options to the page setup dialog
-
- This value is obsolete and does nothing since Qt 4.5:
-
- \value DontUseSheet In previous versions of QDialog::exec() the
- page setup dialog would create a sheet by default if the dialog
- was given a parent. This is no longer supported from Qt 4.5. If
- you want to use sheets, use QPageSetupDialog::open() instead.
-
- \omitvalue None
- \omitvalue OwnsPrinter
-*/
-
-/*!
- Sets the given \a option to be enabled if \a on is true;
- otherwise, clears the given \a option.
-
- \sa options, testOption()
-*/
-void QPageSetupDialog::setOption(PageSetupDialogOption option, bool on)
-{
- Q_D(QPageSetupDialog);
- if (!(d->opts & option) != !on)
- setOptions(d->opts ^ option);
-}
-
-/*!
- Returns true if the given \a option is enabled; otherwise, returns
- false.
-
- \sa options, setOption()
-*/
-bool QPageSetupDialog::testOption(PageSetupDialogOption option) const
-{
- Q_D(const QPageSetupDialog);
- return (d->opts & option) != 0;
-}
-
-/*!
- \property QPageSetupDialog::options
- \brief the various options that affect the look and feel of the dialog
- \since 4.5
-
- By default, all options are disabled.
-
- Options should be set before showing the dialog. Setting them while the
- dialog is visible is not guaranteed to have an immediate effect on the
- dialog (depending on the option and on the platform).
-
- \sa setOption(), testOption()
-*/
-void QPageSetupDialog::setOptions(PageSetupDialogOptions options)
-{
- Q_D(QPageSetupDialog);
-
- PageSetupDialogOptions changed = (options ^ d->opts);
- if (!changed)
- return;
-
- d->opts = options;
-}
-
-QPageSetupDialog::PageSetupDialogOptions QPageSetupDialog::options() const
-{
- Q_D(const QPageSetupDialog);
- return d->opts;
-}
-
-/*!
- \obsolete
-
- Use setOption(\a option, true) instead.
-*/
-void QPageSetupDialog::addEnabledOption(PageSetupDialogOption option)
-{
- setOption(option, true);
-}
-
-/*!
- \obsolete
-
- Use setOptions(\a options) instead.
-*/
-void QPageSetupDialog::setEnabledOptions(PageSetupDialogOptions options)
-{
- setOptions(options);
-}
-
-/*!
- \obsolete
-
- Use options() instead.
-*/
-QPageSetupDialog::PageSetupDialogOptions QPageSetupDialog::enabledOptions() const
-{
- return options();
-}
-
-/*!
- \obsolete
-
- Use testOption(\a option) instead.
-*/
-bool QPageSetupDialog::isOptionEnabled(PageSetupDialogOption option) const
-{
- return testOption(option);
-}
-
-/*!
- \overload
- \since 4.5
-
- Opens the dialog and connects its accepted() signal to the slot specified
- by \a receiver and \a member.
-
- The signal will be disconnected from the slot when the dialog is closed.
-*/
-void QPageSetupDialog::open(QObject *receiver, const char *member)
-{
- Q_D(QPageSetupDialog);
- connect(this, SIGNAL(accepted()), receiver, member);
- d->receiverToDisconnectOnClose = receiver;
- d->memberToDisconnectOnClose = member;
- QDialog::open();
-}
-
-#if defined(Q_WS_MAC) || defined(Q_OS_WIN)
-/*! \fn void QPageSetupDialog::setVisible(bool visible)
- \reimp
-*/
-#endif
-
-QT_END_NAMESPACE
-
-#endif
diff --git a/src/widgets/dialogs/qpagesetupdialog.h b/src/widgets/dialogs/qpagesetupdialog.h
deleted file mode 100644
index a41b46cf15..0000000000
--- a/src/widgets/dialogs/qpagesetupdialog.h
+++ /dev/null
@@ -1,112 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the QtGui module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** GNU Lesser General Public License Usage
-** This file may be used under the terms of the GNU Lesser General Public
-** License version 2.1 as published by the Free Software Foundation and
-** appearing in the file LICENSE.LGPL included in the packaging of this
-** file. Please review the following information to ensure the GNU Lesser
-** General Public License version 2.1 requirements will be met:
-** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Nokia gives you certain additional
-** rights. These rights are described in the Nokia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU General
-** Public License version 3.0 as published by the Free Software Foundation
-** and appearing in the file LICENSE.GPL included in the packaging of this
-** file. Please review the following information to ensure the GNU General
-** Public License version 3.0 requirements will be met:
-** http://www.gnu.org/copyleft/gpl.html.
-**
-** Other Usage
-** Alternatively, this file may be used in accordance with the terms and
-** conditions contained in a signed written agreement between you and Nokia.
-**
-**
-**
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QPAGESETUPDIALOG_H
-#define QPAGESETUPDIALOG_H
-
-#include <QtWidgets/qabstractpagesetupdialog.h>
-
-QT_BEGIN_HEADER
-
-QT_BEGIN_NAMESPACE
-
-QT_MODULE(Gui)
-
-#ifndef QT_NO_PRINTDIALOG
-
-class QPageSetupDialogPrivate;
-
-class Q_WIDGETS_EXPORT QPageSetupDialog : public QAbstractPageSetupDialog
-{
- Q_OBJECT
- Q_DECLARE_PRIVATE(QPageSetupDialog)
- Q_ENUMS(PageSetupDialogOption)
- Q_PROPERTY(PageSetupDialogOptions options READ options WRITE setOptions)
-
-public:
- enum PageSetupDialogOption {
- None = 0x00000000, // internal
- DontUseSheet = 0x00000001,
- OwnsPrinter = 0x80000000 // internal
- };
-
- Q_DECLARE_FLAGS(PageSetupDialogOptions, PageSetupDialogOption)
-
- explicit QPageSetupDialog(QPrinter *printer, QWidget *parent = 0);
- explicit QPageSetupDialog(QWidget *parent = 0);
-
- // obsolete
- void addEnabledOption(PageSetupDialogOption option);
- void setEnabledOptions(PageSetupDialogOptions options);
- PageSetupDialogOptions enabledOptions() const;
- bool isOptionEnabled(PageSetupDialogOption option) const;
-
- void setOption(PageSetupDialogOption option, bool on = true);
- bool testOption(PageSetupDialogOption option) const;
- void setOptions(PageSetupDialogOptions options);
- PageSetupDialogOptions options() const;
-
-#if defined(Q_WS_MAC) || defined(Q_OS_WIN)
- virtual void setVisible(bool visible);
-#endif
- virtual int exec();
-
-#ifdef Q_NO_USING_KEYWORD
-#ifndef Q_QDOC
- void open() { QDialog::open(); }
-#endif
-#else
- using QDialog::open;
-#endif
- void open(QObject *receiver, const char *member);
-
-#ifdef qdoc
- QPrinter *printer();
-#endif
-};
-
-#endif // QT_NO_PRINTDIALOG
-
-QT_END_NAMESPACE
-
-QT_END_HEADER
-
-#endif // QPAGESETUPDIALOG_H
diff --git a/src/widgets/dialogs/qpagesetupdialog_mac.mm b/src/widgets/dialogs/qpagesetupdialog_mac.mm
deleted file mode 100644
index 725520116a..0000000000
--- a/src/widgets/dialogs/qpagesetupdialog_mac.mm
+++ /dev/null
@@ -1,315 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the QtGui module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** GNU Lesser General Public License Usage
-** This file may be used under the terms of the GNU Lesser General Public
-** License version 2.1 as published by the Free Software Foundation and
-** appearing in the file LICENSE.LGPL included in the packaging of this
-** file. Please review the following information to ensure the GNU Lesser
-** General Public License version 2.1 requirements will be met:
-** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Nokia gives you certain additional
-** rights. These rights are described in the Nokia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU General
-** Public License version 3.0 as published by the Free Software Foundation
-** and appearing in the file LICENSE.GPL included in the packaging of this
-** file. Please review the following information to ensure the GNU General
-** Public License version 3.0 requirements will be met:
-** http://www.gnu.org/copyleft/gpl.html.
-**
-** Other Usage
-** Alternatively, this file may be used in accordance with the terms and
-** conditions contained in a signed written agreement between you and Nokia.
-**
-**
-**
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qpagesetupdialog.h"
-
-#include <qhash.h>
-#include <private/qapplication_p.h>
-#include <private/qprintengine_mac_p.h>
-#include <private/qabstractpagesetupdialog_p.h>
-
-#ifndef QT_NO_PRINTDIALOG
-
-QT_USE_NAMESPACE
-
-@class QT_MANGLE_NAMESPACE(QCocoaPageLayoutDelegate);
-
-@interface QT_MANGLE_NAMESPACE(QCocoaPageLayoutDelegate) : NSObject {
- QMacPrintEnginePrivate *pe;
-}
-- (id)initWithMacPrintEngine:(QMacPrintEnginePrivate *)printEngine;
-- (void)pageLayoutDidEnd:(NSPageLayout *)pageLayout
- returnCode:(int)returnCode contextInfo:(void *)contextInfo;
-@end
-
-@implementation QT_MANGLE_NAMESPACE(QCocoaPageLayoutDelegate)
-- (id)initWithMacPrintEngine:(QMacPrintEnginePrivate *)printEngine
-{
- self = [super init];
- if (self) {
- pe = printEngine;
- }
- return self;
-
-}
-- (void)pageLayoutDidEnd:(NSPageLayout *)pageLayout
- returnCode:(int)returnCode contextInfo:(void *)contextInfo
-{
- Q_UNUSED(pageLayout);
- QPageSetupDialog *dialog = static_cast<QPageSetupDialog *>(contextInfo);
- if (returnCode == NSOKButton) {
- PMRect paperRect;
- PMGetUnadjustedPaperRect(pe->format, &paperRect);
- pe->customSize = QSizeF(paperRect.right - paperRect.left,
- paperRect.bottom - paperRect.top);
- }
- dialog->done((returnCode == NSOKButton) ? QDialog::Accepted : QDialog::Rejected);
-}
-@end
-
-QT_BEGIN_NAMESPACE
-
-extern void macStartInterceptWindowTitle(QWidget *window);
-extern void macStopInterceptWindowTitle();
-
-class QPageSetupDialogPrivate : public QAbstractPageSetupDialogPrivate
-{
- Q_DECLARE_PUBLIC(QPageSetupDialog)
-
-public:
- QPageSetupDialogPrivate() : ep(0)
-#ifndef QT_MAC_USE_COCOA
- ,upp(0)
-#else
- ,pageLayout(0)
-#endif
- {}
-
- ~QPageSetupDialogPrivate() {
-#ifndef QT_MAC_USE_COCOA
- if (upp) {
- DisposePMSheetDoneUPP(upp);
- upp = 0;
- }
- QHash<PMPrintSession, QPageSetupDialogPrivate *>::iterator it = sheetCallbackMap.begin();
- while (it != sheetCallbackMap.end()) {
- if (it.value() == this) {
- it = sheetCallbackMap.erase(it);
- } else {
- ++it;
- }
- }
-#endif
- }
-
-#ifndef QT_MAC_USE_COCOA
- void openCarbonPageLayout(Qt::WindowModality modality);
- void closeCarbonPageLayout();
- static void pageSetupDialogSheetDoneCallback(PMPrintSession printSession, WindowRef /*documentWindow*/, Boolean accepted) {
- QPageSetupDialogPrivate *priv = sheetCallbackMap.value(printSession);
- if (!priv) {
- qWarning("%s:%d: QPageSetupDialog::exec: Could not retrieve data structure, "
- "you most likely now have an infinite modal loop", __FILE__, __LINE__);
- return;
- }
- priv->q_func()->done(accepted ? QDialog::Accepted : QDialog::Rejected);
- }
-#else
- void openCocoaPageLayout(Qt::WindowModality modality);
- void closeCocoaPageLayout();
-#endif
-
- QMacPrintEnginePrivate *ep;
-#ifndef QT_MAC_USE_COCOA
- PMSheetDoneUPP upp;
- static QHash<PMPrintSession, QPageSetupDialogPrivate*> sheetCallbackMap;
-#else
- NSPageLayout *pageLayout;
-#endif
-};
-
-#ifndef QT_MAC_USE_COCOA
-QHash<PMPrintSession, QPageSetupDialogPrivate*> QPageSetupDialogPrivate::sheetCallbackMap;
-void QPageSetupDialogPrivate::openCarbonPageLayout(Qt::WindowModality modality)
-{
- Q_Q(QPageSetupDialog);
- // If someone is reusing a QPrinter object, the end released all our old
- // information. In this case, we must reinitialize.
- if (ep->session == 0)
- ep->initialize();
-
- sheetCallbackMap.insert(ep->session, this);
- if (modality == Qt::ApplicationModal) {
- QWidget modal_widg(0, Qt::Window);
- modal_widg.setObjectName(QLatin1String(__FILE__ "__modal_dlg"));
- modal_widg.createWinId();
- QApplicationPrivate::enterModal(&modal_widg);
- QApplicationPrivate::native_modal_dialog_active = true;
- Boolean accepted;
- PMSessionPageSetupDialog(ep->session, ep->format, &accepted);
- QApplicationPrivate::leaveModal(&modal_widg);
- QApplicationPrivate::native_modal_dialog_active = false;
- pageSetupDialogSheetDoneCallback(ep->session, 0, accepted);
- } else {
- // Window Modal means that we use a sheet at the moment, there's no other way to do it correctly.
- if (!upp)
- upp = NewPMSheetDoneUPP(QPageSetupDialogPrivate::pageSetupDialogSheetDoneCallback);
- PMSessionUseSheets(ep->session, qt_mac_window_for(q->parentWidget()), upp);
- Boolean unused;
- PMSessionPageSetupDialog(ep->session, ep->format, &unused);
- }
-}
-
-void QPageSetupDialogPrivate::closeCarbonPageLayout()
-{
- // if the margins have changed, we have to use the margins from the new
- // PMFormat object
- if (q_func()->result() == QDialog::Accepted) {
- PMPaper paper;
- PMPaperMargins margins;
- PMGetPageFormatPaper(ep->format, &paper);
- PMPaperGetMargins(paper, &margins);
- ep->leftMargin = margins.left;
- ep->topMargin = margins.top;
- ep->rightMargin = margins.right;
- ep->bottomMargin = margins.bottom;
-
- PMRect paperRect;
- PMGetUnadjustedPaperRect(ep->format, &paperRect);
- ep->customSize = QSizeF(paperRect.right - paperRect.left,
- paperRect.bottom - paperRect.top);
- }
- sheetCallbackMap.remove(ep->session);
-}
-#else
-void QPageSetupDialogPrivate::openCocoaPageLayout(Qt::WindowModality modality)
-{
- Q_Q(QPageSetupDialog);
-
- // If someone is reusing a QPrinter object, the end released all our old
- // information. In this case, we must reinitialize.
- if (ep->session == 0)
- ep->initialize();
-
- macStartInterceptWindowTitle(q);
- pageLayout = [NSPageLayout pageLayout];
- // Keep a copy to this since we plan on using it for a bit.
- [pageLayout retain];
- QT_MANGLE_NAMESPACE(QCocoaPageLayoutDelegate) *delegate = [[QT_MANGLE_NAMESPACE(QCocoaPageLayoutDelegate) alloc] initWithMacPrintEngine:ep];
-
- if (modality == Qt::ApplicationModal) {
- int rval = [pageLayout runModalWithPrintInfo:ep->printInfo];
- [delegate pageLayoutDidEnd:pageLayout returnCode:rval contextInfo:q];
- } else {
- Q_ASSERT(q->parentWidget());
- [pageLayout beginSheetWithPrintInfo:ep->printInfo
- modalForWindow:qt_mac_window_for(q->parentWidget())
- delegate:delegate
- didEndSelector:@selector(pageLayoutDidEnd:returnCode:contextInfo:)
- contextInfo:q];
- }
-
- macStopInterceptWindowTitle();
-}
-
-void QPageSetupDialogPrivate::closeCocoaPageLayout()
-{
- // NSPageLayout can change the session behind our back and then our
- // d->ep->session object will become a dangling pointer. Update it
- // based on the "current" session
- ep->session = static_cast<PMPrintSession>([ep->printInfo PMPrintSession]);
-
- [pageLayout release];
- pageLayout = 0;
-}
-#endif
-
-QPageSetupDialog::QPageSetupDialog(QPrinter *printer, QWidget *parent)
- : QAbstractPageSetupDialog(*(new QPageSetupDialogPrivate), printer, parent)
-{
- Q_D(QPageSetupDialog);
- d->ep = static_cast<QMacPrintEngine *>(d->printer->paintEngine())->d_func();
-}
-
-QPageSetupDialog::QPageSetupDialog(QWidget *parent)
- : QAbstractPageSetupDialog(*(new QPageSetupDialogPrivate), 0, parent)
-{
- Q_D(QPageSetupDialog);
- d->ep = static_cast<QMacPrintEngine *>(d->printer->paintEngine())->d_func();
-}
-
-void QPageSetupDialog::setVisible(bool visible)
-{
- Q_D(QPageSetupDialog);
-
- if (d->printer->outputFormat() != QPrinter::NativeFormat)
- return;
-
-#ifndef QT_MAC_USE_COCOA
- bool isCurrentlyVisible = d->sheetCallbackMap.contains(d->ep->session);
-#else
- bool isCurrentlyVisible = (d->pageLayout != 0);
-#endif
- if (!visible == !isCurrentlyVisible)
- return;
-
- if (visible) {
-#ifndef QT_MAC_USE_COCOA
- d->openCarbonPageLayout(parentWidget() ? Qt::WindowModal
- : Qt::ApplicationModal);
-#else
- d->openCocoaPageLayout(parentWidget() ? Qt::WindowModal
- : Qt::ApplicationModal);
-#endif
- return;
- } else {
-#ifndef QT_MAC_USE_COCOA
- d->closeCarbonPageLayout();
-#else
- if (d->pageLayout) {
- d->closeCocoaPageLayout();
- return;
- }
-#endif
- }
-}
-
-int QPageSetupDialog::exec()
-{
- Q_D(QPageSetupDialog);
-
- if (d->printer->outputFormat() != QPrinter::NativeFormat)
- return Rejected;
-
-#ifndef QT_MAC_USE_COCOA
- d->openCarbonPageLayout(Qt::ApplicationModal);
- d->closeCarbonPageLayout();
-#else
- QMacCocoaAutoReleasePool pool;
- d->openCocoaPageLayout(Qt::ApplicationModal);
- d->closeCocoaPageLayout();
-#endif
- return result();
-}
-
-QT_END_NAMESPACE
-
-#endif /* QT_NO_PRINTDIALOG */
diff --git a/src/widgets/dialogs/qpagesetupdialog_unix.cpp b/src/widgets/dialogs/qpagesetupdialog_unix.cpp
deleted file mode 100644
index ff54e0a19b..0000000000
--- a/src/widgets/dialogs/qpagesetupdialog_unix.cpp
+++ /dev/null
@@ -1,620 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the QtGui module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** GNU Lesser General Public License Usage
-** This file may be used under the terms of the GNU Lesser General Public
-** License version 2.1 as published by the Free Software Foundation and
-** appearing in the file LICENSE.LGPL included in the packaging of this
-** file. Please review the following information to ensure the GNU Lesser
-** General Public License version 2.1 requirements will be met:
-** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Nokia gives you certain additional
-** rights. These rights are described in the Nokia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU General
-** Public License version 3.0 as published by the Free Software Foundation
-** and appearing in the file LICENSE.GPL included in the packaging of this
-** file. Please review the following information to ensure the GNU General
-** Public License version 3.0 requirements will be met:
-** http://www.gnu.org/copyleft/gpl.html.
-**
-** Other Usage
-** Alternatively, this file may be used in accordance with the terms and
-** conditions contained in a signed written agreement between you and Nokia.
-**
-**
-**
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qpagesetupdialog.h"
-
-#ifndef QT_NO_PRINTDIALOG
-#include "qpagesetupdialog_unix_p.h"
-
-#include "qpainter.h"
-#include "qprintdialog.h"
-#include "qdialogbuttonbox.h"
-#include <ui_qpagesetupwidget.h>
-
-#include <QtGui/qprinter.h>
-#include <private/qabstractpagesetupdialog_p.h>
-#include <private/qprinter_p.h>
-
-#if !defined(QT_NO_CUPS) && !defined(QT_NO_LIBRARY)
-# include <private/qcups_p.h>
-# include <cups/cups.h>
-# include <private/qprintengine_pdf_p.h>
-#endif
-
-
-QT_BEGIN_NAMESPACE
-
-QSizeF qt_printerPaperSize(QPrinter::Orientation, QPrinter::PaperSize, QPrinter::Unit, int);
-
-// Disabled until we have support for papersources on unix
-// #define PSD_ENABLE_PAPERSOURCE
-
-static void populatePaperSizes(QComboBox* cb)
-{
- cb->addItem(QPrintDialog::tr("A0"), QPrinter::A0);
- cb->addItem(QPrintDialog::tr("A1"), QPrinter::A1);
- cb->addItem(QPrintDialog::tr("A2"), QPrinter::A2);
- cb->addItem(QPrintDialog::tr("A3"), QPrinter::A3);
- cb->addItem(QPrintDialog::tr("A4"), QPrinter::A4);
- cb->addItem(QPrintDialog::tr("A5"), QPrinter::A5);
- cb->addItem(QPrintDialog::tr("A6"), QPrinter::A6);
- cb->addItem(QPrintDialog::tr("A7"), QPrinter::A7);
- cb->addItem(QPrintDialog::tr("A8"), QPrinter::A8);
- cb->addItem(QPrintDialog::tr("A9"), QPrinter::A9);
- cb->addItem(QPrintDialog::tr("B0"), QPrinter::B0);
- cb->addItem(QPrintDialog::tr("B1"), QPrinter::B1);
- cb->addItem(QPrintDialog::tr("B2"), QPrinter::B2);
- cb->addItem(QPrintDialog::tr("B3"), QPrinter::B3);
- cb->addItem(QPrintDialog::tr("B4"), QPrinter::B4);
- cb->addItem(QPrintDialog::tr("B5"), QPrinter::B5);
- cb->addItem(QPrintDialog::tr("B6"), QPrinter::B6);
- cb->addItem(QPrintDialog::tr("B7"), QPrinter::B7);
- cb->addItem(QPrintDialog::tr("B8"), QPrinter::B8);
- cb->addItem(QPrintDialog::tr("B9"), QPrinter::B9);
- cb->addItem(QPrintDialog::tr("B10"), QPrinter::B10);
- cb->addItem(QPrintDialog::tr("C5E"), QPrinter::C5E);
- cb->addItem(QPrintDialog::tr("DLE"), QPrinter::DLE);
- cb->addItem(QPrintDialog::tr("Executive"), QPrinter::Executive);
- cb->addItem(QPrintDialog::tr("Folio"), QPrinter::Folio);
- cb->addItem(QPrintDialog::tr("Ledger"), QPrinter::Ledger);
- cb->addItem(QPrintDialog::tr("Legal"), QPrinter::Legal);
- cb->addItem(QPrintDialog::tr("Letter"), QPrinter::Letter);
- cb->addItem(QPrintDialog::tr("Tabloid"), QPrinter::Tabloid);
- cb->addItem(QPrintDialog::tr("US Common #10 Envelope"), QPrinter::Comm10E);
- cb->addItem(QPrintDialog::tr("Custom"), QPrinter::Custom);
-}
-
-
-static QSizeF sizeForOrientation(QPrinter::Orientation orientation, const QSizeF &size)
-{
- return (orientation == QPrinter::Portrait) ? size : QSizeF(size.height(), size.width());
-}
-
-#ifdef PSD_ENABLE_PAPERSOURCE
-static const char *paperSourceNames[] = {
- "Only One",
- "Lower",
- "Middle",
- "Manual",
- "Envelope",
- "Envelope manual",
- "Auto",
- "Tractor",
- "Small format",
- "Large format",
- "Large capacity",
- "Cassette",
- "Form source",
- 0
-};
-
-struct PaperSourceNames
-{
- PaperSourceNames(const char *nam, QPrinter::PaperSource ps)
- : paperSource(ps), name(nam) {}
- QPrinter::PaperSource paperSource;
- const char *name;
-};
-#endif
-
-
-class QPagePreview : public QWidget
-{
-public:
- QPagePreview(QWidget *parent) : QWidget(parent)
- {
- setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
- setMinimumSize(50, 50);
- }
-
- void setPaperSize(const QSizeF& size)
- {
- m_size = size;
- update();
- }
-
- void setMargins(qreal left, qreal top, qreal right, qreal bottom)
- {
- m_left = left;
- m_top = top;
- m_right = right;
- m_bottom = bottom;
- update();
- }
-
-protected:
- void paintEvent(QPaintEvent *)
- {
- QRect pageRect;
- QSizeF adjustedSize(m_size);
- adjustedSize.scale(width()-10, height()-10, Qt::KeepAspectRatio);
- pageRect = QRect(QPoint(0,0), adjustedSize.toSize());
- pageRect.moveCenter(rect().center());
-
- qreal width_factor = pageRect.width() / m_size.width();
- qreal height_factor = pageRect.height() / m_size.height();
- int leftSize = qRound(m_left*width_factor);
- int topSize = qRound(m_top*height_factor);
- int rightSize = qRound(m_right*width_factor);
- int bottomSize = qRound(m_bottom * height_factor);
- QRect marginRect(pageRect.x()+leftSize,
- pageRect.y()+topSize,
- pageRect.width() - (leftSize+rightSize+1),
- pageRect.height() - (topSize+bottomSize+1));
-
- QPainter p(this);
- QColor shadow(palette().mid().color());
- for (int i=1; i<6; ++i) {
- shadow.setAlpha(180-i*30);
- QRect offset(pageRect.adjusted(i, i, i, i));
- p.setPen(shadow);
- p.drawLine(offset.left(), offset.bottom(), offset.right(), offset.bottom());
- p.drawLine(offset.right(), offset.top(), offset.right(), offset.bottom()-1);
- }
- p.fillRect(pageRect, palette().light());
-
- if (marginRect.isValid()) {
- p.setPen(QPen(palette().color(QPalette::Dark), 0, Qt::DotLine));
- p.drawRect(marginRect);
-
- marginRect.adjust(2, 2, -1, -1);
- p.setClipRect(marginRect);
- QFont font;
- font.setPointSizeF(font.pointSizeF()*0.25);
- p.setFont(font);
- p.setPen(palette().color(QPalette::Dark));
- QString text(QLatin1String("Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi."));
- for (int i=0; i<3; ++i)
- text += text;
- p.drawText(marginRect, Qt::TextWordWrap|Qt::AlignVCenter, text);
- }
- }
-
-private:
- // all these are in points
- qreal m_left, m_top, m_right, m_bottom;
- QSizeF m_size;
-};
-
-
-class QPageSetupDialogPrivate : public QAbstractPageSetupDialogPrivate
-{
- Q_DECLARE_PUBLIC(QPageSetupDialog)
-
-public:
- ~QPageSetupDialogPrivate();
- void init();
-
- QPageSetupWidget *widget;
-#if !defined(QT_NO_CUPS) && !defined(QT_NO_LIBRARY)
- QCUPSSupport *cups;
-#endif
-};
-
-QPageSetupDialogPrivate::~QPageSetupDialogPrivate()
-{
-#if !defined(QT_NO_CUPS) && !defined(QT_NO_LIBRARY)
- delete cups;
-#endif
-}
-
-void QPageSetupDialogPrivate::init()
-{
- Q_Q(QPageSetupDialog);
-
- widget = new QPageSetupWidget(q);
- widget->setPrinter(printer);
-#if !defined(QT_NO_CUPS) && !defined(QT_NO_LIBRARY)
- if (printer->outputFormat() == QPrinter::NativeFormat && QCUPSSupport::isAvailable()) {
- cups = new QCUPSSupport;
- widget->selectPrinter(cups);
- } else {
- cups = 0;
- }
-#endif
-
- QDialogButtonBox *buttons = new QDialogButtonBox(QDialogButtonBox::Ok
- | QDialogButtonBox::Cancel,
- Qt::Horizontal, q);
- QObject::connect(buttons, SIGNAL(accepted()), q, SLOT(accept()));
- QObject::connect(buttons, SIGNAL(rejected()), q, SLOT(reject()));
-
- QVBoxLayout *lay = new QVBoxLayout(q);
- lay->addWidget(widget);
- lay->addWidget(buttons);
-}
-
-QPageSetupWidget::QPageSetupWidget(QWidget *parent)
- : QWidget(parent),
- m_printer(0),
- m_blockSignals(false),
- m_cups(0)
-{
- widget.setupUi(this);
-
- QString suffix = (QLocale::system().measurementSystem() == QLocale::ImperialSystem)
- ? QString::fromLatin1(" in")
- : QString::fromLatin1(" mm");
- widget.topMargin->setSuffix(suffix);
- widget.bottomMargin->setSuffix(suffix);
- widget.leftMargin->setSuffix(suffix);
- widget.rightMargin->setSuffix(suffix);
- widget.paperWidth->setSuffix(suffix);
- widget.paperHeight->setSuffix(suffix);
-
- QVBoxLayout *lay = new QVBoxLayout(widget.preview);
- widget.preview->setLayout(lay);
- m_pagePreview = new QPagePreview(widget.preview);
- lay->addWidget(m_pagePreview);
-
- setAttribute(Qt::WA_WState_Polished, false);
-
-#ifdef PSD_ENABLE_PAPERSOURCE
- for (int i=0; paperSourceNames[i]; ++i)
- widget.paperSource->insertItem(paperSourceNames[i]);
-#else
- widget.paperSourceLabel->setVisible(false);
- widget.paperSource->setVisible(false);
-#endif
-
- widget.reverseLandscape->setVisible(false);
- widget.reversePortrait->setVisible(false);
-
- populatePaperSizes(widget.paperSize);
-
- QStringList units;
- units << tr("Centimeters (cm)") << tr("Millimeters (mm)") << tr("Inches (in)") << tr("Points (pt)");
- widget.unit->addItems(units);
- connect(widget.unit, SIGNAL(activated(int)), this, SLOT(unitChanged(int)));
- widget.unit->setCurrentIndex((QLocale::system().measurementSystem() == QLocale::ImperialSystem) ? 2 : 1);
-
- connect(widget.paperSize, SIGNAL(currentIndexChanged(int)), this, SLOT(_q_paperSizeChanged()));
- connect(widget.paperWidth, SIGNAL(valueChanged(double)), this, SLOT(_q_paperSizeChanged()));
- connect(widget.paperHeight, SIGNAL(valueChanged(double)), this, SLOT(_q_paperSizeChanged()));
-
- connect(widget.leftMargin, SIGNAL(valueChanged(double)), this, SLOT(setLeftMargin(double)));
- connect(widget.topMargin, SIGNAL(valueChanged(double)), this, SLOT(setTopMargin(double)));
- connect(widget.rightMargin, SIGNAL(valueChanged(double)), this, SLOT(setRightMargin(double)));
- connect(widget.bottomMargin, SIGNAL(valueChanged(double)), this, SLOT(setBottomMargin(double)));
-
- connect(widget.portrait, SIGNAL(clicked()), this, SLOT(_q_pageOrientationChanged()));
- connect(widget.landscape, SIGNAL(clicked()), this, SLOT(_q_pageOrientationChanged()));
-}
-
-void QPageSetupWidget::setPrinter(QPrinter *printer)
-{
- m_printer = printer;
- m_blockSignals = true;
- selectPdfPsPrinter(printer);
- printer->getPageMargins(&m_leftMargin, &m_topMargin, &m_rightMargin, &m_bottomMargin, QPrinter::Point);
- unitChanged(widget.unit->currentIndex());
- m_pagePreview->setMargins(m_leftMargin, m_topMargin, m_rightMargin, m_bottomMargin);
- m_paperSize = printer->paperSize(QPrinter::Point);
- widget.paperWidth->setValue(m_paperSize.width() / m_currentMultiplier);
- widget.paperHeight->setValue(m_paperSize.height() / m_currentMultiplier);
-
- widget.landscape->setChecked(printer->orientation() == QPrinter::Landscape);
-
-#ifdef PSD_ENABLE_PAPERSOURCE
- widget.paperSource->setCurrentItem(printer->paperSource());
-#endif
- Q_ASSERT(m_blockSignals);
- m_blockSignals = false;
- _q_paperSizeChanged();
-}
-
-// set gui data on printer
-void QPageSetupWidget::setupPrinter() const
-{
- QPrinter::Orientation orientation = widget.portrait->isChecked()
- ? QPrinter::Portrait
- : QPrinter::Landscape;
- m_printer->setOrientation(orientation);
- // paper format
- QVariant val = widget.paperSize->itemData(widget.paperSize->currentIndex());
- int ps = m_printer->pageSize();
- if (val.type() == QVariant::Int) {
- ps = val.toInt();
- }
-#if !defined(QT_NO_CUPS) && !defined(QT_NO_LIBRARY)
- else if (m_cups && QCUPSSupport::isAvailable() && m_cups->currentPPD()) {
- QByteArray cupsPageSize = val.toByteArray();
- QPrintEngine *engine = m_printer->printEngine();
- engine->setProperty(PPK_CupsStringPageSize, QString::fromLatin1(cupsPageSize));
- engine->setProperty(PPK_CupsOptions, m_cups->options());
-
- QRect pageRect = m_cups->pageRect(cupsPageSize);
- engine->setProperty(PPK_CupsPageRect, pageRect);
-
- QRect paperRect = m_cups->paperRect(cupsPageSize);
- engine->setProperty(PPK_CupsPaperRect, paperRect);
-
- for(ps = 0; ps < QPrinter::NPageSize; ++ps) {
- QPdf::PaperSize size = QPdf::paperSize(QPrinter::PaperSize(ps));
- if (size.width == paperRect.width() && size.height == paperRect.height())
- break;
- }
- }
-#endif
- if (ps == QPrinter::Custom)
- m_printer->setPaperSize(sizeForOrientation(orientation, m_paperSize), QPrinter::Point);
- else
- m_printer->setPaperSize(static_cast<QPrinter::PaperSize>(ps));
-
-#ifdef PSD_ENABLE_PAPERSOURCE
- m_printer->setPaperSource((QPrinter::PaperSource)widget.paperSource->currentIndex());
-#endif
- m_printer->setPageMargins(m_leftMargin, m_topMargin, m_rightMargin, m_bottomMargin, QPrinter::Point);
-
-}
-
-void QPageSetupWidget::selectPrinter(QCUPSSupport *cups)
-{
- m_cups = cups;
- widget.paperSize->clear();
-#if !defined(QT_NO_CUPS) && !defined(QT_NO_LIBRARY)
- if (m_cups && QCUPSSupport::isAvailable()) {
- const ppd_option_t* pageSizes = m_cups->pageSizes();
- const int numChoices = pageSizes ? pageSizes->num_choices : 0;
-
- int cupsDefaultSize = 0;
- QSize qtPreferredSize = m_printer->paperSize(QPrinter::Point).toSize();
- bool preferredSizeMatched = false;
- for (int i = 0; i < numChoices; ++i) {
- widget.paperSize->addItem(QString::fromLocal8Bit(pageSizes->choices[i].text), QByteArray(pageSizes->choices[i].choice));
- if (static_cast<int>(pageSizes->choices[i].marked) == 1)
- cupsDefaultSize = i;
- if (m_printer->d_func()->hasUserSetPageSize) {
- QRect cupsPaperSize = m_cups->paperRect(pageSizes->choices[i].choice);
- QSize diff = cupsPaperSize.size() - qtPreferredSize;
- if (qAbs(diff.width()) < 5 && qAbs(diff.height()) < 5) {
- widget.paperSize->setCurrentIndex(i);
- preferredSizeMatched = true;
- }
- }
- }
- if (!preferredSizeMatched)
- widget.paperSize->setCurrentIndex(cupsDefaultSize);
- if (m_printer->d_func()->hasCustomPageMargins) {
- m_printer->getPageMargins(&m_leftMargin, &m_topMargin, &m_rightMargin, &m_bottomMargin, QPrinter::Point);
- } else {
- QByteArray cupsPaperSizeChoice = widget.paperSize->itemData(widget.paperSize->currentIndex()).toByteArray();
- QRect paper = m_cups->paperRect(cupsPaperSizeChoice);
- QRect content = m_cups->pageRect(cupsPaperSizeChoice);
-
- m_leftMargin = content.x() - paper.x();
- m_topMargin = content.y() - paper.y();
- m_rightMargin = paper.right() - content.right();
- m_bottomMargin = paper.bottom() - content.bottom();
- }
- }
-#endif
- if (widget.paperSize->count() == 0) {
- populatePaperSizes(widget.paperSize);
- widget.paperSize->setCurrentIndex(widget.paperSize->findData(
- QLocale::system().measurementSystem() == QLocale::ImperialSystem ? QPrinter::Letter : QPrinter::A4));
- }
-
- unitChanged(widget.unit->currentIndex());
- m_pagePreview->setMargins(m_leftMargin, m_topMargin, m_rightMargin, m_bottomMargin);
-}
-
-void QPageSetupWidget::selectPdfPsPrinter(const QPrinter *p)
-{
- m_cups = 0;
- widget.paperSize->clear();
- populatePaperSizes(widget.paperSize);
- widget.paperSize->setCurrentIndex(widget.paperSize->findData(p->paperSize()));
-
- m_leftMargin = 90;
- m_topMargin = 72;
- m_bottomMargin = 72;
- m_rightMargin = 90;
- unitChanged(widget.unit->currentIndex());
- m_pagePreview->setMargins(m_leftMargin, m_topMargin, m_rightMargin, m_bottomMargin);
-}
-
-// Updates size/preview after the combobox has been changed.
-void QPageSetupWidget::_q_paperSizeChanged()
-{
- QVariant val = widget.paperSize->itemData(widget.paperSize->currentIndex());
- int index = m_printer->pageSize();
- if (val.type() == QVariant::Int) {
- index = val.toInt();
- }
-
- if (m_blockSignals) return;
- m_blockSignals = true;
-
- QPrinter::PaperSize size = QPrinter::PaperSize(index);
- QPrinter::Orientation orientation = widget.portrait->isChecked()
- ? QPrinter::Portrait
- : QPrinter::Landscape;
-
- bool custom = size == QPrinter::Custom;
-
-#if !defined(QT_NO_CUPS) && !defined(QT_NO_LIBRARY)
- custom = custom ? !m_cups : custom;
-#endif
-
- widget.paperWidth->setEnabled(custom);
- widget.paperHeight->setEnabled(custom);
- widget.widthLabel->setEnabled(custom);
- widget.heightLabel->setEnabled(custom);
- if (custom) {
- m_paperSize.setWidth( widget.paperWidth->value() * m_currentMultiplier);
- m_paperSize.setHeight( widget.paperHeight->value() * m_currentMultiplier);
- m_pagePreview->setPaperSize(m_paperSize);
- } else {
- Q_ASSERT(m_printer);
-#if !defined(QT_NO_CUPS) && !defined(QT_NO_LIBRARY)
- if (m_cups) { // combobox is filled with cups based data
- QByteArray cupsPageSize = widget.paperSize->itemData(widget.paperSize->currentIndex()).toByteArray();
- m_paperSize = m_cups->paperRect(cupsPageSize).size();
- if (orientation == QPrinter::Landscape)
- m_paperSize = QSizeF(m_paperSize.height(), m_paperSize.width()); // swap
- }
- else
-#endif
- m_paperSize = qt_printerPaperSize(orientation, size, QPrinter::Point, 1);
-
- m_pagePreview->setPaperSize(m_paperSize);
- widget.paperWidth->setValue(m_paperSize.width() / m_currentMultiplier);
- widget.paperHeight->setValue(m_paperSize.height() / m_currentMultiplier);
- }
- m_blockSignals = false;
-}
-
-void QPageSetupWidget::_q_pageOrientationChanged()
-{
- if (QPrinter::PaperSize(widget.paperSize->currentIndex()) == QPrinter::Custom) {
- double tmp = widget.paperWidth->value();
- widget.paperWidth->setValue(widget.paperHeight->value());
- widget.paperHeight->setValue(tmp);
- }
- _q_paperSizeChanged();
-}
-
-extern double qt_multiplierForUnit(QPrinter::Unit unit, int resolution);
-
-void QPageSetupWidget::unitChanged(int item)
-{
- QString suffix;
- switch(item) {
- case 0:
- m_currentMultiplier = 10 * qt_multiplierForUnit(QPrinter::Millimeter, 1);
- suffix = QString::fromLatin1(" cm");
- break;
- case 2:
- m_currentMultiplier = qt_multiplierForUnit(QPrinter::Inch, 1);
- suffix = QString::fromLatin1(" in");
- break;
- case 3:
- m_currentMultiplier = qt_multiplierForUnit(QPrinter::Point, 1);
- suffix = QString::fromLatin1(" pt");
- break;
- case 1:
- default:
- m_currentMultiplier = qt_multiplierForUnit(QPrinter::Millimeter, 1);
- suffix = QString::fromLatin1(" mm");
- break;
- }
- const bool old = m_blockSignals;
- m_blockSignals = true;
- widget.topMargin->setSuffix(suffix);
- widget.leftMargin->setSuffix(suffix);
- widget.rightMargin->setSuffix(suffix);
- widget.bottomMargin->setSuffix(suffix);
- widget.paperWidth->setSuffix(suffix);
- widget.paperHeight->setSuffix(suffix);
- widget.topMargin->setValue(m_topMargin / m_currentMultiplier);
- widget.leftMargin->setValue(m_leftMargin / m_currentMultiplier);
- widget.rightMargin->setValue(m_rightMargin / m_currentMultiplier);
- widget.bottomMargin->setValue(m_bottomMargin / m_currentMultiplier);
- widget.paperWidth->setValue(m_paperSize.width() / m_currentMultiplier);
- widget.paperHeight->setValue(m_paperSize.height() / m_currentMultiplier);
- m_blockSignals = old;
-}
-
-void QPageSetupWidget::setTopMargin(double newValue)
-{
- if (m_blockSignals) return;
- m_topMargin = newValue * m_currentMultiplier;
- m_pagePreview->setMargins(m_leftMargin, m_topMargin, m_rightMargin, m_bottomMargin);
-}
-
-void QPageSetupWidget::setBottomMargin(double newValue)
-{
- if (m_blockSignals) return;
- m_bottomMargin = newValue * m_currentMultiplier;
- m_pagePreview->setMargins(m_leftMargin, m_topMargin, m_rightMargin, m_bottomMargin);
-}
-
-void QPageSetupWidget::setLeftMargin(double newValue)
-{
- if (m_blockSignals) return;
- m_leftMargin = newValue * m_currentMultiplier;
- m_pagePreview->setMargins(m_leftMargin, m_topMargin, m_rightMargin, m_bottomMargin);
-}
-
-void QPageSetupWidget::setRightMargin(double newValue)
-{
- if (m_blockSignals) return;
- m_rightMargin = newValue * m_currentMultiplier;
- m_pagePreview->setMargins(m_leftMargin, m_topMargin, m_rightMargin, m_bottomMargin);
-}
-
-
-
-QPageSetupDialog::QPageSetupDialog(QPrinter *printer, QWidget *parent)
- : QAbstractPageSetupDialog(*(new QPageSetupDialogPrivate), printer, parent)
-{
- Q_D(QPageSetupDialog);
- d->init();
-}
-
-
-QPageSetupDialog::QPageSetupDialog(QWidget *parent)
- : QAbstractPageSetupDialog(*(new QPageSetupDialogPrivate), 0, parent)
-{
- Q_D(QPageSetupDialog);
- d->init();
-}
-
-/*!
- \internal
-*/
-int QPageSetupDialog::exec()
-{
- Q_D(QPageSetupDialog);
-
- int ret = QDialog::exec();
- if (ret == Accepted)
- d->widget->setupPrinter();
- return ret;
-}
-
-
-QT_END_NAMESPACE
-
-#include "moc_qpagesetupdialog.cpp"
-
-#endif // QT_NO_PRINTDIALOG
diff --git a/src/widgets/dialogs/qpagesetupdialog_unix_p.h b/src/widgets/dialogs/qpagesetupdialog_unix_p.h
deleted file mode 100644
index 2303db9fe8..0000000000
--- a/src/widgets/dialogs/qpagesetupdialog_unix_p.h
+++ /dev/null
@@ -1,105 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the QtGui module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** GNU Lesser General Public License Usage
-** This file may be used under the terms of the GNU Lesser General Public
-** License version 2.1 as published by the Free Software Foundation and
-** appearing in the file LICENSE.LGPL included in the packaging of this
-** file. Please review the following information to ensure the GNU Lesser
-** General Public License version 2.1 requirements will be met:
-** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Nokia gives you certain additional
-** rights. These rights are described in the Nokia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU General
-** Public License version 3.0 as published by the Free Software Foundation
-** and appearing in the file LICENSE.GPL included in the packaging of this
-** file. Please review the following information to ensure the GNU General
-** Public License version 3.0 requirements will be met:
-** http://www.gnu.org/copyleft/gpl.html.
-**
-** Other Usage
-** Alternatively, this file may be used in accordance with the terms and
-** conditions contained in a signed written agreement between you and Nokia.
-**
-**
-**
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef QPAGESETUPWIDGET_H
-#define QPAGESETUPWIDGET_H
-
-//
-// W A R N I N G
-// -------------
-//
-// This file is not part of the Qt API. It exists purely as an
-// implementation detail. This header file may change from version to
-// to version without notice, or even be removed.
-//
-// We mean it.
-//
-//
-
-#include "qglobal.h"
-
-#ifndef QT_NO_PRINTDIALOG
-
-#include <ui_qpagesetupwidget.h>
-
-QT_BEGIN_NAMESPACE
-
-class QPrinter;
-class QPagePreview;
-class QCUPSSupport;
-
-class QPageSetupWidget : public QWidget {
- Q_OBJECT
-public:
- QPageSetupWidget(QWidget *parent = 0);
- QPageSetupWidget(QPrinter *printer, QWidget *parent = 0);
- void setPrinter(QPrinter *printer);
- /// copy information from the widget and apply that to the printer.
- void setupPrinter() const;
- void selectPrinter(QCUPSSupport *m_cups);
- void selectPdfPsPrinter(const QPrinter *p);
-
-private slots:
- void _q_pageOrientationChanged();
- void _q_paperSizeChanged();
- void unitChanged(int item);
- void setTopMargin(double newValue);
- void setBottomMargin(double newValue);
- void setLeftMargin(double newValue);
- void setRightMargin(double newValue);
-
-private:
- Ui::QPageSetupWidget widget;
- QPagePreview *m_pagePreview;
- QPrinter *m_printer;
- qreal m_leftMargin;
- qreal m_topMargin;
- qreal m_rightMargin;
- qreal m_bottomMargin;
- QSizeF m_paperSize;
- qreal m_currentMultiplier;
- bool m_blockSignals;
- QCUPSSupport *m_cups;
-};
-
-QT_END_NAMESPACE
-
-#endif // QT_NO_PRINTDIALOG
-#endif
diff --git a/src/widgets/dialogs/qpagesetupdialog_win.cpp b/src/widgets/dialogs/qpagesetupdialog_win.cpp
deleted file mode 100644
index 2e7cf860fc..0000000000
--- a/src/widgets/dialogs/qpagesetupdialog_win.cpp
+++ /dev/null
@@ -1,168 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the QtGui module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** GNU Lesser General Public License Usage
-** This file may be used under the terms of the GNU Lesser General Public
-** License version 2.1 as published by the Free Software Foundation and
-** appearing in the file LICENSE.LGPL included in the packaging of this
-** file. Please review the following information to ensure the GNU Lesser
-** General Public License version 2.1 requirements will be met:
-** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Nokia gives you certain additional
-** rights. These rights are described in the Nokia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU General
-** Public License version 3.0 as published by the Free Software Foundation
-** and appearing in the file LICENSE.GPL included in the packaging of this
-** file. Please review the following information to ensure the GNU General
-** Public License version 3.0 requirements will be met:
-** http://www.gnu.org/copyleft/gpl.html.
-**
-** Other Usage
-** Alternatively, this file may be used in accordance with the terms and
-** conditions contained in a signed written agreement between you and Nokia.
-**
-**
-**
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qpagesetupdialog.h"
-
-#ifndef QT_NO_PRINTDIALOG
-#include <qapplication.h>
-
-#include <private/qprintengine_win_p.h>
-#include <private/qabstractpagesetupdialog_p.h>
-
-QT_BEGIN_NAMESPACE
-
-class QPageSetupDialogPrivate : public QAbstractPageSetupDialogPrivate
-{
-};
-
-QPageSetupDialog::QPageSetupDialog(QPrinter *printer, QWidget *parent)
- : QAbstractPageSetupDialog(*(new QPageSetupDialogPrivate), printer, parent)
-{
-}
-
-QPageSetupDialog::QPageSetupDialog(QWidget *parent)
- : QAbstractPageSetupDialog(*(new QPageSetupDialogPrivate), 0, parent)
-{
-}
-
-int QPageSetupDialog::exec()
-{
- Q_D(QPageSetupDialog);
-
- if (d->printer->outputFormat() != QPrinter::NativeFormat)
- return Rejected;
-
- QWin32PrintEngine *engine = static_cast<QWin32PrintEngine*>(d->printer->paintEngine());
- QWin32PrintEnginePrivate *ep = static_cast<QWin32PrintEnginePrivate *>(engine->d_ptr.data());
-
- PAGESETUPDLG psd;
- memset(&psd, 0, sizeof(PAGESETUPDLG));
- psd.lStructSize = sizeof(PAGESETUPDLG);
-
- // we need a temp DEVMODE struct if we don't have a global DEVMODE
- HGLOBAL hDevMode = 0;
- int devModeSize = 0;
- if (!ep->globalDevMode) {
- devModeSize = sizeof(DEVMODE) + ep->devMode->dmDriverExtra;
- hDevMode = GlobalAlloc(GHND, devModeSize);
- if (hDevMode) {
- void *dest = GlobalLock(hDevMode);
- memcpy(dest, ep->devMode, devModeSize);
- GlobalUnlock(hDevMode);
- }
- psd.hDevMode = hDevMode;
- } else {
- psd.hDevMode = ep->devMode;
- }
-
- HGLOBAL *tempDevNames = ep->createDevNames();
- psd.hDevNames = tempDevNames;
-
- QWidget *parent = parentWidget();
- parent = parent ? parent->window() : QApplication::activeWindow();
- Q_ASSERT(!parent ||parent->testAttribute(Qt::WA_WState_Created));
- psd.hwndOwner = parent ? parent->winId() : 0;
-
- QRect paperRect = d->printer->paperRect();
- QRect pageRect = d->printer->pageRect();
-
- psd.Flags = PSD_MARGINS;
- double multiplier = 1;
- switch (QLocale::system().measurementSystem()) {
- case QLocale::MetricSystem:
- psd.Flags |= PSD_INHUNDREDTHSOFMILLIMETERS;
- multiplier = 1;
- break;
- case QLocale::ImperialSystem:
- psd.Flags |= PSD_INTHOUSANDTHSOFINCHES;
- multiplier = 25.4/10;
- break;
- }
-
- QRect marginRect = ep->getPageMargins();
- psd.rtMargin.left = marginRect.left() / multiplier;
- psd.rtMargin.top = marginRect.top() / multiplier;
- psd.rtMargin.right = marginRect.width() / multiplier;;
- psd.rtMargin.bottom = marginRect.height() / multiplier;;
-
- bool result = PageSetupDlg(&psd);
- if (result) {
- ep->readDevnames(psd.hDevNames);
- ep->readDevmode(psd.hDevMode);
-
- QRect theseMargins = QRect(psd.rtMargin.left * multiplier,
- psd.rtMargin.top * multiplier,
- psd.rtMargin.right * multiplier,
- psd.rtMargin.bottom * multiplier);
-
- if (theseMargins != marginRect) {
- ep->setPageMargins(psd.rtMargin.left * multiplier,
- psd.rtMargin.top * multiplier,
- psd.rtMargin.right * multiplier,
- psd.rtMargin.bottom * multiplier);
- }
-
- ep->updateCustomPaperSize();
-
- // copy from our temp DEVMODE struct
- if (!ep->globalDevMode && hDevMode) {
- void *src = GlobalLock(hDevMode);
- memcpy(ep->devMode, src, devModeSize);
- GlobalUnlock(hDevMode);
- }
- }
-
- if (!ep->globalDevMode && hDevMode)
- GlobalFree(hDevMode);
- GlobalFree(tempDevNames);
- done(result);
- return result;
-}
-
-void QPageSetupDialog::setVisible(bool visible)
-{
- if (!visible)
- return;
- exec();
-}
-
-QT_END_NAMESPACE
-#endif
diff --git a/src/widgets/dialogs/qpagesetupwidget.ui b/src/widgets/dialogs/qpagesetupwidget.ui
deleted file mode 100644
index ace2ab8f44..0000000000
--- a/src/widgets/dialogs/qpagesetupwidget.ui
+++ /dev/null
@@ -1,353 +0,0 @@
-<ui version="4.0" >
- <class>QPageSetupWidget</class>
- <widget class="QWidget" name="QPageSetupWidget" >
- <property name="geometry" >
- <rect>
- <x>0</x>
- <y>0</y>
- <width>416</width>
- <height>488</height>
- </rect>
- </property>
- <property name="windowTitle" >
- <string>Form</string>
- </property>
- <layout class="QGridLayout" name="gridLayout_3" >
- <property name="margin" >
- <number>0</number>
- </property>
- <item row="0" column="0" colspan="2" >
- <layout class="QHBoxLayout" name="horizontalLayout_4" >
- <item>
- <widget class="QComboBox" name="unit" />
- </item>
- <item>
- <spacer name="horizontalSpacer_3" >
- <property name="orientation" >
- <enum>Qt::Horizontal</enum>
- </property>
- <property name="sizeHint" stdset="0" >
- <size>
- <width>40</width>
- <height>20</height>
- </size>
- </property>
- </spacer>
- </item>
- </layout>
- </item>
- <item row="1" column="0" colspan="2" >
- <widget class="QGroupBox" name="groupBox_2" >
- <property name="title" >
- <string>Paper</string>
- </property>
- <layout class="QGridLayout" name="gridLayout_2" >
- <item row="0" column="0" >
- <widget class="QLabel" name="pageSizeLabel" >
- <property name="text" >
- <string>Page size:</string>
- </property>
- <property name="buddy" >
- <cstring>paperSize</cstring>
- </property>
- </widget>
- </item>
- <item row="0" column="1" >
- <widget class="QComboBox" name="paperSize" />
- </item>
- <item row="1" column="0" >
- <widget class="QLabel" name="widthLabel" >
- <property name="text" >
- <string>Width:</string>
- </property>
- <property name="buddy" >
- <cstring>paperWidth</cstring>
- </property>
- </widget>
- </item>
- <item row="1" column="1" >
- <layout class="QHBoxLayout" name="horizontalLayout_3" >
- <item>
- <widget class="QDoubleSpinBox" name="paperWidth" >
- <property name="maximum" >
- <double>9999.989999999999782</double>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QLabel" name="heightLabel" >
- <property name="text" >
- <string>Height:</string>
- </property>
- <property name="buddy" >
- <cstring>paperHeight</cstring>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QDoubleSpinBox" name="paperHeight" >
- <property name="maximum" >
- <double>9999.989999999999782</double>
- </property>
- </widget>
- </item>
- </layout>
- </item>
- <item row="2" column="0" >
- <widget class="QLabel" name="paperSourceLabel" >
- <property name="text" >
- <string>Paper source:</string>
- </property>
- <property name="buddy" >
- <cstring>paperSource</cstring>
- </property>
- </widget>
- </item>
- <item row="2" column="1" >
- <widget class="QComboBox" name="paperSource" />
- </item>
- <item row="1" column="2" >
- <spacer name="horizontalSpacer_4" >
- <property name="orientation" >
- <enum>Qt::Horizontal</enum>
- </property>
- <property name="sizeHint" stdset="0" >
- <size>
- <width>40</width>
- <height>20</height>
- </size>
- </property>
- </spacer>
- </item>
- </layout>
- </widget>
- </item>
- <item row="2" column="0" >
- <widget class="QGroupBox" name="groupBox_3" >
- <property name="title" >
- <string>Orientation</string>
- </property>
- <layout class="QVBoxLayout" name="verticalLayout" >
- <item>
- <widget class="QRadioButton" name="portrait" >
- <property name="text" >
- <string>Portrait</string>
- </property>
- <property name="checked" >
- <bool>true</bool>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QRadioButton" name="landscape" >
- <property name="text" >
- <string>Landscape</string>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QRadioButton" name="reverseLandscape" >
- <property name="text" >
- <string>Reverse landscape</string>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QRadioButton" name="reversePortrait" >
- <property name="text" >
- <string>Reverse portrait</string>
- </property>
- </widget>
- </item>
- <item>
- <spacer name="verticalSpacer_5" >
- <property name="orientation" >
- <enum>Qt::Vertical</enum>
- </property>
- <property name="sizeHint" stdset="0" >
- <size>
- <width>0</width>
- <height>0</height>
- </size>
- </property>
- </spacer>
- </item>
- </layout>
- </widget>
- </item>
- <item rowspan="2" row="2" column="1" >
- <widget class="QWidget" native="1" name="preview" />
- </item>
- <item row="3" column="0" >
- <widget class="QGroupBox" name="groupBox" >
- <property name="title" >
- <string>Margins</string>
- </property>
- <layout class="QHBoxLayout" name="horizontalLayout_2" >
- <item>
- <layout class="QGridLayout" name="gridLayout" >
- <item row="0" column="1" >
- <widget class="QDoubleSpinBox" name="topMargin" >
- <property name="toolTip" >
- <string>top margin</string>
- </property>
- <property name="accessibleName" >
- <string>top margin</string>
- </property>
- <property name="alignment" >
- <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
- </property>
- <property name="maximum" >
- <double>999.990000000000009</double>
- </property>
- </widget>
- </item>
- <item row="1" column="0" colspan="3" >
- <layout class="QHBoxLayout" name="horizontalLayout" >
- <item>
- <spacer name="horizontalSpacer_7" >
- <property name="orientation" >
- <enum>Qt::Horizontal</enum>
- </property>
- <property name="sizeHint" stdset="0" >
- <size>
- <width>0</width>
- <height>20</height>
- </size>
- </property>
- </spacer>
- </item>
- <item>
- <widget class="QDoubleSpinBox" name="leftMargin" >
- <property name="toolTip" >
- <string>left margin</string>
- </property>
- <property name="accessibleName" >
- <string>left margin</string>
- </property>
- <property name="alignment" >
- <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
- </property>
- <property name="maximum" >
- <double>999.990000000000009</double>
- </property>
- </widget>
- </item>
- <item>
- <spacer name="horizontalSpacer" >
- <property name="orientation" >
- <enum>Qt::Horizontal</enum>
- </property>
- <property name="sizeType" >
- <enum>QSizePolicy::MinimumExpanding</enum>
- </property>
- <property name="sizeHint" stdset="0" >
- <size>
- <width>0</width>
- <height>0</height>
- </size>
- </property>
- </spacer>
- </item>
- <item>
- <widget class="QDoubleSpinBox" name="rightMargin" >
- <property name="toolTip" >
- <string>right margin</string>
- </property>
- <property name="accessibleName" >
- <string>right margin</string>
- </property>
- <property name="alignment" >
- <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
- </property>
- <property name="maximum" >
- <double>999.990000000000009</double>
- </property>
- </widget>
- </item>
- <item>
- <spacer name="horizontalSpacer_8" >
- <property name="orientation" >
- <enum>Qt::Horizontal</enum>
- </property>
- <property name="sizeHint" stdset="0" >
- <size>
- <width>0</width>
- <height>20</height>
- </size>
- </property>
- </spacer>
- </item>
- </layout>
- </item>
- <item row="2" column="1" >
- <widget class="QDoubleSpinBox" name="bottomMargin" >
- <property name="toolTip" >
- <string>bottom margin</string>
- </property>
- <property name="accessibleName" >
- <string>bottom margin</string>
- </property>
- <property name="alignment" >
- <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
- </property>
- <property name="maximum" >
- <double>999.990000000000009</double>
- </property>
- </widget>
- </item>
- <item row="0" column="2" >
- <spacer name="horizontalSpacer_2" >
- <property name="orientation" >
- <enum>Qt::Horizontal</enum>
- </property>
- <property name="sizeType" >
- <enum>QSizePolicy::MinimumExpanding</enum>
- </property>
- <property name="sizeHint" stdset="0" >
- <size>
- <width>0</width>
- <height>20</height>
- </size>
- </property>
- </spacer>
- </item>
- <item row="0" column="0" >
- <spacer name="horizontalSpacer_5" >
- <property name="orientation" >
- <enum>Qt::Horizontal</enum>
- </property>
- <property name="sizeType" >
- <enum>QSizePolicy::MinimumExpanding</enum>
- </property>
- <property name="sizeHint" stdset="0" >
- <size>
- <width>0</width>
- <height>20</height>
- </size>
- </property>
- </spacer>
- </item>
- </layout>
- </item>
- </layout>
- </widget>
- </item>
- <item row="4" column="0" >
- <spacer name="verticalSpacer" >
- <property name="orientation" >
- <enum>Qt::Vertical</enum>
- </property>
- <property name="sizeHint" stdset="0" >
- <size>
- <width>20</width>
- <height>0</height>
- </size>
- </property>
- </spacer>
- </item>
- </layout>
- </widget>
- <resources/>
- <connections/>
-</ui>
diff --git a/src/widgets/dialogs/qprintdialog.h b/src/widgets/dialogs/qprintdialog.h
deleted file mode 100644
index 1bde1d1deb..0000000000
--- a/src/widgets/dialogs/qprintdialog.h
+++ /dev/null
@@ -1,174 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the QtGui module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** GNU Lesser General Public License Usage
-** This file may be used under the terms of the GNU Lesser General Public
-** License version 2.1 as published by the Free Software Foundation and
-** appearing in the file LICENSE.LGPL included in the packaging of this
-** file. Please review the following information to ensure the GNU Lesser
-** General Public License version 2.1 requirements will be met:
-** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Nokia gives you certain additional
-** rights. These rights are described in the Nokia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU General
-** Public License version 3.0 as published by the Free Software Foundation
-** and appearing in the file LICENSE.GPL included in the packaging of this
-** file. Please review the following information to ensure the GNU General
-** Public License version 3.0 requirements will be met:
-** http://www.gnu.org/copyleft/gpl.html.
-**
-** Other Usage
-** Alternatively, this file may be used in accordance with the terms and
-** conditions contained in a signed written agreement between you and Nokia.
-**
-**
-**
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QPRINTDIALOG_H
-#define QPRINTDIALOG_H
-
-#include <QtWidgets/qabstractprintdialog.h>
-
-QT_BEGIN_HEADER
-
-QT_BEGIN_NAMESPACE
-
-QT_MODULE(Gui)
-
-#ifndef QT_NO_PRINTDIALOG
-
-class QPrintDialogPrivate;
-class QPushButton;
-class QPrinter;
-
-#if defined (Q_OS_UNIX) && !defined(QTOPIA_PRINTDIALOG) && !defined(Q_WS_MAC) && !defined(Q_OS_SYMBIAN)
-class QUnixPrintWidgetPrivate;
-
-class Q_WIDGETS_EXPORT QUnixPrintWidget : public QWidget
-{
- Q_OBJECT
-
-public:
- QUnixPrintWidget(QPrinter *printer, QWidget *parent = 0);
- ~QUnixPrintWidget();
- void updatePrinter();
-
-private:
- friend class QPrintDialogPrivate;
- friend class QUnixPrintWidgetPrivate;
- QUnixPrintWidgetPrivate *d;
- Q_PRIVATE_SLOT(d, void _q_printerChanged(int))
- Q_PRIVATE_SLOT(d, void _q_btnBrowseClicked())
- Q_PRIVATE_SLOT(d, void _q_btnPropertiesClicked())
-};
-#endif
-
-class Q_WIDGETS_EXPORT QPrintDialog : public QAbstractPrintDialog
-{
- Q_OBJECT
- Q_DECLARE_PRIVATE(QPrintDialog)
- Q_ENUMS(PrintDialogOption)
- Q_PROPERTY(PrintDialogOptions options READ options WRITE setOptions)
-
-public:
- explicit QPrintDialog(QPrinter *printer, QWidget *parent = 0);
- explicit QPrintDialog(QWidget *parent = 0);
- ~QPrintDialog();
-
- int exec();
-#if defined (Q_OS_UNIX) && !defined(QTOPIA_PRINTDIALOG) && !defined(Q_WS_MAC)
- virtual void accept();
-#endif
- void done(int result);
-
-#if defined (Q_OS_UNIX) && defined (QT3_SUPPORT)
- QT3_SUPPORT void setPrinter(QPrinter *, bool = false);
- QT3_SUPPORT QPrinter *printer() const;
- QT3_SUPPORT void addButton(QPushButton *button);
-#endif
-
- void setOption(PrintDialogOption option, bool on = true);
- bool testOption(PrintDialogOption option) const;
- void setOptions(PrintDialogOptions options);
- PrintDialogOptions options() const;
-
-#if defined(Q_OS_UNIX) || defined(Q_WS_MAC) || defined(Q_OS_WIN)
- void setVisible(bool visible);
-#endif
-
-#ifdef Q_NO_USING_KEYWORD
-#ifndef Q_QDOC
- void open() { QDialog::open(); }
-#endif
-#else
- using QDialog::open;
-#endif
- void open(QObject *receiver, const char *member);
-
-#ifdef qdoc
- QPrinter *printer();
-#endif
-
-#ifdef QTOPIA_PRINTDIALOG
-public:
- bool eventFilter(QObject *, QEvent *);
-#endif
-
-#ifdef Q_NO_USING_KEYWORD
-#ifndef Q_QDOC
- void accepted() { QDialog::accepted(); }
-#endif
-#else
- using QDialog::accepted;
-#endif
-
-Q_SIGNALS:
- void accepted(QPrinter *printer);
-
-private:
-#ifndef QTOPIA_PRINTDIALOG
- Q_PRIVATE_SLOT(d_func(), void _q_chbPrintLastFirstToggled(bool))
-#if defined (Q_OS_UNIX) && !defined (Q_OS_MAC)
- Q_PRIVATE_SLOT(d_func(), void _q_collapseOrExpandDialog())
-#endif
-# if defined(Q_OS_UNIX) && !defined (Q_OS_MAC) && !defined(QT_NO_MESSAGEBOX)
- Q_PRIVATE_SLOT(d_func(), void _q_checkFields())
-# endif
-#else // QTOPIA_PRINTDIALOG
- Q_PRIVATE_SLOT(d_func(), void _q_okClicked())
- Q_PRIVATE_SLOT(d_func(),void _q_printerOrFileSelected(QAbstractButton *b))
- Q_PRIVATE_SLOT(d_func(),void _q_paperSizeSelected(int))
- Q_PRIVATE_SLOT(d_func(), void _q_orientSelected(int))
- Q_PRIVATE_SLOT(d_func(), void _q_pageOrderSelected(int))
- Q_PRIVATE_SLOT(d_func(), void _q_colorModeSelected(QAbstractButton *))
- Q_PRIVATE_SLOT(d_func(), void _q_setNumCopies(int))
- Q_PRIVATE_SLOT(d_func(), void _q_printRangeSelected(int))
- Q_PRIVATE_SLOT(d_func(), void _q_setFirstPage(int))
- Q_PRIVATE_SLOT(d_func(), void _q_setLastPage(int))
- Q_PRIVATE_SLOT(d_func(), void _q_fileNameEditChanged(const QString &text))
-#endif // QTOPIA_PRINTDIALOG
- friend class QUnixPrintWidget;
-};
-
-#endif // QT_NO_PRINTDIALOG
-
-QT_END_NAMESPACE
-
-QT_END_HEADER
-
-#endif // QPRINTDIALOG_H
diff --git a/src/widgets/dialogs/qprintdialog.qdoc b/src/widgets/dialogs/qprintdialog.qdoc
deleted file mode 100644
index 53bbc9b490..0000000000
--- a/src/widgets/dialogs/qprintdialog.qdoc
+++ /dev/null
@@ -1,58 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the documentation of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:FDL$
-** GNU Free Documentation License
-** Alternatively, this file may be used under the terms of the GNU Free
-** Documentation License version 1.3 as published by the Free Software
-** Foundation and appearing in the file included in the packaging of
-** this file.
-**
-** Other Usage
-** Alternatively, this file may be used in accordance with the terms
-** and conditions contained in a signed written agreement between you
-** and Nokia.
-**
-**
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifdef QT3_SUPPORT
-/*!
- \fn QPrinter *QPrintDialog::printer() const
-
- Returns a pointer to the printer this dialog configures, or 0 if
- this dialog does not operate on any printer.
-
- This function is available for Unix platforms only.
-*/
-
-/*!
- \fn void QPrintDialog::setPrinter(QPrinter *printer, bool pickupSettings)
-
- Sets this dialog to configure printer \a printer, or no printer if \a printer
- is null. If \a pickupSettings is true, the dialog reads most of
- its settings from \a printer. If \a pickupSettings is false (the
- default) the dialog keeps its old settings.
-
- This function is available for Unix platforms only.
-*/
-
-/*!
- \fn void QPrintDialog::addButton(QPushButton *button)
-
- Adds the \a button to the layout of the print dialog. The added
- buttons are arranged from the left to the right below the
- last groupbox of the printdialog.
-
- This function is available for Unix platforms only.
-*/
-#endif
diff --git a/src/widgets/dialogs/qprintdialog.qrc b/src/widgets/dialogs/qprintdialog.qrc
deleted file mode 100644
index f54eb6b5ee..0000000000
--- a/src/widgets/dialogs/qprintdialog.qrc
+++ /dev/null
@@ -1,38 +0,0 @@
-<!DOCTYPE RCC><RCC version="1.0">
-<qresource prefix="/trolltech/dialogs/qprintpreviewdialog">
-<file>images/fit-page-24.png</file>
-<file>images/fit-page-32.png</file>
-<file>images/fit-width-24.png</file>
-<file>images/fit-width-32.png</file>
-<file>images/go-first-24.png</file>
-<file>images/go-first-32.png</file>
-<file>images/go-last-24.png</file>
-<file>images/go-last-32.png</file>
-<file>images/go-next-24.png</file>
-<file>images/go-next-32.png</file>
-<file>images/go-previous-24.png</file>
-<file>images/go-previous-32.png</file>
-<file>images/layout-landscape-24.png</file>
-<file>images/layout-landscape-32.png</file>
-<file>images/layout-portrait-24.png</file>
-<file>images/layout-portrait-32.png</file>
-<file>images/page-setup-24.png</file>
-<file>images/page-setup-32.png</file>
-<file>images/print-24.png</file>
-<file>images/print-32.png</file>
-<file>images/view-page-multi-24.png</file>
-<file>images/view-page-multi-32.png</file>
-<file>images/view-page-one-24.png</file>
-<file>images/view-page-one-32.png</file>
-<file>images/view-page-sided-24.png</file>
-<file>images/view-page-sided-32.png</file>
-<file>images/zoom-in-24.png</file>
-<file>images/zoom-in-32.png</file>
-<file>images/zoom-out-24.png</file>
-<file>images/zoom-out-32.png</file>
-</qresource>
-<qresource prefix="/trolltech/dialogs/qprintdialog">
-<file>images/status-color.png</file>
-<file>images/status-gray-scale.png</file>
-</qresource>
-</RCC>
diff --git a/src/widgets/dialogs/qprintdialog_mac.mm b/src/widgets/dialogs/qprintdialog_mac.mm
deleted file mode 100644
index 2e902e61ce..0000000000
--- a/src/widgets/dialogs/qprintdialog_mac.mm
+++ /dev/null
@@ -1,429 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the QtGui module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** GNU Lesser General Public License Usage
-** This file may be used under the terms of the GNU Lesser General Public
-** License version 2.1 as published by the Free Software Foundation and
-** appearing in the file LICENSE.LGPL included in the packaging of this
-** file. Please review the following information to ensure the GNU Lesser
-** General Public License version 2.1 requirements will be met:
-** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Nokia gives you certain additional
-** rights. These rights are described in the Nokia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU General
-** Public License version 3.0 as published by the Free Software Foundation
-** and appearing in the file LICENSE.GPL included in the packaging of this
-** file. Please review the following information to ensure the GNU General
-** Public License version 3.0 requirements will be met:
-** http://www.gnu.org/copyleft/gpl.html.
-**
-** Other Usage
-** Alternatively, this file may be used in accordance with the terms and
-** conditions contained in a signed written agreement between you and Nokia.
-**
-**
-**
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QT_NO_PRINTDIALOG
-
-#include <private/qt_mac_p.h>
-
-#include <qhash.h>
-#include <qprintdialog.h>
-#include <private/qapplication_p.h>
-#include <private/qabstractprintdialog_p.h>
-#include <private/qprintengine_mac_p.h>
-
-QT_BEGIN_NAMESPACE
-
-class QPrintDialogPrivate : public QAbstractPrintDialogPrivate
-{
- Q_DECLARE_PUBLIC(QPrintDialog)
-
-public:
- QPrintDialogPrivate() : ep(0), printPanel(0)
-#ifndef QT_MAC_USE_COCOA
- ,upp(0)
-#endif
- {}
-#ifndef QT_MAC_USE_COCOA
- ~QPrintDialogPrivate() {
- if (upp) {
- DisposePMSheetDoneUPP(upp);
- upp = 0;
- }
- QHash<PMPrintSession, QPrintDialogPrivate *>::iterator it = sheetCallbackMap.begin();
- while (it != sheetCallbackMap.end()) {
- if (it.value() == this) {
- it = sheetCallbackMap.erase(it);
- } else {
- ++it;
- }
- }
- }
-#endif
-
-#ifndef QT_MAC_USE_COCOA
- void openCarbonPrintPanel(Qt::WindowModality modality);
- void closeCarbonPrintPanel();
- static void printDialogSheetDoneCallback(PMPrintSession printSession, WindowRef /*documentWindow*/, Boolean accepted) {
- QPrintDialogPrivate *priv = sheetCallbackMap.value(printSession);
- if (!priv) {
- qWarning("%s:%d: QPrintDialog::exec: Could not retrieve data structure, "
- "you most likely now have an infinite loop", __FILE__, __LINE__);
- return;
- }
- priv->q_func()->done(accepted ? QDialog::Accepted : QDialog::Rejected);
- priv->closeCarbonPrintPanel();
- }
-#else
- void openCocoaPrintPanel(Qt::WindowModality modality);
- void closeCocoaPrintPanel();
-#endif
- void initBeforeRun();
-
- inline QPrintDialog *printDialog() { return q_func(); }
-
- inline void _q_printToFileChanged(int) {}
- inline void _q_rbPrintRangeToggled(bool) {}
- inline void _q_printerChanged(int) {}
-#ifndef QT_NO_MESSAGEBOX
- inline void _q_checkFields() {}
-#endif
- inline void _q_chbPrintLastFirstToggled(bool) {}
- inline void _q_paperSizeChanged(int) {}
- inline void _q_btnBrowseClicked() {}
- inline void _q_btnPropertiesClicked() {}
-
- QMacPrintEnginePrivate *ep;
- NSPrintPanel *printPanel;
-#ifndef QT_MAC_USE_COCOA
- PMSheetDoneUPP upp;
- static QHash<PMPrintSession, QPrintDialogPrivate *> sheetCallbackMap;
-#endif
-};
-
-QT_END_NAMESPACE
-
-QT_USE_NAMESPACE
-
-#ifdef QT_MAC_USE_COCOA
-
-@class QT_MANGLE_NAMESPACE(QCocoaPrintPanelDelegate);
-
-@interface QT_MANGLE_NAMESPACE(QCocoaPrintPanelDelegate) : NSObject {
-}
-- (void)printPanelDidEnd:(NSPrintPanel *)printPanel
- returnCode:(int)returnCode contextInfo:(void *)contextInfo;
-@end
-
-@implementation QT_MANGLE_NAMESPACE(QCocoaPrintPanelDelegate)
-- (void)printPanelDidEnd:(NSPrintPanel *)printPanel
- returnCode:(int)returnCode contextInfo:(void *)contextInfo
-{
- Q_UNUSED(printPanel);
-
- QPrintDialogPrivate *d = static_cast<QPrintDialogPrivate *>(contextInfo);
- QPrintDialog *dialog = d->printDialog();
-
- if (returnCode == NSOKButton) {
- UInt32 frompage, topage;
- PMGetFirstPage(d->ep->settings, &frompage);
- PMGetLastPage(d->ep->settings, &topage);
- topage = qMin(UInt32(INT_MAX), topage);
- dialog->setFromTo(frompage, topage);
-
- // OK, I need to map these values back let's see
- // If from is 1 and to is INT_MAX, then print it all
- // (Apologies to the folks with more than INT_MAX pages)
- if (dialog->fromPage() == 1 && dialog->toPage() == INT_MAX) {
- dialog->setPrintRange(QPrintDialog::AllPages);
- dialog->setFromTo(0, 0);
- } else {
- dialog->setPrintRange(QPrintDialog::PageRange); // In a way a lie, but it shouldn't hurt.
- // Carbon hands us back a very large number here even for ALL, set it to max
- // in that case to follow the behavior of the other print dialogs.
- if (dialog->maxPage() < dialog->toPage())
- dialog->setFromTo(dialog->fromPage(), dialog->maxPage());
- }
- // Keep us in sync with file output
- PMDestinationType dest;
-
- // If the user selected print to file, the session has been
- // changed behind our back and our d->ep->session object is a
- // dangling pointer. Update it based on the "current" session
- d->ep->session = static_cast<PMPrintSession>([d->ep->printInfo PMPrintSession]);
-
- PMSessionGetDestinationType(d->ep->session, d->ep->settings, &dest);
- if (dest == kPMDestinationFile) {
- QCFType<CFURLRef> file;
- PMSessionCopyDestinationLocation(d->ep->session, d->ep->settings, &file);
- UInt8 localFile[2048]; // Assuming there's a POSIX file system here.
- CFURLGetFileSystemRepresentation(file, true, localFile, sizeof(localFile));
- d->ep->outputFilename
- = QString::fromUtf8(reinterpret_cast<const char *>(localFile));
- } else {
- // Keep output format.
- QPrinter::OutputFormat format;
- format = d->printer->outputFormat();
- d->printer->setOutputFileName(QString());
- d->printer->setOutputFormat(format);
- }
- }
-
- dialog->done((returnCode == NSOKButton) ? QDialog::Accepted : QDialog::Rejected);
-}
-@end
-
-#endif
-
-QT_BEGIN_NAMESPACE
-
-extern void macStartInterceptWindowTitle(QWidget *window);
-extern void macStopInterceptWindowTitle();
-
-
-void QPrintDialogPrivate::initBeforeRun()
-{
- Q_Q(QPrintDialog);
- // If someone is reusing a QPrinter object, the end released all our old
- // information. In this case, we must reinitialize.
- if (ep->session == 0)
- ep->initialize();
-
-
- // It seems the only way that PM lets you use all is if the minimum
- // for the page range is 1. This _kind of_ makes sense if you think about
- // it. However, calling PMSetFirstPage() or PMSetLastPage() always enforces
- // the range.
- PMSetPageRange(ep->settings, q->minPage(), q->maxPage());
- if (q->printRange() == QAbstractPrintDialog::PageRange) {
- PMSetFirstPage(ep->settings, q->fromPage(), false);
- PMSetLastPage(ep->settings, q->toPage(), false);
- }
-}
-
-#ifndef QT_MAC_USE_COCOA
-QHash<PMPrintSession, QPrintDialogPrivate *> QPrintDialogPrivate::sheetCallbackMap;
-void QPrintDialogPrivate::openCarbonPrintPanel(Qt::WindowModality modality)
-{
- Q_Q(QPrintDialog);
- initBeforeRun();
- sheetCallbackMap.insert(ep->session, this);
- if (modality == Qt::ApplicationModal) {
- QWidget modal_widg(0, Qt::Window);
- modal_widg.setObjectName(QLatin1String(__FILE__ "__modal_dlg"));
- modal_widg.createWinId();
- QApplicationPrivate::enterModal(&modal_widg);
- QApplicationPrivate::native_modal_dialog_active = true;
- Boolean acceptStatus;
- PMSessionPrintDialog(ep->session, ep->settings, ep->format, &acceptStatus);
- QApplicationPrivate::leaveModal(&modal_widg);
- QApplicationPrivate::native_modal_dialog_active = false;
- printDialogSheetDoneCallback(ep->session, 0, acceptStatus);
- } else {
- // Window Modal means that we use a sheet at the moment, there's no other way to do it correctly.
- if (!upp)
- upp = NewPMSheetDoneUPP(QPrintDialogPrivate::printDialogSheetDoneCallback);
- PMSessionUseSheets(ep->session, qt_mac_window_for(q->parentWidget()), upp);
- QApplicationPrivate::native_modal_dialog_active = true;
- Boolean unused;
- PMSessionPrintDialog(ep->session, ep->settings, ep->format, &unused);
- }
-}
-
-void QPrintDialogPrivate::closeCarbonPrintPanel()
-{
- Q_Q(QPrintDialog);
- QApplicationPrivate::native_modal_dialog_active = false;
- if (q->result() == QDialog::Accepted) {
- UInt32 frompage, topage;
- PMGetFirstPage(ep->settings, &frompage);
- PMGetLastPage(ep->settings, &topage);
- topage = qMin(UInt32(INT_MAX), topage);
- q->setFromTo(frompage, topage);
-
- // OK, I need to map these values back let's see
- // If from is 1 and to is INT_MAX, then print it all
- // (Apologies to the folks with more than INT_MAX pages)
- // ...that's a joke.
- if (q->fromPage() == 1 && q->toPage() == INT_MAX) {
- q->setPrintRange(QAbstractPrintDialog::AllPages);
- q->setFromTo(0,0);
- } else {
- q->setPrintRange(QAbstractPrintDialog::PageRange); // In a way a lie, but it shouldn't hurt.
- // Carbon hands us back a very large number here even for ALL, set it to max
- // in that case to follow the behavior of the other print dialogs.
- if (q->maxPage() < q->toPage())
- q->setFromTo(q->fromPage(), q->maxPage());
- }
- // Keep us in sync with file output
- PMDestinationType dest;
- PMSessionGetDestinationType(ep->session, ep->settings, &dest);
- if (dest == kPMDestinationFile) {
- QCFType<CFURLRef> file;
- PMSessionCopyDestinationLocation(ep->session, ep->settings, &file);
- UInt8 localFile[2048]; // Assuming there's a POSIX file system here.
- CFURLGetFileSystemRepresentation(file, true, localFile, sizeof(localFile));
- ep->outputFilename = QString::fromUtf8(reinterpret_cast<const char *>(localFile));
- } else {
- ep->outputFilename = QString();
- }
- }
- sheetCallbackMap.remove(ep->session);
-}
-#else
-void QPrintDialogPrivate::openCocoaPrintPanel(Qt::WindowModality modality)
-{
- Q_Q(QPrintDialog);
-
- initBeforeRun();
-
- QPrintDialog::PrintDialogOptions qtOptions = q->options();
- NSPrintPanelOptions macOptions = NSPrintPanelShowsCopies;
- if (qtOptions & QPrintDialog::PrintPageRange)
- macOptions |= NSPrintPanelShowsPageRange;
- if (qtOptions & QPrintDialog::PrintShowPageSize)
- macOptions |= NSPrintPanelShowsPaperSize | NSPrintPanelShowsPageSetupAccessory
- | NSPrintPanelShowsOrientation;
-
- macStartInterceptWindowTitle(q);
- printPanel = [NSPrintPanel printPanel];
- QT_MANGLE_NAMESPACE(QCocoaPrintPanelDelegate) *delegate = [[QT_MANGLE_NAMESPACE(QCocoaPrintPanelDelegate) alloc] init];
- [printPanel setOptions:macOptions];
-
- if (modality == Qt::ApplicationModal) {
- int rval = [printPanel runModalWithPrintInfo:ep->printInfo];
- [delegate printPanelDidEnd:printPanel returnCode:rval contextInfo:this];
- } else {
- Q_ASSERT(q->parentWidget());
- NSWindow *windowRef = qt_mac_window_for(q->parentWidget());
- [printPanel beginSheetWithPrintInfo:ep->printInfo
- modalForWindow:windowRef
- delegate:delegate
- didEndSelector:@selector(printPanelDidEnd:returnCode:contextInfo:)
- contextInfo:this];
- }
-
- macStopInterceptWindowTitle();
-}
-
-void QPrintDialogPrivate::closeCocoaPrintPanel()
-{
- // ###
-}
-#endif
-
-static bool warnIfNotNative(QPrinter *printer)
-{
- if (printer->outputFormat() != QPrinter::NativeFormat) {
- qWarning("QPrintDialog: Cannot be used on non-native printers");
- return false;
- }
- return true;
-}
-
-
-QPrintDialog::QPrintDialog(QPrinter *printer, QWidget *parent)
- : QAbstractPrintDialog(*(new QPrintDialogPrivate), printer, parent)
-{
- Q_D(QPrintDialog);
- if (!warnIfNotNative(d->printer))
- return;
- d->ep = static_cast<QMacPrintEngine *>(d->printer->paintEngine())->d_func();
-}
-
-QPrintDialog::QPrintDialog(QWidget *parent)
- : QAbstractPrintDialog(*(new QPrintDialogPrivate), 0, parent)
-{
- Q_D(QPrintDialog);
- if (!warnIfNotNative(d->printer))
- return;
- d->ep = static_cast<QMacPrintEngine *>(d->printer->paintEngine())->d_func();
-}
-
-QPrintDialog::~QPrintDialog()
-{
-}
-
-int QPrintDialog::exec()
-{
- Q_D(QPrintDialog);
- if (!warnIfNotNative(d->printer))
- return QDialog::Rejected;
-
-#ifndef QT_MAC_USE_COCOA
- d->openCarbonPrintPanel(Qt::ApplicationModal);
-#else
- QMacCocoaAutoReleasePool pool;
-
- d->openCocoaPrintPanel(Qt::ApplicationModal);
- d->closeCocoaPrintPanel();
-#endif
- return result();
-}
-
-#ifdef QT3_SUPPORT
-QPrinter *QPrintDialog::printer() const
-{
- Q_D(const QPrintDialog);
- return d->printer;
-}
-#endif
-
-/*!
- \reimp
-*/
-void QPrintDialog::setVisible(bool visible)
-{
- Q_D(QPrintDialog);
-
- bool isCurrentlyVisible = (d->printPanel != 0);
-
- if (!visible == !isCurrentlyVisible)
- return;
-
- if (d->printer->outputFormat() != QPrinter::NativeFormat)
- return;
-
- if (visible) {
-#ifndef QT_MAC_USE_COCOA
- d->openCarbonPrintPanel(parentWidget() ? Qt::WindowModal
- : Qt::ApplicationModal);
-#else
- d->openCocoaPrintPanel(parentWidget() ? Qt::WindowModal
- : Qt::ApplicationModal);
-#endif
- return;
- } else {
- if (d->printPanel) {
-#ifndef QT_MAC_USE_COCOA
- d->closeCarbonPrintPanel();
-#else
- d->closeCocoaPrintPanel();
-#endif
- return;
- }
- }
-}
-
-QT_END_NAMESPACE
-
-#include "moc_qprintdialog.cpp"
-
-#endif // QT_NO_PRINTDIALOG
diff --git a/src/widgets/dialogs/qprintdialog_unix.cpp b/src/widgets/dialogs/qprintdialog_unix.cpp
deleted file mode 100644
index e1c1287a11..0000000000
--- a/src/widgets/dialogs/qprintdialog_unix.cpp
+++ /dev/null
@@ -1,1286 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the QtGui module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** GNU Lesser General Public License Usage
-** This file may be used under the terms of the GNU Lesser General Public
-** License version 2.1 as published by the Free Software Foundation and
-** appearing in the file LICENSE.LGPL included in the packaging of this
-** file. Please review the following information to ensure the GNU Lesser
-** General Public License version 2.1 requirements will be met:
-** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Nokia gives you certain additional
-** rights. These rights are described in the Nokia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU General
-** Public License version 3.0 as published by the Free Software Foundation
-** and appearing in the file LICENSE.GPL included in the packaging of this
-** file. Please review the following information to ensure the GNU General
-** Public License version 3.0 requirements will be met:
-** http://www.gnu.org/copyleft/gpl.html.
-**
-** Other Usage
-** Alternatively, this file may be used in accordance with the terms and
-** conditions contained in a signed written agreement between you and Nokia.
-**
-**
-**
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qplatformdefs.h"
-
-#ifndef QT_NO_PRINTDIALOG
-
-#include "private/qabstractprintdialog_p.h"
-#include <QtWidgets/qmessagebox.h>
-#include "qprintdialog.h"
-#include "qfiledialog.h"
-#include <QtCore/qdir.h>
-#include <QtGui/qevent.h>
-#include <QtWidgets/qfilesystemmodel.h>
-#include <QtWidgets/qstyleditemdelegate.h>
-#include <QtGui/qprinter.h>
-
-#include <QtWidgets/qdialogbuttonbox.h>
-
-#include "qfscompleter_p.h"
-#include "ui_qprintpropertieswidget.h"
-#include "ui_qprintsettingsoutput.h"
-#include "ui_qprintwidget.h"
-
-#if !defined(QT_NO_CUPS) && !defined(QT_NO_LIBRARY)
-# include <private/qcups_p.h>
-# include <cups/cups.h>
-# include <private/qprintengine_pdf_p.h>
-#else
-# include <QtCore/qlibrary.h>
-#endif
-
-#include <private/qprinterinfo_unix_p.h>
-
-QT_BEGIN_NAMESPACE
-
-class QOptionTreeItem;
-class QPPDOptionsModel;
-
-class QPrintPropertiesDialog : public QDialog
-{
- Q_OBJECT
-public:
- QPrintPropertiesDialog(QAbstractPrintDialog *parent = 0);
- ~QPrintPropertiesDialog();
-
-#if !defined(QT_NO_CUPS) && !defined(QT_NO_LIBRARY)
- void setCups(QCUPSSupport *cups) { m_cups = cups; }
- void addItemToOptions(QOptionTreeItem *parent, QList<const ppd_option_t*>& options, QList<const char*>& markedOptions) const;
-#endif
-
- void selectPrinter();
- void selectPdfPsPrinter(const QPrinter *p);
-
- /// copy printer properties to the widget
- void applyPrinterProperties(QPrinter *p);
- void setupPrinter() const;
-
-protected:
- void showEvent(QShowEvent* event);
-
-private:
- Ui::QPrintPropertiesWidget widget;
- QDialogButtonBox *m_buttons;
-#if !defined(QT_NO_CUPS) && !defined(QT_NO_LIBRARY)
- QCUPSSupport *m_cups;
- QPPDOptionsModel *m_cupsOptionsModel;
-#endif
-};
-
-class QPrintDialogPrivate : public QAbstractPrintDialogPrivate
-{
- Q_DECLARE_PUBLIC(QPrintDialog)
- Q_DECLARE_TR_FUNCTIONS(QPrintDialog)
-public:
- QPrintDialogPrivate();
- ~QPrintDialogPrivate();
-
- void init();
- /// copy printer properties to the widget
- void applyPrinterProperties(QPrinter *p);
-
-#if !defined(QT_NO_CUPS) && !defined(QT_NO_LIBRARY)
- void selectPrinter(QCUPSSupport *cups);
-#endif
-
- void _q_chbPrintLastFirstToggled(bool);
-#ifndef QT_NO_MESSAGEBOX
- void _q_checkFields();
-#endif
- void _q_collapseOrExpandDialog();
-
- void setupPrinter();
- void updateWidgets();
-
- virtual void setTabs(const QList<QWidget*> &tabs);
-
- Ui::QPrintSettingsOutput options;
- QUnixPrintWidget *top;
- QWidget *bottom;
- QDialogButtonBox *buttons;
- QPushButton *collapseButton;
-};
-
-#if defined (Q_OS_UNIX)
-class QUnixPrintWidgetPrivate
-{
-public:
- QUnixPrintWidgetPrivate(QUnixPrintWidget *q);
- ~QUnixPrintWidgetPrivate();
-
- /// copy printer properties to the widget
- void applyPrinterProperties(QPrinter *p);
- bool checkFields();
- void setupPrinter();
- void setOptionsPane(QPrintDialogPrivate *pane);
-#if !defined(QT_NO_CUPS) && !defined(QT_NO_LIBRARY)
- void setCupsProperties();
-#endif
-
-// slots
- void _q_printerChanged(int index);
- void _q_btnPropertiesClicked();
- void _q_btnBrowseClicked();
-
- QUnixPrintWidget * const parent;
- QPrintPropertiesDialog *propertiesDialog;
- Ui::QPrintWidget widget;
- QAbstractPrintDialog * q;
- QPrinter *printer;
- QList<QPrinterDescription> lprPrinters;
- void updateWidget();
-
-private:
- QPrintDialogPrivate *optionsPane;
- bool filePrintersAdded;
-#if !defined(QT_NO_CUPS) && !defined(QT_NO_LIBRARY)
- QCUPSSupport* cups;
- int cupsPrinterCount;
- const cups_dest_t* cupsPrinters;
- const ppd_file_t* cupsPPD;
-#endif
-};
-#endif
-
-#if !defined(QT_NO_CUPS) && !defined(QT_NO_LIBRARY)
-class QOptionTreeItem
-{
-public:
- enum ItemType { Root, Group, Option, Choice };
-
- QOptionTreeItem(ItemType t, int i, const void* p, const char* desc, QOptionTreeItem* pi)
- : type(t),
- index(i),
- ptr(p),
- description(desc),
- selected(-1),
- selDescription(0),
- parentItem(pi) {}
-
- ~QOptionTreeItem() {
- while (!childItems.isEmpty())
- delete childItems.takeFirst();
- }
-
- ItemType type;
- int index;
- const void* ptr;
- const char* description;
- int selected;
- const char* selDescription;
- QOptionTreeItem* parentItem;
- QList<QOptionTreeItem*> childItems;
-};
-
-class QPPDOptionsModel : public QAbstractItemModel
-{
- friend class QPPDOptionsEditor;
-public:
- QPPDOptionsModel(QCUPSSupport *cups, QObject *parent = 0);
- ~QPPDOptionsModel();
-
- int columnCount(const QModelIndex& parent = QModelIndex()) const;
- int rowCount(const QModelIndex& parent = QModelIndex()) const;
- QVariant data(const QModelIndex& index, int role = Qt::DisplayRole) const;
- QModelIndex index(int row, int column, const QModelIndex& parent = QModelIndex()) const;
- QModelIndex parent(const QModelIndex& index) const;
- Qt::ItemFlags flags(const QModelIndex& index) const;
- QVariant headerData ( int section, Qt::Orientation orientation, int role = Qt::DisplayRole ) const;
-
- QOptionTreeItem* rootItem;
- QCUPSSupport *cups;
- const ppd_file_t* ppd;
- void parseItems();
- void parseGroups(QOptionTreeItem* parent);
- void parseOptions(QOptionTreeItem* parent);
- void parseChoices(QOptionTreeItem* parent);
-};
-
-class QPPDOptionsEditor : public QStyledItemDelegate
-{
- Q_OBJECT
-public:
- QPPDOptionsEditor(QObject* parent = 0) : QStyledItemDelegate(parent) {}
- ~QPPDOptionsEditor() {}
-
- QWidget* createEditor(QWidget* parent, const QStyleOptionViewItem& option, const QModelIndex& index) const;
- void setEditorData(QWidget* editor, const QModelIndex& index) const;
- void setModelData( QWidget* editor, QAbstractItemModel* model, const QModelIndex& index) const;
-
-private slots:
- void cbChanged(int index);
-
-};
-
-#endif
-
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-
-QPrintPropertiesDialog::QPrintPropertiesDialog(QAbstractPrintDialog *parent)
- : QDialog(parent)
-#if !defined(QT_NO_CUPS) && !defined(QT_NO_LIBRARY)
- , m_cups(0), m_cupsOptionsModel(0)
-#endif
-{
- QVBoxLayout *lay = new QVBoxLayout(this);
- this->setLayout(lay);
- QWidget *content = new QWidget(this);
- widget.setupUi(content);
- m_buttons = new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel, Qt::Horizontal, this);
- lay->addWidget(content);
- lay->addWidget(m_buttons);
-
- connect(m_buttons->button(QDialogButtonBox::Ok), SIGNAL(clicked()), this, SLOT(accept()));
- connect(m_buttons->button(QDialogButtonBox::Cancel), SIGNAL(clicked()), this, SLOT(reject()));
-}
-
-QPrintPropertiesDialog::~QPrintPropertiesDialog()
-{
-#if !defined(QT_NO_CUPS) && !defined(QT_NO_LIBRARY)
- delete m_cupsOptionsModel;
-#else
- delete widget.cupsPropertiesPage;
-#endif
-}
-
-void QPrintPropertiesDialog::applyPrinterProperties(QPrinter *p)
-{
- widget.pageSetup->setPrinter(p);
-}
-
-void QPrintPropertiesDialog::setupPrinter() const
-{
- widget.pageSetup->setupPrinter();
-
-#if !defined(QT_NO_CUPS) && !defined(QT_NO_LIBRARY)
- QPPDOptionsModel* model = static_cast<QPPDOptionsModel*>(widget.treeView->model());
- if (model) {
- QOptionTreeItem* rootItem = model->rootItem;
- QList<const ppd_option_t*> options;
- QList<const char*> markedOptions;
-
- addItemToOptions(rootItem, options, markedOptions);
- model->cups->saveOptions(options, markedOptions);
- }
-#endif
-}
-
-void QPrintPropertiesDialog::selectPrinter()
-{
-#if !defined(QT_NO_CUPS) && !defined(QT_NO_LIBRARY)
- widget.pageSetup->selectPrinter(m_cups);
- widget.treeView->setModel(0);
- if (m_cups && QCUPSSupport::isAvailable()) {
-
- if (m_cupsOptionsModel == 0) {
- m_cupsOptionsModel = new QPPDOptionsModel(m_cups);
-
- widget.treeView->setItemDelegate(new QPPDOptionsEditor(this));
- } else {
- // update the model
- m_cupsOptionsModel->parseItems();
- }
-
- if (m_cupsOptionsModel->rowCount() > 0) {
- widget.treeView->setModel(m_cupsOptionsModel);
-
- for (int i = 0; i < m_cupsOptionsModel->rowCount(); ++i)
- widget.treeView->expand(m_cupsOptionsModel->index(i,0));
-
- widget.tabs->setTabEnabled(1, true); // enable the advanced tab
- } else {
- widget.tabs->setTabEnabled(1, false);
- }
-
- } else
-#endif
- {
- widget.cupsPropertiesPage->setEnabled(false);
- widget.pageSetup->selectPrinter(0);
- }
-}
-
-void QPrintPropertiesDialog::selectPdfPsPrinter(const QPrinter *p)
-{
- widget.treeView->setModel(0);
- widget.pageSetup->selectPdfPsPrinter(p);
- widget.tabs->setTabEnabled(1, false); // disable the advanced tab
-}
-
-void QPrintPropertiesDialog::showEvent(QShowEvent* event)
-{
- widget.treeView->resizeColumnToContents(0);
- event->accept();
-}
-
-#if !defined(QT_NO_CUPS) && !defined(QT_NO_LIBRARY)
-void QPrintPropertiesDialog::addItemToOptions(QOptionTreeItem *parent, QList<const ppd_option_t*>& options, QList<const char*>& markedOptions) const
-{
- for (int i = 0; i < parent->childItems.count(); ++i) {
- QOptionTreeItem *itm = parent->childItems.at(i);
- if (itm->type == QOptionTreeItem::Option) {
- const ppd_option_t* opt = reinterpret_cast<const ppd_option_t*>(itm->ptr);
- options << opt;
- if (qstrcmp(opt->defchoice, opt->choices[itm->selected].choice) != 0) {
- markedOptions << opt->keyword << opt->choices[itm->selected].choice;
- }
- } else {
- addItemToOptions(itm, options, markedOptions);
- }
- }
-}
-#endif
-
-QPrintDialogPrivate::QPrintDialogPrivate()
- : top(0), bottom(0), buttons(0), collapseButton(0)
-{
-}
-
-QPrintDialogPrivate::~QPrintDialogPrivate()
-{
-}
-
-void QPrintDialogPrivate::init()
-{
- Q_Q(QPrintDialog);
-
- top = new QUnixPrintWidget(0, q);
- bottom = new QWidget(q);
- options.setupUi(bottom);
- options.color->setIconSize(QSize(32, 32));
- options.color->setIcon(QIcon(QLatin1String(":/trolltech/dialogs/qprintdialog/images/status-color.png")));
- options.grayscale->setIconSize(QSize(32, 32));
- options.grayscale->setIcon(QIcon(QLatin1String(":/trolltech/dialogs/qprintdialog/images/status-gray-scale.png")));
- top->d->setOptionsPane(this);
-
- buttons = new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel, Qt::Horizontal, q);
- collapseButton = new QPushButton(QPrintDialog::tr("&Options >>"), buttons);
- buttons->addButton(collapseButton, QDialogButtonBox::ResetRole);
- bottom->setVisible(false);
-
- QPushButton *printButton = buttons->button(QDialogButtonBox::Ok);
- printButton->setText(QPrintDialog::tr("&Print"));
- printButton->setDefault(true);
-
- QVBoxLayout *lay = new QVBoxLayout(q);
- q->setLayout(lay);
- lay->addWidget(top);
- lay->addWidget(bottom);
- lay->addWidget(buttons);
-
- QPrinter* p = q->printer();
-
- applyPrinterProperties(p);
-
-#ifdef QT_NO_MESSAGEBOX
- QObject::connect(buttons, SIGNAL(accepted()), q, SLOT(accept()));
-#else
- QObject::connect(buttons, SIGNAL(accepted()), q, SLOT(_q_checkFields()));
-#endif
- QObject::connect(buttons, SIGNAL(rejected()), q, SLOT(reject()));
-
- QObject::connect(options.reverse, SIGNAL(toggled(bool)),
- q, SLOT(_q_chbPrintLastFirstToggled(bool)));
-
- QObject::connect(collapseButton, SIGNAL(released()), q, SLOT(_q_collapseOrExpandDialog()));
-}
-
-void QPrintDialogPrivate::applyPrinterProperties(QPrinter *p)
-{
- if (p->colorMode() == QPrinter::Color)
- options.color->setChecked(true);
- else
- options.grayscale->setChecked(true);
-
- switch(p->duplex()) {
- case QPrinter::DuplexNone:
- options.noDuplex->setChecked(true); break;
- case QPrinter::DuplexLongSide:
- case QPrinter::DuplexAuto:
- options.duplexLong->setChecked(true); break;
- case QPrinter::DuplexShortSide:
- options.duplexShort->setChecked(true); break;
- }
- options.copies->setValue(p->copyCount());
- options.collate->setChecked(p->collateCopies());
- options.reverse->setChecked(p->pageOrder() == QPrinter::LastPageFirst);
- top->d->applyPrinterProperties(p);
-}
-
-void QPrintDialogPrivate::_q_chbPrintLastFirstToggled(bool checked)
-{
- Q_Q(QPrintDialog);
- if (checked)
- q->printer()->setPageOrder(QPrinter::LastPageFirst);
- else
- q->printer()->setPageOrder(QPrinter::FirstPageFirst);
-}
-
-void QPrintDialogPrivate::_q_collapseOrExpandDialog()
-{
- int collapseHeight = 0;
- Q_Q(QPrintDialog);
- QWidget *widgetToHide = bottom;
- if (widgetToHide->isVisible()) {
- collapseButton->setText(QPrintDialog::tr("&Options >>"));
- collapseHeight = widgetToHide->y() + widgetToHide->height() - (top->y() + top->height());
- }
- else
- collapseButton->setText(QPrintDialog::tr("&Options <<"));
- widgetToHide->setVisible(! widgetToHide->isVisible());
- if (! widgetToHide->isVisible()) { // make it shrink
- q->layout()->activate();
- q->resize( QSize(q->width(), q->height() - collapseHeight) );
- }
-}
-
-#ifndef QT_NO_MESSAGEBOX
-void QPrintDialogPrivate::_q_checkFields()
-{
- Q_Q(QPrintDialog);
- if (top->d->checkFields())
- q->accept();
-}
-#endif // QT_NO_MESSAGEBOX
-
-void QPrintDialogPrivate::setupPrinter()
-{
- Q_Q(QPrintDialog);
- QPrinter* p = q->printer();
-
- if (options.duplex->isEnabled()) {
- if (options.noDuplex->isChecked())
- p->setDuplex(QPrinter::DuplexNone);
- else if (options.duplexLong->isChecked())
- p->setDuplex(QPrinter::DuplexLongSide);
- else
- p->setDuplex(QPrinter::DuplexShortSide);
- }
-
- p->setColorMode( options.color->isChecked() ? QPrinter::Color : QPrinter::GrayScale );
-
- // print range
- if (options.printAll->isChecked()) {
- p->setPrintRange(QPrinter::AllPages);
- p->setFromTo(0,0);
- } else if (options.printSelection->isChecked()) {
- p->setPrintRange(QPrinter::Selection);
- p->setFromTo(0,0);
- } else if (options.printCurrentPage->isChecked()) {
- p->setPrintRange(QPrinter::CurrentPage);
- p->setFromTo(0,0);
- } else if (options.printRange->isChecked()) {
- p->setPrintRange(QPrinter::PageRange);
- p->setFromTo(options.from->value(), qMax(options.from->value(), options.to->value()));
- }
-
- // copies
- p->setCopyCount(options.copies->value());
- p->setCollateCopies(options.collate->isChecked());
-
- top->d->setupPrinter();
-}
-
-void QPrintDialogPrivate::updateWidgets()
-{
- Q_Q(QPrintDialog);
- options.gbPrintRange->setVisible(q->isOptionEnabled(QPrintDialog::PrintPageRange) ||
- q->isOptionEnabled(QPrintDialog::PrintSelection) ||
- q->isOptionEnabled(QPrintDialog::PrintCurrentPage));
-
- options.printRange->setEnabled(q->isOptionEnabled(QPrintDialog::PrintPageRange));
- options.printSelection->setVisible(q->isOptionEnabled(QPrintDialog::PrintSelection));
- options.printCurrentPage->setVisible(q->isOptionEnabled(QPrintDialog::PrintCurrentPage));
- options.collate->setVisible(q->isOptionEnabled(QPrintDialog::PrintCollateCopies));
-
- switch (q->printRange()) {
- case QPrintDialog::AllPages:
- options.printAll->setChecked(true);
- break;
- case QPrintDialog::Selection:
- options.printSelection->setChecked(true);
- break;
- case QPrintDialog::PageRange:
- options.printRange->setChecked(true);
- break;
- case QPrintDialog::CurrentPage:
- if (q->isOptionEnabled(QPrintDialog::PrintCurrentPage))
- options.printCurrentPage->setChecked(true);
- break;
- default:
- break;
- }
- const int minPage = qMax(1, qMin(q->minPage() , q->maxPage()));
- const int maxPage = qMax(1, q->maxPage() == INT_MAX ? 9999 : q->maxPage());
-
- options.from->setMinimum(minPage);
- options.to->setMinimum(minPage);
- options.from->setMaximum(maxPage);
- options.to->setMaximum(maxPage);
-
- options.from->setValue(q->fromPage());
- options.to->setValue(q->toPage());
- top->d->updateWidget();
-}
-
-void QPrintDialogPrivate::setTabs(const QList<QWidget*> &tabWidgets)
-{
- while(options.tabs->count() > 2)
- delete options.tabs->widget(2);
-
- QList<QWidget*>::ConstIterator iter = tabWidgets.begin();
- while(iter != tabWidgets.constEnd()) {
- QWidget *tab = *iter;
- options.tabs->addTab(tab, tab->windowTitle());
- ++iter;
- }
-}
-
-#if !defined(QT_NO_CUPS) && !defined(QT_NO_LIBRARY)
-void QPrintDialogPrivate::selectPrinter(QCUPSSupport *cups)
-{
- options.duplex->setEnabled(cups && cups->ppdOption("Duplex"));
-}
-#endif
-
-////////////////////////////////////////////////////////////////////////////////
-
-QPrintDialog::QPrintDialog(QPrinter *printer, QWidget *parent)
- : QAbstractPrintDialog(*(new QPrintDialogPrivate), printer, parent)
-{
- Q_D(QPrintDialog);
- d->init();
-}
-
-/*!
- Constructs a print dialog with the given \a parent.
-*/
-QPrintDialog::QPrintDialog(QWidget *parent)
- : QAbstractPrintDialog(*(new QPrintDialogPrivate), 0, parent)
-{
- Q_D(QPrintDialog);
- d->init();
-}
-
-QPrintDialog::~QPrintDialog()
-{
-}
-
-void QPrintDialog::setVisible(bool visible)
-{
- Q_D(QPrintDialog);
-
- if (visible)
- d->updateWidgets();
-
- QAbstractPrintDialog::setVisible(visible);
-}
-
-int QPrintDialog::exec()
-{
- return QDialog::exec();
-}
-
-void QPrintDialog::accept()
-{
- Q_D(QPrintDialog);
- d->setupPrinter();
- QDialog::accept();
-}
-
-#ifdef QT3_SUPPORT
-QPrinter *QPrintDialog::printer() const
-{
- Q_D(const QPrintDialog);
- return d->printer;
-}
-
-void QPrintDialog::setPrinter(QPrinter *printer, bool pickupSettings)
-{
- if (!printer)
- return;
-
- Q_D(QPrintDialog);
- d->printer = printer;
-
- if (pickupSettings)
- d->applyPrinterProperties(printer);
-}
-
-void QPrintDialog::addButton(QPushButton *button)
-{
- Q_D(QPrintDialog);
- d->buttons->addButton(button, QDialogButtonBox::HelpRole);
-}
-#endif // QT3_SUPPORT
-
-#if defined (Q_OS_UNIX)
-
-/*! \internal
-*/
-QUnixPrintWidgetPrivate::QUnixPrintWidgetPrivate(QUnixPrintWidget *p)
- : parent(p), propertiesDialog(0), printer(0), optionsPane(0), filePrintersAdded(false)
-#if !defined(QT_NO_CUPS) && !defined(QT_NO_LIBRARY)
- , cups(0), cupsPrinterCount(0), cupsPrinters(0), cupsPPD(0)
-#endif
-{
- q = 0;
- if (parent)
- q = qobject_cast<QAbstractPrintDialog*> (parent->parent());
-
- widget.setupUi(parent);
-
- int currentPrinterIndex = 0;
-#if !defined(QT_NO_CUPS) && !defined(QT_NO_LIBRARY)
- cups = new QCUPSSupport;
- if (QCUPSSupport::isAvailable()) {
- cupsPPD = cups->currentPPD();
- cupsPrinterCount = cups->availablePrintersCount();
- cupsPrinters = cups->availablePrinters();
-
- for (int i = 0; i < cupsPrinterCount; ++i) {
- QString printerName(QString::fromLocal8Bit(cupsPrinters[i].name));
- if (cupsPrinters[i].instance)
- printerName += QLatin1Char('/') + QString::fromLocal8Bit(cupsPrinters[i].instance);
-
- widget.printers->addItem(printerName);
- if (cupsPrinters[i].is_default)
- widget.printers->setCurrentIndex(i);
- }
- // the model depends on valid ppd. so before enabling the
- // properties button we make sure the ppd is in fact valid.
- if (cupsPrinterCount && cups->currentPPD()) {
- widget.properties->setEnabled(true);
- }
- currentPrinterIndex = cups->currentPrinterIndex();
- } else {
-#endif
- currentPrinterIndex = qt_getLprPrinters(lprPrinters);
- // populating printer combo
- QList<QPrinterDescription>::const_iterator i = lprPrinters.constBegin();
- for(; i != lprPrinters.constEnd(); ++i)
- widget.printers->addItem((*i).name);
-#if !defined(QT_NO_CUPS) && !defined(QT_NO_LIBRARY)
- }
-#endif
-
-#if !defined(QT_NO_FILESYSTEMMODEL) && !defined(QT_NO_COMPLETER)
- QFileSystemModel *fsm = new QFileSystemModel(widget.filename);
- fsm->setRootPath(QDir::homePath());
- widget.filename->setCompleter(new QCompleter(fsm, widget.filename));
-#endif
- _q_printerChanged(currentPrinterIndex);
-
- QObject::connect(widget.printers, SIGNAL(currentIndexChanged(int)),
- parent, SLOT(_q_printerChanged(int)));
- QObject::connect(widget.fileBrowser, SIGNAL(clicked()), parent, SLOT(_q_btnBrowseClicked()));
- QObject::connect(widget.properties, SIGNAL(clicked()), parent, SLOT(_q_btnPropertiesClicked()));
-
- // disable features that QPrinter does not yet support.
- widget.preview->setVisible(false);
-}
-
-void QUnixPrintWidgetPrivate::updateWidget()
-{
- const bool printToFile = q == 0 || q->isOptionEnabled(QPrintDialog::PrintToFile);
- if (printToFile && !filePrintersAdded) {
- if (widget.printers->count())
- widget.printers->insertSeparator(widget.printers->count());
- widget.printers->addItem(QPrintDialog::tr("Print to File (PDF)"));
- filePrintersAdded = true;
- }
- if (!printToFile && filePrintersAdded) {
- widget.printers->removeItem(widget.printers->count()-1);
- widget.printers->removeItem(widget.printers->count()-1);
- if (widget.printers->count())
- widget.printers->removeItem(widget.printers->count()-1); // remove separator
- filePrintersAdded = false;
- }
- if (printer && filePrintersAdded && (printer->outputFormat() != QPrinter::NativeFormat
- || printer->printerName().isEmpty()))
- {
- if (printer->outputFormat() == QPrinter::PdfFormat)
- widget.printers->setCurrentIndex(widget.printers->count() - 1);
- widget.filename->setEnabled(true);
- widget.lOutput->setEnabled(true);
- }
-
- widget.filename->setVisible(printToFile);
- widget.lOutput->setVisible(printToFile);
- widget.fileBrowser->setVisible(printToFile);
-
- widget.properties->setVisible(q->isOptionEnabled(QAbstractPrintDialog::PrintShowPageSize));
-}
-
-QUnixPrintWidgetPrivate::~QUnixPrintWidgetPrivate()
-{
-#if !defined(QT_NO_CUPS) && !defined(QT_NO_LIBRARY)
- delete cups;
-#endif
-}
-
-void QUnixPrintWidgetPrivate::_q_printerChanged(int index)
-{
- if (index < 0)
- return;
- const int printerCount = widget.printers->count();
- widget.filename->setEnabled(false);
- widget.lOutput->setEnabled(false);
-
- if (filePrintersAdded) {
- Q_ASSERT(index != printerCount - 3); // separator
- if (index == printerCount - 1) { // PDF
- widget.location->setText(QPrintDialog::tr("Local file"));
- widget.type->setText(QPrintDialog::tr("Write PDF file"));
- widget.properties->setEnabled(true);
- widget.filename->setEnabled(true);
- QString filename = widget.filename->text();
- QString suffix = QFileInfo(filename).suffix();
- widget.filename->setText(filename);
- widget.lOutput->setEnabled(true);
- if (propertiesDialog)
- propertiesDialog->selectPdfPsPrinter(printer);
-#if !defined(QT_NO_CUPS) && !defined(QT_NO_LIBRARY)
- if (optionsPane)
- optionsPane->selectPrinter(0);
-#endif
- return;
- }
- }
-
- widget.location->setText(QString());
-#if !defined(QT_NO_CUPS) && !defined(QT_NO_LIBRARY)
- if (QCUPSSupport::isAvailable()) {
- cups->setCurrentPrinter(index);
-
- const cups_option_t *opt = cups->printerOption(QString::fromLatin1("printer-location"));
- QString location;
- if (opt)
- location = QString::fromLocal8Bit(opt->value);
- widget.location->setText(location);
-
- cupsPPD = cups->currentPPD();
- // set printer type line
- QString type;
- if (cupsPPD)
- type = QString::fromLocal8Bit(cupsPPD->manufacturer) + QLatin1String(" - ") + QString::fromLocal8Bit(cupsPPD->modelname);
- widget.type->setText(type);
- if (propertiesDialog)
- propertiesDialog->selectPrinter();
- if (optionsPane)
- optionsPane->selectPrinter(cups);
- } else {
- if (optionsPane)
- optionsPane->selectPrinter(0);
-#endif
- if (lprPrinters.count() > 0) {
- QString type = lprPrinters.at(index).name + QLatin1Char('@') + lprPrinters.at(index).host;
- if (!lprPrinters.at(index).comment.isEmpty())
- type += QLatin1String(", ") + lprPrinters.at(index).comment;
- widget.type->setText(type);
- if (propertiesDialog)
- propertiesDialog->selectPrinter();
- }
-#if !defined(QT_NO_CUPS) && !defined(QT_NO_LIBRARY)
- }
-#endif
-}
-
-void QUnixPrintWidgetPrivate::setOptionsPane(QPrintDialogPrivate *pane)
-{
- optionsPane = pane;
- if (optionsPane)
- _q_printerChanged(widget.printers->currentIndex());
-}
-
-void QUnixPrintWidgetPrivate::_q_btnBrowseClicked()
-{
- QString filename = widget.filename->text();
-#ifndef QT_NO_FILEDIALOG
- filename = QFileDialog::getSaveFileName(parent, QPrintDialog::tr("Print To File ..."), filename,
- QString(), 0, QFileDialog::DontConfirmOverwrite);
-#else
- filename.clear();
-#endif
- if (!filename.isEmpty()) {
- widget.filename->setText(filename);
- widget.printers->setCurrentIndex(widget.printers->count() - 1); // the pdf one
- }
-}
-
-void QUnixPrintWidgetPrivate::applyPrinterProperties(QPrinter *p)
-{
- if (p == 0)
- return;
- printer = p;
- if (p->outputFileName().isEmpty()) {
- QString home = QString::fromLocal8Bit(qgetenv("HOME").constData());
- QString cur = QDir::currentPath();
- if (home.at(home.length()-1) != QLatin1Char('/'))
- home += QLatin1Char('/');
- if (cur.at(cur.length()-1) != QLatin1Char('/'))
- cur += QLatin1Char('/');
- if (cur.left(home.length()) != home)
- cur = home;
-#ifdef Q_WS_X11
- if (p->docName().isEmpty()) {
- cur += QLatin1String("print.pdf");
- } else {
- QRegExp re(QString::fromLatin1("(.*)\\.\\S+"));
- if (re.exactMatch(p->docName()))
- cur += re.cap(1);
- else
- cur += p->docName();
- cur += QLatin1String(".pdf");
- }
-#endif
- widget.filename->setText(cur);
- }
- else
- widget.filename->setText( p->outputFileName() );
- QString printer = p->printerName();
- if (!printer.isEmpty()) {
- for (int i = 0; i < widget.printers->count(); ++i) {
- if (widget.printers->itemText(i) == printer) {
- widget.printers->setCurrentIndex(i);
- break;
- }
- }
- }
- // PDF and PS printers are not added to the dialog yet, we'll handle those cases in QUnixPrintWidgetPrivate::updateWidget
-
- if (propertiesDialog)
- propertiesDialog->applyPrinterProperties(p);
-}
-
-#ifndef QT_NO_MESSAGEBOX
-bool QUnixPrintWidgetPrivate::checkFields()
-{
- if (widget.filename->isEnabled()) {
- QString file = widget.filename->text();
- QFile f(file);
- QFileInfo fi(f);
- bool exists = fi.exists();
- bool opened = false;
- if (exists && fi.isDir()) {
- QMessageBox::warning(q, q->windowTitle(),
- QPrintDialog::tr("%1 is a directory.\nPlease choose a different file name.").arg(file));
- return false;
- } else if ((exists && !fi.isWritable()) || !(opened = f.open(QFile::Append))) {
- QMessageBox::warning(q, q->windowTitle(),
- QPrintDialog::tr("File %1 is not writable.\nPlease choose a different file name.").arg(file));
- return false;
- } else if (exists) {
- int ret = QMessageBox::question(q, q->windowTitle(),
- QPrintDialog::tr("%1 already exists.\nDo you want to overwrite it?").arg(file),
- QMessageBox::Yes|QMessageBox::No, QMessageBox::No);
- if (ret == QMessageBox::No)
- return false;
- }
- if (opened) {
- f.close();
- if (!exists)
- f.remove();
- }
- }
-
- // Every test passed. Accept the dialog.
- return true;
-}
-#endif // QT_NO_MESSAGEBOX
-
-void QUnixPrintWidgetPrivate::_q_btnPropertiesClicked()
-{
- if (!propertiesDialog) {
- propertiesDialog = new QPrintPropertiesDialog(q);
- propertiesDialog->setResult(QDialog::Rejected);
- }
-
- if (propertiesDialog->result() == QDialog::Rejected) {
-#if !defined(QT_NO_CUPS) && !defined(QT_NO_LIBRARY)
- propertiesDialog->setCups(cups);
-#endif
- propertiesDialog->applyPrinterProperties(q->printer());
-
- if (q->isOptionEnabled(QPrintDialog::PrintToFile)
- && (widget.printers->currentIndex() == widget.printers->count() - 1)) // PDF
- propertiesDialog->selectPdfPsPrinter(q->printer());
- else
- propertiesDialog->selectPrinter();
- }
- propertiesDialog->exec();
-}
-
-#if !defined(QT_NO_CUPS) && !defined(QT_NO_LIBRARY)
-void QUnixPrintWidgetPrivate::setCupsProperties()
-{
- if (cups && QCUPSSupport::isAvailable() && cups->pageSizes()) {
- QPrintEngine *engine = printer->printEngine();
- const ppd_option_t* pageSizes = cups->pageSizes();
- QByteArray cupsPageSize;
- for (int i = 0; i < pageSizes->num_choices; ++i) {
- if (static_cast<int>(pageSizes->choices[i].marked) == 1)
- cupsPageSize = pageSizes->choices[i].choice;
- }
- engine->setProperty(PPK_CupsStringPageSize, QString::fromLatin1(cupsPageSize));
- engine->setProperty(PPK_CupsOptions, cups->options());
-
- QRect pageRect = cups->pageRect(cupsPageSize);
- engine->setProperty(PPK_CupsPageRect, pageRect);
-
- QRect paperRect = cups->paperRect(cupsPageSize);
- engine->setProperty(PPK_CupsPaperRect, paperRect);
-
- for (int ps = 0; ps < QPrinter::NPageSize; ++ps) {
- QPdf::PaperSize size = QPdf::paperSize(QPrinter::PaperSize(ps));
- if (size.width == paperRect.width() && size.height == paperRect.height())
- printer->setPaperSize(static_cast<QPrinter::PaperSize>(ps));
- }
- }
-}
-#endif
-
-void QUnixPrintWidgetPrivate::setupPrinter()
-{
- const int printerCount = widget.printers->count();
- const int index = widget.printers->currentIndex();
-
- if (filePrintersAdded && index == printerCount - 1) { // PDF
- printer->setPrinterName(QString());
- Q_ASSERT(index != printerCount - 3); // separator
- printer->setOutputFormat(QPrinter::PdfFormat);
- QString path = widget.filename->text();
- if (QDir::isRelativePath(path))
- path = QDir::homePath() + QDir::separator() + path;
- printer->setOutputFileName(path);
- }
- else {
- printer->setPrinterName(widget.printers->currentText());
- printer->setOutputFileName(QString());
- }
-
- if (propertiesDialog && propertiesDialog->result() == QDialog::Accepted)
- propertiesDialog->setupPrinter();
-#if !defined(QT_NO_CUPS) && !defined(QT_NO_LIBRARY)
- if (!propertiesDialog)
- setCupsProperties();
-#endif
-}
-
-
-/*! \internal
-*/
-QUnixPrintWidget::QUnixPrintWidget(QPrinter *printer, QWidget *parent)
- : QWidget(parent), d(new QUnixPrintWidgetPrivate(this))
-{
- d->applyPrinterProperties(printer);
-}
-
-/*! \internal
-*/
-QUnixPrintWidget::~QUnixPrintWidget()
-{
- delete d;
-}
-
-/*! \internal
-
- Updates the printer with the states held in the QUnixPrintWidget.
-*/
-void QUnixPrintWidget::updatePrinter()
-{
- d->setupPrinter();
-}
-
-#endif
-
-////////////////////////////////////////////////////////////////////////////////
-#if !defined(QT_NO_CUPS) && !defined(QT_NO_LIBRARY)
-
-QPPDOptionsModel::QPPDOptionsModel(QCUPSSupport *c, QObject *parent)
- : QAbstractItemModel(parent), rootItem(0), cups(c), ppd(c->currentPPD())
-{
- parseItems();
-}
-
-QPPDOptionsModel::~QPPDOptionsModel()
-{
-}
-
-int QPPDOptionsModel::columnCount(const QModelIndex&) const
-{
- return 2;
-}
-
-int QPPDOptionsModel::rowCount(const QModelIndex& parent) const
-{
- QOptionTreeItem* itm;
- if (!parent.isValid())
- itm = rootItem;
- else
- itm = reinterpret_cast<QOptionTreeItem*>(parent.internalPointer());
-
- if (itm->type == QOptionTreeItem::Option)
- return 0;
-
- return itm->childItems.count();
-}
-
-QVariant QPPDOptionsModel::data(const QModelIndex& index, int role) const
-{
- switch(role) {
- case Qt::FontRole: {
- QOptionTreeItem* itm = reinterpret_cast<QOptionTreeItem*>(index.internalPointer());
- if (itm && itm->type == QOptionTreeItem::Group){
- QFont font = QApplication::font();
- font.setBold(true);
- return QVariant(font);
- }
- return QVariant();
- }
- break;
-
- case Qt::DisplayRole: {
- QOptionTreeItem* itm;
- if (!index.isValid())
- itm = rootItem;
- else
- itm = reinterpret_cast<QOptionTreeItem*>(index.internalPointer());
-
- if (index.column() == 0)
- return cups->unicodeString(itm->description);
- else if (itm->type == QOptionTreeItem::Option && itm->selected > -1)
- return cups->unicodeString(itm->selDescription);
- else
- return QVariant();
- }
- break;
-
- default:
- return QVariant();
- }
- if (role != Qt::DisplayRole)
- return QVariant();
-}
-
-QModelIndex QPPDOptionsModel::index(int row, int column, const QModelIndex& parent) const
-{
- QOptionTreeItem* itm;
- if (!parent.isValid())
- itm = rootItem;
- else
- itm = reinterpret_cast<QOptionTreeItem*>(parent.internalPointer());
-
- return createIndex(row, column, itm->childItems.at(row));
-}
-
-
-QModelIndex QPPDOptionsModel::parent(const QModelIndex& index) const
-{
- if (!index.isValid())
- return QModelIndex();
-
- QOptionTreeItem* itm = reinterpret_cast<QOptionTreeItem*>(index.internalPointer());
-
- if (itm->parentItem && itm->parentItem != rootItem)
- return createIndex(itm->parentItem->index, 0, itm->parentItem);
- else
- return QModelIndex();
-}
-
-Qt::ItemFlags QPPDOptionsModel::flags(const QModelIndex& index) const
-{
- if (!index.isValid() || reinterpret_cast<QOptionTreeItem*>(index.internalPointer())->type == QOptionTreeItem::Group)
- return Qt::ItemIsEnabled;
-
- if (index.column() == 1)
- return Qt::ItemIsEnabled | Qt::ItemIsSelectable | Qt::ItemIsEditable;
-
- return Qt::ItemIsEnabled | Qt::ItemIsSelectable;
-}
-
-void QPPDOptionsModel::parseItems()
-{
- emit layoutAboutToBeChanged();
- ppd = cups->currentPPD();
- delete rootItem;
- rootItem = new QOptionTreeItem(QOptionTreeItem::Root, 0, ppd, "Root Item", 0);
- parseGroups(rootItem);
- emit layoutChanged();
-}
-
-void QPPDOptionsModel::parseGroups(QOptionTreeItem* parent)
-{
- if (parent->type == QOptionTreeItem::Root) {
-
- const ppd_file_t* ppdFile = reinterpret_cast<const ppd_file_t*>(parent->ptr);
-
- if (ppdFile) {
- for (int i = 0; i < ppdFile->num_groups; ++i) {
- QOptionTreeItem* group = new QOptionTreeItem(QOptionTreeItem::Group, i, &ppdFile->groups[i], ppdFile->groups[i].text, parent);
- parent->childItems.append(group);
- parseGroups(group); // parse possible subgroups
- parseOptions(group); // parse options
- }
- }
- } else if (parent->type == QOptionTreeItem::Group) {
-
- const ppd_group_t* group = reinterpret_cast<const ppd_group_t*>(parent->ptr);
-
- if (group) {
- for (int i = 0; i < group->num_subgroups; ++i) {
- QOptionTreeItem* subgroup = new QOptionTreeItem(QOptionTreeItem::Group, i, &group->subgroups[i], group->subgroups[i].text, parent);
- parent->childItems.append(subgroup);
- parseGroups(subgroup); // parse possible subgroups
- parseOptions(subgroup); // parse options
- }
- }
- }
-}
-
-void QPPDOptionsModel::parseOptions(QOptionTreeItem* parent)
-{
- const ppd_group_t* group = reinterpret_cast<const ppd_group_t*>(parent->ptr);
- for (int i = 0; i < group->num_options; ++i) {
- QOptionTreeItem* opt = new QOptionTreeItem(QOptionTreeItem::Option, i, &group->options[i], group->options[i].text, parent);
- parent->childItems.append(opt);
- parseChoices(opt);
- }
-}
-
-void QPPDOptionsModel::parseChoices(QOptionTreeItem* parent)
-{
- const ppd_option_t* option = reinterpret_cast<const ppd_option_t*>(parent->ptr);
- bool marked = false;
- for (int i = 0; i < option->num_choices; ++i) {
- QOptionTreeItem* choice = new QOptionTreeItem(QOptionTreeItem::Choice, i, &option->choices[i], option->choices[i].text, parent);
- if (static_cast<int>(option->choices[i].marked) == 1) {
- parent->selected = i;
- parent->selDescription = option->choices[i].text;
- marked = true;
- } else if (!marked && qstrcmp(option->choices[i].choice, option->defchoice) == 0) {
- parent->selected = i;
- parent->selDescription = option->choices[i].text;
- }
- parent->childItems.append(choice);
- }
-}
-
-QVariant QPPDOptionsModel::headerData(int section, Qt::Orientation, int role) const
-{
- if (role != Qt::DisplayRole)
- return QVariant();
-
- switch(section){
- case 0:
- return QVariant(QApplication::translate("QPPDOptionsModel", "Name"));
- case 1:
- return QVariant(QApplication::translate("QPPDOptionsModel", "Value"));
- default:
- return QVariant();
- }
-}
-
-////////////////////////////////////////////////////////////////////////////////
-
-QWidget* QPPDOptionsEditor::createEditor(QWidget* parent, const QStyleOptionViewItem&, const QModelIndex& index) const
-{
- if (index.column() == 1 && reinterpret_cast<QOptionTreeItem*>(index.internalPointer())->type == QOptionTreeItem::Option)
- return new QComboBox(parent);
- else
- return 0;
-}
-
-void QPPDOptionsEditor::setEditorData(QWidget* editor, const QModelIndex& index) const
-{
- if (index.column() != 1)
- return;
-
- QComboBox* cb = static_cast<QComboBox*>(editor);
- QOptionTreeItem* itm = reinterpret_cast<QOptionTreeItem*>(index.internalPointer());
-
- if (itm->selected == -1)
- cb->addItem(QString());
-
- for (int i = 0; i < itm->childItems.count(); ++i)
- cb->addItem(QString::fromLocal8Bit(itm->childItems.at(i)->description));
-
- if (itm->selected > -1)
- cb->setCurrentIndex(itm->selected);
-
- connect(cb, SIGNAL(currentIndexChanged(int)), this, SLOT(cbChanged(int)));
-}
-
-void QPPDOptionsEditor::setModelData(QWidget* editor, QAbstractItemModel* model, const QModelIndex& index) const
-{
- QComboBox* cb = static_cast<QComboBox*>(editor);
- QOptionTreeItem* itm = reinterpret_cast<QOptionTreeItem*>(index.internalPointer());
-
- if (itm->selected == cb->currentIndex())
- return;
-
- const ppd_option_t* opt = reinterpret_cast<const ppd_option_t*>(itm->ptr);
- QPPDOptionsModel* m = static_cast<QPPDOptionsModel*>(model);
-
- if (m->cups->markOption(opt->keyword, opt->choices[cb->currentIndex()].choice) == 0) {
- itm->selected = cb->currentIndex();
- itm->selDescription = reinterpret_cast<const ppd_option_t*>(itm->ptr)->choices[itm->selected].text;
- }
-}
-
-void QPPDOptionsEditor::cbChanged(int)
-{
-/*
- emit commitData(static_cast<QWidget*>(sender()));
-*/
-}
-
-#endif
-
-QT_END_NAMESPACE
-
-#include "moc_qprintdialog.cpp"
-#include "qprintdialog_unix.moc"
-#include "qrc_qprintdialog.cpp"
-
-#endif // QT_NO_PRINTDIALOG
-
diff --git a/src/widgets/dialogs/qprintdialog_win.cpp b/src/widgets/dialogs/qprintdialog_win.cpp
deleted file mode 100644
index c8d92d45f2..0000000000
--- a/src/widgets/dialogs/qprintdialog_win.cpp
+++ /dev/null
@@ -1,316 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the QtGui module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** GNU Lesser General Public License Usage
-** This file may be used under the terms of the GNU Lesser General Public
-** License version 2.1 as published by the Free Software Foundation and
-** appearing in the file LICENSE.LGPL included in the packaging of this
-** file. Please review the following information to ensure the GNU Lesser
-** General Public License version 2.1 requirements will be met:
-** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Nokia gives you certain additional
-** rights. These rights are described in the Nokia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU General
-** Public License version 3.0 as published by the Free Software Foundation
-** and appearing in the file LICENSE.GPL included in the packaging of this
-** file. Please review the following information to ensure the GNU General
-** Public License version 3.0 requirements will be met:
-** http://www.gnu.org/copyleft/gpl.html.
-**
-** Other Usage
-** Alternatively, this file may be used in accordance with the terms and
-** conditions contained in a signed written agreement between you and Nokia.
-**
-**
-**
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QT_NO_PRINTDIALOG
-
-#include "qprintdialog.h"
-
-#include <qwidget.h>
-#include <qapplication.h>
-#include <qmessagebox.h>
-#include <private/qapplication_p.h>
-
-#include <private/qabstractprintdialog_p.h>
-#include <private/qprintengine_win_p.h>
-#include <private/qprinter_p.h>
-
-#if !defined(PD_NOCURRENTPAGE)
-#define PD_NOCURRENTPAGE 0x00800000
-#define PD_RESULT_PRINT 1
-#define PD_RESULT_APPLY 2
-#define START_PAGE_GENERAL 0XFFFFFFFF
-#endif
-
-QT_BEGIN_NAMESPACE
-
-extern void qt_win_eatMouseMove();
-
-class QPrintDialogPrivate : public QAbstractPrintDialogPrivate
-{
- Q_DECLARE_PUBLIC(QPrintDialog)
-public:
- QPrintDialogPrivate()
- : ep(0)
- {
- }
-
- inline void _q_printToFileChanged(int) {}
- inline void _q_rbPrintRangeToggled(bool) {}
- inline void _q_printerChanged(int) {}
- inline void _q_chbPrintLastFirstToggled(bool) {}
- inline void _q_paperSizeChanged(int) {}
- inline void _q_btnBrowseClicked() {}
- inline void _q_btnPropertiesClicked() {}
- int openWindowsPrintDialogModally();
-
- QWin32PrintEnginePrivate *ep;
-};
-
-static void qt_win_setup_PRINTDLGEX(PRINTDLGEX *pd, QWidget *parent,
- QPrintDialog *pdlg,
- QPrintDialogPrivate *d, HGLOBAL *tempDevNames)
-{
- DEVMODE *devMode = d->ep->devMode;
-
- if (devMode) {
- int size = sizeof(DEVMODE) + devMode->dmDriverExtra;
- pd->hDevMode = GlobalAlloc(GHND, size);
- {
- void *dest = GlobalLock(pd->hDevMode);
- memcpy(dest, devMode, size);
- GlobalUnlock(pd->hDevMode);
- }
- } else {
- pd->hDevMode = NULL;
- }
- pd->hDevNames = tempDevNames;
-
- pd->Flags = PD_RETURNDC;
- pd->Flags |= PD_USEDEVMODECOPIESANDCOLLATE;
-
- if (!pdlg->isOptionEnabled(QPrintDialog::PrintSelection))
- pd->Flags |= PD_NOSELECTION;
- if (pdlg->isOptionEnabled(QPrintDialog::PrintPageRange)) {
- pd->nMinPage = pdlg->minPage();
- pd->nMaxPage = pdlg->maxPage();
- }
-
- if(!pdlg->isOptionEnabled(QPrintDialog::PrintToFile))
- pd->Flags |= PD_DISABLEPRINTTOFILE;
-
- if (pdlg->printRange() == QPrintDialog::Selection)
- pd->Flags |= PD_SELECTION;
- else if (pdlg->printRange() == QPrintDialog::PageRange)
- pd->Flags |= PD_PAGENUMS;
- else
- pd->Flags |= PD_ALLPAGES;
-
- // As stated by MSDN, to enable collate option when minpage==maxpage==0
- // set the PD_NOPAGENUMS flag
- if (pd->nMinPage==0 && pd->nMaxPage==0)
- pd->Flags |= PD_NOPAGENUMS;
-
- // Disable Current Page option if not required as default is Enabled
- if (!pdlg->isOptionEnabled(QPrintDialog::PrintCurrentPage))
- pd->Flags |= PD_NOCURRENTPAGE;
-
- // Default to showing the General tab first
- pd->nStartPage = START_PAGE_GENERAL;
-
- // We don't support more than one page range in the QPrinter API yet.
- pd->nPageRanges = 1;
- pd->nMaxPageRanges = 1;
-
- if (d->ep->printToFile)
- pd->Flags |= PD_PRINTTOFILE;
- Q_ASSERT(parent);
- pd->hwndOwner = parent->window()->winId();
- pd->lpPageRanges[0].nFromPage = qMax(pdlg->fromPage(), pdlg->minPage());
- pd->lpPageRanges[0].nToPage = (pdlg->toPage() > 0) ? qMin(pdlg->toPage(), pdlg->maxPage()) : 1;
- pd->nCopies = d->ep->num_copies;
-}
-
-static void qt_win_read_back_PRINTDLGEX(PRINTDLGEX *pd, QPrintDialog *pdlg, QPrintDialogPrivate *d)
-{
- if (pd->Flags & PD_SELECTION) {
- pdlg->setPrintRange(QPrintDialog::Selection);
- pdlg->setFromTo(0, 0);
- } else if (pd->Flags & PD_PAGENUMS) {
- pdlg->setPrintRange(QPrintDialog::PageRange);
- pdlg->setFromTo(pd->lpPageRanges[0].nFromPage, pd->lpPageRanges[0].nToPage);
- } else if (pd->Flags & PD_CURRENTPAGE) {
- pdlg->setPrintRange(QPrintDialog::CurrentPage);
- pdlg->setFromTo(0, 0);
- } else { // PD_ALLPAGES
- pdlg->setPrintRange(QPrintDialog::AllPages);
- pdlg->setFromTo(0, 0);
- }
-
- d->ep->printToFile = (pd->Flags & PD_PRINTTOFILE) != 0;
-
- d->ep->readDevnames(pd->hDevNames);
- d->ep->readDevmode(pd->hDevMode);
- d->ep->updateCustomPaperSize();
-
- if (d->ep->printToFile && d->ep->fileName.isEmpty())
- d->ep->fileName = d->ep->port;
- else if (!d->ep->printToFile && d->ep->fileName == QLatin1String("FILE:"))
- d->ep->fileName.clear();
-}
-
-static bool warnIfNotNative(QPrinter *printer)
-{
- if (printer->outputFormat() != QPrinter::NativeFormat) {
- qWarning("QPrintDialog: Cannot be used on non-native printers");
- return false;
- }
- return true;
-}
-
-QPrintDialog::QPrintDialog(QPrinter *printer, QWidget *parent)
- : QAbstractPrintDialog( *(new QPrintDialogPrivate), printer, parent)
-{
- Q_D(QPrintDialog);
- if (!warnIfNotNative(d->printer))
- return;
- d->ep = static_cast<QWin32PrintEngine *>(d->printer->paintEngine())->d_func();
-}
-
-QPrintDialog::QPrintDialog(QWidget *parent)
- : QAbstractPrintDialog( *(new QPrintDialogPrivate), 0, parent)
-{
- Q_D(QPrintDialog);
- if (!warnIfNotNative(d->printer))
- return;
- d->ep = static_cast<QWin32PrintEngine *>(d->printer->paintEngine())->d_func();
-}
-
-QPrintDialog::~QPrintDialog()
-{
-}
-
-int QPrintDialog::exec()
-{
- if (!warnIfNotNative(printer()))
- return 0;
-
- Q_D(QPrintDialog);
- return d->openWindowsPrintDialogModally();
-}
-
-int QPrintDialogPrivate::openWindowsPrintDialogModally()
-{
- Q_Q(QPrintDialog);
- QWidget *parent = q->parentWidget();
- if (parent)
- parent = parent->window();
- else
- parent = QApplication::activeWindow();
-
- // If there is no window, fall back to the print dialog itself
- if (parent == 0)
- parent = q;
-
- QWidget modal_widget;
- modal_widget.setAttribute(Qt::WA_NoChildEventsForParent, true);
- modal_widget.setParent(parent, Qt::Window);
- QApplicationPrivate::enterModal(&modal_widget);
-
- HGLOBAL *tempDevNames = ep->createDevNames();
-
- bool done;
- bool result;
- bool doPrinting;
-
- PRINTPAGERANGE pageRange;
- PRINTDLGEX pd;
- memset(&pd, 0, sizeof(PRINTDLGEX));
- pd.lStructSize = sizeof(PRINTDLGEX);
- pd.lpPageRanges = &pageRange;
- qt_win_setup_PRINTDLGEX(&pd, parent, q, this, tempDevNames);
-
- do {
- done = true;
- doPrinting = false;
- result = (PrintDlgEx(&pd) == S_OK);
- if (result && (pd.dwResultAction == PD_RESULT_PRINT
- || pd.dwResultAction == PD_RESULT_APPLY))
- {
- doPrinting = (pd.dwResultAction == PD_RESULT_PRINT);
- if ((pd.Flags & PD_PAGENUMS)
- && (pd.lpPageRanges[0].nFromPage > pd.lpPageRanges[0].nToPage))
- {
- pd.lpPageRanges[0].nFromPage = 1;
- pd.lpPageRanges[0].nToPage = 1;
- done = false;
- }
- if (pd.hDC == 0)
- result = false;
- }
-
- if (!done) {
- QMessageBox::warning(0, QPrintDialog::tr("Print"),
- QPrintDialog::tr("The 'From' value cannot be greater than the 'To' value."),
- QPrintDialog::tr("OK"));
- }
- } while (!done);
-
- QApplicationPrivate::leaveModal(&modal_widget);
-
- qt_win_eatMouseMove();
-
- // write values back...
- if (result && (pd.dwResultAction == PD_RESULT_PRINT
- || pd.dwResultAction == PD_RESULT_APPLY))
- {
- qt_win_read_back_PRINTDLGEX(&pd, q, this);
- // update printer validity
- printer->d_func()->validPrinter = !ep->name.isEmpty();
- }
-
- // Cleanup...
- GlobalFree(tempDevNames);
-
- q->done(result && doPrinting);
-
- return result && doPrinting;
-}
-
-void QPrintDialog::setVisible(bool visible)
-{
- Q_D(QPrintDialog);
-
- // its always modal, so we cannot hide a native print dialog
- if (!visible)
- return;
-
- if (!warnIfNotNative(d->printer))
- return;
-
- (void)d->openWindowsPrintDialogModally();
- return;
-}
-
-QT_END_NAMESPACE
-
-#include "moc_qprintdialog.cpp"
-
-#endif // QT_NO_PRINTDIALOG
diff --git a/src/widgets/dialogs/qprintpreviewdialog.cpp b/src/widgets/dialogs/qprintpreviewdialog.cpp
deleted file mode 100644
index af53b9d980..0000000000
--- a/src/widgets/dialogs/qprintpreviewdialog.cpp
+++ /dev/null
@@ -1,803 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the QtGui module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** GNU Lesser General Public License Usage
-** This file may be used under the terms of the GNU Lesser General Public
-** License version 2.1 as published by the Free Software Foundation and
-** appearing in the file LICENSE.LGPL included in the packaging of this
-** file. Please review the following information to ensure the GNU Lesser
-** General Public License version 2.1 requirements will be met:
-** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Nokia gives you certain additional
-** rights. These rights are described in the Nokia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU General
-** Public License version 3.0 as published by the Free Software Foundation
-** and appearing in the file LICENSE.GPL included in the packaging of this
-** file. Please review the following information to ensure the GNU General
-** Public License version 3.0 requirements will be met:
-** http://www.gnu.org/copyleft/gpl.html.
-**
-** Other Usage
-** Alternatively, this file may be used in accordance with the terms and
-** conditions contained in a signed written agreement between you and Nokia.
-**
-**
-**
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qprintpreviewdialog.h"
-#include "qprintpreviewwidget.h"
-#include <private/qprinter_p.h>
-#include "private/qdialog_p.h"
-#include "qprintdialog.h"
-
-#include <QtWidgets/qaction.h>
-#include <QtWidgets/qboxlayout.h>
-#include <QtWidgets/qcombobox.h>
-#include <QtWidgets/qlabel.h>
-#include <QtWidgets/qlineedit.h>
-#include <QtWidgets/qpagesetupdialog.h>
-#include <QtGui/qprinter.h>
-#include <QtWidgets/qstyle.h>
-#include <QtWidgets/qtoolbutton.h>
-#include <QtGui/qvalidator.h>
-#include <QtWidgets/qfiledialog.h>
-#include <QtWidgets/qmainwindow.h>
-#include <QtWidgets/qtoolbar.h>
-#include <QtWidgets/qformlayout.h>
-#include <QtCore/QCoreApplication>
-
-#include <math.h>
-
-#ifndef QT_NO_PRINTPREVIEWDIALOG
-
-QT_BEGIN_NAMESPACE
-
-namespace {
-class QPrintPreviewMainWindow : public QMainWindow
-{
-public:
- QPrintPreviewMainWindow(QWidget *parent) : QMainWindow(parent) {}
- QMenu *createPopupMenu() { return 0; }
-};
-
-class ZoomFactorValidator : public QDoubleValidator
-{
-public:
- ZoomFactorValidator(QObject* parent)
- : QDoubleValidator(parent) {}
- ZoomFactorValidator(qreal bottom, qreal top, int decimals, QObject *parent)
- : QDoubleValidator(bottom, top, decimals, parent) {}
-
- State validate(QString &input, int &pos) const
- {
- bool replacePercent = false;
- if (input.endsWith(QLatin1Char('%'))) {
- input = input.left(input.length() - 1);
- replacePercent = true;
- }
- State state = QDoubleValidator::validate(input, pos);
- if (replacePercent)
- input += QLatin1Char('%');
- const int num_size = 4;
- if (state == Intermediate) {
- int i = input.indexOf(QLocale::system().decimalPoint());
- if ((i == -1 && input.size() > num_size)
- || (i != -1 && i > num_size))
- return Invalid;
- }
- return state;
- }
-};
-
-class LineEdit : public QLineEdit
-{
- Q_OBJECT
-public:
- LineEdit(QWidget* parent = 0)
- : QLineEdit(parent)
- {
- setContextMenuPolicy(Qt::NoContextMenu);
- connect(this, SIGNAL(returnPressed()), SLOT(handleReturnPressed()));
- }
-
-protected:
- void focusInEvent(QFocusEvent *e)
- {
- origText = text();
- QLineEdit::focusInEvent(e);
- }
-
- void focusOutEvent(QFocusEvent *e)
- {
- if (isModified() && !hasAcceptableInput())
- setText(origText);
- QLineEdit::focusOutEvent(e);
- }
-
-private slots:
- void handleReturnPressed()
- {
- origText = text();
- }
-
-private:
- QString origText;
-};
-} // anonymous namespace
-
-class QPrintPreviewDialogPrivate : public QDialogPrivate
-{
- Q_DECLARE_PUBLIC(QPrintPreviewDialog)
-public:
- QPrintPreviewDialogPrivate()
- : printDialog(0), ownPrinter(false),
- initialized(false) {}
-
- // private slots
- void _q_fit(QAction *action);
- void _q_zoomIn();
- void _q_zoomOut();
- void _q_navigate(QAction *action);
- void _q_setMode(QAction *action);
- void _q_pageNumEdited();
- void _q_print();
- void _q_pageSetup();
- void _q_previewChanged();
- void _q_zoomFactorChanged();
-
- void init(QPrinter *printer = 0);
- void populateScene();
- void layoutPages();
- void setupActions();
- void updateNavActions();
- void setFitting(bool on);
- bool isFitting();
- void updatePageNumLabel();
- void updateZoomFactor();
-
- QPrintDialog *printDialog;
- QPrintPreviewWidget *preview;
- QPrinter *printer;
- bool ownPrinter;
- bool initialized;
-
- // widgets:
- QLineEdit *pageNumEdit;
- QLabel *pageNumLabel;
- QComboBox *zoomFactor;
-
- // actions:
- QActionGroup* navGroup;
- QAction *nextPageAction;
- QAction *prevPageAction;
- QAction *firstPageAction;
- QAction *lastPageAction;
-
- QActionGroup* fitGroup;
- QAction *fitWidthAction;
- QAction *fitPageAction;
-
- QActionGroup* zoomGroup;
- QAction *zoomInAction;
- QAction *zoomOutAction;
-
- QActionGroup* orientationGroup;
- QAction *portraitAction;
- QAction *landscapeAction;
-
- QActionGroup* modeGroup;
- QAction *singleModeAction;
- QAction *facingModeAction;
- QAction *overviewModeAction;
-
- QActionGroup *printerGroup;
- QAction *printAction;
- QAction *pageSetupAction;
-#if defined(Q_WS_MAC) && !defined(QT_MAC_USE_COCOA)
- QAction *closeAction;
-#endif
-
- QPointer<QObject> receiverToDisconnectOnClose;
- QByteArray memberToDisconnectOnClose;
-};
-
-void QPrintPreviewDialogPrivate::init(QPrinter *_printer)
-{
- Q_Q(QPrintPreviewDialog);
-
- if (_printer) {
- preview = new QPrintPreviewWidget(_printer, q);
- printer = _printer;
- } else {
- ownPrinter = true;
- printer = new QPrinter;
- preview = new QPrintPreviewWidget(printer, q);
- }
- QObject::connect(preview, SIGNAL(paintRequested(QPrinter*)), q, SIGNAL(paintRequested(QPrinter*)));
- QObject::connect(preview, SIGNAL(previewChanged()), q, SLOT(_q_previewChanged()));
- setupActions();
-
- pageNumEdit = new LineEdit;
- pageNumEdit->setAlignment(Qt::AlignRight);
- pageNumEdit->setSizePolicy(QSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed));
- pageNumLabel = new QLabel;
- QObject::connect(pageNumEdit, SIGNAL(editingFinished()), q, SLOT(_q_pageNumEdited()));
-
- zoomFactor = new QComboBox;
- zoomFactor->setEditable(true);
- zoomFactor->setMinimumContentsLength(7);
- zoomFactor->setInsertPolicy(QComboBox::NoInsert);
- LineEdit *zoomEditor = new LineEdit;
- zoomEditor->setValidator(new ZoomFactorValidator(1, 1000, 1, zoomEditor));
- zoomFactor->setLineEdit(zoomEditor);
- static const short factorsX2[] = { 25, 50, 100, 200, 250, 300, 400, 800, 1600 };
- for (int i = 0; i < int(sizeof(factorsX2) / sizeof(factorsX2[0])); ++i)
- zoomFactor->addItem(QPrintPreviewDialog::tr("%1%").arg(factorsX2[i] / 2.0));
- QObject::connect(zoomFactor->lineEdit(), SIGNAL(editingFinished()),
- q, SLOT(_q_zoomFactorChanged()));
- QObject::connect(zoomFactor, SIGNAL(currentIndexChanged(int)),
- q, SLOT(_q_zoomFactorChanged()));
-
- QPrintPreviewMainWindow *mw = new QPrintPreviewMainWindow(q);
- QToolBar *toolbar = new QToolBar(mw);
- toolbar->addAction(fitWidthAction);
- toolbar->addAction(fitPageAction);
- toolbar->addSeparator();
- toolbar->addWidget(zoomFactor);
- toolbar->addAction(zoomOutAction);
- toolbar->addAction(zoomInAction);
- toolbar->addSeparator();
- toolbar->addAction(portraitAction);
- toolbar->addAction(landscapeAction);
- toolbar->addSeparator();
- toolbar->addAction(firstPageAction);
- toolbar->addAction(prevPageAction);
-
- // this is to ensure the label text and the editor text are
- // aligned in all styles - the extra QVBoxLayout is a workaround
- // for bug in QFormLayout
- QWidget *pageEdit = new QWidget(toolbar);
- QVBoxLayout *vboxLayout = new QVBoxLayout;
- vboxLayout->setContentsMargins(0, 0, 0, 0);
-#ifdef Q_WS_MAC
- // We query the widgets about their size and then we fix the size.
- // This should do the trick for the laying out part...
- QSize pageNumEditSize, pageNumLabelSize;
- pageNumEditSize = pageNumEdit->minimumSizeHint();
- pageNumLabelSize = pageNumLabel->minimumSizeHint();
- pageNumEdit->resize(pageNumEditSize);
- pageNumLabel->resize(pageNumLabelSize);
-#endif
- QFormLayout *formLayout = new QFormLayout;
-#ifdef Q_WS_MAC
- // We have to change the growth policy in Mac.
- formLayout->setFieldGrowthPolicy(QFormLayout::AllNonFixedFieldsGrow);
-#endif
- formLayout->setWidget(0, QFormLayout::LabelRole, pageNumEdit);
- formLayout->setWidget(0, QFormLayout::FieldRole, pageNumLabel);
- vboxLayout->addLayout(formLayout);
- vboxLayout->setAlignment(Qt::AlignVCenter);
- pageEdit->setLayout(vboxLayout);
- toolbar->addWidget(pageEdit);
-
- toolbar->addAction(nextPageAction);
- toolbar->addAction(lastPageAction);
- toolbar->addSeparator();
- toolbar->addAction(singleModeAction);
- toolbar->addAction(facingModeAction);
- toolbar->addAction(overviewModeAction);
- toolbar->addSeparator();
- toolbar->addAction(pageSetupAction);
- toolbar->addAction(printAction);
-#if defined(Q_WS_MAC) && !defined(QT_MAC_USE_COCOA)
- toolbar->addAction(closeAction);
-#endif
-
- // Cannot use the actions' triggered signal here, since it doesn't autorepeat
- QToolButton *zoomInButton = static_cast<QToolButton *>(toolbar->widgetForAction(zoomInAction));
- QToolButton *zoomOutButton = static_cast<QToolButton *>(toolbar->widgetForAction(zoomOutAction));
- zoomInButton->setAutoRepeat(true);
- zoomInButton->setAutoRepeatInterval(200);
- zoomInButton->setAutoRepeatDelay(200);
- zoomOutButton->setAutoRepeat(true);
- zoomOutButton->setAutoRepeatInterval(200);
- zoomOutButton->setAutoRepeatDelay(200);
- QObject::connect(zoomInButton, SIGNAL(clicked()), q, SLOT(_q_zoomIn()));
- QObject::connect(zoomOutButton, SIGNAL(clicked()), q, SLOT(_q_zoomOut()));
-
- mw->addToolBar(toolbar);
- mw->setCentralWidget(preview);
- // QMainWindows are always created as top levels, force it to be a
- // plain widget
- mw->setParent(q, Qt::Widget);
-
- QVBoxLayout *topLayout = new QVBoxLayout;
- topLayout->addWidget(mw);
- topLayout->setMargin(0);
- q->setLayout(topLayout);
-
- QString caption = QCoreApplication::translate("QPrintPreviewDialog", "Print Preview");
- if (!printer->docName().isEmpty())
- caption += QString::fromLatin1(": ") + printer->docName();
- q->setWindowTitle(caption);
-
- if (!printer->isValid()
-#if defined(Q_WS_WIN) || defined(Q_WS_MAC)
- || printer->outputFormat() != QPrinter::NativeFormat
-#endif
- )
- pageSetupAction->setEnabled(false);
- preview->setFocus();
-}
-
-static inline void qt_setupActionIcon(QAction *action, const QLatin1String &name)
-{
- QLatin1String imagePrefix(":/trolltech/dialogs/qprintpreviewdialog/images/");
- QIcon icon;
- icon.addFile(imagePrefix + name + QLatin1String("-24.png"), QSize(24, 24));
- icon.addFile(imagePrefix + name + QLatin1String("-32.png"), QSize(32, 32));
- action->setIcon(icon);
-}
-
-void QPrintPreviewDialogPrivate::setupActions()
-{
- Q_Q(QPrintPreviewDialog);
-
- // Navigation
- navGroup = new QActionGroup(q);
- navGroup->setExclusive(false);
- nextPageAction = navGroup->addAction(QCoreApplication::translate("QPrintPreviewDialog", "Next page"));
- prevPageAction = navGroup->addAction(QCoreApplication::translate("QPrintPreviewDialog", "Previous page"));
- firstPageAction = navGroup->addAction(QCoreApplication::translate("QPrintPreviewDialog", "First page"));
- lastPageAction = navGroup->addAction(QCoreApplication::translate("QPrintPreviewDialog", "Last page"));
- qt_setupActionIcon(nextPageAction, QLatin1String("go-next"));
- qt_setupActionIcon(prevPageAction, QLatin1String("go-previous"));
- qt_setupActionIcon(firstPageAction, QLatin1String("go-first"));
- qt_setupActionIcon(lastPageAction, QLatin1String("go-last"));
- QObject::connect(navGroup, SIGNAL(triggered(QAction*)), q, SLOT(_q_navigate(QAction*)));
-
-
- fitGroup = new QActionGroup(q);
- fitWidthAction = fitGroup->addAction(QCoreApplication::translate("QPrintPreviewDialog", "Fit width"));
- fitPageAction = fitGroup->addAction(QCoreApplication::translate("QPrintPreviewDialog", "Fit page"));
- fitWidthAction->setObjectName(QLatin1String("fitWidthAction"));
- fitPageAction->setObjectName(QLatin1String("fitPageAction"));
- fitWidthAction->setCheckable(true);
- fitPageAction->setCheckable(true);
- qt_setupActionIcon(fitWidthAction, QLatin1String("fit-width"));
- qt_setupActionIcon(fitPageAction, QLatin1String("fit-page"));
- QObject::connect(fitGroup, SIGNAL(triggered(QAction*)), q, SLOT(_q_fit(QAction*)));
-
- // Zoom
- zoomGroup = new QActionGroup(q);
- zoomInAction = zoomGroup->addAction(QCoreApplication::translate("QPrintPreviewDialog", "Zoom in"));
- zoomOutAction = zoomGroup->addAction(QCoreApplication::translate("QPrintPreviewDialog", "Zoom out"));
- qt_setupActionIcon(zoomInAction, QLatin1String("zoom-in"));
- qt_setupActionIcon(zoomOutAction, QLatin1String("zoom-out"));
-
- // Portrait/Landscape
- orientationGroup = new QActionGroup(q);
- portraitAction = orientationGroup->addAction(QCoreApplication::translate("QPrintPreviewDialog", "Portrait"));
- landscapeAction = orientationGroup->addAction(QCoreApplication::translate("QPrintPreviewDialog", "Landscape"));
- portraitAction->setCheckable(true);
- landscapeAction->setCheckable(true);
- qt_setupActionIcon(portraitAction, QLatin1String("layout-portrait"));
- qt_setupActionIcon(landscapeAction, QLatin1String("layout-landscape"));
- QObject::connect(portraitAction, SIGNAL(triggered(bool)), preview, SLOT(setPortraitOrientation()));
- QObject::connect(landscapeAction, SIGNAL(triggered(bool)), preview, SLOT(setLandscapeOrientation()));
-
- // Display mode
- modeGroup = new QActionGroup(q);
- singleModeAction = modeGroup->addAction(QCoreApplication::translate("QPrintPreviewDialog", "Show single page"));
- facingModeAction = modeGroup->addAction(QCoreApplication::translate("QPrintPreviewDialog", "Show facing pages"));
- overviewModeAction = modeGroup->addAction(QCoreApplication::translate("QPrintPreviewDialog", "Show overview of all pages"));
- qt_setupActionIcon(singleModeAction, QLatin1String("view-page-one"));
- qt_setupActionIcon(facingModeAction, QLatin1String("view-page-sided"));
- qt_setupActionIcon(overviewModeAction, QLatin1String("view-page-multi"));
- singleModeAction->setObjectName(QLatin1String("singleModeAction"));
- facingModeAction->setObjectName(QLatin1String("facingModeAction"));
- overviewModeAction->setObjectName(QLatin1String("overviewModeAction"));
-
- singleModeAction->setCheckable(true);
- facingModeAction->setCheckable(true);
- overviewModeAction->setCheckable(true);
- QObject::connect(modeGroup, SIGNAL(triggered(QAction*)), q, SLOT(_q_setMode(QAction*)));
-
- // Print
- printerGroup = new QActionGroup(q);
- printAction = printerGroup->addAction(QCoreApplication::translate("QPrintPreviewDialog", "Print"));
- pageSetupAction = printerGroup->addAction(QCoreApplication::translate("QPrintPreviewDialog", "Page setup"));
- qt_setupActionIcon(printAction, QLatin1String("print"));
- qt_setupActionIcon(pageSetupAction, QLatin1String("page-setup"));
- QObject::connect(printAction, SIGNAL(triggered(bool)), q, SLOT(_q_print()));
- QObject::connect(pageSetupAction, SIGNAL(triggered(bool)), q, SLOT(_q_pageSetup()));
-#if defined(Q_WS_MAC) && !defined(QT_MAC_USE_COCOA)
- closeAction = printerGroup->addAction(QCoreApplication::translate("QPrintPreviewDialog", "Close"));
- QObject::connect(closeAction, SIGNAL(triggered(bool)), q, SLOT(reject()));
-#endif
-
- // Initial state:
- fitPageAction->setChecked(true);
- singleModeAction->setChecked(true);
- if (preview->orientation() == QPrinter::Portrait)
- portraitAction->setChecked(true);
- else
- landscapeAction->setChecked(true);
-}
-
-
-bool QPrintPreviewDialogPrivate::isFitting()
-{
- return (fitGroup->isExclusive()
- && (fitWidthAction->isChecked() || fitPageAction->isChecked()));
-}
-
-
-void QPrintPreviewDialogPrivate::setFitting(bool on)
-{
- if (isFitting() == on)
- return;
- fitGroup->setExclusive(on);
- if (on) {
- QAction* action = fitWidthAction->isChecked() ? fitWidthAction : fitPageAction;
- action->setChecked(true);
- if (fitGroup->checkedAction() != action) {
- // work around exclusitivity problem
- fitGroup->removeAction(action);
- fitGroup->addAction(action);
- }
- } else {
- fitWidthAction->setChecked(false);
- fitPageAction->setChecked(false);
- }
-}
-
-void QPrintPreviewDialogPrivate::updateNavActions()
-{
- int curPage = preview->currentPage();
- int numPages = preview->pageCount();
- nextPageAction->setEnabled(curPage < numPages);
- prevPageAction->setEnabled(curPage > 1);
- firstPageAction->setEnabled(curPage > 1);
- lastPageAction->setEnabled(curPage < numPages);
- pageNumEdit->setText(QString::number(curPage));
-}
-
-void QPrintPreviewDialogPrivate::updatePageNumLabel()
-{
- Q_Q(QPrintPreviewDialog);
-
- int numPages = preview->pageCount();
- int maxChars = QString::number(numPages).length();
- pageNumLabel->setText(QString::fromLatin1("/ %1").arg(numPages));
- int cyphersWidth = q->fontMetrics().width(QString().fill(QLatin1Char('8'), maxChars));
- int maxWidth = pageNumEdit->minimumSizeHint().width() + cyphersWidth;
- pageNumEdit->setMinimumWidth(maxWidth);
- pageNumEdit->setMaximumWidth(maxWidth);
- pageNumEdit->setValidator(new QIntValidator(1, numPages, pageNumEdit));
- // any old one will be deleted later along with its parent pageNumEdit
-}
-
-void QPrintPreviewDialogPrivate::updateZoomFactor()
-{
- zoomFactor->lineEdit()->setText(QString().sprintf("%.1f%%", preview->zoomFactor()*100));
-}
-
-void QPrintPreviewDialogPrivate::_q_fit(QAction* action)
-{
- setFitting(true);
- if (action == fitPageAction)
- preview->fitInView();
- else
- preview->fitToWidth();
-}
-
-void QPrintPreviewDialogPrivate::_q_zoomIn()
-{
- setFitting(false);
- preview->zoomIn();
- updateZoomFactor();
-}
-
-void QPrintPreviewDialogPrivate::_q_zoomOut()
-{
- setFitting(false);
- preview->zoomOut();
- updateZoomFactor();
-}
-
-void QPrintPreviewDialogPrivate::_q_pageNumEdited()
-{
- bool ok = false;
- int res = pageNumEdit->text().toInt(&ok);
- if (ok)
- preview->setCurrentPage(res);
-}
-
-void QPrintPreviewDialogPrivate::_q_navigate(QAction* action)
-{
- int curPage = preview->currentPage();
- if (action == prevPageAction)
- preview->setCurrentPage(curPage - 1);
- else if (action == nextPageAction)
- preview->setCurrentPage(curPage + 1);
- else if (action == firstPageAction)
- preview->setCurrentPage(1);
- else if (action == lastPageAction)
- preview->setCurrentPage(preview->pageCount());
- updateNavActions();
-}
-
-void QPrintPreviewDialogPrivate::_q_setMode(QAction* action)
-{
- if (action == overviewModeAction) {
- preview->setViewMode(QPrintPreviewWidget::AllPagesView);
- setFitting(false);
- fitGroup->setEnabled(false);
- navGroup->setEnabled(false);
- pageNumEdit->setEnabled(false);
- pageNumLabel->setEnabled(false);
- } else if (action == facingModeAction) {
- preview->setViewMode(QPrintPreviewWidget::FacingPagesView);
- } else {
- preview->setViewMode(QPrintPreviewWidget::SinglePageView);
- }
- if (action == facingModeAction || action == singleModeAction) {
- fitGroup->setEnabled(true);
- navGroup->setEnabled(true);
- pageNumEdit->setEnabled(true);
- pageNumLabel->setEnabled(true);
- setFitting(true);
- }
-}
-
-void QPrintPreviewDialogPrivate::_q_print()
-{
- Q_Q(QPrintPreviewDialog);
-
-#if defined(Q_WS_WIN) || defined(Q_WS_MAC)
- if (printer->outputFormat() != QPrinter::NativeFormat) {
- QString title;
- QString suffix;
- if (printer->outputFormat() == QPrinter::PdfFormat) {
- title = QCoreApplication::translate("QPrintPreviewDialog", "Export to PDF");
- suffix = QLatin1String(".pdf");
- } else {
- title = QCoreApplication::translate("QPrintPreviewDialog", "Export to PostScript");
- suffix = QLatin1String(".ps");
- }
- QString fileName = QFileDialog::getSaveFileName(q, title, printer->outputFileName(),
- QLatin1Char('*') + suffix);
- if (!fileName.isEmpty()) {
- if (QFileInfo(fileName).suffix().isEmpty())
- fileName.append(suffix);
- printer->setOutputFileName(fileName);
- }
- if (!printer->outputFileName().isEmpty())
- preview->print();
- q->accept();
- return;
- }
-#endif
-
- if (!printDialog)
- printDialog = new QPrintDialog(printer, q);
- if (printDialog->exec() == QDialog::Accepted) {
- preview->print();
- q->accept();
- }
-}
-
-void QPrintPreviewDialogPrivate::_q_pageSetup()
-{
- Q_Q(QPrintPreviewDialog);
-
- QPageSetupDialog pageSetup(printer, q);
- if (pageSetup.exec() == QDialog::Accepted) {
- // update possible orientation changes
- if (preview->orientation() == QPrinter::Portrait) {
- portraitAction->setChecked(true);
- preview->setPortraitOrientation();
- }else {
- landscapeAction->setChecked(true);
- preview->setLandscapeOrientation();
- }
- }
-}
-
-void QPrintPreviewDialogPrivate::_q_previewChanged()
-{
- updateNavActions();
- updatePageNumLabel();
- updateZoomFactor();
-}
-
-void QPrintPreviewDialogPrivate::_q_zoomFactorChanged()
-{
- QString text = zoomFactor->lineEdit()->text();
- bool ok;
- qreal factor = text.remove(QLatin1Char('%')).toFloat(&ok);
- factor = qMax(qreal(1.0), qMin(qreal(1000.0), factor));
- if (ok) {
- preview->setZoomFactor(factor/100.0);
- zoomFactor->setEditText(QString::fromLatin1("%1%").arg(factor));
- setFitting(false);
- }
-}
-
-///////////////////////////////////////////////////////////////////////////
-
-/*!
- \class QPrintPreviewDialog
- \since 4.4
-
- \brief The QPrintPreviewDialog class provides a dialog for
- previewing and configuring page layouts for printer output.
-
- \ingroup standard-dialogs
- \ingroup printing
-
- Using QPrintPreviewDialog in your existing application is
- straightforward:
-
- \list 1
- \o Create the QPrintPreviewDialog.
-
- You can construct a QPrintPreviewDialog with an existing QPrinter
- object, or you can have QPrintPreviewDialog create one for you,
- which will be the system default printer.
-
- \o Connect the paintRequested() signal to a slot.
-
- When the dialog needs to generate a set of preview pages, the
- paintRequested() signal will be emitted. You can use the exact
- same code for the actual printing as for having the preview
- generated, including calling QPrinter::newPage() to start a new
- page in the preview. Connect a slot to the paintRequested()
- signal, where you draw onto the QPrinter object that is passed
- into the slot.
-
- \o Call exec().
-
- Call QPrintPreviewDialog::exec() to show the preview dialog.
- \endlist
-
- In Symbian, there is no support for printing. Hence, this dialog should not
- be used in Symbian.
-
- \sa QPrinter, QPrintDialog, QPageSetupDialog, QPrintPreviewWidget
-*/
-
-/*!
- Constructs a QPrintPreviewDialog based on \a printer and with \a
- parent as the parent widget. The widget flags \a flags are passed on
- to the QWidget constructor.
-
- \sa QWidget::setWindowFlags()
-*/
-QPrintPreviewDialog::QPrintPreviewDialog(QPrinter* printer, QWidget *parent, Qt::WindowFlags flags)
- : QDialog(*new QPrintPreviewDialogPrivate, parent, flags)
-{
- Q_D(QPrintPreviewDialog);
- d->init(printer);
-}
-
-/*!
- \overload
- \fn QPrintPreviewDialog::QPrintPreviewDialog(QWidget *parent, Qt::WindowFlags flags)
-
- This will create an internal QPrinter object, which will use the
- system default printer.
-*/
-QPrintPreviewDialog::QPrintPreviewDialog(QWidget *parent, Qt::WindowFlags f)
- : QDialog(*new QPrintPreviewDialogPrivate, parent, f)
-{
- Q_D(QPrintPreviewDialog);
- d->init();
-}
-
-/*!
- Destroys the QPrintPreviewDialog.
-*/
-QPrintPreviewDialog::~QPrintPreviewDialog()
-{
- Q_D(QPrintPreviewDialog);
- if (d->ownPrinter)
- delete d->printer;
- delete d->printDialog;
-}
-
-/*!
- \reimp
-*/
-void QPrintPreviewDialog::setVisible(bool visible)
-{
- Q_D(QPrintPreviewDialog);
- // this will make the dialog get a decent default size
- if (visible && !d->initialized) {
- d->preview->updatePreview();
- d->initialized = true;
- }
- QDialog::setVisible(visible);
-}
-
-/*!
- \reimp
-*/
-void QPrintPreviewDialog::done(int result)
-{
- Q_D(QPrintPreviewDialog);
- QDialog::done(result);
- if (d->receiverToDisconnectOnClose) {
- disconnect(this, SIGNAL(finished(int)),
- d->receiverToDisconnectOnClose, d->memberToDisconnectOnClose);
- d->receiverToDisconnectOnClose = 0;
- }
- d->memberToDisconnectOnClose.clear();
-}
-
-/*!
- \overload
- \since 4.5
-
- Opens the dialog and connects its finished(int) signal to the slot specified
- by \a receiver and \a member.
-
- The signal will be disconnected from the slot when the dialog is closed.
-*/
-void QPrintPreviewDialog::open(QObject *receiver, const char *member)
-{
- Q_D(QPrintPreviewDialog);
- // the int parameter isn't very useful here; we could just as well connect
- // to reject(), but this feels less robust somehow
- connect(this, SIGNAL(finished(int)), receiver, member);
- d->receiverToDisconnectOnClose = receiver;
- d->memberToDisconnectOnClose = member;
- QDialog::open();
-}
-
-/*!
- Returns a pointer to the QPrinter object this dialog is currently
- operating on.
-*/
-QPrinter *QPrintPreviewDialog::printer()
-{
- Q_D(QPrintPreviewDialog);
- return d->printer;
-}
-
-/*!
- \fn void QPrintPreviewDialog::paintRequested(QPrinter *printer)
-
- This signal is emitted when the QPrintPreviewDialog needs to generate
- a set of preview pages.
-
- The \a printer instance supplied is the paint device onto which you should
- paint the contents of each page, using the QPrinter instance in the same way
- as you would when printing directly.
-*/
-
-
-QT_END_NAMESPACE
-
-#include "moc_qprintpreviewdialog.cpp"
-#include "qprintpreviewdialog.moc"
-
-#endif // QT_NO_PRINTPREVIEWDIALOG
-
-
diff --git a/src/widgets/dialogs/qprintpreviewdialog.h b/src/widgets/dialogs/qprintpreviewdialog.h
deleted file mode 100644
index fa67f02b93..0000000000
--- a/src/widgets/dialogs/qprintpreviewdialog.h
+++ /dev/null
@@ -1,108 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the QtGui module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** GNU Lesser General Public License Usage
-** This file may be used under the terms of the GNU Lesser General Public
-** License version 2.1 as published by the Free Software Foundation and
-** appearing in the file LICENSE.LGPL included in the packaging of this
-** file. Please review the following information to ensure the GNU Lesser
-** General Public License version 2.1 requirements will be met:
-** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Nokia gives you certain additional
-** rights. These rights are described in the Nokia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU General
-** Public License version 3.0 as published by the Free Software Foundation
-** and appearing in the file LICENSE.GPL included in the packaging of this
-** file. Please review the following information to ensure the GNU General
-** Public License version 3.0 requirements will be met:
-** http://www.gnu.org/copyleft/gpl.html.
-**
-** Other Usage
-** Alternatively, this file may be used in accordance with the terms and
-** conditions contained in a signed written agreement between you and Nokia.
-**
-**
-**
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QPRINTPREVIEWDIALOG_H
-#define QPRINTPREVIEWDIALOG_H
-
-#include <QtWidgets/qdialog.h>
-
-#ifndef QT_NO_PRINTPREVIEWDIALOG
-
-QT_BEGIN_HEADER
-
-QT_BEGIN_NAMESPACE
-
-QT_MODULE(Gui)
-
-class QGraphicsView;
-class QPrintPreviewDialogPrivate;
-class QPrinter;
-
-class Q_WIDGETS_EXPORT QPrintPreviewDialog : public QDialog
-{
- Q_OBJECT
- Q_DECLARE_PRIVATE(QPrintPreviewDialog)
-
-public:
- explicit QPrintPreviewDialog(QWidget *parent = 0, Qt::WindowFlags flags = 0);
- explicit QPrintPreviewDialog(QPrinter *printer, QWidget *parent = 0, Qt::WindowFlags flags = 0);
- ~QPrintPreviewDialog();
-
-#ifdef Q_NO_USING_KEYWORD
-#ifndef Q_QDOC
- void open() { QDialog::open(); }
-#endif
-#else
- using QDialog::open;
-#endif
- void open(QObject *receiver, const char *member);
-
- QPrinter *printer();
-
- void setVisible(bool visible);
- void done(int result);
-
-Q_SIGNALS:
- void paintRequested(QPrinter *printer);
-
-private:
- Q_PRIVATE_SLOT(d_func(), void _q_fit(QAction *action))
- Q_PRIVATE_SLOT(d_func(), void _q_zoomIn())
- Q_PRIVATE_SLOT(d_func(), void _q_zoomOut())
- Q_PRIVATE_SLOT(d_func(), void _q_navigate(QAction *action))
- Q_PRIVATE_SLOT(d_func(), void _q_setMode(QAction *action))
- Q_PRIVATE_SLOT(d_func(), void _q_pageNumEdited())
- Q_PRIVATE_SLOT(d_func(), void _q_print())
- Q_PRIVATE_SLOT(d_func(), void _q_pageSetup())
- Q_PRIVATE_SLOT(d_func(), void _q_previewChanged())
- Q_PRIVATE_SLOT(d_func(), void _q_zoomFactorChanged())
-
- void *dummy; // ### Qt 5 - remove me
-};
-
-
-QT_END_NAMESPACE
-
-QT_END_HEADER
-
-#endif // QT_NO_PRINTPREVIEWDIALOG
-
-#endif // QPRINTPREVIEWDIALOG_H
diff --git a/src/widgets/dialogs/qprintpropertieswidget.ui b/src/widgets/dialogs/qprintpropertieswidget.ui
deleted file mode 100644
index 26fa09599e..0000000000
--- a/src/widgets/dialogs/qprintpropertieswidget.ui
+++ /dev/null
@@ -1,70 +0,0 @@
-<ui version="4.0" >
- <class>QPrintPropertiesWidget</class>
- <widget class="QWidget" name="QPrintPropertiesWidget" >
- <property name="geometry" >
- <rect>
- <x>0</x>
- <y>0</y>
- <width>396</width>
- <height>288</height>
- </rect>
- </property>
- <property name="windowTitle" >
- <string>Form</string>
- </property>
- <layout class="QVBoxLayout" name="verticalLayout_4" >
- <property name="margin" >
- <number>0</number>
- </property>
- <item>
- <widget class="QTabWidget" name="tabs" >
- <property name="currentIndex" >
- <number>0</number>
- </property>
- <widget class="QWidget" name="tabPage" >
- <property name="geometry" >
- <rect>
- <x>0</x>
- <y>0</y>
- <width>392</width>
- <height>261</height>
- </rect>
- </property>
- <attribute name="title" >
- <string>Page</string>
- </attribute>
- <layout class="QHBoxLayout" name="horizontalLayout" >
- <item>
- <widget class="QPageSetupWidget" native="1" name="pageSetup" />
- </item>
- </layout>
- </widget>
- <widget class="QWidget" name="cupsPropertiesPage" >
- <attribute name="title" >
- <string>Advanced</string>
- </attribute>
- <layout class="QHBoxLayout" name="horizontalLayout_2" >
- <item>
- <widget class="QTreeView" name="treeView" >
- <property name="alternatingRowColors" >
- <bool>true</bool>
- </property>
- </widget>
- </item>
- </layout>
- </widget>
- </widget>
- </item>
- </layout>
- </widget>
- <customwidgets>
- <customwidget>
- <class>QPageSetupWidget</class>
- <extends>QWidget</extends>
- <header>qpagesetupdialog_unix_p.h</header>
- <container>1</container>
- </customwidget>
- </customwidgets>
- <resources/>
- <connections/>
-</ui>
diff --git a/src/widgets/dialogs/qprintsettingsoutput.ui b/src/widgets/dialogs/qprintsettingsoutput.ui
deleted file mode 100644
index be916790fb..0000000000
--- a/src/widgets/dialogs/qprintsettingsoutput.ui
+++ /dev/null
@@ -1,363 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ui version="4.0">
- <class>QPrintSettingsOutput</class>
- <widget class="QWidget" name="QPrintSettingsOutput">
- <property name="geometry">
- <rect>
- <x>0</x>
- <y>0</y>
- <width>426</width>
- <height>171</height>
- </rect>
- </property>
- <property name="windowTitle">
- <string>Form</string>
- </property>
- <layout class="QHBoxLayout" name="horizontalLayout_2">
- <property name="margin">
- <number>0</number>
- </property>
- <item>
- <widget class="QTabWidget" name="tabs">
- <property name="currentIndex">
- <number>0</number>
- </property>
- <widget class="QWidget" name="copiesTab">
- <attribute name="title">
- <string>Copies</string>
- </attribute>
- <layout class="QHBoxLayout" name="horizontalLayout">
- <item>
- <widget class="QGroupBox" name="gbPrintRange">
- <property name="sizePolicy">
- <sizepolicy hsizetype="Preferred" vsizetype="Minimum">
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="title">
- <string>Print range</string>
- </property>
- <layout class="QVBoxLayout" name="_3">
- <property name="spacing">
- <number>4</number>
- </property>
- <property name="margin">
- <number>6</number>
- </property>
- <item>
- <widget class="QRadioButton" name="printAll">
- <property name="text">
- <string>Print all</string>
- </property>
- <property name="checked">
- <bool>true</bool>
- </property>
- </widget>
- </item>
- <item>
- <layout class="QHBoxLayout" name="_4">
- <property name="spacing">
- <number>6</number>
- </property>
- <property name="margin">
- <number>0</number>
- </property>
- <item>
- <widget class="QRadioButton" name="printRange">
- <property name="text">
- <string>Pages from</string>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QSpinBox" name="from">
- <property name="enabled">
- <bool>false</bool>
- </property>
- <property name="minimum">
- <number>1</number>
- </property>
- <property name="maximum">
- <number>999</number>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QLabel" name="label_3">
- <property name="text">
- <string>to</string>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QSpinBox" name="to">
- <property name="enabled">
- <bool>false</bool>
- </property>
- <property name="minimum">
- <number>1</number>
- </property>
- <property name="maximum">
- <number>999</number>
- </property>
- </widget>
- </item>
- <item>
- <spacer>
- <property name="orientation">
- <enum>Qt::Horizontal</enum>
- </property>
- <property name="sizeHint" stdset="0">
- <size>
- <width>0</width>
- <height>20</height>
- </size>
- </property>
- </spacer>
- </item>
- </layout>
- </item>
- <item>
- <widget class="QRadioButton" name="printCurrentPage">
- <property name="text">
- <string>Current Page</string>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QRadioButton" name="printSelection">
- <property name="text">
- <string>Selection</string>
- </property>
- </widget>
- </item>
- <item>
- <spacer name="verticalSpacer">
- <property name="orientation">
- <enum>Qt::Vertical</enum>
- </property>
- <property name="sizeHint" stdset="0">
- <size>
- <width>1</width>
- <height>1</height>
- </size>
- </property>
- </spacer>
- </item>
- </layout>
- </widget>
- </item>
- <item>
- <widget class="QGroupBox" name="groupBox">
- <property name="title">
- <string>Output Settings</string>
- </property>
- <layout class="QGridLayout" name="gridLayout">
- <item row="0" column="0">
- <widget class="QLabel" name="label">
- <property name="text">
- <string>Copies:</string>
- </property>
- <property name="buddy">
- <cstring>copies</cstring>
- </property>
- </widget>
- </item>
- <item row="0" column="1" colspan="2">
- <widget class="QSpinBox" name="copies">
- <property name="minimum">
- <number>1</number>
- </property>
- <property name="maximum">
- <number>999</number>
- </property>
- </widget>
- </item>
- <item row="0" column="3">
- <spacer name="horizontalSpacer">
- <property name="orientation">
- <enum>Qt::Horizontal</enum>
- </property>
- <property name="sizeHint" stdset="0">
- <size>
- <width>91</width>
- <height>20</height>
- </size>
- </property>
- </spacer>
- </item>
- <item row="1" column="0" colspan="2">
- <widget class="QCheckBox" name="collate">
- <property name="text">
- <string>Collate</string>
- </property>
- </widget>
- </item>
- <item row="1" column="2" rowspan="2" colspan="2">
- <widget class="QLabel" name="outputIcon">
- <property name="sizePolicy">
- <sizepolicy hsizetype="Ignored" vsizetype="Ignored">
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- </widget>
- </item>
- <item row="2" column="0" colspan="2">
- <widget class="QCheckBox" name="reverse">
- <property name="text">
- <string>Reverse</string>
- </property>
- </widget>
- </item>
- <item row="3" column="0" colspan="4">
- <spacer name="verticalSpacer_2">
- <property name="orientation">
- <enum>Qt::Vertical</enum>
- </property>
- <property name="sizeHint" stdset="0">
- <size>
- <width>0</width>
- <height>1</height>
- </size>
- </property>
- </spacer>
- </item>
- </layout>
- </widget>
- </item>
- </layout>
- </widget>
- <widget class="QWidget" name="optionsTab">
- <attribute name="title">
- <string>Options</string>
- </attribute>
- <layout class="QGridLayout" name="gridLayout_2">
- <item row="0" column="1">
- <widget class="QGroupBox" name="colorMode">
- <property name="title">
- <string>Color Mode</string>
- </property>
- <layout class="QGridLayout" name="gridLayout_4">
- <item row="2" column="0">
- <spacer name="verticalSpacer_6">
- <property name="orientation">
- <enum>Qt::Vertical</enum>
- </property>
- <property name="sizeHint" stdset="0">
- <size>
- <width>1</width>
- <height>0</height>
- </size>
- </property>
- </spacer>
- </item>
- <item row="0" column="0">
- <widget class="QRadioButton" name="color">
- <property name="text">
- <string>Color</string>
- </property>
- </widget>
- </item>
- <item row="0" column="1" rowspan="3">
- <widget class="QLabel" name="colorIcon"/>
- </item>
- <item row="1" column="0">
- <widget class="QRadioButton" name="grayscale">
- <property name="text">
- <string>Grayscale</string>
- </property>
- </widget>
- </item>
- </layout>
- </widget>
- </item>
- <item row="0" column="0">
- <widget class="QGroupBox" name="duplex">
- <property name="title">
- <string>Duplex Printing</string>
- </property>
- <layout class="QVBoxLayout" name="verticalLayout">
- <item>
- <widget class="QRadioButton" name="noDuplex">
- <property name="text">
- <string>None</string>
- </property>
- <property name="checked">
- <bool>true</bool>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QRadioButton" name="duplexLong">
- <property name="text">
- <string>Long side</string>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QRadioButton" name="duplexShort">
- <property name="text">
- <string>Short side</string>
- </property>
- </widget>
- </item>
- <item>
- <spacer name="verticalSpacer_42">
- <property name="orientation">
- <enum>Qt::Vertical</enum>
- </property>
- <property name="sizeHint" stdset="0">
- <size>
- <width>1</width>
- <height>0</height>
- </size>
- </property>
- </spacer>
- </item>
- </layout>
- </widget>
- </item>
- </layout>
- </widget>
- </widget>
- </item>
- </layout>
- </widget>
- <resources/>
- <connections>
- <connection>
- <sender>printRange</sender>
- <signal>toggled(bool)</signal>
- <receiver>from</receiver>
- <slot>setEnabled(bool)</slot>
- <hints>
- <hint type="sourcelabel">
- <x>76</x>
- <y>59</y>
- </hint>
- <hint type="destinationlabel">
- <x>122</x>
- <y>57</y>
- </hint>
- </hints>
- </connection>
- <connection>
- <sender>printRange</sender>
- <signal>toggled(bool)</signal>
- <receiver>to</receiver>
- <slot>setEnabled(bool)</slot>
- <hints>
- <hint type="sourcelabel">
- <x>69</x>
- <y>67</y>
- </hint>
- <hint type="destinationlabel">
- <x>215</x>
- <y>67</y>
- </hint>
- </hints>
- </connection>
- </connections>
-</ui>
diff --git a/src/widgets/dialogs/qprintwidget.ui b/src/widgets/dialogs/qprintwidget.ui
deleted file mode 100644
index 8a4f3bde0a..0000000000
--- a/src/widgets/dialogs/qprintwidget.ui
+++ /dev/null
@@ -1,116 +0,0 @@
-<ui version="4.0" >
- <class>QPrintWidget</class>
- <widget class="QWidget" name="QPrintWidget" >
- <property name="geometry" >
- <rect>
- <x>0</x>
- <y>0</y>
- <width>443</width>
- <height>175</height>
- </rect>
- </property>
- <property name="windowTitle" >
- <string>Form</string>
- </property>
- <layout class="QHBoxLayout" name="horizontalLayout_2" >
- <property name="margin" >
- <number>0</number>
- </property>
- <item>
- <widget class="QGroupBox" name="printerGroup" >
- <property name="title" >
- <string>Printer</string>
- </property>
- <layout class="QGridLayout" name="gridLayout" >
- <item row="0" column="0" >
- <widget class="QLabel" name="label" >
- <property name="text" >
- <string>&amp;Name:</string>
- </property>
- <property name="buddy" >
- <cstring>printers</cstring>
- </property>
- </widget>
- </item>
- <item row="0" column="1" >
- <widget class="QComboBox" name="printers" >
- <property name="sizePolicy" >
- <sizepolicy vsizetype="Fixed" hsizetype="Preferred" >
- <horstretch>3</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- </widget>
- </item>
- <item row="0" column="2" >
- <widget class="QPushButton" name="properties" >
- <property name="sizePolicy" >
- <sizepolicy vsizetype="Fixed" hsizetype="Minimum" >
- <horstretch>1</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="text" >
- <string>P&amp;roperties</string>
- </property>
- </widget>
- </item>
- <item row="1" column="0" >
- <widget class="QLabel" name="label_2" >
- <property name="text" >
- <string>Location:</string>
- </property>
- </widget>
- </item>
- <item row="1" column="1" >
- <widget class="QLabel" name="location" />
- </item>
- <item row="1" column="2" >
- <widget class="QCheckBox" name="preview" >
- <property name="text" >
- <string>Preview</string>
- </property>
- </widget>
- </item>
- <item row="2" column="0" >
- <widget class="QLabel" name="label_3" >
- <property name="text" >
- <string>Type:</string>
- </property>
- </widget>
- </item>
- <item row="2" column="1" >
- <widget class="QLabel" name="type" />
- </item>
- <item row="3" column="0" >
- <widget class="QLabel" name="lOutput" >
- <property name="text" >
- <string>Output &amp;file:</string>
- </property>
- <property name="buddy" >
- <cstring>filename</cstring>
- </property>
- </widget>
- </item>
- <item row="3" column="1" colspan="2" >
- <layout class="QHBoxLayout" name="horizontalLayout" >
- <item>
- <widget class="QLineEdit" name="filename" />
- </item>
- <item>
- <widget class="QToolButton" name="fileBrowser" >
- <property name="text" >
- <string>...</string>
- </property>
- </widget>
- </item>
- </layout>
- </item>
- </layout>
- </widget>
- </item>
- </layout>
- </widget>
- <resources/>
- <connections/>
-</ui>
diff --git a/src/widgets/kernel/qapplication.cpp b/src/widgets/kernel/qapplication.cpp
index f5cb04ce80..a8ac1a1bc0 100644
--- a/src/widgets/kernel/qapplication.cpp
+++ b/src/widgets/kernel/qapplication.cpp
@@ -141,10 +141,6 @@ static void initResources()
#endif
Q_INIT_RESOURCE_EXTERN(qmessagebox)
Q_INIT_RESOURCE(qmessagebox);
-#if !defined(QT_NO_PRINTDIALOG)
- Q_INIT_RESOURCE_EXTERN(qprintdialog)
- Q_INIT_RESOURCE(qprintdialog);
-#endif
}
diff --git a/src/widgets/widgets/qprintpreviewwidget.cpp b/src/widgets/widgets/qprintpreviewwidget.cpp
deleted file mode 100644
index 96b009f8c1..0000000000
--- a/src/widgets/widgets/qprintpreviewwidget.cpp
+++ /dev/null
@@ -1,844 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the QtGui module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** GNU Lesser General Public License Usage
-** This file may be used under the terms of the GNU Lesser General Public
-** License version 2.1 as published by the Free Software Foundation and
-** appearing in the file LICENSE.LGPL included in the packaging of this
-** file. Please review the following information to ensure the GNU Lesser
-** General Public License version 2.1 requirements will be met:
-** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Nokia gives you certain additional
-** rights. These rights are described in the Nokia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU General
-** Public License version 3.0 as published by the Free Software Foundation
-** and appearing in the file LICENSE.GPL included in the packaging of this
-** file. Please review the following information to ensure the GNU General
-** Public License version 3.0 requirements will be met:
-** http://www.gnu.org/copyleft/gpl.html.
-**
-** Other Usage
-** Alternatively, this file may be used in accordance with the terms and
-** conditions contained in a signed written agreement between you and Nokia.
-**
-**
-**
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qprintpreviewwidget.h"
-#include "private/qwidget_p.h"
-#include <private/qprinter_p.h>
-
-#include <QtCore/qmath.h>
-#include <QtWidgets/qboxlayout.h>
-#include <QtWidgets/qgraphicsitem.h>
-#include <QtWidgets/qgraphicsview.h>
-#include <QtWidgets/qscrollbar.h>
-#include <QtWidgets/qstyleoption.h>
-
-#ifndef QT_NO_PRINTPREVIEWWIDGET
-
-QT_BEGIN_NAMESPACE
-
-namespace {
-class PageItem : public QGraphicsItem
-{
-public:
- PageItem(int _pageNum, const QPicture* _pagePicture, QSize _paperSize, QRect _pageRect)
- : pageNum(_pageNum), pagePicture(_pagePicture),
- paperSize(_paperSize), pageRect(_pageRect)
- {
- qreal border = qMax(paperSize.height(), paperSize.width()) / 25;
- brect = QRectF(QPointF(-border, -border),
- QSizeF(paperSize)+QSizeF(2*border, 2*border));
- setCacheMode(DeviceCoordinateCache);
- }
-
- inline QRectF boundingRect() const
- { return brect; }
-
- inline int pageNumber() const
- { return pageNum; }
-
- void paint(QPainter *painter, const QStyleOptionGraphicsItem *item, QWidget *widget);
-
-private:
- int pageNum;
- const QPicture* pagePicture;
- QSize paperSize;
- QRect pageRect;
- QRectF brect;
-};
-
-void PageItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget)
-{
- Q_UNUSED(widget);
-
-#if 0
- // Draw item bounding rect, for debugging
- painter->save();
- painter->setPen(QPen(Qt::red, 0));
- painter->setBrush(Qt::NoBrush);
- painter->drawRect(QRectF(-border()+1.0, -border()+1.0, boundingRect().width()-2, boundingRect().height()-2));
- painter->restore();
-#endif
-
- QRectF paperRect(0,0, paperSize.width(), paperSize.height());
-
- // Draw shadow
- painter->setClipRect(option->exposedRect);
- qreal shWidth = paperRect.width()/100;
- QRectF rshadow(paperRect.topRight() + QPointF(0, shWidth),
- paperRect.bottomRight() + QPointF(shWidth, 0));
- QLinearGradient rgrad(rshadow.topLeft(), rshadow.topRight());
- rgrad.setColorAt(0.0, QColor(0,0,0,255));
- rgrad.setColorAt(1.0, QColor(0,0,0,0));
- painter->fillRect(rshadow, QBrush(rgrad));
- QRectF bshadow(paperRect.bottomLeft() + QPointF(shWidth, 0),
- paperRect.bottomRight() + QPointF(0, shWidth));
- QLinearGradient bgrad(bshadow.topLeft(), bshadow.bottomLeft());
- bgrad.setColorAt(0.0, QColor(0,0,0,255));
- bgrad.setColorAt(1.0, QColor(0,0,0,0));
- painter->fillRect(bshadow, QBrush(bgrad));
- QRectF cshadow(paperRect.bottomRight(),
- paperRect.bottomRight() + QPointF(shWidth, shWidth));
- QRadialGradient cgrad(cshadow.topLeft(), shWidth, cshadow.topLeft());
- cgrad.setColorAt(0.0, QColor(0,0,0,255));
- cgrad.setColorAt(1.0, QColor(0,0,0,0));
- painter->fillRect(cshadow, QBrush(cgrad));
-
- painter->setClipRect(paperRect & option->exposedRect);
- painter->fillRect(paperRect, Qt::white);
- if (!pagePicture)
- return;
- painter->drawPicture(pageRect.topLeft(), *pagePicture);
-
- // Effect: make anything drawn in the margins look washed out.
- QPainterPath path;
- path.addRect(paperRect);
- path.addRect(pageRect);
- painter->setPen(QPen(Qt::NoPen));
- painter->setBrush(QColor(255, 255, 255, 180));
- painter->drawPath(path);
-
-#if 0
- // Draw frame around paper.
- painter->setPen(QPen(Qt::black, 0));
- painter->setBrush(Qt::NoBrush);
- painter->drawRect(paperRect);
-#endif
-
- // todo: drawtext "Page N" below paper
-}
-
-class GraphicsView : public QGraphicsView
-{
- Q_OBJECT
-public:
- GraphicsView(QWidget* parent = 0)
- : QGraphicsView(parent)
- {
-#ifdef Q_WS_MAC
- setFrameStyle(QFrame::NoFrame);
-#endif
- }
-signals:
- void resized();
-
-protected:
- void resizeEvent(QResizeEvent* e)
- {
- QGraphicsView::resizeEvent(e);
- emit resized();
- }
-
- void showEvent(QShowEvent* e)
- {
- QGraphicsView::showEvent(e);
- emit resized();
- }
-};
-
-} // anonymous namespace
-
-class QPrintPreviewWidgetPrivate : public QWidgetPrivate
-{
- Q_DECLARE_PUBLIC(QPrintPreviewWidget)
-public:
- QPrintPreviewWidgetPrivate()
- : scene(0), curPage(1),
- viewMode(QPrintPreviewWidget::SinglePageView),
- zoomMode(QPrintPreviewWidget::FitInView),
- zoomFactor(1), initialized(false), fitting(true)
- {}
-
- // private slots
- void _q_fit(bool doFitting = false);
- void _q_updateCurrentPage();
-
- void init();
- void populateScene();
- void layoutPages();
- void generatePreview();
- void setCurrentPage(int pageNumber);
- void zoom(qreal zoom);
- void setZoomFactor(qreal zoomFactor);
- int calcCurrentPage();
-
- GraphicsView *graphicsView;
- QGraphicsScene *scene;
-
- int curPage;
- QList<const QPicture *> pictures;
- QList<QGraphicsItem *> pages;
-
- QPrintPreviewWidget::ViewMode viewMode;
- QPrintPreviewWidget::ZoomMode zoomMode;
- qreal zoomFactor;
- bool ownPrinter;
- QPrinter* printer;
- bool initialized;
- bool fitting;
-};
-
-void QPrintPreviewWidgetPrivate::_q_fit(bool doFitting)
-{
- Q_Q(QPrintPreviewWidget);
-
- if (curPage < 1 || curPage > pages.count())
- return;
-
- if (!doFitting && !fitting)
- return;
-
- if (doFitting && fitting) {
- QRect viewRect = graphicsView->viewport()->rect();
- if (zoomMode == QPrintPreviewWidget::FitInView) {
- QList<QGraphicsItem*> containedItems = graphicsView->items(viewRect, Qt::ContainsItemBoundingRect);
- foreach(QGraphicsItem* item, containedItems) {
- PageItem* pg = static_cast<PageItem*>(item);
- if (pg->pageNumber() == curPage)
- return;
- }
- }
-
- int newPage = calcCurrentPage();
- if (newPage != curPage)
- curPage = newPage;
- }
-
- QRectF target = pages.at(curPage-1)->sceneBoundingRect();
- if (viewMode == QPrintPreviewWidget::FacingPagesView) {
- // fit two pages
- if (curPage % 2)
- target.setLeft(target.left() - target.width());
- else
- target.setRight(target.right() + target.width());
- } else if (viewMode == QPrintPreviewWidget::AllPagesView) {
- target = scene->itemsBoundingRect();
- }
-
- if (zoomMode == QPrintPreviewWidget::FitToWidth) {
- QTransform t;
- qreal scale = graphicsView->viewport()->width() / target.width();
- t.scale(scale, scale);
- graphicsView->setTransform(t);
- if (doFitting && fitting) {
- QRectF viewSceneRect = graphicsView->viewportTransform().mapRect(graphicsView->viewport()->rect());
- viewSceneRect.moveTop(target.top());
- graphicsView->ensureVisible(viewSceneRect); // Nah...
- }
- } else {
- graphicsView->fitInView(target, Qt::KeepAspectRatio);
- if (zoomMode == QPrintPreviewWidget::FitInView) {
- int step = qRound(graphicsView->matrix().mapRect(target).height());
- graphicsView->verticalScrollBar()->setSingleStep(step);
- graphicsView->verticalScrollBar()->setPageStep(step);
- }
- }
-
- zoomFactor = graphicsView->transform().m11() * (float(printer->logicalDpiY()) / q->logicalDpiY());
- emit q->previewChanged();
-}
-
-void QPrintPreviewWidgetPrivate::_q_updateCurrentPage()
-{
- Q_Q(QPrintPreviewWidget);
-
- if (viewMode == QPrintPreviewWidget::AllPagesView)
- return;
-
- int newPage = calcCurrentPage();
- if (newPage != curPage) {
- curPage = newPage;
- emit q->previewChanged();
- }
-}
-
-int QPrintPreviewWidgetPrivate::calcCurrentPage()
-{
- int maxArea = 0;
- int newPage = curPage;
- QRect viewRect = graphicsView->viewport()->rect();
- QList<QGraphicsItem*> items = graphicsView->items(viewRect);
- for (int i=0; i<items.size(); ++i) {
- PageItem* pg = static_cast<PageItem*>(items.at(i));
- QRect overlap = graphicsView->mapFromScene(pg->sceneBoundingRect()).boundingRect() & viewRect;
- int area = overlap.width() * overlap.height();
- if (area > maxArea) {
- maxArea = area;
- newPage = pg->pageNumber();
- } else if (area == maxArea && pg->pageNumber() < newPage) {
- newPage = pg->pageNumber();
- }
- }
- return newPage;
-}
-
-void QPrintPreviewWidgetPrivate::init()
-{
- Q_Q(QPrintPreviewWidget);
-
- graphicsView = new GraphicsView;
- graphicsView->setInteractive(false);
- graphicsView->setDragMode(QGraphicsView::ScrollHandDrag);
- graphicsView->setViewportUpdateMode(QGraphicsView::SmartViewportUpdate);
- QObject::connect(graphicsView->verticalScrollBar(), SIGNAL(valueChanged(int)),
- q, SLOT(_q_updateCurrentPage()));
- QObject::connect(graphicsView, SIGNAL(resized()), q, SLOT(_q_fit()));
-
- scene = new QGraphicsScene(graphicsView);
- scene->setBackgroundBrush(Qt::gray);
- graphicsView->setScene(scene);
-
- QVBoxLayout *layout = new QVBoxLayout;
- q->setLayout(layout);
- layout->setContentsMargins(0, 0, 0, 0);
- layout->addWidget(graphicsView);
-}
-
-void QPrintPreviewWidgetPrivate::populateScene()
-{
- // remove old pages
- for (int i = 0; i < pages.size(); i++)
- scene->removeItem(pages.at(i));
- qDeleteAll(pages);
- pages.clear();
-
- int numPages = pictures.count();
- QSize paperSize = printer->paperRect().size();
- QRect pageRect = printer->pageRect();
-
- for (int i = 0; i < numPages; i++) {
- PageItem* item = new PageItem(i+1, pictures.at(i), paperSize, pageRect);
- scene->addItem(item);
- pages.append(item);
- }
-}
-
-void QPrintPreviewWidgetPrivate::layoutPages()
-{
- int numPages = pages.count();
- if (numPages < 1)
- return;
-
- int numPagePlaces = numPages;
- int cols = 1; // singleMode and default
- if (viewMode == QPrintPreviewWidget::AllPagesView) {
- if (printer->orientation() == QPrinter::Portrait)
- cols = qCeil(qSqrt((float) numPages));
- else
- cols = qFloor(qSqrt((float) numPages));
- cols += cols % 2; // Nicer with an even number of cols
- }
- else if (viewMode == QPrintPreviewWidget::FacingPagesView) {
- cols = 2;
- numPagePlaces += 1;
- }
- int rows = qCeil(qreal(numPagePlaces) / cols);
-
- qreal itemWidth = pages.at(0)->boundingRect().width();
- qreal itemHeight = pages.at(0)->boundingRect().height();
- int pageNum = 1;
- for (int i = 0; i < rows && pageNum <= numPages; i++) {
- for (int j = 0; j < cols && pageNum <= numPages; j++) {
- if (!i && !j && viewMode == QPrintPreviewWidget::FacingPagesView) {
- // Front page doesn't have a facing page
- continue;
- } else {
- pages.at(pageNum-1)->setPos(QPointF(j*itemWidth, i*itemHeight));
- pageNum++;
- }
- }
- }
- scene->setSceneRect(scene->itemsBoundingRect());
-}
-
-void QPrintPreviewWidgetPrivate::generatePreview()
-{
- //### If QPrinter::setPreviewMode() becomes public, handle the
- //### case that we have been constructed with a printer that
- //### _already_ has been preview-painted to, so we should
- //### initially just show the pages it already contains, and not
- //### emit paintRequested() until the user changes some parameter
-
- Q_Q(QPrintPreviewWidget);
- printer->d_func()->setPreviewMode(true);
- emit q->paintRequested(printer);
- printer->d_func()->setPreviewMode(false);
- pictures = printer->d_func()->previewPages();
- populateScene(); // i.e. setPreviewPrintedPictures() e.l.
- layoutPages();
- curPage = qBound(1, curPage, pages.count());
- if (fitting)
- _q_fit();
- emit q->previewChanged();
-}
-
-void QPrintPreviewWidgetPrivate::setCurrentPage(int pageNumber)
-{
- if (pageNumber < 1 || pageNumber > pages.count())
- return;
-
- int lastPage = curPage;
- curPage = pageNumber;
-
- if (lastPage != curPage && lastPage > 0 && lastPage <= pages.count()) {
- if (zoomMode != QPrintPreviewWidget::FitInView) {
- QScrollBar *hsc = graphicsView->horizontalScrollBar();
- QScrollBar *vsc = graphicsView->verticalScrollBar();
- QPointF pt = graphicsView->transform().map(pages.at(curPage-1)->pos());
- vsc->setValue(int(pt.y()) - 10);
- hsc->setValue(int(pt.x()) - 10);
- } else {
- graphicsView->centerOn(pages.at(curPage-1));
- }
- }
-}
-
-void QPrintPreviewWidgetPrivate::zoom(qreal zoom)
-{
- zoomFactor *= zoom;
- graphicsView->scale(zoom, zoom);
-}
-
-void QPrintPreviewWidgetPrivate::setZoomFactor(qreal _zoomFactor)
-{
- Q_Q(QPrintPreviewWidget);
- zoomFactor = _zoomFactor;
- graphicsView->resetTransform();
- int dpi_y = q->logicalDpiY();
- int printer_dpi_y = printer->logicalDpiY();
- graphicsView->scale(zoomFactor*(dpi_y/float(printer_dpi_y)),
- zoomFactor*(dpi_y/float(printer_dpi_y)));
-}
-
-///////////////////////////////////////
-
-/*!
- \class QPrintPreviewWidget
- \since 4.4
-
- \brief The QPrintPreviewWidget class provides a widget for
- previewing page layouts for printer output.
-
- \ingroup printing
-
- QPrintPreviewDialog uses a QPrintPreviewWidget internally, and the
- purpose of QPrintPreviewWidget is to make it possible to embed the
- preview into other widgets. It also makes it possible to build a different
- user interface around it than the default one provided with QPrintPreviewDialog.
-
- Using QPrintPreviewWidget is straightforward:
-
- \list 1
- \o Create the QPrintPreviewWidget
-
- Construct the QPrintPreviewWidget either by passing in an
- existing QPrinter object, or have QPrintPreviewWidget create a
- default constructed QPrinter object for you.
-
- \o Connect the paintRequested() signal to a slot.
-
- When the widget needs to generate a set of preview pages, a
- paintRequested() signal will be emitted from the widget. Connect a
- slot to this signal, and draw onto the QPrinter passed in as a
- signal parameter. Call QPrinter::newPage(), to start a new
- page in the preview.
-
- \endlist
-
- \sa QPrinter, QPrintDialog, QPageSetupDialog, QPrintPreviewDialog
-*/
-
-
-/*!
- \enum QPrintPreviewWidget::ViewMode
-
- This enum is used to describe the view mode of the preview widget.
-
- \value SinglePageView A mode where single pages in the preview
- is viewed.
-
- \value FacingPagesView A mode where the facing pages in the preview
- is viewed.
-
- \value AllPagesView A view mode where all the pages in the preview
- is viewed.
-*/
-
-/*!
- \enum QPrintPreviewWidget::ZoomMode
-
- This enum is used to describe zoom mode of the preview widget.
-
- \value CustomZoom The zoom is set to a custom zoom value.
-
- \value FitToWidth This mode fits the current page to the width of the view.
-
- \value FitInView This mode fits the current page inside the view.
-
-*/
-
-/*!
- Constructs a QPrintPreviewWidget based on \a printer and with \a
- parent as the parent widget. The widget flags \a flags are passed on
- to the QWidget constructor.
-
- \sa QWidget::setWindowFlags()
-*/
-QPrintPreviewWidget::QPrintPreviewWidget(QPrinter *printer, QWidget *parent, Qt::WindowFlags flags)
- : QWidget(*new QPrintPreviewWidgetPrivate, parent, flags)
-{
- Q_D(QPrintPreviewWidget);
- d->printer = printer;
- d->ownPrinter = false;
- d->init();
-}
-
-/*!
- \overload
-
- This will cause QPrintPreviewWidget to create an internal, default
- constructed QPrinter object, which will be used to generate the
- preview.
-*/
-QPrintPreviewWidget::QPrintPreviewWidget(QWidget *parent, Qt::WindowFlags flags)
- : QWidget(*new QPrintPreviewWidgetPrivate, parent, flags)
-{
- Q_D(QPrintPreviewWidget);
- d->printer = new QPrinter;
- d->ownPrinter = true;
- d->init();
-}
-
-
-/*!
- Destroys the QPrintPreviewWidget.
-*/
-QPrintPreviewWidget::~QPrintPreviewWidget()
-{
- Q_D(QPrintPreviewWidget);
- if (d->ownPrinter)
- delete d->printer;
-}
-
-/*!
- Returns the current view mode. The default view mode is SinglePageView.
-*/
-QPrintPreviewWidget::ViewMode QPrintPreviewWidget::viewMode() const
-{
- Q_D(const QPrintPreviewWidget);
- return d->viewMode;
-}
-
-/*!
- Sets the view mode to \a mode. The default view mode is
- SinglePageView.
-*/
-void QPrintPreviewWidget::setViewMode(ViewMode mode)
-{
- Q_D(QPrintPreviewWidget);
- d->viewMode = mode;
- d->layoutPages();
- if (d->viewMode == AllPagesView) {
- d->graphicsView->fitInView(d->scene->itemsBoundingRect(), Qt::KeepAspectRatio);
- d->fitting = false;
- d->zoomMode = QPrintPreviewWidget::CustomZoom;
- d->zoomFactor = d->graphicsView->transform().m11() * (float(d->printer->logicalDpiY()) / logicalDpiY());
- emit previewChanged();
- } else {
- d->fitting = true;
- d->_q_fit();
- }
-}
-
-/*!
- Returns the current orientation of the preview. This value is
- obtained from the QPrinter object associated with the preview.
-*/
-QPrinter::Orientation QPrintPreviewWidget::orientation() const
-{
- Q_D(const QPrintPreviewWidget);
- return d->printer->orientation();
-}
-
-/*!
- Sets the current orientation to \a orientation. This value will be
- set on the QPrinter object associated with the preview.
-*/
-void QPrintPreviewWidget::setOrientation(QPrinter::Orientation orientation)
-{
- Q_D(QPrintPreviewWidget);
- d->printer->setOrientation(orientation);
- d->generatePreview();
-}
-
-/*!
- Prints the preview to the printer associated with the preview.
-*/
-void QPrintPreviewWidget::print()
-{
- Q_D(QPrintPreviewWidget);
- // ### make use of the generated pages
- emit paintRequested(d->printer);
-}
-
-/*!
- Zooms the current view in by \a factor. The default value for \a
- factor is 1.1, which means the view will be scaled up by 10%.
-*/
-void QPrintPreviewWidget::zoomIn(qreal factor)
-{
- Q_D(QPrintPreviewWidget);
- d->fitting = false;
- d->zoomMode = QPrintPreviewWidget::CustomZoom;
- d->zoom(factor);
-}
-
-/*!
- Zooms the current view out by \a factor. The default value for \a
- factor is 1.1, which means the view will be scaled down by 10%.
-*/
-void QPrintPreviewWidget::zoomOut(qreal factor)
-{
- Q_D(QPrintPreviewWidget);
- d->fitting = false;
- d->zoomMode = QPrintPreviewWidget::CustomZoom;
- d->zoom(1/factor);
-}
-
-/*!
- Returns the zoom factor of the view.
-*/
-qreal QPrintPreviewWidget::zoomFactor() const
-{
- Q_D(const QPrintPreviewWidget);
- return d->zoomFactor;
-}
-
-/*!
- Sets the zoom factor of the view to \a factor. For example, a
- value of 1.0 indicates an unscaled view, which is approximately
- the size the view will have on paper. A value of 0.5 will halve
- the size of the view, while a value of 2.0 will double the size of
- the view.
-*/
-void QPrintPreviewWidget::setZoomFactor(qreal factor)
-{
- Q_D(QPrintPreviewWidget);
- d->fitting = false;
- d->zoomMode = QPrintPreviewWidget::CustomZoom;
- d->setZoomFactor(factor);
-}
-
-/*!
- \obsolete
- Returns the number of pages in the preview.
- \sa pageCount()
-*/
-int QPrintPreviewWidget::numPages() const
-{
- Q_D(const QPrintPreviewWidget);
- return d->pages.size();
-}
-
-/*!
- \since 4.6
- Returns the number of pages in the preview.
-*/
-int QPrintPreviewWidget::pageCount() const
-{
- Q_D(const QPrintPreviewWidget);
- return d->pages.size();
-}
-
-/*!
- Returns the currently viewed page in the preview.
-*/
-int QPrintPreviewWidget::currentPage() const
-{
- Q_D(const QPrintPreviewWidget);
- return d->curPage;
-}
-
-/*!
- Sets the current page in the preview. This will cause the view to
- skip to the beginning of \a page.
-*/
-void QPrintPreviewWidget::setCurrentPage(int page)
-{
- Q_D(QPrintPreviewWidget);
- d->setCurrentPage(page);
-}
-
-/*!
- This is a convenience function and is the same as calling \c
- {setZoomMode(QPrintPreviewWidget::FitToWidth)}.
-*/
-void QPrintPreviewWidget::fitToWidth()
-{
- setZoomMode(FitToWidth);
-}
-
-/*!
- This is a convenience function and is the same as calling \c
- {setZoomMode(QPrintPreviewWidget::FitInView)}.
-*/
-void QPrintPreviewWidget::fitInView()
-{
- setZoomMode(FitInView);
-}
-
-/*!
- Sets the zoom mode to \a zoomMode. The default zoom mode is FitInView.
-
- \sa zoomMode(), viewMode(), setViewMode()
-*/
-void QPrintPreviewWidget::setZoomMode(QPrintPreviewWidget::ZoomMode zoomMode)
-{
- Q_D(QPrintPreviewWidget);
- d->zoomMode = zoomMode;
- if (d->zoomMode == FitInView || d->zoomMode == FitToWidth) {
- d->fitting = true;
- d->_q_fit(true);
- } else {
- d->fitting = false;
- }
-}
-
-/*!
- Returns the current zoom mode.
-
- \sa setZoomMode(), viewMode(), setViewMode()
-*/
-QPrintPreviewWidget::ZoomMode QPrintPreviewWidget::zoomMode() const
-{
- Q_D(const QPrintPreviewWidget);
- return d->zoomMode;
-}
-
-/*!
- This is a convenience function and is the same as calling \c
- {setOrientation(QPrinter::Landscape)}.
-*/
-void QPrintPreviewWidget::setLandscapeOrientation()
-{
- setOrientation(QPrinter::Landscape);
-}
-
-/*!
- This is a convenience function and is the same as calling \c
- {setOrientation(QPrinter::Portrait)}.
-*/
-void QPrintPreviewWidget::setPortraitOrientation()
-{
- setOrientation(QPrinter::Portrait);
-}
-
-/*!
- This is a convenience function and is the same as calling \c
- {setViewMode(QPrintPreviewWidget::SinglePageView)}.
-*/
-void QPrintPreviewWidget::setSinglePageViewMode()
-{
- setViewMode(SinglePageView);
-}
-
-/*!
- This is a convenience function and is the same as calling \c
- {setViewMode(QPrintPreviewWidget::FacingPagesView)}.
-*/
-void QPrintPreviewWidget::setFacingPagesViewMode()
-{
- setViewMode(FacingPagesView);
-}
-
-/*!
- This is a convenience function and is the same as calling \c
- {setViewMode(QPrintPreviewWidget::AllPagesView)}.
-*/
-void QPrintPreviewWidget::setAllPagesViewMode()
-{
- setViewMode(AllPagesView);
-}
-
-
-/*!
- This function updates the preview, which causes the
- paintRequested() signal to be emitted.
-*/
-void QPrintPreviewWidget::updatePreview()
-{
- Q_D(QPrintPreviewWidget);
- d->initialized = true;
- d->generatePreview();
- d->graphicsView->updateGeometry();
-}
-
-/*! \reimp
-*/
-void QPrintPreviewWidget::setVisible(bool visible)
-{
- Q_D(QPrintPreviewWidget);
- if (visible && !d->initialized)
- updatePreview();
- QWidget::setVisible(visible);
-}
-
-/*!
- \fn void QPrintPreviewWidget::paintRequested(QPrinter *printer)
-
- This signal is emitted when the preview widget needs to generate a
- set of preview pages. \a printer is the printer associated with
- this preview widget.
-*/
-
-/*!
- \fn void QPrintPreviewWidget::previewChanged()
-
- This signal is emitted whenever the preview widget has changed
- some internal state, such as the orientation.
-*/
-
-
-QT_END_NAMESPACE
-
-#include "moc_qprintpreviewwidget.cpp"
-#include "qprintpreviewwidget.moc"
-
-#endif // QT_NO_PRINTPREVIEWWIDGET
diff --git a/src/widgets/widgets/qprintpreviewwidget.h b/src/widgets/widgets/qprintpreviewwidget.h
deleted file mode 100644
index 87c908a589..0000000000
--- a/src/widgets/widgets/qprintpreviewwidget.h
+++ /dev/null
@@ -1,127 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the QtGui module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** GNU Lesser General Public License Usage
-** This file may be used under the terms of the GNU Lesser General Public
-** License version 2.1 as published by the Free Software Foundation and
-** appearing in the file LICENSE.LGPL included in the packaging of this
-** file. Please review the following information to ensure the GNU Lesser
-** General Public License version 2.1 requirements will be met:
-** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Nokia gives you certain additional
-** rights. These rights are described in the Nokia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU General
-** Public License version 3.0 as published by the Free Software Foundation
-** and appearing in the file LICENSE.GPL included in the packaging of this
-** file. Please review the following information to ensure the GNU General
-** Public License version 3.0 requirements will be met:
-** http://www.gnu.org/copyleft/gpl.html.
-**
-** Other Usage
-** Alternatively, this file may be used in accordance with the terms and
-** conditions contained in a signed written agreement between you and Nokia.
-**
-**
-**
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifndef QPRINTPREVIEWWIDGET_H
-#define QPRINTPREVIEWWIDGET_H
-
-#include <QtWidgets/qwidget.h>
-#include <QtGui/qprinter.h>
-
-#ifndef QT_NO_PRINTPREVIEWWIDGET
-
-QT_BEGIN_HEADER
-
-QT_BEGIN_NAMESPACE
-
-QT_MODULE(Gui)
-
-class QPrintPreviewWidgetPrivate;
-
-class Q_WIDGETS_EXPORT QPrintPreviewWidget : public QWidget
-{
- Q_OBJECT
- Q_DECLARE_PRIVATE(QPrintPreviewWidget)
-public:
-
- enum ViewMode {
- SinglePageView,
- FacingPagesView,
- AllPagesView
- };
-
- enum ZoomMode {
- CustomZoom,
- FitToWidth,
- FitInView
- };
-
- explicit QPrintPreviewWidget(QPrinter *printer, QWidget *parent = 0, Qt::WindowFlags flags = 0);
- explicit QPrintPreviewWidget(QWidget *parent = 0, Qt::WindowFlags flags = 0);
- ~QPrintPreviewWidget();
-
- qreal zoomFactor() const;
- QPrinter::Orientation orientation() const;
- ViewMode viewMode() const;
- ZoomMode zoomMode() const;
- int currentPage() const;
-#ifdef QT_DEPRECATED
- QT_DEPRECATED int numPages() const;
-#endif
- int pageCount() const;
- void setVisible(bool visible);
-
-public Q_SLOTS:
- void print();
-
- void zoomIn(qreal zoom = 1.1);
- void zoomOut(qreal zoom = 1.1);
- void setZoomFactor(qreal zoomFactor);
- void setOrientation(QPrinter::Orientation orientation);
- void setViewMode(ViewMode viewMode);
- void setZoomMode(ZoomMode zoomMode);
- void setCurrentPage(int pageNumber);
-
- void fitToWidth();
- void fitInView();
- void setLandscapeOrientation();
- void setPortraitOrientation();
- void setSinglePageViewMode();
- void setFacingPagesViewMode();
- void setAllPagesViewMode();
-
- void updatePreview();
-
-Q_SIGNALS:
- void paintRequested(QPrinter *printer);
- void previewChanged();
-
-private:
- void *dummy; // ### remove in Qt 5.0
- Q_PRIVATE_SLOT(d_func(), void _q_fit())
- Q_PRIVATE_SLOT(d_func(), void _q_updateCurrentPage())
-};
-
-QT_END_NAMESPACE
-
-QT_END_HEADER
-
-#endif // QT_NO_PRINTPREVIEWWIDGET
-#endif // QPRINTPREVIEWWIDGET_H
diff --git a/src/widgets/widgets/widgets.pri b/src/widgets/widgets/widgets.pri
index 69c80238bf..e4b5478aef 100644
--- a/src/widgets/widgets/widgets.pri
+++ b/src/widgets/widgets/widgets.pri
@@ -81,8 +81,8 @@ HEADERS += \
widgets/qwidgetlinecontrol_p.h \
widgets/qtoolbararealayout_p.h \
widgets/qplaintextedit.h \
- widgets/qplaintextedit_p.h \
- widgets/qprintpreviewwidget.h
+ widgets/qplaintextedit_p.h
+
SOURCES += \
widgets/qabstractbutton.cpp \
widgets/qabstractslider.cpp \
@@ -142,8 +142,7 @@ SOURCES += \
widgets/qwidgettextcontrol.cpp \
widgets/qwidgetlinecontrol.cpp \
widgets/qtoolbararealayout.cpp \
- widgets/qplaintextedit.cpp \
- widgets/qprintpreviewwidget.cpp
+ widgets/qplaintextedit.cpp
!qpa:mac {
HEADERS += widgets/qmacnativewidget_mac.h \