1 /****************************************************************************
3 ** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
4 ** All rights reserved.
5 ** Contact: Nokia Corporation (qt-info@nokia.com)
7 ** This file is part of the QtGui module of the Qt Toolkit.
9 ** $QT_BEGIN_LICENSE:LGPL$
10 ** GNU Lesser General Public License Usage
11 ** This file may be used under the terms of the GNU Lesser General Public
12 ** License version 2.1 as published by the Free Software Foundation and
13 ** appearing in the file LICENSE.LGPL included in the packaging of this
14 ** file. Please review the following information to ensure the GNU Lesser
15 ** General Public License version 2.1 requirements will be met:
16 ** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
18 ** In addition, as a special exception, Nokia gives you certain additional
19 ** rights. These rights are described in the Nokia Qt LGPL Exception
20 ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
22 ** GNU General Public License Usage
23 ** Alternatively, this file may be used under the terms of the GNU General
24 ** Public License version 3.0 as published by the Free Software Foundation
25 ** and appearing in the file LICENSE.GPL included in the packaging of this
26 ** file. Please review the following information to ensure the GNU General
27 ** Public License version 3.0 requirements will be met:
28 ** http://www.gnu.org/copyleft/gpl.html.
31 ** Alternatively, this file may be used in accordance with the terms and
32 ** conditions contained in a signed written agreement between you and Nokia.
40 ****************************************************************************/
49 // This file is not part of the Qt API. It exists purely as an
50 // implementation detail. This header file may change from version to
51 // version without notice, or even be removed.
57 #include "QtCore/qglobal.h"
61 #include "QtGui/qprinter.h"
62 #include "QtGui/qprintengine.h"
63 #include "QtGui/qprintdialog.h"
64 #include "QtCore/qpointer.h"
71 class QPreviewPaintEngine;
76 Q_DECLARE_PUBLIC(QPrinter)
78 QPrinterPrivate(QPrinter *printer)
82 , options(QAbstractPrintDialog::PrintToFile | QAbstractPrintDialog::PrintPageRange |
83 QAbstractPrintDialog::PrintCollateCopies | QAbstractPrintDialog::PrintShowPageSize)
84 , printRange(QAbstractPrintDialog::AllPages)
89 , use_default_engine(true)
91 , hasCustomPageMargins(false)
92 , hasUserSetPageSize(false)
100 void createDefaultEngines();
101 #ifndef QT_NO_PRINTPREVIEWWIDGET
102 QList<const QPicture *> previewPages() const;
103 void setPreviewMode(bool);
106 void addToManualSetList(QPrintEngine::PrintEnginePropertyKey key);
108 QPrinter::PrinterMode printerMode;
109 QPrinter::OutputFormat outputFormat;
110 QPrintEngine *printEngine;
111 QPaintEngine *paintEngine;
113 QPrintEngine *realPrintEngine;
114 QPaintEngine *realPaintEngine;
115 #ifndef QT_NO_PRINTPREVIEWWIDGET
116 QPreviewPaintEngine *previewEngine;
121 QAbstractPrintDialog::PrintDialogOptions options;
122 QAbstractPrintDialog::PrintRange printRange;
123 int minPage, maxPage, fromPage, toPage;
125 uint use_default_engine : 1;
126 uint had_default_engines : 1;
128 uint validPrinter : 1;
129 uint hasCustomPageMargins : 1;
130 uint hasUserSetPageSize : 1;
132 // Used to remember which properties have been manually set by the user.
133 QList<QPrintEngine::PrintEnginePropertyKey> manualSetList;
138 #endif // QT_NO_PRINTER
140 #endif // QPRINTER_P_H