~ubuntu-branches/debian/jessie/qpdfview/jessie

« back to all changes in this revision

Viewing changes to sources/mainwindow.h

  • Committer: Package Import Robot
  • Author(s): Benjamin Eltzner
  • Date: 2012-06-01 19:23:41 UTC
  • Revision ID: package-import@ubuntu.com-20120601192341-0a5imt6j7i3g6z8w
Tags: upstream-0.3~beta2
ImportĀ upstreamĀ versionĀ 0.3~beta2

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
 
 
3
Copyright 2012 Adam Reichold
 
4
 
 
5
This file is part of qpdfview.
 
6
 
 
7
qpdfview is free software: you can redistribute it and/or modify
 
8
it under the terms of the GNU General Public License as published by
 
9
the Free Software Foundation, either version 2 of the License, or
 
10
(at your option) any later version.
 
11
 
 
12
qpdfview is distributed in the hope that it will be useful,
 
13
but WITHOUT ANY WARRANTY; without even the implied warranty of
 
14
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
15
GNU General Public License for more details.
 
16
 
 
17
You should have received a copy of the GNU General Public License
 
18
along with qpdfview.  If not, see <http://www.gnu.org/licenses/>.
 
19
 
 
20
*/
 
21
 
 
22
#ifndef MAINWINDOW_H
 
23
#define MAINWINDOW_H
 
24
 
 
25
#include <QtCore>
 
26
#include <QtGui>
 
27
 
 
28
#ifdef WITH_DBUS
 
29
 
 
30
#include <QtDBus>
 
31
 
 
32
#endif
 
33
 
 
34
#include "documentview.h"
 
35
#include "miscellaneous.h"
 
36
 
 
37
class MainWindow : public QMainWindow
 
