OSDN Git Service

0024dba3d7c5318284df2cdb2e032eea93273f1b
[qt-creator-jp/qt-creator-jp.git] / src / plugins / help / centralwidget.h
1 /**************************************************************************
2 **
3 ** This file is part of Qt Creator
4 **
5 ** Copyright (c) 2011 Nokia Corporation and/or its subsidiary(-ies).
6 **
7 ** Contact: Nokia Corporation (qt-info@nokia.com)
8 **
9 ** No Commercial Usage
10 **
11 ** This file contains pre-release code and may not be distributed.
12 ** You may use this file in accordance with the terms and conditions
13 ** contained in the Technology Preview License Agreement accompanying
14 ** this package.
15 **
16 ** GNU Lesser General Public License Usage
17 **
18 ** Alternatively, this file may be used under the terms of the GNU Lesser
19 ** General Public License version 2.1 as published by the Free Software
20 ** Foundation and appearing in the file LICENSE.LGPL included in the
21 ** packaging of this file.  Please review the following information to
22 ** ensure the GNU Lesser General Public License version 2.1 requirements
23 ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
24 **
25 ** In addition, as a special exception, Nokia gives you certain additional
26 ** rights.  These rights are described in the Nokia Qt LGPL Exception
27 ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
28 **
29 ** If you have questions regarding the use of this file, please contact
30 ** Nokia at qt-info@nokia.com.
31 **
32 **************************************************************************/
33
34 #ifndef CENTRALWIDGET_H
35 #define CENTRALWIDGET_H
36
37 #include <find/ifindsupport.h>
38
39 #include <QtGui/QWidget>
40
41 QT_FORWARD_DECLARE_CLASS(QEvent)
42 QT_FORWARD_DECLARE_CLASS(QAction)
43 QT_FORWARD_DECLARE_CLASS(QStackedWidget)
44 QT_FORWARD_DECLARE_CLASS(QFocusEvent)
45
46 namespace Help {
47     namespace Internal {
48
49 class HelpViewer;
50 class PrintHelper;
51
52 class CentralWidget : public QWidget
53 {
54     Q_OBJECT
55
56 public:
57     CentralWidget(QWidget *parent = 0);
58     ~CentralWidget();
59
60     static CentralWidget *instance();
61
62     bool hasSelection() const;
63     bool isForwardAvailable() const;
64     bool isBackwardAvailable() const;
65
66     HelpViewer *viewerAt(int index) const;
67     HelpViewer *currentHelpViewer() const;
68
69     void addPage(HelpViewer *page, bool fromSearch = false);
70     void removePage(int index);
71
72     int currentIndex() const;
73     void setCurrentPage(HelpViewer *page);
74
75     bool find(const QString &txt, Find::FindFlags findFlags,
76         bool incremental, bool *wrapped = 0);
77
78 public slots:
79     void copy();
80     void home();
81
82     void zoomIn();
83     void zoomOut();
84     void resetZoom();
85
86     void forward();
87     void nextPage();
88
89     void backward();
90     void previousPage();
91
92     void print();
93     void pageSetup();
94     void printPreview();
95
96     void setSource(const QUrl &url);
97     void setSourceFromSearch(const QUrl &url);
98     void showTopicChooser(const QMap<QString, QUrl> &links, const QString &key);
99
100 protected:
101     void focusInEvent(QFocusEvent *event);
102
103 signals:
104     void openFindToolBar();
105     void currentViewerChanged();
106     void sourceChanged(const QUrl &url);
107     void forwardAvailable(bool available);
108     void backwardAvailable(bool available);
109
110 private slots:
111     void highlightSearchTerms();
112     void printPreview(QPrinter *printer);
113     void handleSourceChanged(const QUrl &url);
114
115 private:
116     void initPrinter();
117     void connectSignals(HelpViewer *page);
118     bool eventFilter(QObject *object, QEvent *e);
119
120 private:
121     QPrinter *printer;
122     QStackedWidget *m_stackedWidget;
123 };
124
125     } // namespace Internal
126 } // namespace Help
127
128 #endif  // CENTRALWIDGET_H