TTKMusicPlayer  3.7.0.0
TTKMusicPlayer imitates Kugou UI, the music player uses of qmmp core library based on Qt for windows and linux
musicbackupmodule.cpp
Go to the documentation of this file.
1 #include "musicbackupmodule.h"
2 #include "musicapplication.h"
3 #include "musicsettingmanager.h"
6 #include "musicfileutils.h"
7 
8 MusicAbstractBackup::MusicAbstractBackup(int interval, QObject *parent)
9  : QObject(parent)
10 {
11  m_timer.setInterval(interval);
12  connect(&m_timer, SIGNAL(timeout()), SLOT(runBackup()));
13 }
14 
16 {
17  m_timer.start();
18 }
19 
21 {
22  m_timer.stop();
23 }
24 
25 
27  : MusicAbstractBackup(1000 * 60 * 10 /*10 minutes*/, parent)
28 {
29 
30 }
31 
33 {
34  const QString &root = APPBACKUP_DIR_FULL + "playlist";
35  const QString &child = QDate::currentDate().toString(TTK_DATE_FORMAT);
36 
37  QDir dir(root);
38  dir.mkpath(child);
39 
40  const QFileInfoList &dirList = dir.entryInfoList(QDir::Dirs | QDir::NoDotAndDotDot, QDir::Time | QDir::Reversed);
41  if(dirList.count() > 7)
42  {
43  TTK::File::removeRecursively(dirList.front().absoluteFilePath());
44  }
45 
46  dir.cd(child);
47 
48  MusicTKPLConfigManager manager;
49  if(!manager.load(QString("%1/%2%3").arg(dir.absolutePath()).arg(TTKDateTime::currentTimestamp()).arg(TKF_FILE)))
50  {
51  return;
52  }
53 
54  manager.writeBuffer(MusicApplication::instance()->m_songTreeWidget->items());
55 
56  const QFileInfoList &fileList = dir.entryInfoList(QDir::Files, QDir::Time | QDir::Reversed);
57  if(fileList.count() > 7)
58  {
59  QFile::remove(fileList.front().absoluteFilePath());
60  }
61 }
62 
63 
65 {
66  m_modules.push_back(new MusicPlaylistBackupModule);
67 }
68 
70 {
71  qDeleteAll(m_modules);
72 }
73 
75 {
77  {
78  m_modules[0]->start();
79  }
80  else
81  {
82  m_modules[0]->stop();
83  }
84 }
static MusicApplication * instance()
QList< MusicAbstractBackup * > m_modules
The class of the abstract backup module.
The class of the playlist backup module.
MusicPlaylistBackupModule(QObject *parent=nullptr)
#define APPBACKUP_DIR_FULL
Definition: musicobject.h:122
virtual void runBackup() overridefinal
virtual void runBackup()=0
MusicAbstractBackup(int interval, QObject *parent=nullptr)
#define TTK_DATE_FORMAT
Definition: ttkglobal.h:231
static qint64 currentTimestamp()
Definition: ttktime.cpp:249
The class of the tkpl config manager.
bool load(const QString &name)
TTK_MODULE_EXPORT bool removeRecursively(const QString &dir, bool self=true)
virtual bool writeBuffer(const MusicSongItemList &items) overridefinal
#define TKF_FILE
Definition: musicobject.h:57
#define G_SETTING_PTR