Miam-Player  0.8.0
A nice music player
settingsprivate.h
Go to the documentation of this file.
1 #ifndef SETTINGSPRIVATE_H
2 #define SETTINGSPRIVATE_H
3 
4 #include <QFileInfo>
5 #include <QPushButton>
6 #include <QSettings>
7 #include <QTranslator>
8 #include "plugininfo.h"
9 
10 #include "miamcore_global.h"
11 
19 class MIAMCORE_LIBRARY SettingsPrivate : public QSettings
20 {
21  Q_OBJECT
22 private:
24  static SettingsPrivate *settings;
25 
27  SettingsPrivate(const QString &organization = "MmeMiamMiam",
28  const QString &application = "MiamPlayer");
29 
31  QMap<QString, QVariant> fontPointSizeMap;
32 
34  QMap<QString, QVariant> fontFamilyMap;
35 
36  QPalette _standardPalette;
37 
38  Q_ENUMS(DragDropAction)
39  Q_ENUMS(FontFamily)
40  Q_ENUMS(InsertPolicy)
41  Q_ENUMS(LibrarySearchMode)
42  Q_ENUMS(PlaylistDefaultAction)
43 
44 public:
45  enum DragDropAction { DD_OpenPopup = 0,
46  DD_AddToLibrary = 1,
47  DD_AddToPlaylist = 2};
48 
49  enum FontFamily { FF_Playlist = 0,
50  FF_Library = 1,
51  FF_Menu = 2};
52 
53  enum InsertPolicy { IP_Artists = 0,
54  IP_Albums = 1,
55  IP_ArtistsAlbums = 2,
56  IP_Years = 3};
57 
58  enum LibrarySearchMode { LSM_Filter = 0,
59  LSM_HighlightOnly = 1};
60 
61  enum PlaylistDefaultAction { PDA_AskUserForAction = 0,
62  PDA_SaveOnClose = 1,
63  PDA_DiscardOnClose = 2};
64 
65  QTranslator playerTranslator, defaultQtTranslator;
66 
68  static SettingsPrivate* instance();
69 
71  void addPlugin(const PluginInfo &plugin);
72 
74  void disablePlugin(const QString &absFilePath);
75 
77  bool colorsAlternateBG() const;
78 
79  bool copyTracksFromPlaylist() const;
80 
82  const QString customIcon(const QString &buttonName) const;
83 
84  QPalette customPalette() const;
85 
86  QString defaultLocationFileExplorer() const;
87 
88  DragDropAction dragDropAction() const;
89 
91  QFont font(const FontFamily fontFamily);
92 
94  int fontSize(const FontFamily fontFamily);
95 
97  bool hasCustomIcon(const QString &buttonName) const;
98 
99  InsertPolicy insertPolicy() const;
100 
101  bool isCustomColors() const;
102 
103  bool isCustomTextColorOverriden() const;
104 
105  bool isExtendedSearchVisible() const;
106 
108  bool isFileSystemMonitored() const;
109 
111  bool isLibraryFilteredByArticles() const;
112 
113  bool isPlaylistResizeColumns() const;
114 
116  bool isRectTabs() const;
117 
118  bool isRemoteControlEnabled() const;
119 
121  bool isReorderArtistsArticle() const;
122 
124  bool isButtonThemeCustomized() const;
125 
127  QString language();
128 
130  QByteArray lastActivePlaylistGeometry() const;
131 
132  QByteArray lastActiveViewGeometry(const QString &menuAction) const;
133 
135  QList<uint> lastPlaylistSession() const;
136 
137  QStringList libraryFilteredByArticles() const;
138 
139  LibrarySearchMode librarySearchMode() const;
140 
142  QStringList musicLocations() const;
143 
144  int tabsOverlappingLength() const;
145 
147  qint64 playbackSeekTime() const;
148 
150  PlaylistDefaultAction playbackDefaultActionForClose() const;
151 
153  bool playbackKeepPlaylists() const;
154 
156  bool playbackRestorePlaylistsAtStartup() const;
157 
158  QMap<QString, PluginInfo> plugins() const;
159 
160  uint remoteControlPort() const;
161 
162  void setCustomColorRole(QPalette::ColorRole cr, const QColor &color);
163 
165  void setCustomIcon(const QString &buttonName, const QString &iconPath);
166 
168  bool setLanguage(const QString &lang);
169 
170  void setLastActiveViewGeometry(const QString &menuAction, const QByteArray &viewGeometry);
171 
173  void setLastPlaylistSession(const QList<uint> &ids);
174 
175  void setMusicLocations(const QStringList &locations);
176 
177  void setRemoteControlEnabled(bool b);
178 
179  void setShortcut(const QString &objectName, const QKeySequence &keySequence);
180 
181  QKeySequence shortcut(const QString &objectName) const;
182 
183  int volumeBarHideAfter() const;
184 
185 private:
186  bool initLanguage(const QString &lang);
187 
188 public:
189  void setDefaultLocationFileExplorer(const QString &location);
190 
192  void setInsertPolicy(InsertPolicy ip);
193 
194 public slots:
196  void addMusicLocations(const QList<QDir> &dirs);
197 
199  void setColorsAlternateBG(bool b);
200 
202  void setCopyTracksFromPlaylist(bool b);
203 
205  void setCustomColors(bool b);
206 
208  void setCustomTextColorOverride(bool b);
209 
211  void setDragDropAction(DragDropAction action);
212 
214  void setExtendedSearchVisible(bool b);
215 
217  void setFont(const FontFamily &fontFamily, const QFont &font);
218 
220  void setFontPointSize(const FontFamily &fontFamily, int i);
221 
223  void setIsLibraryFilteredByArticles(bool b);
224 
226  void setLastActivePlaylistGeometry(const QByteArray &);
227 
229  void setLibraryFilteredByArticles(const QStringList &tagList);
230 
232  void setMonitorFileSystem(bool b);
233 
235  void setPlaybackSeekTime(int t);
236  void setPlaybackCloseAction(PlaylistDefaultAction action);
237  void setPlaybackKeepPlaylists(bool b);
238  void setPlaybackRestorePlaylistsAtStartup(bool b);
239 
240  void setRemoteControlPort(uint port);
241 
242  void setReorderArtistsArticle(bool b);
243 
244  void setSearchAndExcludeLibrary(bool b);
245 
246  void setTabsOverlappingLength(int l);
247 
248  void setTabsRect(bool b);
249 
250  void setButtonThemeCustomized(bool b);
251 
252  void setVolumeBarHideAfter(int seconds);
253 
254 signals:
255  void customIconForMediaButtonChanged(const QString &button);
256 
257  void languageAboutToChange(const QString &newLanguage);
258 
259  void fontHasChanged(FontFamily, const QFont &font);
260 
261  void librarySearchModeHasChanged();
262 
263  void monitorFileSystemChanged(bool);
264 
266  void musicLocationsHaveChanged(const QStringList &oldLocations, const QStringList &newLocations);
267 
268  void remoteControlChanged(bool enabled, uint port);
269 };
270 
271 Q_DECLARE_METATYPE(QPalette::ColorRole)
272 
273 #endif // SETTINGSPRIVATE_H
LibrarySearchMode
Definition: settingsprivate.h:58
SettingsPrivate class contains all relevant pairs of (keys, values) used by Miam-Player.
Definition: settingsprivate.h:19
DragDropAction
Definition: settingsprivate.h:45
PlaylistDefaultAction
Definition: settingsprivate.h:61
The PluginInfo class is a Data Access Object.
Definition: plugininfo.h:16
InsertPolicy
Definition: settingsprivate.h:53
FontFamily
Definition: settingsprivate.h:49
QTranslator playerTranslator
Definition: settingsprivate.h:65
#define MIAMCORE_LIBRARY
Definition: miamcore_global.h:10