38
{
 
39
    Q_OBJECT
 
40
 
 
41
public:
 
42
    explicit MainWindow(QWidget* parent = 0);
 
43
 
 
44
    QSize sizeHint() const;
 
45
    QMenu* createPopupMenu();
 
46
 
 
47
public slots:
 
48
    bool open(const QString& filePath, int page = 1, qreal top = 0.0);
 
49
    bool openInNewTab(const QString& filePath, int page = 1, qreal top = 0.0);
 
50
 
 
51
protected:
 
52
    void closeEvent(QCloseEvent*);
 
53
 
 
54
    void dragEnterEvent(QDragEnterEvent* event);
 
55
    void dropEvent(QDropEvent* event);
 
56
 
 
57
    void keyPressEvent(QKeyEvent* event);
 
58
 
 
59
protected slots:
 
60
    void slotOpen();
 
61
    void slotOpenInNewTab();
 
62
    void slotRecentyUsedActionEntrySelected(const QString& filePath);
 
63
    void slotRefresh();
 
64
    void slotSaveCopy();
 
65
    void slotPrint();
 
66
 
 
67
    void slotPreviousPage();
 
68
    void slotNextPage();
 
69
    void slotFirstPage();
 
70
    void slotLastPage();
 
71
 
 
72
    void slotSearch();
 
73
 
 
74
    void slotStartSearch();
 
75
 
 
76
    void slotSearchProgressed(int value);
 
77
    void slotSearchCanceled();
 
78
    void slotSearchFinished();
 
79
 
 
80
    void slotFindPrevious();
 
81
    void slotFindNext();
 
82
    void slotCancelSearch();
 
83
 
 
84
    void slotSettings();
 
85
 
 
86
    void slotPageLayoutGroupTriggered(QAction* action);
 
87
    void slotScaleModeGroupTriggered(QAction* action);
 
88
 
 
89
    void slotZoomIn();
 
90
    void slotZoomOut();
 
91
 
 
92
    void slotRotateLeft();
 
93
    void slotRotateRight();
 
94
 
 
95
    void slotFullscreen();
 
96
    void slotPresentation();
 
97
 
 
98
    void slotPreviousTab();
 
99
    void slotNextTab();
 
100
    void slotCloseTab();
 
101
 
 
102
    void slotCloseAllTabs();
 
103
    void slotCloseAllTabsButCurrentTab();
 
104
 
 
105
    void slotContents();
 
106
    void slotAbout();
 
107
 
 
108
    void slotTabWidgetCurrentChanged(int index);
 
109
    void slotTabWidgetTabCloseRequested(int index);
 
110
 
 
111
    void slotCurrentPageLineEditReturnPressed();
 
112
 
 
113
    void slotScaleFactorComboBoxCurrentIndexChanged(int index);
 
114
    void slotScaleFactorComboBoxEditingFinished();
 
115
 
 
116
    void slotHighlightAllCheckBoxClicked(bool checked);
 
117
 
 
118
    void slotFilePathChanged(const QString& filePath);
 
119
    void slotNumberOfPagesChanged(int numberOfPages);
 
120
 
 
121
    void slotCurrentPageChanged(int currentPage);
 
122
    void slotPageLayoutChanged(DocumentView::PageLayout pageLayout);
 
123
    void slotScaleModeChanged(DocumentView::ScaleMode scaleMode);
 
124
    void slotScaleFactorChanged(qreal scaleFactor);
 
125
 
 
126
    void slotHighlightAllChanged(bool highlightAll);
 
127
 
 
128
private:
 
129
    // actions
 
130
 
 
131
    QAction* m_openAction;
 
132
    QAction* m_openInNewTabAction;
 
133
    RecentlyUsedAction* m_recentlyUsedAction;
 
134
    QAction* m_refreshAction;
 
135
    QAction* m_saveCopyAction;
 
136
    QAction* m_printAction;
 
137
 
 
138
    QAction* m_exitAction;
 
139
 
 
140
    QAction* m_previousPageAction;
 
141
    QAction* m_nextPageAction;
 
142
    QAction* m_firstPageAction;
 
143
    QAction* m_lastPageAction;
 
144
 
 
145
    QAction* m_searchAction;
 
146
    QAction* m_findPreviousAction;
 
147
    QAction* m_findNextAction;
 
148
    QAction* m_cancelSearchAction;
 
149
 
 
150
    QAction* m_settingsAction;
 
151
 
 
152
    QAction* m_onePageAction;
 
153
    QAction* m_twoPagesAction;
 
154
    QAction* m_oneColumnAction;
 
155
    QAction* m_twoColumnsAction;
 
156
    QActionGroup* m_pageLayoutGroup;
 
157
 
 
158
    QAction* m_fitToPageAction;
 
159
    QAction* m_fitToPageWidthAction;
 
160
    QAction* m_doNotScaleAction;
 
161
    QActionGroup* m_scaleModeGroup;
 
162
 
 
163
    QAction* m_zoomInAction;
 
164
    QAction* m_zoomOutAction;
 
165
 
 
166
    QAction* m_rotateLeftAction;
 
167
    QAction* m_rotateRightAction;
 
168
 
 
169
    QAction* m_fullscreenAction;
 
170
    QAction* m_presentationAction;
 
171
 
 
172
    QAction* m_previousTabAction;
 
173
    QAction* m_nextTabAction;
 
174
 
 
175
    QAction* m_closeTabAction;
 
176
    QAction* m_closeAllTabsAction;
 
177
    QAction* m_closeAllTabsButCurrentTabAction;
 
178
 
 
179
    QAction* m_contentsAction;
 
180
    QAction* m_aboutAction;
 
181
 
 
182
    void createActions();
 
183
 
 
184
    // widgets
 
185
 
 
186
    TabWidget* m_tabWidget;
 
187
 
 
188
    LineEdit* m_currentPageLineEdit;
 
189
    QIntValidator* m_currentPageValidator;
 
190
 
 
191
    QLabel* m_numberOfPagesLabel;
 
192
 
 
193
    ComboBox* m_scaleFactorComboBox;
 
194
 
 
195
    QWidget* m_searchWidget;
 
196
    QLineEdit* m_searchLineEdit;
 
197
    QTimer* m_searchTimer;
 
198
    QCheckBox* m_matchCaseCheckBox;
 
199
    QCheckBox* m_highlightAllCheckBox;
 
200
 
 
201
    void createWidgets();
 
202
 
 
203
    // toolbars
 
204
 
 
205
    QToolBar* m_fileToolBar;
 
206
    QToolBar* m_editToolBar;
 
207
    QToolBar* m_viewToolBar;
 
208
 
 
209
    QToolBar* m_searchToolBar;
 
210
 
 
211
    void createToolBars();
 
212
 
 
213
    // docks
 
214
 
 
215
    QDockWidget* m_outlineDock;
 
216
    QDockWidget* m_metaInformationDock;
 
217
    QDockWidget* m_thumbnailsDock;
 
218
 
 
219
    void createDocks();
 
220
 
 
221
    // menus
 
222
 
 
223
    QMenu* m_fileMenu;
 
224
    QMenu* m_editMenu;
 
225
    QMenu* m_viewMenu;
 
226
    QMenu* m_tabMenu;
 
227
    QMenu* m_helpMenu;
 
228
 
 
229
    void createMenus();
 
230
 
 
231
    // settings
 
232
 
 
233
    QSettings m_settings;
 
234
    QByteArray m_geometry;
 
235
 
 
236
#ifdef WITH_DBUS
 
237
 
 
238
    friend class MainWindowAdaptor;
 
239
};
 
240
 
 
241
class MainWindowAdaptor : public QDBusAbstractAdaptor
 
242
{
 
243
    Q_OBJECT
 
244
    Q_CLASSINFO("D-Bus Interface", "local.qpdfview.MainWindow")
 
245
 
 
246
public:
 
247
    MainWindowAdaptor(MainWindow* mainWindow);
 
248
 
 
249
public slots:
 
250
    bool open(const QString& filePath, int page = 1, qreal top = 0.0);
 
251
    bool openInNewTab(const QString& filePath, int page = 1, qreal top = 0.0);
 
252
 
 
253
    Q_NOREPLY void refresh(const QString& filePath, int page = 1, qreal top = 0.0);
 
254
 
 
255
};
 
256
 
 
257
#else
 
258
 
 
259
};
 
260
 
 
261
#endif // WITH_DBUS
 
262
 
 
263
#endif // MAINWINDOW_H