source: trunk/tools/designer/src/lib/shared/previewmanager_p.h@ 561

Last change on this file since 561 was 561, checked in by Dmitry A. Kuminov, 15 years ago

trunk: Merged in qt 4.6.1 sources.

File size: 6.9 KB
Line 
1/****************************************************************************
2**
3** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
4** All rights reserved.
5** Contact: Nokia Corporation ([email protected])
6**
7** This file is part of the Qt Designer of the Qt Toolkit.
8**
9** $QT_BEGIN_LICENSE:LGPL$
10** Commercial Usage
11** Licensees holding valid Qt Commercial licenses may use this file in
12** accordance with the Qt Commercial License Agreement provided with the
13** Software or, alternatively, in accordance with the terms contained in
14** a written agreement between you and Nokia.
15**
16** GNU Lesser General Public License Usage
17** Alternatively, this file may be used under the terms of the GNU Lesser
18** General Public License version 2.1 as published by the Free Software
19** Foundation and appearing in the file LICENSE.LGPL included in the
20** packaging of this file. Please review the following information to
21** ensure the GNU Lesser General Public License version 2.1 requirements
22** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
23**
24** In addition, as a special exception, Nokia gives you certain additional
25** rights. These rights are described in the Nokia Qt LGPL Exception
26** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
27**
28** GNU General Public License Usage
29** Alternatively, this file may be used under the terms of the GNU
30** General Public License version 3.0 as published by the Free Software
31** Foundation and appearing in the file LICENSE.GPL included in the
32** packaging of this file. Please review the following information to
33** ensure the GNU General Public License version 3.0 requirements will be
34** met: http://www.gnu.org/copyleft/gpl.html.
35**
36** If you have questions regarding the use of this file, please contact
37** Nokia at [email protected].
38** $QT_END_LICENSE$
39**
40****************************************************************************/
41
42//
43// W A R N I N G
44// -------------
45//
46// This file is not part of the Qt API. It exists for the convenience
47// of Qt Designer. This header
48// file may change from version to version without notice, or even be removed.
49//
50// We mean it.
51//
52
53#ifndef PREVIEWMANAGER_H
54#define PREVIEWMANAGER_H
55
56#include "shared_global_p.h"
57
58#include <QtCore/QObject>
59#include <QtCore/QString>
60#include <QtCore/QSharedDataPointer>
61
62QT_BEGIN_NAMESPACE
63
64class QDesignerFormWindowInterface;
65class QWidget;
66class QPixmap;
67class QAction;
68class QActionGroup;
69class QMenu;
70class QWidget;
71class QDesignerSettingsInterface;
72
73namespace qdesigner_internal {
74
75// ----------- PreviewConfiguration
76
77class PreviewConfigurationData;
78
79class QDESIGNER_SHARED_EXPORT PreviewConfiguration {
80public:
81 PreviewConfiguration();
82 explicit PreviewConfiguration(const QString &style,
83 const QString &applicationStyleSheet = QString(),
84 const QString &deviceSkin = QString());
85
86 PreviewConfiguration(const PreviewConfiguration&);
87 PreviewConfiguration& operator=(const PreviewConfiguration&);
88 ~PreviewConfiguration();
89
90 QString style() const;
91 void setStyle(const QString &);
92
93 // Style sheet to prepend (to simulate the effect od QApplication::setSyleSheet()).
94 QString applicationStyleSheet() const;
95 void setApplicationStyleSheet(const QString &);
96
97 QString deviceSkin() const;
98 void setDeviceSkin(const QString &);
99
100 void clear();
101 void toSettings(const QString &prefix, QDesignerSettingsInterface *settings) const;
102 void fromSettings(const QString &prefix, const QDesignerSettingsInterface *settings);
103
104private:
105 QSharedDataPointer<PreviewConfigurationData> m_d;
106};
107
108QDESIGNER_SHARED_EXPORT bool operator<(const PreviewConfiguration &pc1, const PreviewConfiguration &pc2);
109QDESIGNER_SHARED_EXPORT bool operator==(const PreviewConfiguration &pc1, const PreviewConfiguration &pc2);
110QDESIGNER_SHARED_EXPORT bool operator!=(const PreviewConfiguration &pc1, const PreviewConfiguration &pc2);
111
112// ----------- Preview window manager.
113// Maintains a list of preview widgets with their associated form windows and configuration.
114
115class PreviewManagerPrivate;
116
117class QDESIGNER_SHARED_EXPORT PreviewManager : public QObject
118{
119 Q_OBJECT
120public:
121
122 enum PreviewMode {
123 // Modal preview. Do not use on Macs as dialogs would have no close button
124 ApplicationModalPreview,
125 // Non modal previewing of one form in different configurations (closes if form window changes)
126 SingleFormNonModalPreview,
127 // Non modal previewing of several forms in different configurations
128 MultipleFormNonModalPreview };
129
130 explicit PreviewManager(PreviewMode mode, QObject *parent);
131 virtual ~PreviewManager();
132
133 // Show preview. Raise existing preview window if there is one with a matching
134 // configuration, else create a new preview.
135 QWidget *showPreview(const QDesignerFormWindowInterface *, const PreviewConfiguration &pc, int deviceProfileIndex /*=-1*/, QString *errorMessage);
136 // Convenience that creates a preview using a configuration taken from the settings.
137 QWidget *showPreview(const QDesignerFormWindowInterface *, const QString &style, int deviceProfileIndex /*=-1*/, QString *errorMessage);
138 QWidget *showPreview(const QDesignerFormWindowInterface *, const QString &style, QString *errorMessage);
139
140 int previewCount() const;
141
142 // Create a pixmap for printing.
143 QPixmap createPreviewPixmap(const QDesignerFormWindowInterface *fw, const PreviewConfiguration &pc, int deviceProfileIndex /*=-1*/, QString *errorMessage);
144 // Convenience that creates a pixmap using a configuration taken from the settings.
145 QPixmap createPreviewPixmap(const QDesignerFormWindowInterface *fw, const QString &style, int deviceProfileIndex /*=-1*/, QString *errorMessage);
146 QPixmap createPreviewPixmap(const QDesignerFormWindowInterface *fw, const QString &style, QString *errorMessage);
147
148 virtual bool eventFilter(QObject *watched, QEvent *event);
149
150public slots:
151 void closeAllPreviews();
152
153signals:
154 void firstPreviewOpened();
155 void lastPreviewClosed();
156
157private slots:
158 void slotZoomChanged(int);
159
160private:
161
162 virtual Qt::WindowFlags previewWindowFlags(const QWidget *widget) const;
163 virtual QWidget *createDeviceSkinContainer(const QDesignerFormWindowInterface *) const;
164
165 QWidget *raise(const QDesignerFormWindowInterface *, const PreviewConfiguration &pc);
166 QWidget *createPreview(const QDesignerFormWindowInterface *,
167 const PreviewConfiguration &pc,
168 int deviceProfileIndex /* = -1 */,
169 QString *errorMessage,
170 /*Disabled by default, <0 */
171 int initialZoom = -1);
172
173 void updatePreviewClosed(QWidget *w);
174
175 PreviewManagerPrivate *d;
176
177 PreviewManager(const PreviewManager &other);
178 PreviewManager &operator =(const PreviewManager &other);
179};
180}
181
182QT_END_NAMESPACE
183
184#endif // PREVIEWMANAGER_H
Note: See TracBrowser for help on using the repository browser.