Song handling simplification

Add languge field to songs

Add lyric display
This commit is contained in:
Carl Philipp Klemm 2026-03-05 00:50:23 +01:00
parent 134e827053
commit 1fec61140c
13 changed files with 384 additions and 231 deletions

View file

@ -4,15 +4,10 @@
#include <QAbstractListModel>
#include <QList>
#include <QString>
#include <QRandomGenerator>
#include <cstdint>
class SongItem {
public:
QString caption;
QString lyrics;
SongItem(const QString &caption = "", const QString &lyrics = "")
: caption(caption), lyrics(lyrics) {}
};
#include "SongItem.h"
class SongListModel : public QAbstractTableModel
{
@ -22,7 +17,8 @@ public:
enum Roles {
CaptionRole = Qt::UserRole + 1,
LyricsRole = Qt::UserRole + 2,
IsPlayingRole = Qt::UserRole + 3
VocalLanguageRole = Qt::UserRole + 3,
IsPlayingRole = Qt::UserRole + 4
};
explicit SongListModel(QObject *parent = nullptr);
@ -47,6 +43,10 @@ public:
void setPlayingIndex(int index);
int playingIndex() const { return m_playingIndex; }
// Find song by unique ID
int findSongIndexById(uint64_t uniqueId) const;
int songCount();
private:
QList<SongItem> songList;
int m_playingIndex;