TTKMusicPlayer  4.2.0.0
TTKMusicPlayer imitates Kugou UI, the music player uses of qmmp core library based on Qt for windows and linux
musicconfigmanager.cpp
Go to the documentation of this file.
1 #include "musicconfigmanager.h"
2 #include "musicsettingmanager.h"
3 #include "musicstringutils.h"
4 #include "ttkversion.h"
5 
6 #include <QRect>
7 
10 {
11 
12 }
13 
15 {
16  int items = 0;
17  return readBuffer(items);
18 }
19 
21 {
22  int items = 0;
23  return writeBuffer(items);
24 }
25 
27 {
28  Q_UNUSED(items);
29 
33  G_SETTING_PTR->setValue(MusicSettingManager::Volume, readAttributeByTagName("playVolume").toInt());
34 
35  QString value = readAttributeByTagName("lastPlayIndex");
36  {
37  QStringList lastPlayIndex;
38  if(value.isEmpty())
39  {
40  lastPlayIndex << "1" << "-1" << "-1";
41  }
42  else
43  {
44  lastPlayIndex << value.split(",");
45  if(lastPlayIndex.count() != 3)
46  {
47  lastPlayIndex.clear();
48  lastPlayIndex << "1" << "-1" << "-1";
49  }
50  }
51  G_SETTING_PTR->setValue(MusicSettingManager::LastPlayIndex, lastPlayIndex);
52  }
53 
56  G_SETTING_PTR->setValue(MusicSettingManager::StartUpPlayMode, readAttributeByTagName("startUpPlayMode").toInt());
57  G_SETTING_PTR->setValue(MusicSettingManager::CloseEventMode, readAttributeByTagName("closeEventMode").toInt());
58  G_SETTING_PTR->setValue(MusicSettingManager::CloseNetWorkMode, readAttributeByTagName("closeNetworkMode").toInt());
59  G_SETTING_PTR->setValue(MusicSettingManager::FileAssociationMode, readAttributeByTagName("fileAssociationMode").toInt());
61  G_SETTING_PTR->setValue(MusicSettingManager::WindowConciseMode, readAttributeByTagName("windowConciseMode").toInt());
62  G_SETTING_PTR->setValue(MusicSettingManager::RemoteWidgetMode, readAttributeByTagName("remoteWidgetMode").toInt());
63  G_SETTING_PTR->setValue(MusicSettingManager::WindowQuitMode, readAttributeByTagName("windowQuitMode").toInt());
66 
67  G_SETTING_PTR->setValue(MusicSettingManager::OtherCheckUpdateEnable, readAttributeByTagName("otherCheckUpdateEnable").toInt());
68  G_SETTING_PTR->setValue(MusicSettingManager::OtherReadAlbumCover, readAttributeByTagName("otherUseAlbumCover").toInt());
69  G_SETTING_PTR->setValue(MusicSettingManager::OtherReadFileInfo, readAttributeByTagName("otherUseFileInfo").toInt());
70  G_SETTING_PTR->setValue(MusicSettingManager::OtherWriteAlbumCover, readAttributeByTagName("otherWriteAlbumCover").toInt());
71  G_SETTING_PTR->setValue(MusicSettingManager::OtherWriteFileInfo, readAttributeByTagName("otherWriteFileInfo").toInt());
72  G_SETTING_PTR->setValue(MusicSettingManager::OtherSideByMode, readAttributeByTagName("otherSideByMode").toInt());
73  G_SETTING_PTR->setValue(MusicSettingManager::OtherLrcKTVMode, readAttributeByTagName("otherLrcKTVMode").toInt());
74  G_SETTING_PTR->setValue(MusicSettingManager::OtherScreenSaverEnable, readAttributeByTagName("otherScreenSaverEnable").toInt());
75  G_SETTING_PTR->setValue(MusicSettingManager::OtherScreenSaverTime, readAttributeByTagName("otherScreenSaverTime").toInt());
81 
82  G_SETTING_PTR->setValue(MusicSettingManager::RippleLowPowerMode, readAttributeByTagName("rippleLowPowerMode").toInt());
83  G_SETTING_PTR->setValue(MusicSettingManager::RippleSpectrumEnable, readAttributeByTagName("rippleSpectrumEnable").toInt());
86 
88  G_SETTING_PTR->setValue(MusicSettingManager::BackgroundTransparent, readAttributeByTagName("backgroundTransparent").toInt());
89  G_SETTING_PTR->setValue(MusicSettingManager::BackgroundTransparentEnable, readAttributeByTagName("backgroundTransparentEnable").toInt());
90  G_SETTING_PTR->setValue(MusicSettingManager::BackgroundListTransparent, readAttributeByTagName("backgroundListTransparent").toInt());
91 
94 
102 
103  G_SETTING_PTR->setValue(MusicSettingManager::ShowDesktopLrc, readAttributeByTagName("showDesktopLrc").toInt());
111  G_SETTING_PTR->setValue(MusicSettingManager::DLrcWindowMode, readAttributeByTagName("lrcDWindowMode").toInt());
112  G_SETTING_PTR->setValue(MusicSettingManager::DLrcSingleLineMode, readAttributeByTagName("lrcDSingleLineMode").toInt());
113  G_SETTING_PTR->setValue(MusicSettingManager::DLrcLockedMode, readAttributeByTagName("lrcDLockedMode").toInt());
114 
115  G_SETTING_PTR->setValue(MusicSettingManager::EnhancedMusicIndex, readAttributeByTagName("enhancedMusicIndex").toInt());
116  G_SETTING_PTR->setValue(MusicSettingManager::EqualizerIndex, readAttributeByTagName("equalizerIndex").toInt());
117  G_SETTING_PTR->setValue(MusicSettingManager::EqualizerEnable, readAttributeByTagName("equalizerEnable").toInt());
119  G_SETTING_PTR->setValue(MusicSettingManager::EnhancedFadeEnable, readAttributeByTagName("enhancedFadeEnable").toInt());
120  G_SETTING_PTR->setValue(MusicSettingManager::EnhancedFadeInValue, readAttributeByTagName("enhancedFadeInValue").toInt());
121  G_SETTING_PTR->setValue(MusicSettingManager::EnhancedFadeOutValue, readAttributeByTagName("enhancedFadeOutValue").toInt());
123 
124  G_SETTING_PTR->setValue(MusicSettingManager::TimerAutoIndex, readAttributeByTagName("timeAutoIndex").toInt());
125  G_SETTING_PTR->setValue(MusicSettingManager::TimerAutoPlayMode, readAttributeByTagName("timeAutoPlayMode").toInt());
126  G_SETTING_PTR->setValue(MusicSettingManager::TimerAutoPlayHour, readAttributeByTagName("timeAutoPlayHour").toInt());
127  G_SETTING_PTR->setValue(MusicSettingManager::TimerAutoPlaySecond, readAttributeByTagName("timeAutoPlaySecond").toInt());
128  G_SETTING_PTR->setValue(MusicSettingManager::TimerAutoPlayRepeat, readAttributeByTagName("timeAutoPlayRepeat").toInt());
129  G_SETTING_PTR->setValue(MusicSettingManager::TimerAutoPlayItemIndex, readAttributeByTagName("timeAutoPlayItemIndex").toInt());
130  G_SETTING_PTR->setValue(MusicSettingManager::TimerAutoPlaySongIndex, readAttributeByTagName("timeAutoPlaySongIndex").toInt());
131  G_SETTING_PTR->setValue(MusicSettingManager::TimerAutoStopMode, readAttributeByTagName("timeAutoStopMode").toInt());
132  G_SETTING_PTR->setValue(MusicSettingManager::TimerAutoStopHour, readAttributeByTagName("timeAutoStopHour").toInt());
133  G_SETTING_PTR->setValue(MusicSettingManager::TimerAutoStopSecond, readAttributeByTagName("timeAutoStopSecond").toInt());
134  G_SETTING_PTR->setValue(MusicSettingManager::TimerAutoStopRepeat, readAttributeByTagName("timeAutoStopRepeat").toInt());
135  G_SETTING_PTR->setValue(MusicSettingManager::TimerAutoShutdownMode, readAttributeByTagName("timeAutoShutdownMode").toInt());
136  G_SETTING_PTR->setValue(MusicSettingManager::TimerAutoShutdownHour, readAttributeByTagName("timeAutoShutdownHour").toInt());
137  G_SETTING_PTR->setValue(MusicSettingManager::TimerAutoShutdownSecond, readAttributeByTagName("timeAutoShutdownSecond").toInt());
138  G_SETTING_PTR->setValue(MusicSettingManager::TimerAutoShutdownRepeat, readAttributeByTagName("timeAutoShutdownRepeat").toInt());
139 
140  value = readAttributeByTagName("downloadMusicPath");
141  G_SETTING_PTR->setValue(MusicSettingManager::DownloadMusicDirPath, (value.isEmpty() || !QFile::exists(value)) ? TTK::String::musicDirPrefix() : value);
142  value = readAttributeByTagName("downloadLrcPath");
143  G_SETTING_PTR->setValue(MusicSettingManager::DownloadLrcDirPath, (value.isEmpty() || !QFile::exists(value)) ? TTK::String::lrcDirPrefix() : value);
144  value = readAttributeByTagName("downloadFileNameRule");
145  G_SETTING_PTR->setValue(MusicSettingManager::DownloadFileNameRule, value.isEmpty() ? "%artist - %title" : value);
146 
147  G_SETTING_PTR->setValue(MusicSettingManager::DownloadCacheEnable, readAttributeByTagName("downloadCacheEnable").toInt());
148  G_SETTING_PTR->setValue(MusicSettingManager::DownloadCacheSize, readAttributeByTagName("downloadCacheSize").toInt());
149  G_SETTING_PTR->setValue(MusicSettingManager::DownloadLimitEnable, readAttributeByTagName("downloadLimitEnable").toInt());
150  G_SETTING_PTR->setValue(MusicSettingManager::DownloadServerIndex, readAttributeByTagName("downloadServerIndex").toInt());
153 
154  return true;
155 }
156 
157 bool MusicConfigManager::writeBuffer(const int &items)
158 {
159  Q_UNUSED(items);
160 
161  const int userPermission = G_SETTING_PTR->value(MusicSettingManager::UserPermission).toInt();
162  const int playMode = G_SETTING_PTR->value(MusicSettingManager::PlayMode).toInt();
163  const int volume = G_SETTING_PTR->value(MusicSettingManager::Volume).toInt();
164  const QStringList &lastPlayIndex = G_SETTING_PTR->value(MusicSettingManager::LastPlayIndex).toStringList();
165  //
166  const QPoint &widgetPosition = G_SETTING_PTR->value(MusicSettingManager::WidgetPosition).toPoint();
167  const QSize &widgetSize = G_SETTING_PTR->value(MusicSettingManager::WidgetSize).toSize();
168  const int startUpMode = G_SETTING_PTR->value(MusicSettingManager::StartUpMode).toInt();
169  const int startUpPlayMode = G_SETTING_PTR->value(MusicSettingManager::StartUpPlayMode).toInt();
170  const int languageIndex = G_SETTING_PTR->value(MusicSettingManager::LanguageIndex).toInt();
171  const int closeEventMode = G_SETTING_PTR->value(MusicSettingManager::CloseEventMode).toInt();
172  const int closeNetWorkMode = G_SETTING_PTR->value(MusicSettingManager::CloseNetWorkMode).toInt();
173  const int fileAssociationMode = G_SETTING_PTR->value(MusicSettingManager::FileAssociationMode).toInt();
174  const QString &fileAssociationValue = G_SETTING_PTR->value(MusicSettingManager::FileAssociationValue).toString();
175 
176  const int windowConciseMode = G_SETTING_PTR->value(MusicSettingManager::WindowConciseMode).toInt();
177  const int remoteWidgetMode = G_SETTING_PTR->value(MusicSettingManager::RemoteWidgetMode).toInt();
178  const int windowQuitMode = G_SETTING_PTR->value(MusicSettingManager::WindowQuitMode).toInt();
179  const QString &lastFileDialogPath = G_SETTING_PTR->value(MusicSettingManager::LastFileDialogPath).toString();
180  const QString &mediaLibraryPath = G_SETTING_PTR->value(MusicSettingManager::MediaLibraryPath).toString();
181  //
182  const int otherCheckUpdateEnable = G_SETTING_PTR->value(MusicSettingManager::OtherCheckUpdateEnable).toInt();
183  const int otherReadAlbumCover = G_SETTING_PTR->value(MusicSettingManager::OtherReadAlbumCover).toInt();
184  const int otherReadFileInfo = G_SETTING_PTR->value(MusicSettingManager::OtherReadFileInfo).toInt();
185  const int otherWriteAlbumCover = G_SETTING_PTR->value(MusicSettingManager::OtherWriteAlbumCover).toInt();
186  const int otherWriteFileInfo = G_SETTING_PTR->value(MusicSettingManager::OtherWriteFileInfo).toInt();
187  const int otherSideByMode = G_SETTING_PTR->value(MusicSettingManager::OtherSideByMode).toInt();
188  const int otherLrcKTVMode = G_SETTING_PTR->value(MusicSettingManager::OtherLrcKTVMode).toInt();
189  const int otherScreenSaverEnable = G_SETTING_PTR->value(MusicSettingManager::OtherScreenSaverEnable).toInt();
190  const int otherScreenSaverTime = G_SETTING_PTR->value(MusicSettingManager::OtherScreenSaverTime).toInt();
191  const QString &otherScreenSaverIndex = G_SETTING_PTR->value(MusicSettingManager::OtherScreenSaverIndex).toString();
192  const int otherPlaylistAutoSaveEnable = G_SETTING_PTR->value(MusicSettingManager::OtherPlaylistAutoSaveEnable).toInt();
193  const int otherRandomShuffleMode = G_SETTING_PTR->value(MusicSettingManager::OtherRandomShuffleMode).toInt();
194  const int otherHighDpiScalingEnable = G_SETTING_PTR->value(MusicSettingManager::OtherHighDpiScalingEnable).toInt();
195  const int otherLogTrackEnable = G_SETTING_PTR->value(MusicSettingManager::OtherLogTrackEnable).toInt();
196  //
197  const int rippleLowPowerMode = G_SETTING_PTR->value(MusicSettingManager::RippleLowPowerMode).toInt();
198  const int rippleSpectrumEnable = G_SETTING_PTR->value(MusicSettingManager::RippleSpectrumEnable).toInt();
199  const QString &rippleSpectrumColor = G_SETTING_PTR->value(MusicSettingManager::RippleSpectrumColor).toString();
200  const int rippleSpectrumTransparent = G_SETTING_PTR->value(MusicSettingManager::RippleSpectrumTransparent).toInt();
201  //
202  const QString &backgroundThemeValue = G_SETTING_PTR->value(MusicSettingManager::BackgroundThemeValue).toString();
203  const int backgroundTransparent = G_SETTING_PTR->value(MusicSettingManager::BackgroundTransparent).toInt();
204  const int backgroundListTransparent = G_SETTING_PTR->value(MusicSettingManager::BackgroundListTransparent).toInt();
205  const int backgroundTransparentEnable = G_SETTING_PTR->value(MusicSettingManager::BackgroundTransparentEnable).toInt();
206  //
207  const int hotkeyEnable = G_SETTING_PTR->value(MusicSettingManager::HotkeyEnable).toInt();
208  const QString &hotkeyValue = G_SETTING_PTR->value(MusicSettingManager::HotkeyValue).toString();
209  //
210  const int showDesktopLrc = G_SETTING_PTR->value(MusicSettingManager::ShowDesktopLrc).toInt();
211  const int lrcColor = G_SETTING_PTR->value(MusicSettingManager::LrcColor).toInt();
212  const int lrcSize = G_SETTING_PTR->value(MusicSettingManager::LrcSize).toInt();
213  const int lrcType = G_SETTING_PTR->value(MusicSettingManager::LrcType).toInt();
214  const int lrcFamily = G_SETTING_PTR->value(MusicSettingManager::LrcFamily).toInt();
215  const QString &lrcFrontgroundColor = G_SETTING_PTR->value(MusicSettingManager::LrcFrontgroundColor).toString();
216  const QString &lrcBackgroundColor = G_SETTING_PTR->value(MusicSettingManager::LrcBackgroundColor).toString();
217  const int lrcTransparent = G_SETTING_PTR->value(MusicSettingManager::LrcColorTransparent).toInt();
218  //
219  const int DLrcColor = G_SETTING_PTR->value(MusicSettingManager::DLrcColor).toInt();
220  const int DLrcSize = G_SETTING_PTR->value(MusicSettingManager::DLrcSize).toInt();
221  const int DLrcType = G_SETTING_PTR->value(MusicSettingManager::DLrcType).toInt();
222  const int DLrcFamily = G_SETTING_PTR->value(MusicSettingManager::DLrcFamily).toInt();
223  const QString &DLrcFrontgroundColor = G_SETTING_PTR->value(MusicSettingManager::DLrcFrontgroundColor).toString();
224  const QString &DLrcBackgroundColor = G_SETTING_PTR->value(MusicSettingManager::DLrcBackgroundColor).toString();
225  const int DLrcTransparent = G_SETTING_PTR->value(MusicSettingManager::DLrcColorTransparent).toInt();
226  const int DLrcWindowMode= G_SETTING_PTR->value(MusicSettingManager::DLrcWindowMode).toInt();
227  const int DLrcSingleLineMode = G_SETTING_PTR->value(MusicSettingManager::DLrcSingleLineMode).toInt();
228  const int DLrcLockedMode = G_SETTING_PTR->value(MusicSettingManager::DLrcLockedMode).toInt();
229  const QPoint &DLrcGeometry = G_SETTING_PTR->value(MusicSettingManager::DLrcGeometry).toPoint();
230  //
231  const int enhancedMusicIndex = G_SETTING_PTR->value(MusicSettingManager::EnhancedMusicIndex).toInt();
232  const int equalizerEnable = G_SETTING_PTR->value(MusicSettingManager::EqualizerEnable).toInt();
233  const QString &equalizerValue = G_SETTING_PTR->value(MusicSettingManager::EqualizerValue).toString();
234  const int equalizerIndex = G_SETTING_PTR->value(MusicSettingManager::EqualizerIndex).toInt();
235  const int enhancedFadeEnable = G_SETTING_PTR->value(MusicSettingManager::EnhancedFadeEnable).toInt();
236  const int enhancedFadeInValue = G_SETTING_PTR->value(MusicSettingManager::EnhancedFadeInValue).toInt();
237  const int enhancedFadeOutValue = G_SETTING_PTR->value(MusicSettingManager::EnhancedFadeOutValue).toInt();
238  const QString &enhancedEffectValue = G_SETTING_PTR->value(MusicSettingManager::EnhancedEffectValue).toString();
239  //
240  const int timeAutoIndex = G_SETTING_PTR->value(MusicSettingManager::TimerAutoIndex).toInt();
241  const int timeAutoPlayMode = G_SETTING_PTR->value(MusicSettingManager::TimerAutoPlayMode).toInt();
242  const int timeAutoPlayHour = G_SETTING_PTR->value(MusicSettingManager::TimerAutoPlayHour).toInt();
243  const int timeAutoPlaySecond = G_SETTING_PTR->value(MusicSettingManager::TimerAutoPlaySecond).toInt();
244  const int timeAutoPlayRepeat = G_SETTING_PTR->value(MusicSettingManager::TimerAutoPlayRepeat).toInt();
245  const int timeAutoPlayItemIndex = G_SETTING_PTR->value(MusicSettingManager::TimerAutoPlayItemIndex).toInt();
246  const int timeAutoPlaySongIndex = G_SETTING_PTR->value(MusicSettingManager::TimerAutoPlaySongIndex).toInt();
247  const int timeAutoStopMode = G_SETTING_PTR->value(MusicSettingManager::TimerAutoStopMode).toInt();
248  const int timeAutoStopHour = G_SETTING_PTR->value(MusicSettingManager::TimerAutoStopHour).toInt();
249  const int timeAutoStopSecond = G_SETTING_PTR->value(MusicSettingManager::TimerAutoStopSecond).toInt();
250  const int timeAutoStopRepeat = G_SETTING_PTR->value(MusicSettingManager::TimerAutoStopRepeat).toInt();
251  const int timeAutoShutdownMode = G_SETTING_PTR->value(MusicSettingManager::TimerAutoShutdownMode).toInt();
252  const int timeAutoShutdownHour = G_SETTING_PTR->value(MusicSettingManager::TimerAutoShutdownHour).toInt();
253  const int timeAutoShutdownSecond = G_SETTING_PTR->value(MusicSettingManager::TimerAutoShutdownSecond).toInt();
254  const int timeAutoShutdownRepeat = G_SETTING_PTR->value(MusicSettingManager::TimerAutoShutdownRepeat).toInt();
255  //
256  const QString &downloadMusicPath = G_SETTING_PTR->value(MusicSettingManager::DownloadMusicDirPath).toString();
257  const QString &downloadLrcPath = G_SETTING_PTR->value(MusicSettingManager::DownloadLrcDirPath).toString();
258  const QString &downloadFileNameRule = G_SETTING_PTR->value(MusicSettingManager::DownloadFileNameRule).toString();
259  const int downloadCacheEnable = G_SETTING_PTR->value(MusicSettingManager::DownloadCacheEnable).toInt();
260  const int downloadCacheSize = G_SETTING_PTR->value(MusicSettingManager::DownloadCacheSize).toInt();
261  const int downloadLimitEnable = G_SETTING_PTR->value(MusicSettingManager::DownloadLimitEnable).toInt();
262  const int downloadServerIndex = G_SETTING_PTR->value(MusicSettingManager::DownloadServerIndex).toInt();
263  const QString &downloadDownloadLimitSize = G_SETTING_PTR->value(MusicSettingManager::DownloadDownloadLimitSize).toString();
264  const QString &downloadUploadLimitSize = G_SETTING_PTR->value(MusicSettingManager::DownloadUploadLimitSize).toString();
265 
267  QDomElement rootDom = createRoot(TTK_APP_NAME);
268  QDomElement baseSettingDom = writeDomElement(rootDom, "musicSetting");
269  QDomElement plusSettingDom = writeDomElement(rootDom, "plusSetting");
270  QDomElement otherSettingDom = writeDomElement(rootDom, "otherSetting");
271  QDomElement rippleSettingDom = writeDomElement(rootDom, "rippleSetting");
272  QDomElement backgroundSettingDom = writeDomElement(rootDom, "backgroundSetting");
273  QDomElement hotkeySettingDom = writeDomElement(rootDom, "hotkeySetting");
274  QDomElement interiorLrcSettingDom = writeDomElement(rootDom, "interiorLrcSetting");
275  QDomElement desktopLrcSettingDom = writeDomElement(rootDom, "desktopLrcSetting");
276  QDomElement equalizerSettingDom = writeDomElement(rootDom, "equalizerSetting");
277  QDomElement timeSettingDom = writeDomElement(rootDom, "timeSetting");
278  QDomElement downloadSettingDom = writeDomElement(rootDom, "downloadSetting");
279 
280  writeDomElement(baseSettingDom, "userPermission", {"value", userPermission});
281  writeDomElement(baseSettingDom, "configVersion", {"value", TTK_CONFIG_VERSION_STR});
282  writeDomElement(baseSettingDom, "playMode", {"value", playMode});
283  writeDomElement(baseSettingDom, "playVolume", {"value", volume});
284  writeDomElement(baseSettingDom, "lastPlayIndex", {"value", QString("%1,%2,%3").arg(lastPlayIndex[0], lastPlayIndex[1], lastPlayIndex[2])});
285  //
286  writeDomElement(plusSettingDom, "geometry", {"value", QString("%1,%2,%3,%4").arg(widgetPosition.x()).arg(widgetPosition.y()).arg(widgetSize.width()).arg(widgetSize.height())});
287  writeDomElement(plusSettingDom, "language", {"value", languageIndex});
288  writeDomElement(plusSettingDom, "startUpMode", {"value", startUpMode});
289  writeDomElement(plusSettingDom, "startUpPlayMode", {"value", startUpPlayMode});
290  writeDomElement(plusSettingDom, "closeEventMode", {"value", closeEventMode});
291  writeDomElement(plusSettingDom, "closeNetworkMode", {"value", closeNetWorkMode});
292  writeDomElement(plusSettingDom, "fileAssociationMode", {"value", fileAssociationMode});
293  writeDomElement(plusSettingDom, "fileAssociationValue", {"value", fileAssociationValue});
294  writeDomElement(plusSettingDom, "windowConciseMode", {"value", windowConciseMode});
295  writeDomElement(plusSettingDom, "remoteWidgetMode", {"value", remoteWidgetMode});
296  writeDomElement(plusSettingDom, "windowQuitMode", {"value", windowQuitMode});
297  writeDomElement(plusSettingDom, "lastFileDialogPath", {"value", lastFileDialogPath});
298  writeDomElement(plusSettingDom, "mediaLibraryPath", {"value", mediaLibraryPath});
299  //
300  writeDomElement(otherSettingDom, "otherCheckUpdateEnable", {"value", otherCheckUpdateEnable});
301  writeDomElement(otherSettingDom, "otherUseAlbumCover", {"value", otherReadAlbumCover});
302  writeDomElement(otherSettingDom, "otherUseFileInfo", {"value", otherReadFileInfo});
303  writeDomElement(otherSettingDom, "otherWriteAlbumCover", {"value", otherWriteAlbumCover});
304  writeDomElement(otherSettingDom, "otherWriteFileInfo", {"value", otherWriteFileInfo});
305  writeDomElement(otherSettingDom, "otherSideByMode", {"value", otherSideByMode});
306  writeDomElement(otherSettingDom, "otherLrcKTVMode", {"value", otherLrcKTVMode});
307  writeDomElement(otherSettingDom, "otherScreenSaverEnable", {"value", otherScreenSaverEnable});
308  writeDomElement(otherSettingDom, "otherScreenSaverTime", {"value", otherScreenSaverTime});
309  writeDomElement(otherSettingDom, "otherScreenSaverIndex", {"value", otherScreenSaverIndex});
310  writeDomElement(otherSettingDom, "otherPlaylistAutoSaveEnable", {"value", otherPlaylistAutoSaveEnable});
311  writeDomElement(otherSettingDom, "otherRandomShuffleMode", {"value", otherRandomShuffleMode});
312  writeDomElement(otherSettingDom, "otherHighDpiScalingEnable", {"value", otherHighDpiScalingEnable});
313  writeDomElement(otherSettingDom, "otherLogTrackEnable", {"value", otherLogTrackEnable});
314  //
315  writeDomElement(rippleSettingDom, "rippleLowPowerMode", {"value", rippleLowPowerMode});
316  writeDomElement(rippleSettingDom, "rippleSpectrumEnable", {"value", rippleSpectrumEnable});
317  writeDomElement(rippleSettingDom, "rippleSpectrumColor", {"value", rippleSpectrumColor});
318  writeDomElement(rippleSettingDom, "rippleSpectrumTransparent", {"value", rippleSpectrumTransparent});
319  //
320  writeDomElement(backgroundSettingDom, "backgroundThemeValue", {"value", backgroundThemeValue});
321  writeDomElement(backgroundSettingDom, "backgroundTransparent", {"value", backgroundTransparent});
322  writeDomElement(backgroundSettingDom, "backgroundListTransparent", {"value", backgroundListTransparent});
323  writeDomElement(backgroundSettingDom, "backgroundTransparentEnable", {"value", backgroundTransparentEnable});
324  //
325  writeDomElement(hotkeySettingDom, "hotkeyEnable", {"value", hotkeyEnable});
326  writeDomElement(hotkeySettingDom, "hotkeyValue", {"value", hotkeyValue});
327  //
328  writeDomElement(interiorLrcSettingDom, "lrcColor", {"value", lrcColor});
329  writeDomElement(interiorLrcSettingDom, "lrcSize", {"value", lrcSize});
330  writeDomElement(interiorLrcSettingDom, "lrcFamily", {"value", lrcFamily});
331  writeDomElement(interiorLrcSettingDom, "lrcType", {"value", lrcType});
332  writeDomElement(interiorLrcSettingDom, "lrcTransparent", {"value", lrcTransparent});
333  writeDomElement(interiorLrcSettingDom, "lrcFrontgroundColor", {"value", lrcFrontgroundColor});
334  writeDomElement(interiorLrcSettingDom, "lrcBackgroundColor", {"value", lrcBackgroundColor});
335  //
336  writeDomElement(desktopLrcSettingDom, "showDesktopLrc", {"value", showDesktopLrc});
337  writeDomElement(desktopLrcSettingDom, "lrcDColor", {"value", DLrcColor});
338  writeDomElement(desktopLrcSettingDom, "lrcDSize", {"value", DLrcSize});
339  writeDomElement(desktopLrcSettingDom, "lrcDFamily", {"value", DLrcFamily});
340  writeDomElement(desktopLrcSettingDom, "lrcDType", {"value", DLrcType});
341  writeDomElement(desktopLrcSettingDom, "lrcDTransparent", {"value", DLrcTransparent});
342  writeDomElement(desktopLrcSettingDom, "lrcDFrontgroundColor", {"value", DLrcFrontgroundColor});
343  writeDomElement(desktopLrcSettingDom, "lrcDBackgroundColor", {"value", DLrcBackgroundColor});
344  writeDomElement(desktopLrcSettingDom, "lrcDWindowMode", {"value", DLrcWindowMode});
345  writeDomElement(desktopLrcSettingDom, "lrcDSingleLineMode", {"value", DLrcSingleLineMode});
346  writeDomElement(desktopLrcSettingDom, "lrcDLockedMode", {"value", DLrcLockedMode});
347  writeDomElement(desktopLrcSettingDom, "lrcDGeometry", {"value", QString("%1,%2").arg(DLrcGeometry.x()).arg(DLrcGeometry.y())});
348  //
349  writeDomElement(equalizerSettingDom, "enhancedMusicIndex", {"value", enhancedMusicIndex});
350  writeDomElement(equalizerSettingDom, "equalizerEnable", {"value", equalizerEnable});
351  writeDomElement(equalizerSettingDom, "equalizerIndex", {"value", equalizerIndex});
352  writeDomElement(equalizerSettingDom, "equalizerValue", {"value", equalizerValue});
353  writeDomElement(equalizerSettingDom, "enhancedFadeEnable", {"value", enhancedFadeEnable});
354  writeDomElement(equalizerSettingDom, "enhancedFadeInValue", {"value", enhancedFadeInValue});
355  writeDomElement(equalizerSettingDom, "enhancedFadeOutValue", {"value", enhancedFadeOutValue});
356  writeDomElement(equalizerSettingDom, "enhancedEffectValue", {"value", enhancedEffectValue});
357  //
358  writeDomElement(timeSettingDom, "timeAutoIndex", {"value", timeAutoIndex});
359  writeDomElement(timeSettingDom, "timeAutoPlayMode", {"value", timeAutoPlayMode});
360  writeDomElement(timeSettingDom, "timeAutoPlayHour", {"value", timeAutoPlayHour});
361  writeDomElement(timeSettingDom, "timeAutoPlaySecond", {"value", timeAutoPlaySecond});
362  writeDomElement(timeSettingDom, "timeAutoPlayRepeat", {"value", timeAutoPlayRepeat});
363  writeDomElement(timeSettingDom, "timeAutoPlayItemIndex", {"value", timeAutoPlayItemIndex});
364  writeDomElement(timeSettingDom, "timeAutoPlaySongIndex", {"value", timeAutoPlaySongIndex});
365  writeDomElement(timeSettingDom, "timeAutoStopMode", {"value", timeAutoStopMode});
366  writeDomElement(timeSettingDom, "timeAutoStopHour", {"value", timeAutoStopHour});
367  writeDomElement(timeSettingDom, "timeAutoStopSecond", {"value", timeAutoStopSecond});
368  writeDomElement(timeSettingDom, "timeAutoStopRepeat", {"value", timeAutoStopRepeat});
369  writeDomElement(timeSettingDom, "timeAutoShutdownMode", {"value", timeAutoShutdownMode});
370  writeDomElement(timeSettingDom, "timeAutoShutdownHour", {"value", timeAutoShutdownHour});
371  writeDomElement(timeSettingDom, "timeAutoShutdownSecond", {"value", timeAutoShutdownSecond});
372  writeDomElement(timeSettingDom, "timeAutoShutdownRepeat", {"value", timeAutoShutdownRepeat});
373  //
374  writeDomElement(downloadSettingDom, "downloadMusicPath", {"value", downloadMusicPath});
375  writeDomElement(downloadSettingDom, "downloadLrcPath", {"value", downloadLrcPath});
376  writeDomElement(downloadSettingDom, "downloadFileNameRule", {"value", downloadFileNameRule});
377  writeDomElement(downloadSettingDom, "downloadCacheEnable", {"value", downloadCacheEnable});
378  writeDomElement(downloadSettingDom, "downloadCacheSize", {"value", downloadCacheSize});
379  writeDomElement(downloadSettingDom, "downloadLimitEnable", {"value", downloadLimitEnable});
380  writeDomElement(downloadSettingDom, "downloadServerIndex", {"value", downloadServerIndex});
381  writeDomElement(downloadSettingDom, "downloadDownloadLimitSize", {"value", downloadDownloadLimitSize});
382  writeDomElement(downloadSettingDom, "downloadUploadLimitSize", {"value", downloadUploadLimitSize});
383 
384  save();
385  return true;
386 }
387 
389 {
390  const QDomNodeList &nodes = m_document->elementsByTagName("geometry");
391  if(nodes.isEmpty())
392  {
393  return QRect(0, 0, WINDOW_WIDTH_MIN, WINDOW_HEIGHT_MIN);
394  }
395 
396  const QDomElement &element = nodes.item(0).toElement();
397  const QStringList &list = element.attribute("value").split(",");
398 
399  if(list.count() == 4)
400  {
401  return QRect(list[0].toInt() < 0 ? 0 : list[0].toInt(),
402  list[1].toInt() < 0 ? 0 : list[1].toInt(),
403  list[2].toInt(),
404  list[3].toInt());
405  }
406  else
407  {
408  return QRect(0, 0, WINDOW_WIDTH_MIN, WINDOW_HEIGHT_MIN);
409  }
410 }
411 
413 {
414  const QStringList &point = readAttributeByTagName("lrcDGeometry").split(",");
415  if(point.count() != 2)
416  {
417  return QPoint();
418  }
419  return QPoint(point[0].toInt(), point[1].toInt());
420 }
The class of the ttk xml interface.
QRect readWindowGeometry() const
QDomDocument * m_document
#define TTK_APP_NAME
Definition: ttkobject.h:25
QDomElement writeDomElement(QDomElement &element, const QString &node) const
void createProcessingInstruction() const
QDomElement createRoot(const QString &node) const
TTK_MODULE_EXPORT QString lrcDirPrefix()
QString readAttributeByTagName(const QString &tagName, const QString &attrName="value") const
void save() const
#define WINDOW_WIDTH_MIN
Definition: musicobject.h:167
TTK_MODULE_EXPORT QString musicDirPrefix()
#define TTK_CONFIG_VERSION_STR
Definition: ttkversion.h:172
QPoint readShowDesktopLrcGeometry() const
#define WINDOW_HEIGHT_MIN
Definition: musicobject.h:168
#define G_SETTING_PTR