~ubuntu-branches/ubuntu/vivid/qpdfview/vivid

« back to all changes in this revision

Viewing changes to sources/settings.h

  • Committer: Package Import Robot
  • Author(s): Benjamin Eltzner
  • Date: 2013-01-02 14:12:52 UTC
  • mfrom: (1.2.5)
  • Revision ID: package-import@ubuntu.com-20130102141252-foi08cu5tkbu06p9
Tags: 0.3.7-1
* New upstream release.
* Fixed formatting of extended description in control file.
* New dependency libqt4-sql-sqlite.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
 
 
3
Copyright 2012 Adam Reichold
 
4
Copyright 2012 Alexander Volkov
 
5
 
 
6
This file is part of qpdfview.
 
7
 
 
8
qpdfview is free software: you can redistribute it and/or modify
 
9
it under the terms of the GNU General Public License as published by
 
10
the Free Software Foundation, either version 2 of the License, or
 
11
(at your option) any later version.
 
12
 
 
13
qpdfview is distributed in the hope that it will be useful,
 
14
but WITHOUT ANY WARRANTY; without even the implied warranty of
 
15
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
16
GNU General Public License for more details.
 
17
 
 
18
You should have received a copy of the GNU General Public License
 
19
along with qpdfview.  If not, see <http://www.gnu.org/licenses/>.
 
20
 
 
21
*/
 
22
 
 
23
#ifndef MY_SETTINGS_H
 
24
#define MY_SETTINGS_H
 
25
 
 
26
#include <QtCore>
 
27
#include <QtGui>
 
28
 
 
29
#if QT_VERSION >= QT_VERSION_CHECK(5,0,0)
 
30
 
 
31
#include <QtWidgets>
 
32
 
 
33
#endif // QT_VERSION
 
34
 
 
35
#include "documentview.h"
 
36
#include "miscellaneous.h"
 
37
 
 
38
class Settings : public QObject
 
