summaryrefslogtreecommitdiffstats
path: root/src/printsupport/dialogs/qpagesetupdialog.cpp
diff options
context:
space:
mode:
authorJohn Layt <jlayt@kde.org>2012-05-20 22:38:28 +0100
committerQt by Nokia <qt-info@nokia.com>2012-09-17 22:08:16 +0200
commit54b899f44877d87f6118b1bab02fb67c35d738e8 (patch)
treeb461abfb0853b2d2c38d9c87e337ba414090cfd1 /src/printsupport/dialogs/qpagesetupdialog.cpp
parent01864d4854557d2cf8b067e229d77cd7c9c553ee (diff)
SIC: QtPrintSupport - Remove QAbstractPageSetupDialog
QAbstractPageSetupDialog is a completely unnecessary base class that is not really abstract and is used nowhere else. This changes merges its methods into the QPageSetupDialog main class. While technically SIC no-one else uses this so no apps should be affected. Change-Id: I59b1739f1c453c34c25d1664d5d042e7918db316 Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
Diffstat (limited to 'src/printsupport/dialogs/qpagesetupdialog.cpp')
-rw-r--r--src/printsupport/dialogs/qpagesetupdialog.cpp76
1 files changed, 72 insertions, 4 deletions
diff --git a/src/printsupport/dialogs/qpagesetupdialog.cpp b/src/printsupport/dialogs/qpagesetupdialog.cpp
index 404d5d9ec2..8488255872 100644
--- a/src/printsupport/dialogs/qpagesetupdialog.cpp
+++ b/src/printsupport/dialogs/qpagesetupdialog.cpp
@@ -39,7 +39,10 @@
**
****************************************************************************/
-#include <private/qabstractpagesetupdialog_p.h>
+#include "qpagesetupdialog.h"
+#include <private/qpagesetupdialog_p.h>
+
+#include <QtPrintSupport/qprinter.h>
#ifndef QT_NO_PRINTDIALOG
@@ -75,6 +78,12 @@ QT_BEGIN_NAMESPACE
*/
/*!
+ \fn QPageSetupDialog::~QPageSetupDialog()
+
+ Destroys the page setup dialog.
+*/
+
+/*!
\since 4.5
\fn QPageSetupDialog::QPageSetupDialog(QWidget *parent)
@@ -92,10 +101,33 @@ QT_BEGIN_NAMESPACE
constructor.
*/
-// hack
-class QPageSetupDialogPrivate : public QAbstractPageSetupDialogPrivate
+QPageSetupDialogPrivate::QPageSetupDialogPrivate(QPrinter *prntr) : printer(0), ownsPrinter(false)
{
-};
+ setPrinter(prntr);
+ init();
+}
+
+void QPageSetupDialogPrivate::init()
+{
+}
+
+void QPageSetupDialogPrivate::setPrinter(QPrinter *newPrinter)
+{
+ if (printer && ownsPrinter)
+ delete printer;
+
+ if (newPrinter) {
+ printer = newPrinter;
+ ownsPrinter = false;
+ } else {
+ printer = new QPrinter;
+ ownsPrinter = true;
+ }
+#ifndef Q_WS_X11
+ if (printer->outputFormat() != QPrinter::NativeFormat)
+ qWarning("QPageSetupDialog: Cannot be used on non-native printers");
+#endif
+}
/*!
\overload
@@ -121,6 +153,42 @@ void QPageSetupDialog::open(QObject *receiver, const char *member)
*/
#endif
+QPageSetupDialog::~QPageSetupDialog()
+{
+ Q_D(QPageSetupDialog);
+ if (d->ownsPrinter)
+ delete d->printer;
+}
+
+QPrinter *QPageSetupDialog::printer()
+{
+ Q_D(QPageSetupDialog);
+ return d->printer;
+}
+
+/*!
+ \fn int QPageSetupDialog::exec()
+
+ This virtual function is called to pop up the dialog. It must be
+ reimplemented in subclasses.
+*/
+
+/*!
+ \reimp
+*/
+void QPageSetupDialog::done(int result)
+{
+ Q_D(QPageSetupDialog);
+ QDialog::done(result);
+ if (d->receiverToDisconnectOnClose) {
+ disconnect(this, SIGNAL(accepted()),
+ d->receiverToDisconnectOnClose, d->memberToDisconnectOnClose);
+ d->receiverToDisconnectOnClose = 0;
+ }
+ d->memberToDisconnectOnClose.clear();
+
+}
+
QT_END_NAMESPACE
#endif