source: visorpdf/sources/settings.cpp @ 8964fdc

Last change on this file since 8964fdc was 8964fdc, checked in by Pedro Buitrago <pbuitrago@…>, 8 years ago

Se realiza las modificaciones para agregar el nombre del proyecto murrupuy y la información sobre el proyecto

  • Property mode set to 100644
File size: 36.1 KB
Line 
1/*
2
3Copyright 2015 S. Razi Alavizadeh
4Copyright 2012-2015 Adam Reichold
5Copyright 2012 Alexander Volkov
6
7This file is part of qpdfview.
8
9qpdfview is free software: you can redistribute it and/or modify
10it under the terms of the GNU General Public License as published by
11the Free Software Foundation, either version 2 of the License, or
12(at your option) any later version.
13
14qpdfview is distributed in the hope that it will be useful,
15but WITHOUT ANY WARRANTY; without even the implied warranty of
16MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17GNU General Public License for more details.
18
19You should have received a copy of the GNU General Public License
20along with qpdfview.  If not, see <http://www.gnu.org/licenses/>.
21
22*/
23
24#include "settings.h"
25
26#include <QApplication>
27#include <QDesktopWidget>
28#include <QLocale>
29#include <QSettings>
30
31#if QT_VERSION >= QT_VERSION_CHECK(5,0,0)
32
33#include <QStandardPaths>
34
35#else
36
37#include <QDesktopServices>
38
39#endif // QT_VERSION
40
41namespace
42{
43
44inline QStringList trimmed(const QStringList& list)
45{
46    QStringList trimmedList;
47
48    foreach(const QString& item, list)
49    {
50        trimmedList.append(item.trimmed());
51    }
52
53    return trimmedList;
54}
55
56} // anonymous
57
58namespace qpdfview
59{
60
61Settings* Settings::s_instance = 0;
62
63Settings* Settings::instance()
64{
65    if(s_instance == 0)
66    {
67        s_instance = new Settings(qApp);
68
69        s_instance->sync();
70    }
71
72    return s_instance;
73}
74
75Settings::~Settings()
76{
77    s_instance = 0;
78}
79
80// page item
81
82void Settings::PageItem::sync()
83{
84    m_cacheSize = m_settings->value("pageItem/cacheSize", Defaults::PageItem::cacheSize()).toInt();
85
86    m_useTiling = m_settings->value("pageItem/useTiling", Defaults::PageItem::useTiling()).toBool();
87    m_tileSize = m_settings->value("pageItem/tileSize", Defaults::PageItem::tileSize()).toInt();
88
89    m_keepObsoletePixmaps = m_settings->value("pageItem/keepObsoletePixmaps", Defaults::PageItem::keepObsoletePixmaps()).toBool();
90    m_useDevicePixelRatio = m_settings->value("pageItem/useDevicePixelRatio", Defaults::PageItem::useDevicePixelRatio()).toBool();
91
92    m_decoratePages = m_settings->value("pageItem/decoratePages", Defaults::PageItem::decoratePages()).toBool();
93    m_decorateLinks = m_settings->value("pageItem/decorateLinks", Defaults::PageItem::decorateLinks()).toBool();
94    m_decorateFormFields = m_settings->value("pageItem/decorateFormFields", Defaults::PageItem::decorateFormFields()).toBool();
95
96    m_backgroundColor = m_settings->value("pageItem/backgroundColor", Defaults::PageItem::backgroundColor()).value< QColor >();
97    m_paperColor = m_settings->value("pageItem/paperColor", Defaults::PageItem::paperColor()).value< QColor >();
98
99    m_highlightColor = m_settings->value("pageItem/highlightColor", Defaults::PageItem::highlightColor()).value< QColor >();
100}
101
102void Settings::PageItem::setCacheSize(int cacheSize)
103{
104    if(cacheSize >= 0)
105    {
106        m_cacheSize = cacheSize;
107        m_settings->setValue("pageItem/cacheSize", cacheSize);
108    }
109}
110
111void Settings::PageItem::setUseTiling(bool useTiling)
112{
113    m_useTiling = useTiling;
114    m_settings->setValue("pageItem/useTiling", useTiling);
115}
116
117void Settings::PageItem::setKeepObsoletePixmaps(bool keepObsoletePixmaps)
118{
119    m_keepObsoletePixmaps = keepObsoletePixmaps;
120    m_settings->setValue("pageItem/keepObsoletePixmaps", keepObsoletePixmaps);
121}
122
123void Settings::PageItem::setUseDevicePixelRatio(bool useDevicePixelRatio)
124{
125    m_useDevicePixelRatio = useDevicePixelRatio;
126    m_settings->setValue("pageItem/useDevicePixelRatio", useDevicePixelRatio);
127}
128
129void Settings::PageItem::setDecoratePages(bool decoratePages)
130{
131    m_decoratePages = decoratePages;
132    m_settings->setValue("pageItem/decoratePages", decoratePages);
133}
134
135void Settings::PageItem::setDecorateLinks(bool decorateLinks)
136{
137    m_decorateLinks = decorateLinks;
138    m_settings->setValue("pageItem/decorateLinks", decorateLinks);
139}
140
141void Settings::PageItem::setDecorateFormFields(bool decorateFormFields)
142{
143    m_decorateFormFields = decorateFormFields;
144    m_settings->setValue("pageItem/decorateFormFields", decorateFormFields);
145}
146
147void Settings::PageItem::setBackgroundColor(const QColor& backgroundColor)
148{
149    m_backgroundColor = backgroundColor;
150    m_settings->setValue("pageItem/backgroundColor", backgroundColor);
151}
152
153void Settings::PageItem::setPaperColor(const QColor& paperColor)
154{
155    m_paperColor = paperColor;
156    m_settings->setValue("pageItem/paperColor", paperColor);
157}
158
159void Settings::PageItem::setHighlightColor(const QColor& highlightColor)
160{
161    m_highlightColor = highlightColor;
162    m_settings->setValue("pageItem/highlightColor", highlightColor);
163}
164
165QColor Settings::PageItem::annotationColor() const
166{
167    return m_settings->value("pageItem/annotationColor", Defaults::PageItem::annotationColor()).value< QColor >();
168}
169
170void Settings::PageItem::setAnnotationColor(const QColor& annotationColor)
171{
172    m_settings->setValue("pageItem/annotationColor", annotationColor);
173}
174
175Qt::KeyboardModifiers Settings::PageItem::copyToClipboardModifiers() const
176{
177    return static_cast< Qt::KeyboardModifiers >(m_settings->value("pageItem/copyToClipboardModifiers", static_cast< int >(Defaults::PageItem::copyToClipboardModifiers())).toInt());
178}
179
180void Settings::PageItem::setCopyToClipboardModifiers(const Qt::KeyboardModifiers& modifiers)
181{
182    m_settings->setValue("pageItem/copyToClipboardModifiers", static_cast< int >(modifiers));
183}
184
185Qt::KeyboardModifiers Settings::PageItem::addAnnotationModifiers() const
186{
187    return static_cast< Qt::KeyboardModifiers >(m_settings->value("pageItem/addAnnotationModifiers", static_cast< int >(Defaults::PageItem::addAnnotationModifiers())).toInt());
188}
189
190void Settings::PageItem::setAddAnnotationModifiers(const Qt::KeyboardModifiers& modifiers)
191{
192    m_settings->setValue("pageItem/addAnnotationModifiers", static_cast< int >(modifiers));
193}
194
195Qt::KeyboardModifiers Settings::PageItem::zoomToSelectionModifiers() const
196{
197    return static_cast< Qt::KeyboardModifiers>(m_settings->value("pageItem/zoomToSelectionModifiers", static_cast< int >(Defaults::PageItem::zoomToSelectionModifiers())).toInt());
198}
199
200void Settings::PageItem::setZoomToSelectionModifiers(const Qt::KeyboardModifiers& modifiers)
201{
202    m_settings->setValue("pageItem/zoomToSelectionModifiers", static_cast< int >(modifiers));
203}
204
205bool Settings::PageItem::annotationOverlay() const
206{
207    return m_settings->value("pageItem/annotationOverlay", Defaults::PageItem::annotationOverlay()).toBool();
208}
209
210void Settings::PageItem::setAnnotationOverlay(bool overlay)
211{
212    m_settings->setValue("pageItem/annotationOverlay", overlay);
213}
214
215bool Settings::PageItem::formFieldOverlay() const
216{
217    return m_settings->value("pageItem/formFieldOverlay", Defaults::PageItem::formFieldOverlay()).toBool();
218}
219
220void Settings::PageItem::setFormFieldOverlay(bool overlay)
221{
222    m_settings->setValue("pageItem/formFieldOverlay", overlay);
223}
224
225Settings::PageItem::PageItem(QSettings* settings) :
226    m_settings(settings),
227    m_cacheSize(Defaults::PageItem::cacheSize()),
228    m_progressIcon(),
229    m_errorIcon(),
230    m_keepObsoletePixmaps(Defaults::PageItem::keepObsoletePixmaps()),
231    m_useDevicePixelRatio(false),
232    m_decoratePages(Defaults::PageItem::decoratePages()),
233    m_decorateLinks(Defaults::PageItem::decorateLinks()),
234    m_decorateFormFields(Defaults::PageItem::decorateFormFields()),
235    m_backgroundColor(Defaults::PageItem::backgroundColor()),
236    m_paperColor(Defaults::PageItem::paperColor()),
237    m_highlightColor(Defaults::PageItem::highlightColor())
238{
239}
240
241// presentation view
242
243bool Settings::PresentationView::synchronize() const
244{
245    return m_settings->value("presentationView/synchronize", Defaults::PresentationView::synchronize()).toBool();
246}
247
248void Settings::PresentationView::setSynchronize(bool synchronize)
249{
250    m_settings->setValue("presentationView/synchronize", synchronize);
251}
252
253int Settings::PresentationView::screen() const
254{
255    int screen = m_settings->value("presentationView/screen", Defaults::PresentationView::screen()).toInt();
256
257    if(screen < -1 || screen >= QApplication::desktop()->screenCount())
258    {
259        screen = -1;
260    }
261
262    return screen;
263}
264
265void Settings::PresentationView::setScreen(int screen)
266{
267    m_settings->setValue("presentationView/screen", screen);
268}
269
270QColor Settings::PresentationView::backgroundColor() const
271{
272    return m_settings->value("presentationView/backgroundColor", Defaults::PresentationView::backgroundColor()).value< QColor >();
273}
274
275void Settings::PresentationView::setBackgroundColor(const QColor& backgroundColor)
276{
277    m_settings->setValue("presentationView/backgroundColor", backgroundColor);
278}
279
280Settings::PresentationView::PresentationView(QSettings* settings) :
281    m_settings(settings)
282{
283}
284
285// document view
286
287void Settings::DocumentView::sync()
288{
289    m_prefetch = m_settings->value("documentView/prefetch", Defaults::DocumentView::prefetch()).toBool();
290    m_prefetchDistance = m_settings->value("documentView/prefetchDistance", Defaults::DocumentView::prefetchDistance()).toInt();
291
292    m_pagesPerRow = m_settings->value("documentView/pagesPerRow", Defaults::DocumentView::pagesPerRow()).toInt();
293
294    m_minimalScrolling = m_settings->value("documentView/minimalScrolling", Defaults::DocumentView::minimalScrolling()).toBool();
295
296    m_highlightCurrentThumbnail = m_settings->value("documentView/highlightCurrentThumbnail", Defaults::DocumentView::highlightCurrentThumbnail()).toBool();
297    m_limitThumbnailsToResults = m_settings->value("documentView/limitThumbnailsToResults", Defaults::DocumentView::limitThumbnailsToResults()).toBool();
298
299    m_pageSpacing = m_settings->value("documentView/pageSpacing", Defaults::DocumentView::pageSpacing()).toReal();
300    m_thumbnailSpacing = m_settings->value("documentView/thumbnailSpacing", Defaults::DocumentView::thumbnailSpacing()).toReal();
301
302    m_thumbnailSize = m_settings->value("documentView/thumbnailSize", Defaults::DocumentView::thumbnailSize()).toReal();
303}
304
305bool Settings::DocumentView::openUrl() const
306{
307    return m_settings->value("documentView/openUrl", Defaults::DocumentView::openUrl()).toBool();
308}
309
310void Settings::DocumentView::setOpenUrl(bool openUrl)
311{
312    m_settings->setValue("documentView/openUrl", openUrl);
313}
314
315bool Settings::DocumentView::autoRefresh() const
316{
317    return m_settings->value("documentView/autoRefresh", Defaults::DocumentView::autoRefresh()).toBool();
318}
319
320void Settings::DocumentView::setAutoRefresh(bool autoRefresh)
321{
322    m_settings->setValue("documentView/autoRefresh", autoRefresh);
323}
324
325int Settings::DocumentView::autoRefreshTimeout() const
326{
327    return m_settings->value("documentView/autoRefreshTimeout", Defaults::DocumentView::autoRefreshTimeout()).toInt();
328}
329
330void Settings::DocumentView::setPrefetch(bool prefetch)
331{
332    m_prefetch = prefetch;
333    m_settings->setValue("documentView/prefetch", prefetch);
334}
335
336void Settings::DocumentView::setPrefetchDistance(int prefetchDistance)
337{
338    if(prefetchDistance > 0)
339    {
340        m_prefetchDistance = prefetchDistance;
341        m_settings->setValue("documentView/prefetchDistance", prefetchDistance);
342    }
343}
344
345int Settings::DocumentView::prefetchTimeout() const
346{
347    return m_settings->value("documentView/prefetchTimeout", Defaults::DocumentView::prefetchTimeout()).toInt();
348}
349
350void Settings::DocumentView::setPagesPerRow(int pagesPerRow)
351{
352    if(pagesPerRow > 0)
353    {
354        m_pagesPerRow = pagesPerRow;
355        m_settings->setValue("documentView/pagesPerRow", pagesPerRow);
356    }
357}
358
359void Settings::DocumentView::setMinimalScrolling(bool minimalScrolling)
360{
361    m_minimalScrolling = minimalScrolling;
362    m_settings->setValue("documentView/minimalScrolling", minimalScrolling);
363}
364
365void Settings::DocumentView::setHighlightCurrentThumbnail(bool highlightCurrentThumbnail)
366{
367    m_highlightCurrentThumbnail = highlightCurrentThumbnail;
368    m_settings->setValue("documentView/highlightCurrentThumbnail", highlightCurrentThumbnail);
369}
370
371void Settings::DocumentView::setLimitThumbnailsToResults(bool limitThumbnailsToResults)
372{
373    m_limitThumbnailsToResults = limitThumbnailsToResults;
374    m_settings->setValue("documentView/limitThumbnailsToResults", limitThumbnailsToResults);
375}
376
377qreal Settings::DocumentView::minimumScaleFactor() const
378{
379    return m_settings->value("documentView/minimumScaleFactor", Defaults::DocumentView::minimumScaleFactor()).toReal();
380}
381
382qreal Settings::DocumentView::maximumScaleFactor() const
383{
384    return m_settings->value("documentView/maximumScaleFactor", Defaults::DocumentView::maximumScaleFactor()).toReal();
385}
386
387qreal Settings::DocumentView::zoomFactor() const
388{
389    return m_settings->value("documentView/zoomFactor", Defaults::DocumentView::zoomFactor()).toReal();
390}
391
392void Settings::DocumentView::setZoomFactor(qreal zoomFactor)
393{
394    m_settings->setValue("documentView/zoomFactor", zoomFactor);
395}
396
397void Settings::DocumentView::setPageSpacing(qreal pageSpacing)
398{
399    if(pageSpacing >= 0.0)
400    {
401        m_pageSpacing = pageSpacing;
402        m_settings->setValue("documentView/pageSpacing", pageSpacing);
403    }
404}
405
406void Settings::DocumentView::setThumbnailSpacing(qreal thumbnailSpacing)
407{
408    if(thumbnailSpacing >= 0.0)
409    {
410        m_thumbnailSpacing = thumbnailSpacing;
411        m_settings->setValue("documentView/thumbnailSpacing", thumbnailSpacing);
412    }
413}
414
415void Settings::DocumentView::setThumbnailSize(qreal thumbnailSize)
416{
417    if(thumbnailSize >= 0.0)
418    {
419        m_thumbnailSize = thumbnailSize;
420        m_settings->setValue("documentView/thumbnailSize", thumbnailSize);
421    }
422}
423
424bool Settings::DocumentView::matchCase() const
425{
426    return m_settings->value("documentView/matchCase", Defaults::DocumentView::matchCase()).toBool();
427}
428
429void Settings::DocumentView::setMatchCase(bool matchCase)
430{
431    m_settings->setValue("documentView/matchCase", matchCase);
432}
433
434bool Settings::DocumentView::wholeWords() const
435{
436    return m_settings->value("documentView/wholeWords", Defaults::DocumentView::wholeWords()).toBool();
437}
438
439void Settings::DocumentView::setWholeWords(bool wholeWords)
440{
441    m_settings->setValue("documentView/wholeWords", wholeWords);
442}
443
444int Settings::DocumentView::highlightDuration() const
445{
446    return m_settings->value("documentView/highlightDuration", Defaults::DocumentView::highlightDuration()).toInt();
447}
448
449void Settings::DocumentView::setHighlightDuration(int highlightDuration)
450{
451    if(highlightDuration >= 0)
452    {
453        m_settings->setValue("documentView/highlightDuration", highlightDuration);
454    }
455}
456
457QString Settings::DocumentView::sourceEditor() const
458{
459    return m_settings->value("documentView/sourceEditor", Defaults::DocumentView::sourceEditor()).toString();
460}
461
462void Settings::DocumentView::setSourceEditor(const QString& sourceEditor)
463{
464    m_settings->setValue("documentView/sourceEditor", sourceEditor);
465}
466
467Qt::KeyboardModifiers Settings::DocumentView::zoomModifiers() const
468{
469    return static_cast< Qt::KeyboardModifiers >(m_settings->value("documentView/zoomModifiers", static_cast< int >(Defaults::DocumentView::zoomModifiers())).toInt());
470}
471
472void Settings::DocumentView::setZoomModifiers(const Qt::KeyboardModifiers& zoomModifiers)
473{
474    m_settings->setValue("documentView/zoomModifiers", static_cast< int >(zoomModifiers));
475}
476
477Qt::KeyboardModifiers Settings::DocumentView::rotateModifiers() const
478{
479    return static_cast< Qt::KeyboardModifiers >(m_settings->value("documentView/rotateModifiers", static_cast< int >(Defaults::DocumentView::rotateModifiers())).toInt());
480}
481
482void Settings::DocumentView::setRotateModifiers(const Qt::KeyboardModifiers& rotateModifiers)
483{
484    m_settings->setValue("documentView/rotateModifiers", static_cast< int >(rotateModifiers));
485}
486
487Qt::KeyboardModifiers Settings::DocumentView::scrollModifiers() const
488{
489    return static_cast< Qt::KeyboardModifiers >(m_settings->value("documentView/scrollModifiers", static_cast< int >(Defaults::DocumentView::scrollModifiers())).toInt());
490}
491
492void Settings::DocumentView::setScrollModifiers(const Qt::KeyboardModifiers& scrollModifiers)
493{
494    m_settings->setValue("documentView/scrollModifiers", static_cast< int >(scrollModifiers));
495}
496
497// per-tab settings
498
499bool Settings::DocumentView::continuousMode() const
500{
501    return m_settings->value("documentView/continuousMode", Defaults::DocumentView::continuousMode()).toBool();
502}
503
504void Settings::DocumentView::setContinuousMode(bool continuousMode)
505{
506    m_settings->setValue("documentView/continuousMode", continuousMode);
507}
508
509LayoutMode Settings::DocumentView::layoutMode() const
510{
511    return static_cast< LayoutMode >(m_settings->value("documentView/layoutMode", static_cast< uint >(Defaults::DocumentView::layoutMode())).toUInt());
512}
513
514void Settings::DocumentView::setLayoutMode(LayoutMode layoutMode)
515{
516    m_settings->setValue("documentView/layoutMode", static_cast< uint >(layoutMode));
517}
518
519bool Settings::DocumentView::rightToLeftMode() const
520{
521    return m_settings->value("documentView/rightToLeftMode", Defaults::DocumentView::rightToLeftMode()).toBool();
522}
523
524void Settings::DocumentView::setRightToLeftMode(bool rightToLeftMode)
525{
526    m_settings->setValue("documentView/rightToLeftMode", rightToLeftMode);
527}
528
529ScaleMode Settings::DocumentView::scaleMode() const
530{
531    return static_cast< ScaleMode >(m_settings->value("documentView/scaleMode", static_cast< uint >(Defaults::DocumentView::scaleMode())).toUInt());
532}
533
534void Settings::DocumentView::setScaleMode(ScaleMode scaleMode)
535{
536    m_settings->setValue("documentView/scaleMode", static_cast< uint >(scaleMode));
537}
538
539qreal Settings::DocumentView::scaleFactor() const
540{
541    return m_settings->value("documentView/scaleFactor", Defaults::DocumentView::scaleFactor()).toReal();
542}
543
544void Settings::DocumentView::setScaleFactor(qreal scaleFactor)
545{
546    m_settings->setValue("documentView/scaleFactor", scaleFactor);
547}
548
549Rotation Settings::DocumentView::rotation() const
550{
551    return static_cast< Rotation >(m_settings->value("documentView/rotation", static_cast< uint >(Defaults::DocumentView::rotation())).toUInt());
552}
553
554void Settings::DocumentView::setRotation(Rotation rotation)
555{
556    m_settings->setValue("documentView/rotation", static_cast< uint >(rotation));
557}
558
559bool Settings::DocumentView::invertColors() const
560{
561    return m_settings->value("documentView/invertColors", Defaults::DocumentView::invertColors()).toBool();
562}
563
564void Settings::DocumentView::setInvertColors(bool invertColors)
565{
566    m_settings->setValue("documentView/invertColors", invertColors);
567}
568
569bool Settings::DocumentView::convertToGrayscale() const
570{
571    return m_settings->value("documentView/convertToGrayscale", Defaults::DocumentView::convertToGrayscale()).toBool();
572}
573
574void Settings::DocumentView::setConvertToGrayscale(bool convertToGrayscale)
575{
576    m_settings->setValue("documentView/convertToGrayscale", convertToGrayscale);
577}
578
579bool Settings::DocumentView::trimMargins() const
580{
581    return m_settings->value("documentView/trimMargins", Defaults::DocumentView::trimMargins()).toBool();
582}
583
584void Settings::DocumentView::setTrimMargins(bool trimMargins)
585{
586    m_settings->setValue("documentView/trimMargins", trimMargins);
587}
588
589CompositionMode Settings::DocumentView::compositionMode() const
590{
591    return static_cast< CompositionMode >(m_settings->value("documentView/compositionMode", static_cast< uint >(Defaults::DocumentView::compositionMode())).toInt());
592}
593
594void Settings::DocumentView::setCompositionMode(CompositionMode compositionMode)
595{
596    m_settings->setValue("documentView/compositionMode", static_cast< uint >(compositionMode));
597}
598
599bool Settings::DocumentView::highlightAll() const
600{
601    return m_settings->value("documentView/highlightAll", Defaults::DocumentView::highlightAll()).toBool();
602}
603
604void Settings::DocumentView::setHighlightAll(bool highlightAll)
605{
606    m_settings->setValue("documentView/highlightAll", highlightAll);
607}
608
609Settings::DocumentView::DocumentView(QSettings *settings) :
610    m_settings(settings),
611    m_prefetch(Defaults::DocumentView::prefetch()),
612    m_prefetchDistance(Defaults::DocumentView::prefetchDistance()),
613    m_pagesPerRow(Defaults::DocumentView::pagesPerRow()),
614    m_highlightCurrentThumbnail(Defaults::DocumentView::highlightCurrentThumbnail()),
615    m_limitThumbnailsToResults(Defaults::DocumentView::limitThumbnailsToResults()),
616    m_pageSpacing(Defaults::DocumentView::pageSpacing()),
617    m_thumbnailSpacing(Defaults::DocumentView::thumbnailSpacing()),
618    m_thumbnailSize(Defaults::DocumentView::thumbnailSize())
619{
620}
621
622// main window
623
624bool Settings::MainWindow::trackRecentlyUsed() const
625{
626    return m_settings->value("mainWindow/trackRecentlyUsed", Defaults::MainWindow::trackRecentlyUsed()).toBool();
627}
628
629void Settings::MainWindow::setTrackRecentlyUsed(bool trackRecentlyUsed)
630{
631    m_settings->setValue("mainWindow/trackRecentlyUsed", trackRecentlyUsed);
632}
633
634int Settings::MainWindow::recentlyUsedCount() const
635{
636    return m_settings->value("mainWindow/recentlyUsedCount", Defaults::MainWindow::recentlyUsedCount()).toInt();
637}
638
639void Settings::MainWindow::setRecentlyUsedCount(int recentlyUsedCount)
640{
641    m_settings->setValue("mainWindow/recentlyUsedCount", recentlyUsedCount);
642}
643
644QStringList Settings::MainWindow::recentlyUsed() const
645{
646    return m_settings->value("mainWindow/recentlyUsed").toStringList();
647}
648
649void Settings::MainWindow::setRecentlyUsed(const QStringList& recentlyUsed)
650{
651    m_settings->setValue("mainWindow/recentlyUsed", recentlyUsed);
652}
653
654bool Settings::MainWindow::keepRecentlyClosed() const
655{
656    return m_settings->value("mainWindow/keepRecentlyClosed", Defaults::MainWindow::keepRecentlyClosed()).toBool();
657}
658
659void Settings::MainWindow::setKeepRecentlyClosed(bool keepRecentlyClosed)
660{
661    m_settings->setValue("mainWindow/keepRecentlyClosed", keepRecentlyClosed);
662}
663
664int Settings::MainWindow::recentlyClosedCount() const
665{
666    return m_settings->value("mainWindow/recentlyClosedCount", Defaults::MainWindow::recentlyClosedCount()).toInt();
667}
668
669void Settings::MainWindow::setRecentlyClosedCount(int recentlyClosedCount)
670{
671    m_settings->setValue("mainWindow/recentlyClosedCount", recentlyClosedCount);
672}
673
674bool Settings::MainWindow::restoreTabs() const
675{
676    return m_settings->value("mainWindow/restoreTabs", Defaults::MainWindow::restoreTabs()).toBool();
677}
678
679void Settings::MainWindow::setRestoreTabs(bool restoreTabs)
680{
681    m_settings->setValue("mainWindow/restoreTabs", restoreTabs);
682}
683
684bool Settings::MainWindow::restoreBookmarks() const
685{
686    return m_settings->value("mainWindow/restoreBookmarks", Defaults::MainWindow::restoreBookmarks()).toBool();
687}
688
689void Settings::MainWindow::setRestoreBookmarks(bool restoreBookmarks)
690{
691    m_settings->setValue("mainWindow/restoreBookmarks", restoreBookmarks);
692}
693
694bool Settings::MainWindow::restorePerFileSettings() const
695{
696    return m_settings->value("mainWindow/restorePerFileSettings", Defaults::MainWindow::restorePerFileSettings()).toBool();
697}
698
699void Settings::MainWindow::setRestorePerFileSettings(bool restorePerFileSettings)
700{
701    m_settings->setValue("mainWindow/restorePerFileSettings", restorePerFileSettings);
702}
703
704int Settings::MainWindow::perFileSettingsLimit() const
705{
706    return m_settings->value("mainWindow/perFileSettingsLimit", Defaults::MainWindow::perFileSettingsLimit()).toInt();
707}
708
709int Settings::MainWindow::saveDatabaseInterval() const
710{
711    return m_settings->value("mainWindow/saveDatabaseInterval", Defaults::MainWindow::saveDatabaseInterval()).toInt();
712}
713
714void Settings::MainWindow::setSaveDatabaseInterval(int saveDatabaseInterval)
715{
716    m_settings->setValue("mainWindow/saveDatabaseInterval", saveDatabaseInterval);
717}
718
719int Settings::MainWindow::tabPosition() const
720{
721    return m_settings->value("mainWindow/tabPosition", Defaults::MainWindow::tabPosition()).toInt();
722}
723
724void Settings::MainWindow::setTabPosition(int tabPosition)
725{
726    if(tabPosition >= 0 && tabPosition < 4)
727    {
728        m_settings->setValue("mainWindow/tabPosition", tabPosition);
729    }
730}
731
732int Settings::MainWindow::tabVisibility() const
733{
734    return m_settings->value("mainWindow/tabVisibility", Defaults::MainWindow::tabVisibility()).toInt();
735}
736
737void Settings::MainWindow::setTabVisibility(int tabVisibility)
738{
739    if(tabVisibility >= 0 && tabVisibility < 3)
740    {
741        m_settings->setValue("mainWindow/tabVisibility", tabVisibility);
742    }
743}
744
745bool Settings::MainWindow::spreadTabs() const
746{
747    return m_settings->value("mainWindow/spreadTabs", Defaults::MainWindow::spreadTabs()).toBool();
748}
749
750void Settings::MainWindow::setSpreadTabs(bool spreadTabs)
751{
752    m_settings->setValue("mainWindow/spreadTabs", spreadTabs);
753}
754
755bool Settings::MainWindow::newTabNextToCurrentTab() const
756{
757    return m_settings->value("mainWindow/newTabNextToCurrentTab", Defaults::MainWindow::newTabNextToCurrentTab()).toBool();
758}
759
760void Settings::MainWindow::setNewTabNextToCurrentTab(bool newTabNextToCurrentTab)
761{
762    m_settings->setValue("mainWindow/newTabNextToCurrentTab", newTabNextToCurrentTab);
763}
764
765bool Settings::MainWindow::exitAfterLastTab() const
766{
767    return m_settings->value("mainWindow/exitAfterLastTab", Defaults::MainWindow::exitAfterLastTab()).toBool();
768}
769
770void Settings::MainWindow::setExitAfterLastTab(bool exitAfterLastTab)
771{
772    m_settings->setValue("mainWindow/exitAfterLastTab", exitAfterLastTab);
773}
774
775bool Settings::MainWindow::documentTitleAsTabTitle() const
776{
777    return m_settings->value("mainWindow/documentAsTabTitle", Defaults::MainWindow::documentTitleAsTabTitle()).toBool();
778}
779
780void Settings::MainWindow::setDocumentTitleAsTabTitle(bool documentTitleAsTabTitle)
781{
782    m_settings->setValue("mainWindow/documentAsTabTitle", documentTitleAsTabTitle);
783}
784
785bool Settings::MainWindow::currentPageInWindowTitle() const
786{
787    return m_settings->value("mainWindow/currentPageInWindowTitle", Defaults::MainWindow::currentPageInWindowTitle()).toBool();
788}
789
790void Settings::MainWindow::setCurrentPageInWindowTitle(bool currentPageInTabText)
791{
792    m_settings->setValue("mainWindow/currentPageInWindowTitle", currentPageInTabText);
793}
794
795bool Settings::MainWindow::instanceNameInWindowTitle() const
796{
797    return m_settings->value("mainWindow/instanceNameInWindowTitle", Defaults::MainWindow::instanceNameInWindowTitle()).toBool();
798}
799
800void Settings::MainWindow::setInstanceNameInWindowTitle(bool instanceNameInWindowTitle)
801{
802    m_settings->setValue("mainWindow/instanceNameInWindowTitle", instanceNameInWindowTitle);
803}
804
805bool Settings::MainWindow::extendedSearchDock() const
806{
807    return m_settings->value("mainWindow/extendedSearchDock", Defaults::MainWindow::extendedSearchDock()).toBool();
808}
809
810void Settings::MainWindow::setExtendedSearchDock(bool extendedSearchDock)
811{
812    return m_settings->setValue("mainWindow/extendedSearchDock", extendedSearchDock);
813}
814
815bool Settings::MainWindow::usePageLabel() const
816{
817    return m_settings->value("mainWindow/usePageLabel", Defaults::MainWindow::usePageLabel()).toBool();
818}
819
820void Settings::MainWindow::setUsePageLabel(bool usePageLabel)
821{
822    m_settings->setValue("mainWindow/usePageLabel", usePageLabel);
823}
824
825bool Settings::MainWindow::synchronizeOutlineView() const
826{
827    return m_settings->value("mainWindow/synchronizeOutlineView", Defaults::MainWindow::synchronizeOutlineView()).toBool();
828}
829
830void Settings::MainWindow::setSynchronizeOutlineView(bool synchronizeOutlineView)
831{
832    m_settings->setValue("mainWindow/synchronizeOutlineView", synchronizeOutlineView);
833}
834
835QStringList Settings::MainWindow::fileToolBar() const
836{
837    return m_settings->value("mainWindow/fileToolBar", Defaults::MainWindow::fileToolBar()).toStringList();
838}
839
840void Settings::MainWindow::setFileToolBar(const QStringList& fileToolBar)
841{
842    m_settings->setValue("mainWindow/fileToolBar", trimmed(fileToolBar));
843}
844
845QStringList Settings::MainWindow::editToolBar() const
846{
847    return m_settings->value("mainWindow/editToolBar", Defaults::MainWindow::editToolBar()).toStringList();
848}
849
850void Settings::MainWindow::setEditToolBar(const QStringList& editToolBar)
851{
852    m_settings->setValue("mainWindow/editToolBar", trimmed(editToolBar));
853}
854
855QStringList Settings::MainWindow::viewToolBar() const
856{
857    return m_settings->value("mainWindow/viewToolBar", Defaults::MainWindow::viewToolBar()).toStringList();
858}
859
860void Settings::MainWindow::setViewToolBar(const QStringList& viewToolBar)
861{
862    m_settings->setValue("mainWindow/viewToolBar", trimmed(viewToolBar));
863}
864
865QStringList Settings::MainWindow::documentContextMenu() const
866{
867    return m_settings->value("mainWindow/documentContextMenu", Defaults::MainWindow::documentContextMenu()).toStringList();
868}
869
870void Settings::MainWindow::setDocumentContextMenu(const QStringList& documentContextMenu)
871{
872    m_settings->setValue("mainWindow/documentContextMenu", trimmed(documentContextMenu));
873}
874
875QStringList Settings::MainWindow::tabContextMenu() const
876{
877    return m_settings->value("mainWindow/tabContextMenu", Defaults::MainWindow::tabContexntMenu()).toStringList();
878}
879
880void Settings::MainWindow::setTabContextMenu(const QStringList& tabContextMenu)
881{
882    m_settings->setValue("mainWindow/tabContextMenu", trimmed(tabContextMenu));
883}
884
885bool Settings::MainWindow::scrollableMenus() const
886{
887    return m_settings->value("mainWindow/scrollableMenus", Defaults::MainWindow::scrollableMenus()).toBool();
888}
889
890void Settings::MainWindow::setScrollableMenus(bool scrollableMenus)
891{
892    m_settings->setValue("mainWindow/scrollableMenus", scrollableMenus);
893}
894
895bool Settings::MainWindow::searchableMenus() const
896{
897    return m_settings->value("mainWindow/searchableMenus", Defaults::MainWindow::searchableMenus()).toBool();
898}
899
900void Settings::MainWindow::setSearchableMenus(bool searchableMenus)
901{
902    m_settings->setValue("mainWindow/searchableMenus", searchableMenus);
903}
904
905bool Settings::MainWindow::toggleToolAndMenuBarsWithFullscreen() const
906{
907    return m_settings->value("mainWindow/toggleToolAndMenuBarsWithFullscreen", Defaults::MainWindow::toggleToolAndMenuBarsWithFullscreen()).toBool();
908}
909
910void Settings::MainWindow::setToggleToolAndMenuBarsWithFullscreen(bool toggleToolAndMenuBarsWithFullscreen) const
911{
912    m_settings->setValue("mainWindow/toggleToolAndMenuBarsWithFullscreen", toggleToolAndMenuBarsWithFullscreen);
913}
914
915bool Settings::MainWindow::hasIconTheme() const
916{
917    return m_settings->contains("mainWindow/iconTheme");
918}
919
920QString Settings::MainWindow::iconTheme() const
921{
922    return m_settings->value("mainWindow/iconTheme").toString();
923}
924
925bool Settings::MainWindow::hasStyleSheet() const
926{
927    return m_settings->contains("mainWindow/styleSheet");
928}
929
930QString Settings::MainWindow::styleSheet() const
931{
932    return m_settings->value("mainWindow/styleSheet").toString();
933}
934
935QByteArray Settings::MainWindow::geometry() const
936{
937    return m_settings->value("mainWindow/geometry").toByteArray();
938}
939
940void Settings::MainWindow::setGeometry(const QByteArray& geometry)
941{
942    m_settings->setValue("mainWindow/geometry", geometry);
943}
944
945QByteArray Settings::MainWindow::state() const
946{
947    return m_settings->value("mainWindow/state").toByteArray();
948}
949
950void Settings::MainWindow::setState(const QByteArray& state)
951{
952    m_settings->setValue("mainWindow/state", state);
953}
954
955QString Settings::MainWindow::openPath() const
956{
957    return m_settings->value("mainWindow/openPath", Defaults::MainWindow::path()).toString();
958}
959
960void Settings::MainWindow::setOpenPath(const QString& openPath)
961{
962    m_settings->setValue("mainWindow/openPath", openPath);
963}
964
965QString Settings::MainWindow::savePath() const
966{
967    return m_settings->value("mainWindow/savePath", Defaults::MainWindow::path()).toString();
968}
969
970void Settings::MainWindow::setSavePath(const QString& savePath)
971{
972    m_settings->setValue("mainWindow/savePath", savePath);
973}
974
975QSize Settings::MainWindow::settingsDialogSize(const QSize& sizeHint) const
976{
977    return m_settings->value("mainWindow/settingsDialogSize", sizeHint).toSize();
978}
979
980void Settings::MainWindow::setSettingsDialogSize(const QSize& settingsDialogSize)
981{
982    m_settings->setValue("mainWindow/settingsDialogSize", settingsDialogSize);
983}
984
985QSize Settings::MainWindow::fontsDialogSize(const QSize& sizeHint) const
986{
987    return m_settings->value("mainWindow/fontsDialogSize", sizeHint).toSize();
988}
989
990void Settings::MainWindow::setFontsDialogSize(const QSize& fontsDialogSize)
991{
992    m_settings->setValue("mainWindow/fontsDialogSize", fontsDialogSize);
993}
994
995QSize Settings::MainWindow::contentsDialogSize(const QSize& sizeHint) const
996{
997    return m_settings->value("mainWindow/contentsDialogSize", sizeHint).toSize();
998}
999
1000void Settings::MainWindow::setContentsDialogSize(const QSize& contentsDialogSize)
1001{
1002    m_settings->setValue("mainWindow/contentsDialogSize", contentsDialogSize);
1003}
1004
1005Settings::MainWindow::MainWindow(QSettings* settings) :
1006    m_settings(settings)
1007{
1008}
1009
1010// print dialog
1011
1012Settings::PrintDialog::PrintDialog(QSettings* settings) :
1013    m_settings(settings)
1014{
1015}
1016
1017bool Settings::PrintDialog::collateCopies() const
1018{
1019    return m_settings->value("printDialog/collateCopies", Defaults::PrintDialog::collateCopies()).toBool();
1020}
1021
1022void Settings::PrintDialog::setCollateCopies(bool collateCopies)
1023{
1024    m_settings->setValue("printDialog/collateCopies", collateCopies);
1025}
1026
1027QPrinter::PageOrder Settings::PrintDialog::pageOrder() const
1028{
1029    return static_cast< QPrinter::PageOrder >(m_settings->value("printDialog/pageOrder", static_cast< int >(Defaults::PrintDialog::pageOrder())).toInt());
1030}
1031
1032void Settings::PrintDialog::setPageOrder(QPrinter::PageOrder pageOrder)
1033{
1034    m_settings->setValue("printDialog/pageOrder", static_cast< int >(pageOrder));
1035}
1036
1037QPrinter::Orientation Settings::PrintDialog::orientation() const
1038{
1039    return static_cast< QPrinter::Orientation >(m_settings->value("printDialog/orientation", static_cast< int >(Defaults::PrintDialog::orientation())).toInt());
1040}
1041
1042void Settings::PrintDialog::setOrientation(QPrinter::Orientation orientation)
1043{
1044    m_settings->setValue("printDialog/orientation", static_cast< int >(orientation));
1045}
1046
1047QPrinter::ColorMode Settings::PrintDialog::colorMode() const
1048{
1049    return static_cast< QPrinter::ColorMode >(m_settings->value("printDialog/colorMode", static_cast< int >(Defaults::PrintDialog::colorMode())).toInt());
1050}
1051
1052void Settings::PrintDialog::setColorMode(QPrinter::ColorMode colorMode)
1053{
1054    m_settings->setValue("printDialog/colorMode", static_cast< int >(colorMode));
1055}
1056
1057QPrinter::DuplexMode Settings::PrintDialog::duplex() const
1058{
1059    return static_cast< QPrinter::DuplexMode >(m_settings->value("printDialog/duplex", static_cast< int >(Defaults::PrintDialog::duplex())).toInt());
1060}
1061
1062void Settings::PrintDialog::setDuplex(QPrinter::DuplexMode duplex)
1063{
1064    m_settings->setValue("printDialog/duplex", static_cast< int >(duplex));
1065}
1066
1067bool Settings::PrintDialog::fitToPage() const
1068{
1069    return m_settings->value("printDialog/fitToPage", Defaults::PrintDialog::fitToPage()).toBool();
1070}
1071
1072void Settings::PrintDialog::setFitToPage(bool fitToPage)
1073{
1074    m_settings->setValue("printDialog/fitToPage", fitToPage);
1075}
1076
1077#if QT_VERSION < QT_VERSION_CHECK(5,2,0)
1078
1079PrintOptions::PageSet Settings::PrintDialog::pageSet() const
1080{
1081    return static_cast< PrintOptions::PageSet >(m_settings->value("printDialog/pageSet", static_cast< uint >(Defaults::PrintDialog::pageSet())).toUInt());
1082}
1083
1084void Settings::PrintDialog::setPageSet(PrintOptions::PageSet pageSet)
1085{
1086    m_settings->setValue("printDialog/pageSet", static_cast< uint >(pageSet));
1087}
1088
1089PrintOptions::NumberUp Settings::PrintDialog::numberUp() const
1090{
1091    return static_cast< PrintOptions::NumberUp >(m_settings->value("printDialog/numberUp", static_cast< uint >(Defaults::PrintDialog::numberUp())).toUInt());
1092}
1093
1094void Settings::PrintDialog::setNumberUp(PrintOptions::NumberUp numberUp)
1095{
1096    m_settings->setValue("printDialog/numberUp", static_cast< uint >(numberUp));
1097}
1098
1099PrintOptions::NumberUpLayout Settings::PrintDialog::numberUpLayout() const
1100{
1101    return static_cast< PrintOptions::NumberUpLayout >(m_settings->value("printDialog/numberUpLayout", static_cast< uint >(Defaults::PrintDialog::numberUpLayout())).toUInt());
1102}
1103
1104void Settings::PrintDialog::setNumberUpLayout(PrintOptions::NumberUpLayout numberUpLayout)
1105{
1106    m_settings->setValue("printDialog/numberUpLayout", static_cast< uint >(numberUpLayout));
1107}
1108
1109#endif // QT_VERSION
1110
1111void Settings::sync()
1112{
1113    m_settings->sync();
1114
1115    m_pageItem.sync();
1116    m_documentView.sync();
1117}
1118
1119Settings::Settings(QObject* parent) : QObject(parent),
1120//    m_settings(new QSettings("qpdfview", "qpdfview", this)),
1121    m_settings(new QSettings("murrupuy", "murrupuy", this)),
1122    m_pageItem(m_settings),
1123    m_presentationView(m_settings),
1124    m_documentView(m_settings),
1125    m_mainWindow(m_settings),
1126    m_printDialog(m_settings)
1127{
1128}
1129
1130// defaults
1131
1132bool Defaults::DocumentView::rightToLeftMode()
1133{
1134#if QT_VERSION >= QT_VERSION_CHECK(4,7,0)
1135
1136    return QLocale::system().textDirection() == Qt::RightToLeft;
1137
1138#else
1139
1140    return false;
1141
1142#endif // QT_VERSION
1143}
1144
1145QString Defaults::MainWindow::path()
1146{
1147#if QT_VERSION >= QT_VERSION_CHECK(5,0,0)
1148
1149    return QStandardPaths::writableLocation(QStandardPaths::DocumentsLocation);
1150
1151#else
1152
1153    return QDesktopServices::storageLocation(QDesktopServices::DocumentsLocation);
1154
1155#endif // QT_VERSION
1156}
1157
1158} // qpdfview
Note: See TracBrowser for help on using the repository browser.