PCManFM-Qt
settings.h
1 /*
2 
3  Copyright (C) 2013 Hong Jen Yee (PCMan) <pcman.tw@gmail.com>
4 
5  This program is free software; you can redistribute it and/or modify
6  it under the terms of the GNU General Public License as published by
7  the Free Software Foundation; either version 2 of the License, or
8  (at your option) any later version.
9 
10  This program is distributed in the hope that it will be useful,
11  but WITHOUT ANY WARRANTY; without even the implied warranty of
12  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  GNU General Public License for more details.
14 
15  You should have received a copy of the GNU General Public License along
16  with this program; if not, write to the Free Software Foundation, Inc.,
17  51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18 */
19 
20 
21 #ifndef PCMANFM_SETTINGS_H
22 #define PCMANFM_SETTINGS_H
23 
24 #include <QObject>
25 #include <libfm-qt/folderview.h>
26 #include <libfm-qt/foldermodel.h>
27 #include "desktopwindow.h"
28 #include <libfm-qt/sidepane.h>
29 #include <libfm-qt/core/thumbnailjob.h>
30 #include <libfm-qt/core/archiver.h>
31 #include <libfm-qt/core/legacy/fm-config.h>
32 
33 namespace PCManFM {
34 
35 enum OpenDirTargetType {
36  OpenInCurrentTab,
37  OpenInNewTab,
38  OpenInNewWindow,
39  OpenInLastActiveWindow
40 };
41 
43 public:
45  isCustomized_(false),
46  // NOTE: The default values of the following variables should be
47  // the same as those of their corresponding variables in Settings:
48  sortOrder_(Qt::AscendingOrder),
49  sortColumn_(Fm::FolderModel::ColumnFileName),
50  viewMode_(Fm::FolderView::IconMode),
51  showHidden_(false),
52  sortFolderFirst_(true),
53  sortHiddenLast_(false),
54  sortCaseSensitive_(true),
55  recursive_(false) {
56  }
57 
58  bool isCustomized() const {
59  return isCustomized_;
60  }
61 
62  void setCustomized(bool value) {
63  isCustomized_ = value;
64  }
65 
66  Qt::SortOrder sortOrder() const {
67  return sortOrder_;
68  }
69 
70  void setSortOrder(Qt::SortOrder value) {
71  sortOrder_ = value;
72  }
73 
74  Fm::FolderModel::ColumnId sortColumn() const {
75  return sortColumn_;
76  }
77 
78  void setSortColumn(Fm::FolderModel::ColumnId value) {
79  sortColumn_ = value;
80  }
81 
82  Fm::FolderView::ViewMode viewMode() const {
83  return viewMode_;
84  }
85 
86  void setViewMode(Fm::FolderView::ViewMode value) {
87  viewMode_ = value;
88  }
89 
90  bool sortFolderFirst() const {
91  return sortFolderFirst_;
92  }
93 
94  void setSortFolderFirst(bool value) {
95  sortFolderFirst_ = value;
96  }
97 
98  bool sortHiddenLast() const {
99  return sortHiddenLast_;
100  }
101 
102  void setSortHiddenLast(bool value) {
103  sortHiddenLast_ = value;
104  }
105 
106  bool showHidden() const {
107  return showHidden_;
108  }
109 
110  void setShowHidden(bool value) {
111  showHidden_ = value;
112  }
113 
114  bool sortCaseSensitive() const {
115  return sortCaseSensitive_;
116  }
117 
118  void setSortCaseSensitive(bool value) {
119  sortCaseSensitive_ = value;
120  }
121 
122  bool recursive() const {
123  return recursive_;
124  }
125 
126  void setRecursive(bool value) {
127  recursive_ = value;
128  }
129 
130  Fm::FilePath inheritedPath() const {
131  return inheritedPath_;
132  }
133 
134  void seInheritedPath(const Fm::FilePath& path) {
135  inheritedPath_ = std::move(path);
136  }
137 
138 
139 private:
140  bool isCustomized_;
141  Qt::SortOrder sortOrder_;
142  Fm::FolderModel::ColumnId sortColumn_;
143  Fm::FolderView::ViewMode viewMode_;
144  bool showHidden_;
145  bool sortFolderFirst_;
146  bool sortHiddenLast_;
147  bool sortCaseSensitive_;
148  bool recursive_;
149  Fm::FilePath inheritedPath_;
150  // columns?
151 };
152 
153 
154 class Settings : public QObject {
155  Q_OBJECT
156 public:
157  enum IconType {
158  Small,
159  Big,
160  Thumbnail
161  };
162 
163  Settings();
164  virtual ~Settings();
165 
166  bool load(QString profile = QStringLiteral("default"));
167  bool save(QString profile = QString());
168 
169  bool loadFile(QString filePath);
170  bool saveFile(QString filePath);
171 
172  static QString xdgUserConfigDir();
173  static const QList<int> & iconSizes(IconType type);
174 
175  QString profileDir(QString profile, bool useFallback = false);
176 
177  // setter/getter functions
178  QString profileName() const {
179  return profileName_;
180  }
181 
182  bool supportTrash() const {
183  return supportTrash_;
184  }
185 
186  QString fallbackIconThemeName() const {
187  return fallbackIconThemeName_;
188  }
189 
190  bool useFallbackIconTheme() const {
191  return useFallbackIconTheme_;
192  }
193 
194  void setFallbackIconThemeName(QString iconThemeName) {
195  fallbackIconThemeName_ = iconThemeName;
196  }
197 
198  bool singleWindowMode() const {
199  return singleWindowMode_;
200  }
201 
202  void setSingleWindowMode(bool singleWindowMode) {
203  singleWindowMode_ = singleWindowMode;
204  }
205 
206  OpenDirTargetType bookmarkOpenMethod() {
207  return bookmarkOpenMethod_;
208  }
209 
210  void setBookmarkOpenMethod(OpenDirTargetType bookmarkOpenMethod) {
211  bookmarkOpenMethod_ = bookmarkOpenMethod;
212  }
213 
214  QString suCommand() const {
215  return suCommand_;
216  }
217 
218  void setSuCommand(QString suCommand) {
219  suCommand_ = suCommand;
220  }
221 
222  QString terminal() {
223  return terminal_;
224  }
225  void setTerminal(QString terminalCommand);
226 
227  QString archiver() const {
228  return archiver_;
229  }
230 
231  void setArchiver(QString archiver) {
232  archiver_ = archiver;
233  Fm::Archiver::setDefaultArchiverByName(archiver_.toLocal8Bit().constData());
234  }
235 
236  bool mountOnStartup() const {
237  return mountOnStartup_;
238  }
239 
240  void setMountOnStartup(bool mountOnStartup) {
241  mountOnStartup_ = mountOnStartup;
242  }
243 
244  bool mountRemovable() {
245  return mountRemovable_;
246  }
247 
248  void setMountRemovable(bool mountRemovable) {
249  mountRemovable_ = mountRemovable;
250  }
251 
252  bool autoRun() const {
253  return autoRun_;
254  }
255 
256  void setAutoRun(bool autoRun) {
257  autoRun_ = autoRun;
258  }
259 
260  bool closeOnUnmount() const {
261  return closeOnUnmount_;
262  }
263 
264  void setCloseOnUnmount(bool value) {
265  closeOnUnmount_ = value;
266  }
267 
268  DesktopWindow::WallpaperMode wallpaperMode() const {
269  return DesktopWindow::WallpaperMode(wallpaperMode_);
270  }
271 
272  void setWallpaperMode(int wallpaperMode) {
273  wallpaperMode_ = wallpaperMode;
274  }
275 
276  QString wallpaper() const {
277  return wallpaper_;
278  }
279 
280  void setWallpaper(QString wallpaper) {
281  wallpaper_ = wallpaper;
282  }
283 
284  QSize wallpaperDialogSize() const {
285  return wallpaperDialogSize_;
286  }
287 
288  void setWallpaperDialogSize(const QSize& size) {
289  wallpaperDialogSize_ = size;
290  }
291 
292  int wallpaperDialogSplitterPos() const {
293  return wallpaperDialogSplitterPos_;
294  }
295 
296  void setWallpaperDialogSplitterPos(int pos) {
297  wallpaperDialogSplitterPos_ = pos;
298  }
299 
300  QString wallpaperDir() const {
301  return wallpaperDir_;
302  }
303 
304  void setLastSlide(QString wallpaper) {
305  lastSlide_ = wallpaper;
306  }
307 
308  QString lastSlide() const {
309  return lastSlide_;
310  }
311 
312  void setWallpaperDir(QString dir) {
313  wallpaperDir_ = dir;
314  }
315 
316  int slideShowInterval() const {
317  return slideShowInterval_;
318  }
319 
320  void setSlideShowInterval(int interval) {
321  slideShowInterval_ = interval;
322  }
323 
324  bool wallpaperRandomize() const {
325  return wallpaperRandomize_;
326  }
327 
328  void setWallpaperRandomize(bool randomize) {
329  wallpaperRandomize_ = randomize;
330  }
331 
332  bool transformWallpaper() const {
333  return transformWallpaper_;
334  }
335 
336  void setTransformWallpaper(bool tr) {
337  transformWallpaper_ = tr;
338  }
339 
340  bool perScreenWallpaper() const {
341  return perScreenWallpaper_;
342  }
343 
344  void setPerScreenWallpaper(bool tr) {
345  perScreenWallpaper_ = tr;
346  }
347 
348  const QColor& desktopBgColor() const {
349  return desktopBgColor_;
350  }
351 
352  void setDesktopBgColor(QColor desktopBgColor) {
353  desktopBgColor_ = desktopBgColor;
354  }
355 
356  const QColor& desktopFgColor() const {
357  return desktopFgColor_;
358  }
359 
360  void setDesktopFgColor(QColor desktopFgColor) {
361  desktopFgColor_ = desktopFgColor;
362  }
363 
364  const QColor& desktopShadowColor() const {
365  return desktopShadowColor_;
366  }
367 
368  void setDesktopShadowColor(QColor desktopShadowColor) {
369  desktopShadowColor_ = desktopShadowColor;
370  }
371 
372  QFont desktopFont() const {
373  return desktopFont_;
374  }
375 
376  void setDesktopFont(QFont font) {
377  desktopFont_ = font;
378  }
379 
380  int desktopIconSize() const {
381  return desktopIconSize_;
382  }
383 
384  void setDesktopIconSize(int desktopIconSize) {
385  desktopIconSize_ = desktopIconSize;
386  }
387 
388  QStringList desktopShortcuts() const {
389  return desktopShortcuts_;
390  }
391 
392  void setDesktopShortcuts(const QStringList& list) {
393  desktopShortcuts_ = list;
394  }
395 
396  bool desktopShowHidden() const {
397  return desktopShowHidden_;
398  }
399 
400  void setDesktopShowHidden(bool desktopShowHidden) {
401  desktopShowHidden_ = desktopShowHidden;
402  }
403 
404  bool desktopHideItems() const {
405  return desktopHideItems_;
406  }
407 
408  void setDesktopHideItems(bool hide) {
409  desktopHideItems_ = hide;
410  }
411 
412  Qt::SortOrder desktopSortOrder() const {
413  return desktopSortOrder_;
414  }
415 
416  void setDesktopSortOrder(Qt::SortOrder desktopSortOrder) {
417  desktopSortOrder_ = desktopSortOrder;
418  }
419 
420  Fm::FolderModel::ColumnId desktopSortColumn() const {
421  return desktopSortColumn_;
422  }
423 
424  void setDesktopSortColumn(Fm::FolderModel::ColumnId desktopSortColumn) {
425  desktopSortColumn_ = desktopSortColumn;
426  }
427 
428  bool desktopSortFolderFirst() const {
429  return desktopSortFolderFirst_;
430  }
431 
432  void setDesktopSortFolderFirst(bool desktopFolderFirst) {
433  desktopSortFolderFirst_ = desktopFolderFirst;
434  }
435 
436  bool desktopSortHiddenLast() const {
437  return desktopSortHiddenLast_;
438  }
439 
440  void setDesktopSortHiddenLast(bool desktopHiddenLast) {
441  desktopSortHiddenLast_ = desktopHiddenLast;
442  }
443 
444  bool alwaysShowTabs() const {
445  return alwaysShowTabs_;
446  }
447 
448  void setAlwaysShowTabs(bool alwaysShowTabs) {
449  alwaysShowTabs_ = alwaysShowTabs;
450  }
451 
452  bool showTabClose() const {
453  return showTabClose_;
454  }
455 
456  void setShowTabClose(bool showTabClose) {
457  showTabClose_ = showTabClose;
458  }
459 
460  bool switchToNewTab() const {
461  return switchToNewTab_;
462  }
463 
464  void setSwitchToNewTab(bool showTabClose) {
465  switchToNewTab_ = showTabClose;
466  }
467 
468  bool reopenLastTabs() const {
469  return reopenLastTabs_;
470  }
471 
472  void setReopenLastTabs(bool reopenLastTabs) {
473  reopenLastTabs_ = reopenLastTabs;
474  }
475 
476  QStringList tabPaths() const {
477  return tabPaths_;
478  }
479 
480  void setTabPaths(const QStringList& tabPaths) {
481  tabPaths_ = tabPaths;
482  }
483 
484  bool rememberWindowSize() const {
485  return rememberWindowSize_;
486  }
487 
488  void setRememberWindowSize(bool rememberWindowSize) {
489  rememberWindowSize_ = rememberWindowSize;
490  }
491 
492  int windowWidth() const {
493  if(rememberWindowSize_) {
494  return lastWindowWidth_;
495  }
496  else {
497  return fixedWindowWidth_;
498  }
499  }
500 
501  int windowHeight() const {
502  if(rememberWindowSize_) {
503  return lastWindowHeight_;
504  }
505  else {
506  return fixedWindowHeight_;
507  }
508  }
509 
510  bool windowMaximized() const {
511  if(rememberWindowSize_) {
512  return lastWindowMaximized_;
513  }
514  else {
515  return false;
516  }
517  }
518 
519  int fixedWindowWidth() const {
520  return fixedWindowWidth_;
521  }
522 
523  void setFixedWindowWidth(int fixedWindowWidth) {
524  fixedWindowWidth_ = fixedWindowWidth;
525  }
526 
527  int fixedWindowHeight() const {
528  return fixedWindowHeight_;
529  }
530 
531  void setFixedWindowHeight(int fixedWindowHeight) {
532  fixedWindowHeight_ = fixedWindowHeight;
533  }
534 
535  void setLastWindowWidth(int lastWindowWidth) {
536  lastWindowWidth_ = lastWindowWidth;
537  }
538 
539  void setLastWindowHeight(int lastWindowHeight) {
540  lastWindowHeight_ = lastWindowHeight;
541  }
542 
543  void setLastWindowMaximized(bool lastWindowMaximized) {
544  lastWindowMaximized_ = lastWindowMaximized;
545  }
546 
547  int splitterPos() const {
548  return splitterPos_;
549  }
550 
551  void setSplitterPos(int splitterPos) {
552  splitterPos_ = splitterPos;
553  }
554 
555  bool isSidePaneVisible() const {
556  return sidePaneVisible_;
557  }
558 
559  void showSidePane(bool show) {
560  sidePaneVisible_ = show;
561  }
562 
563  Fm::SidePane::Mode sidePaneMode() const {
564  return sidePaneMode_;
565  }
566 
567  void setSidePaneMode(Fm::SidePane::Mode sidePaneMode) {
568  sidePaneMode_ = sidePaneMode;
569  }
570 
571  bool showMenuBar() const {
572  return showMenuBar_;
573  }
574 
575  void setShowMenuBar(bool showMenuBar) {
576  showMenuBar_ = showMenuBar;
577  }
578 
579  bool splitView() const {
580  return splitView_;
581  }
582 
583  void setSplitView(bool split) {
584  splitView_ = split;
585  }
586 
587  Fm::FolderView::ViewMode viewMode() const {
588  return viewMode_;
589  }
590 
591  void setViewMode(Fm::FolderView::ViewMode viewMode) {
592  viewMode_ = viewMode;
593  }
594 
595  bool showHidden() const {
596  return showHidden_;
597  }
598 
599  void setShowHidden(bool showHidden) {
600  showHidden_ = showHidden;
601  }
602 
603  bool sortCaseSensitive() const {
604  return sortCaseSensitive_;
605  }
606 
607  void setSortCaseSensitive(bool value) {
608  sortCaseSensitive_ = value;
609  }
610 
611  QSet<QString> getHiddenPlaces() const {
612  return hiddenPlaces_;
613  }
614 
615  void setHiddenPlace(const QString& str, bool hide) {
616  if(hide) {
617  hiddenPlaces_ << str;
618  }
619  else {
620  hiddenPlaces_.remove(str);
621  }
622  }
623 
624  Qt::SortOrder sortOrder() const {
625  return sortOrder_;
626  }
627 
628  void setSortOrder(Qt::SortOrder sortOrder) {
629  sortOrder_ = sortOrder;
630  }
631 
632  Fm::FolderModel::ColumnId sortColumn() const {
633  return sortColumn_;
634  }
635 
636  void setSortColumn(Fm::FolderModel::ColumnId sortColumn) {
637  sortColumn_ = sortColumn;
638  }
639 
640  bool sortFolderFirst() const {
641  return sortFolderFirst_;
642  }
643 
644  void setSortFolderFirst(bool folderFirst) {
645  sortFolderFirst_ = folderFirst;
646  }
647 
648  bool sortHiddenLast() const {
649  return sortHiddenLast_;
650  }
651 
652  void setSortHiddenLast(bool hiddenLast) {
653  sortHiddenLast_ = hiddenLast;
654  }
655 
656  bool showFilter() const {
657  return showFilter_;
658  }
659 
660  void setShowFilter(bool value) {
661  showFilter_ = value;
662  }
663 
664  bool pathBarButtons() const {
665  return pathBarButtons_;
666  }
667 
668  void setPathBarButtons(bool value) {
669  pathBarButtons_ = value;
670  }
671 
672  // settings for use with libfm
673  bool singleClick() const {
674  return singleClick_;
675  }
676 
677  void setSingleClick(bool singleClick) {
678  singleClick_ = singleClick;
679  }
680 
681  int autoSelectionDelay() const {
682  return autoSelectionDelay_;
683  }
684 
685  void setAutoSelectionDelay(int value) {
686  autoSelectionDelay_ = value;
687  }
688 
689  bool ctrlRightClick() const {
690  return ctrlRightClick_;
691  }
692 
693  void setCtrlRightClick(bool value) {
694  ctrlRightClick_ = value;
695  }
696 
697  bool useTrash() const {
698  if(!supportTrash_) {
699  return false;
700  }
701  return useTrash_;
702  }
703 
704  void setUseTrash(bool useTrash) {
705  useTrash_ = useTrash;
706  }
707 
708  bool confirmDelete() const {
709  return confirmDelete_;
710  }
711 
712  void setConfirmDelete(bool confirmDelete) {
713  confirmDelete_ = confirmDelete;
714  }
715 
716  bool noUsbTrash() const {
717  return noUsbTrash_;
718  }
719 
720  void setNoUsbTrash(bool noUsbTrash) {
721  noUsbTrash_ = noUsbTrash;
722  fm_config->no_usb_trash = noUsbTrash_; // also set this to libfm since FmFileOpsJob reads this config value before trashing files.
723  }
724 
725  bool confirmTrash() const {
726  return confirmTrash_;
727  }
728 
729  void setConfirmTrash(bool value) {
730  confirmTrash_ = value;
731  }
732 
733  bool quickExec() const {
734  return quickExec_;
735  }
736 
737  void setQuickExec(bool value) {
738  quickExec_ = value;
739  fm_config->quick_exec = quickExec_;
740  }
741 
742  bool selectNewFiles() const {
743  return selectNewFiles_;
744  }
745 
746  void setSelectNewFiles(bool value) {
747  selectNewFiles_ = value;
748  }
749 
750  int bigIconSize() const {
751  return bigIconSize_;
752  }
753 
754  void setBigIconSize(int bigIconSize) {
755  bigIconSize_ = bigIconSize;
756  }
757 
758  int smallIconSize() const {
759  return smallIconSize_;
760  }
761 
762  void setSmallIconSize(int smallIconSize) {
763  smallIconSize_ = smallIconSize;
764  }
765 
766  int sidePaneIconSize() const {
767  return sidePaneIconSize_;
768  }
769 
770  void setSidePaneIconSize(int sidePaneIconSize) {
771  sidePaneIconSize_ = sidePaneIconSize;
772  }
773 
774  int thumbnailIconSize() const {
775  return thumbnailIconSize_;
776  }
777 
778  QSize folderViewCellMargins() const {
779  return folderViewCellMargins_;
780  }
781 
782  void setFolderViewCellMargins(QSize size) {
783  folderViewCellMargins_ = size;
784  }
785 
786  QSize desktopCellMargins() const {
787  return desktopCellMargins_;
788  }
789 
790  void setDesktopCellMargins(QSize size) {
791  desktopCellMargins_ = size;
792  }
793 
794  bool openWithDefaultFileManager() const {
795  return openWithDefaultFileManager_;
796  }
797 
798  void setOpenWithDefaultFileManager(bool open) {
799  openWithDefaultFileManager_ = open;
800  }
801 
802  bool allSticky() const {
803  return allSticky_;
804  }
805 
806  void setAllSticky(bool sticky) {
807  allSticky_ = sticky;
808  }
809 
810  bool showThumbnails() {
811  return showThumbnails_;
812  }
813 
814  void setShowThumbnails(bool show) {
815  showThumbnails_ = show;
816  }
817 
818  void setThumbnailLocalFilesOnly(bool value) {
819  Fm::ThumbnailJob::setLocalFilesOnly(value);
820  }
821 
822  bool thumbnailLocalFilesOnly() const {
823  return Fm::ThumbnailJob::localFilesOnly();
824  }
825 
826  int maxThumbnailFileSize() const {
827  return Fm::ThumbnailJob::maxThumbnailFileSize();
828  }
829 
830  void setMaxThumbnailFileSize(int size) {
831  Fm::ThumbnailJob::setMaxThumbnailFileSize(size);
832  }
833 
834  int maxExternalThumbnailFileSize() const {
835  return Fm::ThumbnailJob::maxExternalThumbnailFileSize();
836  }
837 
838  void setMaxExternalThumbnailFileSize(int size) {
839  Fm::ThumbnailJob::setMaxExternalThumbnailFileSize(size);
840  }
841 
842  void setThumbnailIconSize(int thumbnailIconSize) {
843  thumbnailIconSize_ = thumbnailIconSize;
844  }
845 
846  bool siUnit() {
847  return siUnit_;
848  }
849 
850  void setSiUnit(bool siUnit) {
851  siUnit_ = siUnit;
852  // override libfm FmConfig settings. FIXME: should we do this?
853  fm_config->si_unit = (gboolean)siUnit_;
854  }
855 
856  bool backupAsHidden() const {
857  return backupAsHidden_;
858  }
859 
860  void setBackupAsHidden(bool value) {
861  backupAsHidden_ = value;
862  fm_config->backup_as_hidden = backupAsHidden_; // also set this to libfm since fm_file_info_is_hidden() reads this value internally.
863  }
864 
865  bool showFullNames() const {
866  return showFullNames_;
867  }
868 
869  void setShowFullNames(bool value) {
870  showFullNames_ = value;
871  }
872 
873  bool shadowHidden() const {
874  return shadowHidden_;
875  }
876 
877  void setShadowHidden(bool value) {
878  shadowHidden_ = value;
879  }
880 
881  bool noItemTooltip() const {
882  return noItemTooltip_;
883  }
884 
885  void setNoItemTooltip(bool noTooltip) {
886  noItemTooltip_ = noTooltip;
887  }
888 
889  bool scrollPerPixel() const {
890  return scrollPerPixel_;
891  }
892 
893  void setScrollPerPixel(bool perPixel) {
894  scrollPerPixel_ = perPixel;
895  }
896 
897  bool onlyUserTemplates() const {
898  return onlyUserTemplates_;
899  }
900 
901  void setOnlyUserTemplates(bool value) {
902  onlyUserTemplates_ = value;
903  fm_config->only_user_templates = onlyUserTemplates_;
904  }
905 
906  bool templateTypeOnce() const {
907  return templateTypeOnce_;
908  }
909 
910  void setTemplateTypeOnce(bool value) {
911  templateTypeOnce_ = value;
912  fm_config->template_type_once = templateTypeOnce_;
913  }
914 
915  bool templateRunApp() const {
916  return templateRunApp_;
917  }
918 
919  void setTemplateRunApp(bool value) {
920  templateRunApp_ = value;
921  fm_config->template_run_app = templateRunApp_;
922  }
923 
924  // per-folder settings
925  FolderSettings loadFolderSettings(const Fm::FilePath& path) const;
926 
927  void saveFolderSettings(const Fm::FilePath& path, const FolderSettings& settings);
928 
929  void clearFolderSettings(const Fm::FilePath& path) const;
930 
931  bool searchNameCaseInsensitive() const {
932  return searchNameCaseInsensitive_;
933  }
934 
935  void setSearchNameCaseInsensitive(bool caseInsensitive) {
936  searchNameCaseInsensitive_ = caseInsensitive;
937  }
938 
939  bool searchContentCaseInsensitive() const {
940  return searchContentCaseInsensitive_;
941  }
942 
943  void setsearchContentCaseInsensitive(bool caseInsensitive) {
944  searchContentCaseInsensitive_ = caseInsensitive;
945  }
946 
947  bool searchNameRegexp() const {
948  return searchNameRegexp_;
949  }
950 
951  void setSearchNameRegexp(bool reg) {
952  searchNameRegexp_ = reg;
953  }
954 
955  bool searchContentRegexp() const {
956  return searchContentRegexp_;
957  }
958 
959  void setSearchContentRegexp(bool reg) {
960  searchContentRegexp_ = reg;
961  }
962 
963  bool searchRecursive() const {
964  return searchRecursive_;
965  }
966 
967  void setSearchRecursive(bool rec) {
968  searchRecursive_ = rec;
969  }
970 
971  bool searchhHidden() const {
972  return searchhHidden_;
973  }
974 
975  void setSearchhHidden(bool hidden) {
976  searchhHidden_ = hidden;
977  }
978 
979  QList<int> getCustomColumnWidths() const {
980  QList<int> l;
981  for(auto width : qAsConst(customColumnWidths_)) {
982  l << width.toInt();
983  }
984  return l;
985  }
986 
987  void setCustomColumnWidths(const QList<int> &widths) {
988  customColumnWidths_.clear();
989  for(auto width : widths) {
990  customColumnWidths_ << QVariant(width);
991  }
992  }
993 
994  QList<int> getHiddenColumns() const {
995  QList<int> l;
996  for(auto width : qAsConst(hiddenColumns_)) {
997  l << width.toInt();
998  }
999  return l;
1000  }
1001 
1002  void setHiddenColumns(const QList<int> &columns) {
1003  hiddenColumns_.clear();
1004  for(auto column : columns) {
1005  hiddenColumns_ << QVariant(column);
1006  }
1007  }
1008 
1009 private:
1010  int toIconSize(int size, IconType type) const;
1011 
1012  QString profileName_;
1013  bool supportTrash_;
1014 
1015  // PCManFM specific
1016  QString fallbackIconThemeName_;
1017  bool useFallbackIconTheme_;
1018 
1019  bool singleWindowMode_;
1020  OpenDirTargetType bookmarkOpenMethod_;
1021  QString suCommand_;
1022  QString terminal_;
1023  bool mountOnStartup_;
1024  bool mountRemovable_;
1025  bool autoRun_;
1026  bool closeOnUnmount_;
1027 
1028  int wallpaperMode_;
1029  QString wallpaper_;
1030  QSize wallpaperDialogSize_;
1031  int wallpaperDialogSplitterPos_;
1032  QString lastSlide_;
1033  QString wallpaperDir_;
1034  int slideShowInterval_;
1035  bool wallpaperRandomize_;
1036  bool transformWallpaper_;
1037  bool perScreenWallpaper_;
1038  QColor desktopBgColor_;
1039  QColor desktopFgColor_;
1040  QColor desktopShadowColor_;
1041  QFont desktopFont_;
1042  int desktopIconSize_;
1043  QStringList desktopShortcuts_;
1044 
1045  bool desktopShowHidden_;
1046  bool desktopHideItems_;
1047  Qt::SortOrder desktopSortOrder_;
1048  Fm::FolderModel::ColumnId desktopSortColumn_;
1049  bool desktopSortFolderFirst_;
1050  bool desktopSortHiddenLast_;
1051 
1052  bool alwaysShowTabs_;
1053  bool showTabClose_;
1054  bool switchToNewTab_;
1055  bool reopenLastTabs_;
1056  QStringList tabPaths_;
1057  bool rememberWindowSize_;
1058  int fixedWindowWidth_;
1059  int fixedWindowHeight_;
1060  int lastWindowWidth_;
1061  int lastWindowHeight_;
1062  bool lastWindowMaximized_;
1063  int splitterPos_;
1064  bool sidePaneVisible_;
1065  Fm::SidePane::Mode sidePaneMode_;
1066  bool showMenuBar_;
1067  bool splitView_;
1068 
1069  Fm::FolderView::ViewMode viewMode_;
1070  bool showHidden_;
1071  Qt::SortOrder sortOrder_;
1072  Fm::FolderModel::ColumnId sortColumn_;
1073  bool sortFolderFirst_;
1074  bool sortHiddenLast_;
1075  bool sortCaseSensitive_;
1076  bool showFilter_;
1077  bool pathBarButtons_;
1078 
1079  // settings for use with libfm
1080  bool singleClick_;
1081  int autoSelectionDelay_;
1082  bool ctrlRightClick_;
1083  bool useTrash_;
1084  bool confirmDelete_;
1085  bool noUsbTrash_; // do not trash files on usb removable devices
1086  bool confirmTrash_; // Confirm before moving files into "trash can"
1087  bool quickExec_; // Don't ask options on launch executable file
1088  bool selectNewFiles_;
1089 
1090  bool showThumbnails_;
1091 
1092  QString archiver_;
1093  bool siUnit_;
1094  bool backupAsHidden_;
1095  bool showFullNames_;
1096  bool shadowHidden_;
1097  bool noItemTooltip_;
1098  bool scrollPerPixel_;
1099 
1100  QSet<QString> hiddenPlaces_;
1101 
1102  int bigIconSize_;
1103  int smallIconSize_;
1104  int sidePaneIconSize_;
1105  int thumbnailIconSize_;
1106 
1107  bool onlyUserTemplates_;
1108  bool templateTypeOnce_;
1109  bool templateRunApp_;
1110 
1111  QSize folderViewCellMargins_;
1112  QSize desktopCellMargins_;
1113 
1114  bool openWithDefaultFileManager_;
1115 
1116  bool allSticky_;
1117 
1118  // search settings
1119  bool searchNameCaseInsensitive_;
1120  bool searchContentCaseInsensitive_;
1121  bool searchNameRegexp_;
1122  bool searchContentRegexp_;
1123  bool searchRecursive_;
1124  bool searchhHidden_;
1125 
1126  // detailed list columns
1127  QList<QVariant> customColumnWidths_;
1128  QList<QVariant> hiddenColumns_;
1129 };
1130 
1131 }
1132 
1133 #endif // PCMANFM_SETTINGS_H
Definition: settings.h:42
Definition: settings.h:154