11 : m_sort(
Sort::ByFileName),
15 m_addTimeStr(TTK_DEFAULT_STR),
17 m_name(TTK_DEFAULT_STR),
18 m_path(TTK_DEFAULT_STR),
19 m_format(TTK_DEFAULT_STR),
20 m_duration(TTK_DEFAULT_STR)
40 m_name =
name.isEmpty() ? fin.completeBaseName() :
name;
43 m_addTime = fin.lastModified().toMSecsSinceEpoch();
44 m_duration = duration;
45 m_addTimeStr = QString::number(m_addTime);
61 return m_path == other.m_path;
68 case Sort::ByFileName:
return m_name < other.m_name;
69 case Sort::BySinger:
return artist() < other.artist();
70 case Sort::ByFileSize:
return m_size < other.m_size;
71 case Sort::ByAddTime:
return m_addTime < other.m_addTime;
72 case Sort::ByDuration:
return m_duration < other.m_duration;
73 case Sort::ByPlayCount:
return m_playCount < other.m_playCount;
83 case Sort::ByFileName:
return m_name > other.m_name;
84 case Sort::BySinger:
return artist() > other.artist();
85 case Sort::ByFileSize:
return m_size > other.m_size;
86 case Sort::ByAddTime:
return m_addTime > other.m_addTime;
87 case Sort::ByDuration:
return m_duration > other.m_duration;
88 case Sort::ByPlayCount:
return m_playCount > other.m_playCount;
107 return (title.isEmpty() || artist.isEmpty()) ? artist + title : artist +
" - " + title;
115 const int index = name.indexOf(key) + 1;
116 return name.right(name.length() - index).trimmed();
126 const int index = name.indexOf(key);
127 return name.left(index).trimmed();
143 for(
int i = 0; i <
size; ++i)
157 if(!songs.isEmpty() && !meta.
lyrics().isEmpty())
160 if(file.open(QIODevice::WriteOnly))
162 file.write(meta.
lyrics().toUtf8());
181 const QString &
id = path.section(
"#", -1);
185 if(QFile::exists(cachePath))
TTK_MODULE_EXPORT QString generateSongName(const QString &title, const QString &artist)
TTK_MODULE_EXPORT QString generateSongArtist(const QString &name, const QString &key=TTK_DEFAULT_STR)
TTK_MODULE_EXPORT bool playlistRowValid(int index)
TTK_MODULE_EXPORT QString trackRelatedPath(const QString &path)
static constexpr wchar_t key[]
#define MUSIC_RECENT_LIST
TTK_MODULE_EXPORT QString generateSongTitle(const QString &name, const QString &key=TTK_DEFAULT_STR)
TTK_MODULE_EXPORT QString sizeByteToLabel(qint64 size)
QString artist() const noexcept
TTK_MODULE_EXPORT QString generateNetworkSongPath(const QString &path)
TTK_MODULE_EXPORT QString lrcDirPrefix()
TTK_MODULE_EXPORT QString generateNetworkSongTime(const QString &path)
TTK_MODULE_EXPORT QStringList split(const QString &value, const QString &key=TTK_DEFAULT_STR)
static QString pathFromUrl(const QString &url, int *track=nullptr)
#define MUSIC_NETWORK_LIST
#define MUSIC_LOVEST_LIST
bool operator<(const MusicSong &other) const noexcept
bool operator==(const MusicSong &other) const noexcept
#define TTK_FILE_SUFFIX(fin)
The class of the music song info.
QString title() const noexcept
bool operator>(const MusicSong &other) const noexcept
TTK_MODULE_EXPORT bool isNetworkUrl(const QString &path)
TTK_MODULE_EXPORT MusicSongList generateSongList(const QString &path)