39
{
 
40
    Q_OBJECT
 
41
 
 
42
public:
 
43
    explicit Settings(QObject* parent = 0);
 
44
    ~Settings();
 
45
 
 
46
    QString fileName() const;
 
47
 
 
48
    // page item
 
49
 
 
50
    class PageItem
 
51
    {
 
52
    public:
 
53
        PageItem(QSettings* settings);
 
54
 
 
55
        static inline int defaultCacheSize() { return 32 * 1024 * 1024; }
 
56
        int cacheSize() const;
 
57
        void setCacheSize(int cacheSize);
 
58
 
 
59
        static inline bool defaultDecoratePages() { return true; }
 
60
        bool decoratePages() const;
 
61
        void setDecoratePages(bool on);
 
62
 
 
63
        static inline bool defaultDecorateLinks() { return true; }
 
64
        bool decorateLinks() const;
 
65
        void setDecorateLinks(bool on);
 
66
 
 
67
        static inline bool defaultDecorateFormFields() { return true; }
 
68
        bool decorateFormFields() const;
 
69
        void setDecorateFormFields(bool on);
 
70
 
 
71
        static inline QString defaultBackgroundColor() { return "gray"; }
 
72
        QString backgroundColor() const;
 
73
        void setBackgroundColor(const QString& color);
 
74
 
 
75
        static inline QString defaultPaperColor() { return "white"; }
 
76
        QString paperColor() const;
 
77
        void setPaperColor(const QString& color);
 
78
 
 
79
        static inline bool defaultInvertColors() { return false; }
 
80
        bool invertColors() const;
 
81
        void setInvertColors(bool on);
 
82
 
 
83
        static inline Qt::KeyboardModifiers defaultCopyModifiers() { return Qt::ShiftModifier; }
 
84
        Qt::KeyboardModifiers copyModifiers() const;
 
85
        void setCopyModifiers(const Qt::KeyboardModifiers& copyModifiers);
 
86
 
 
87
        static inline Qt::KeyboardModifiers defaultAnnotateModifiers() { return Qt::ControlModifier; }
 
88
        Qt::KeyboardModifiers annotateModifiers() const;
 
89
        void setAnnotateModifiers(const Qt::KeyboardModifiers& annotateModifiers);
 
90
 
 
91
    private:
 
92
        QSettings* m_settings;
 
93
 
 
94
    };
 
95
 
 
96
    PageItem* pageItem();
 
97
    const PageItem* pageItem() const;
 
98
 
 
99
    // presentation view
 
100
 
 
101
    class PresentationView
 
102
    {
 
103
    public:
 
104
        PresentationView(QSettings* settings);
 
105
 
 
106
        static inline bool defaultSync() { return false; }
 
107
        bool sync() const;
 
108
        void setSync(bool on);
 
109
 
 
110
        static inline int defaultScreen() { return -1; }
 
111
        int screen() const;
 
112
        void setScreen(int screen);
 
113
 
 
114
    private:
 
115
        QSettings* m_settings;
 
116
 
 
117
    };
 
118
 
 
119
    PresentationView* presentationView();
 
120
    const PresentationView* presentationView() const;
 
121
 
 
122
    // document view
 
123
 
 
124
    class DocumentView
 
125
    {
 
126
    public:
 
127
        DocumentView(QSettings* settings);
 
128
 
 
129
        static inline bool defaultOpenUrl() { return false; }
 
130
        bool openUrl() const;
 
131
        void setOpenUrl(bool on);
 
132
 
 
133
        static inline bool defaultAutoRefresh() { return false; }
 
134
        bool autoRefresh() const;
 
135
        void setAutoRefresh(bool on);
 
136
 
 
137
        static inline bool defaultAntialiasing() { return true; }
 
138
        bool antialiasing() const;
 
139
        void setAntialiasing(bool on);
 
140
 
 
141
        static inline bool defaultTextAntialiasing() { return true; }
 
142
        bool textAntialiasing() const;
 
143
        void setTextAntialiasing(bool on);
 
144
 
 
145
        static inline bool defaultTextHinting() { return false; }
 
146
        bool textHinting() const;
 
147
        void setTextHinting(bool on);
 
148
 
 
149
        static inline bool defaultOverprintPreview() { return false; }
 
150
        bool overprintPreview() const;
 
151
        void setOverprintPreview(bool on);
 
152
 
 
153
        static inline bool defaultPrefetch() { return false; }
 
154
        bool prefetch() const;
 
155
        void setPrefetch(bool on);
 
156
 
 
157
        static inline int defaultPagesPerRow() { return 3; }
 
158
        int pagesPerRow() const;
 
159
        void setPagesPerRow(int pagesPerRow);
 
160
 
 
161
        static inline qreal defaultPageSpacing() { return 5.0; }
 
162
        qreal pageSpacing() const;
 
163
        void setPageSpacing(qreal pageSpacing);
 
164
 
 
165
        static inline qreal defaultThumbnailSpacing() { return 3.0; }
 
166
        qreal thumbnailSpacing() const;
 
167
        void setThumbnailSpacing(qreal thumbnailSpacing);
 
168
 
 
169
        static inline qreal defaultThumbnailSize() { return 150.0; }
 
170
        qreal thumbnailSize() const;
 
171
        void setThumbnailSize(qreal thumbnailSize);
 
172
 
 
173
        static inline Qt::KeyboardModifiers defaultZoomModifiers() { return Qt::ControlModifier; }
 
174
        Qt::KeyboardModifiers zoomModifiers() const;
 
175
        void setZoomModifiers(const Qt::KeyboardModifiers& zoomModifiers);
 
176
 
 
177
        static inline Qt::KeyboardModifiers defaultRotateModifiers() { return Qt::ShiftModifier; }
 
178
        Qt::KeyboardModifiers rotateModifiers() const;
 
179
        void setRotateModifiers(const Qt::KeyboardModifiers& rotateModifiers);
 
180
 
 
181
        static inline Qt::KeyboardModifiers defaultHorizontalModifiers() { return Qt::AltModifier; }
 
182
        Qt::KeyboardModifiers horizontalModifiers() const;
 
183
        void setHorizontalModifiers(const Qt::KeyboardModifiers& horizontalModifiers);
 
184
 
 
185
        static inline int defaultHighlightDuration() { return 5000; }
 
186
        int highlightDuration() const;
 
187
        void setHighlightDuration(int highlightDuration);
 
188
 
 
189
        QString sourceEditor() const;
 
190
        void setSourceEditor(const QString& sourceEditor);
 
191
 
 
192
        // per-tab settings
 
193
 
 
194
        static inline bool defaultContinuousMode() { return false; }
 
195
        bool continuousMode() const;
 
196
        void setContinuousMode(bool on);
 
197
 
 
198
        static inline ::DocumentView::LayoutMode defaultLayoutMode() { return ::DocumentView::SinglePageMode; }
 
199
        ::DocumentView::LayoutMode layoutMode() const;
 
200
        void setLayoutMode(::DocumentView::LayoutMode layoutMode);
 
201
 
 
202
        static inline ::DocumentView::ScaleMode defaultScaleMode() { return ::DocumentView::ScaleFactor; }
 
203
        ::DocumentView::ScaleMode scaleMode() const;
 
204
        void setScaleMode(::DocumentView::ScaleMode scaleMode);
 
205
 
 
206
        static inline qreal defaultScaleFactor() { return 1.0; }
 
207
        qreal scaleFactor() const;
 
208
        void setScaleFactor(qreal scaleFactor);
 
209
 
 
210
        static inline Poppler::Page::Rotation defaultRotation() { return Poppler::Page::Rotate0; }
 
211
        Poppler::Page::Rotation rotation() const;
 
212
        void setRotation(Poppler::Page::Rotation rotation);
 
213
 
 
214
        static inline bool defaultHighlightAll() { return false; }
 
215
        bool highlightAll() const;
 
216
        void setHighlightAll(bool on);
 
217
 
 
218
    private:
 
219
        QSettings* m_settings;
 
220
 
 
221
    };
 
222
 
 
223
    DocumentView* documentView();
 
224
    const DocumentView* documentView() const;
 
225
 
 
226
    // main window
 
227
 
 
228
    class MainWindow
 
229
    {
 
230
    public:
 
231
        MainWindow(QSettings* settings);
 
232
 
 
233
        static inline bool defaultTrackRecentlyUsed() { return false; }
 
234
        bool trackRecentlyUsed() const;
 
235
        void setTrackRecentlyUsed(bool on);
 
236
 
 
237
        QStringList recentlyUsed() const;
 
238
        void setRecentlyUsed(const QStringList& recentlyUsed);
 
239
 
 
240
        static inline bool defaultRestoreTabs() { return false; }
 
241
        bool restoreTabs() const;
 
242
        void setRestoreTabs(bool on);
 
243
 
 
244
        static inline bool defaultRestoreBookmarks() { return false; }
 
245
        bool restoreBookmarks() const;
 
246
        void setRestoreBookmarks(bool on);
 
247
 
 
248
        static inline bool defaultRestorePerFileSettings() { return false; }
 
249
        bool restorePerFileSettings() const;
 
250
        void setRestorePerFileSettings(bool on);
 
251
 
 
252
        static inline QTabWidget::TabPosition defaultTabPosition() { return QTabWidget::North; }
 
253
        QTabWidget::TabPosition tabPosition() const;
 
254
        void setTabPosition(QTabWidget::TabPosition tabPosition);
 
255
 
 
256
        static inline TabWidget::TabBarPolicy defaultTabVisibility() { return TabWidget::TabBarAsNeeded; }
 
257
        TabWidget::TabBarPolicy tabVisibility() const;
 
258
        void setTabVisibility(TabWidget::TabBarPolicy tabVisibility);
 
259
 
 
260
        static inline QStringList defaultFileToolBar() { return QStringList() << "openInNewTab" << "refresh"; }
 
261
        QStringList fileToolBar() const;
 
262
        void setFileToolBar(const QStringList& fileToolBar);
 
263
 
 
264
        static inline QStringList defaultEditToolBar() { return QStringList() << "currentPage" << "previousPage" << "nextPage"; }
 
265
        QStringList editToolBar() const;
 
266
        void setEditToolBar(const QStringList& editToolBar);
 
267
 
 
268
        static inline QStringList defaultViewToolBar() { return QStringList() << "scaleFactor" << "zoomIn" << "zoomOut"; }
 
269
        QStringList viewToolBar() const;
 
270
        void setViewToolBar(const QStringList& viewToolBar);
 
271
 
 
272
        bool hasIconTheme() const;
 
273
        QString iconTheme() const;
 
274
 
 
275
        bool hasStyleSheet() const;
 
276
        QString styleSheet() const;
 
277
 
 
278
        QByteArray geometry() const;
 
279
        void setGeometry(const QByteArray& geometry);
 
280
 
 
281
        QByteArray state() const;
 
282
        void setState(const QByteArray& state);
 
283
 
 
284
        static QString defaultPath();
 
285
 
 
286
        QString openPath() const;
 
287
        void setOpenPath(const QString& openPath);
 
288
 
 
289
        QString savePath() const;
 
290
        void setSavePath(const QString& savePath);
 
291
 
 
292
        static inline QString fileFilter() { return "Portable document format (*.pdf)"; }
 
293
 
 
294
        QSize fontsDialogSize(const QSize& sizeHint) const;
 
295
        void setFontsDialogSize(const QSize& fontsDialogSize);
 
296
 
 
297
        QSize contentsDialogSize(const QSize& sizeHint) const;
 
298
        void setContentsDialogSize(const QSize& contentsDialogSize);
 
299
 
 
300
    private:
 
301
        QSettings* m_settings;
 
302
 
 
303
        QStringList trimmed(const QStringList& list);
 
304
 
 
305
    };
 
306
 
 
307
    MainWindow* mainWindow();
 
308
    const MainWindow* mainWindow() const;
 
309
 
 
310
public slots:
 
311
    void refresh();
 
312
 
 
313
private:
 
314
    QSettings* m_settings;
 
315
 
 
316
    PageItem* m_pageItem;
 
317
    PresentationView* m_presentationView;
 
318
    DocumentView* m_documentView;
 
319
    MainWindow* m_mainWindow;
 
320
 
 
321
};
 
322
 
 
323
#endif // SETTINGS_H