From 171c5c661b40cfec59719ef27db3446010d67ad5 Mon Sep 17 00:00:00 2001 From: Arno Date: Sat, 4 Mar 2017 07:37:14 +0100 Subject: Change artwork Add icons for genres, songs, albums and artists. As it turns out, you really should use the copy constructor of QIcon. Speeds up things considerably! --- playerwidget.cpp | 33 +++++++++++++++++++++++---------- 1 file changed, 23 insertions(+), 10 deletions(-) (limited to 'playerwidget.cpp') diff --git a/playerwidget.cpp b/playerwidget.cpp index 800c142..d3d0191 100644 --- a/playerwidget.cpp +++ b/playerwidget.cpp @@ -229,6 +229,9 @@ void PlayerWidget::populateByArtist(QStandardItem *parent, const QString &filter albumQ.prepare("SELECT DISTINCT(songs.ialbums_id), talbum_name, siyear FROM songs, albums WHERE songs.iartists_id = :artistid AND songs.ialbums_id = albums.ialbums_id ORDER BY siyear ASC"); QSqlQuery songQ(db); songQ.prepare("SELECT sipos, ttitle, tfullpath, igenres_id FROM songs WHERE ialbums_id = :alid AND iartists_id = :arid ORDER BY sipos ASC"); + QIcon songIcon(":/song.png"); + QIcon albumIcon(":/album.png"); + QIcon artistIcon(":/artist.png"); //read data artistsQ.exec(); @@ -236,8 +239,8 @@ void PlayerWidget::populateByArtist(QStandardItem *parent, const QString &filter QStandardItem *curArtist = new QStandardItem; curArtist->setEditable(false); curArtist->setFont(QFont("courier")); - QString artistText = QString(tr("%1 %2")).arg(QString("🅐")).arg(artistsQ.value(1).toString()); //I guess this will bite me! - curArtist->setText(artistText); + curArtist->setText(artistsQ.value(1).toString()); + curArtist->setIcon(artistIcon); curArtist->setData(Artist, TypeRole); curArtist->setData(artistsQ.value(0).toInt(), IdRole); root->appendRow(curArtist); @@ -247,8 +250,9 @@ void PlayerWidget::populateByArtist(QStandardItem *parent, const QString &filter QStandardItem *curAlbum = new QStandardItem; curAlbum->setEditable(false); curAlbum->setFont(QFont("courier")); - QString albumText = QString(tr("%1 %2 - %3")).arg(QChar(0x29BE)).arg(QString::number(albumQ.value(2).toInt())).arg(albumQ.value(1).toString()); + QString albumText = QString(tr("%1 - %2")).arg(QString::number(albumQ.value(2).toInt())).arg(albumQ.value(1).toString()); curAlbum->setText(albumText); + curAlbum->setIcon(albumIcon); curAlbum->setData(Album, TypeRole); curAlbum->setData(albumQ.value(0), IdRole); curArtist->appendRow(curAlbum); @@ -259,8 +263,9 @@ void PlayerWidget::populateByArtist(QStandardItem *parent, const QString &filter QStandardItem *curSong = new QStandardItem; curSong->setEditable(false); curSong->setFont(QFont("courier")); - QString songText = QString(tr("%1 %2 - %3")).arg(QChar(0x266C)).arg(songQ.value(0).toInt(), 3, 10, QChar('0')).arg(songQ.value(1).toString()); + QString songText = QString(tr("%1 - %2")).arg(songQ.value(0).toInt(), 3, 10, QChar('0')).arg(songQ.value(1).toString()); curSong->setText(songText); + curSong->setIcon(songIcon); curSong->setData(Song, TypeRole); curSong->setData(songQ.value(0), IdRole); curSong->setData(songQ.value(2), FullPathRole); @@ -277,6 +282,7 @@ void PlayerWidget::populateByArtist(QStandardItem *parent, const QString &filter void PlayerWidget::populateBySong(QStandardItem *parent, const QString &filter){ QSqlDatabase db = QSqlDatabase::database("beetplayerdb"); QStandardItem *root = parent; + QIcon songIcon(":/song.png"); QSqlQuery songQ = QSqlQuery(db); songQ.prepare("SELECT sipos, ttitle, tfullpath, igenres_id, artists.tartists_name, albums.talbum_name FROM songs, artists, albums WHERE ttitle ~ :f AND songs.iartists_id = artists.iartists_id and songs.ialbums_id = albums.ialbums_id ORDER BY ttitle ASC"); songQ.bindValue(":f", filter); @@ -285,8 +291,9 @@ void PlayerWidget::populateBySong(QStandardItem *parent, const QString &filter){ QStandardItem *curSong = new QStandardItem; curSong->setEditable(false); curSong->setFont(QFont("courier")); - QString songText = QString(tr("%1 %2 (%3)")).arg(QChar(0x266C)).arg(songQ.value(1).toString()).arg(songQ.value(4).toString()); + QString songText = QString(tr("%1 (%2)")).arg(songQ.value(1).toString()).arg(songQ.value(4).toString()); curSong->setText(songText); + curSong->setIcon(songIcon); curSong->setData(Song, TypeRole); curSong->setData(songQ.value(0), IdRole); curSong->setData(songQ.value(2), FullPathRole); @@ -301,6 +308,8 @@ void PlayerWidget::populateBySong(QStandardItem *parent, const QString &filter){ void PlayerWidget::populateByGenre(QStandardItem *parent, const QString &filter){ QSqlDatabase db = QSqlDatabase::database("beetplayerdb"); QStandardItem *root = parent; + QIcon songIcon(":/song.png"); + QIcon genreIcon(":/genre.png"); QSqlQuery genreQ(db); genreQ.prepare("SELECT igenres_id, tgenres_name FROM genres WHERE tgenres_name ~ :f"); genreQ.bindValue(":f", filter); @@ -309,8 +318,8 @@ void PlayerWidget::populateByGenre(QStandardItem *parent, const QString &filter) QStandardItem *curGenre = new QStandardItem; curGenre->setEditable(false); curGenre->setFont(QFont("courier")); - QString genreText = QString(tr("%1 %2")).arg(QString("🅖")).arg(genreQ.value(1).toString()); - curGenre->setText(genreText); + curGenre->setText(genreQ.value(1).toString()); + curGenre->setIcon(genreIcon); curGenre->setData(Genre, TypeRole); curGenre->setData(genreQ.value(0), IdRole); root->appendRow(curGenre); @@ -322,8 +331,9 @@ void PlayerWidget::populateByGenre(QStandardItem *parent, const QString &filter) QStandardItem *curSong = new QStandardItem; curSong->setEditable(false); curSong->setFont(QFont("courier")); - QString songText = QString(tr("%1 %2 (%3)")).arg(QChar(0x266C)).arg(songQ.value(1).toString()).arg(songQ.value(4).toString()); + QString songText = QString(tr("%1 (%2)")).arg(songQ.value(1).toString()).arg(songQ.value(4).toString()); curSong->setText(songText); + curSong->setIcon(songIcon); curSong->setData(Song, TypeRole); curSong->setData(songQ.value(0), IdRole); curSong->setData(songQ.value(2), FullPathRole); @@ -353,10 +363,11 @@ void PlayerWidget::addSong(const QModelIndex &idx){ QString title = idx.data(TitleRole).toString(); QString artist = idx.data(ArtistRole).toString(); QString album = idx.data(AlbumRole).toString(); - QString display = QString(tr("%1 - %2 - %3 - %4")).arg(QChar(0x266C)).arg(artist).arg(title).arg(album); + QString display = QString(tr("%1 - %2 - %3")).arg(artist).arg(title).arg(album); QStandardItem *item = new QStandardItem; item->setFont(QFont("courier")); item->setText(display); + item->setIcon(QIcon(":/song.png")); item->setData(idx.data(FullPathRole), FullPathRole); root->appendRow(item); } @@ -445,16 +456,18 @@ void PlayerWidget::randomPlay(){ mPlayListModel->clear(); mPlayListModel->setHorizontalHeaderLabels(QStringList() << "Title"); QStandardItem *root = mPlayListModel->invisibleRootItem(); + QIcon songIcon(":/song.png"); QSqlDatabase db = QSqlDatabase::database("beetplayerdb"); QSqlQuery randomQ(db); randomQ.prepare("SELECT sipos, ttitle, tfullpath, igenres_id, artists.tartists_name, albums.talbum_name FROM songs, artists, albums WHERE songs.iartists_id = artists.iartists_id AND songs.ialbums_id = albums.ialbums_id ORDER BY random() LIMIT 1000"); randomQ.exec(); while(randomQ.next()){ - QString display = QString(tr("%1 - %2 - %3 - %4")).arg(QChar(0x266C)).arg(randomQ.value(4).toString()).arg(randomQ.value(1).toString()).arg(randomQ.value(5).toString()); + QString display = QString(tr("%1 - %2 - %3")).arg(randomQ.value(4).toString()).arg(randomQ.value(1).toString()).arg(randomQ.value(5).toString()); QStandardItem *item = new QStandardItem; item->setEditable(false); item->setFont(QFont("courier")); item->setText(display); + item->setIcon(songIcon); item->setData(randomQ.value(2), FullPathRole); root->appendRow(item); } -- cgit v1.2.3-70-g09d2