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