diff options
author | Arno <arno@disconnect.de> | 2017-03-04 07:37:14 +0100 |
---|---|---|
committer | Arno <arno@disconnect.de> | 2017-03-04 07:37:14 +0100 |
commit | 171c5c661b40cfec59719ef27db3446010d67ad5 (patch) | |
tree | 9f6d4a8b9db5c865163584e01554af06cd72043b /playerwidget.cpp | |
parent | 078d126c87e3f8fb811dce8a0dfb1fb2fcf83d93 (diff) | |
download | BeetPlayer-171c5c661b40cfec59719ef27db3446010d67ad5.tar.gz BeetPlayer-171c5c661b40cfec59719ef27db3446010d67ad5.tar.bz2 BeetPlayer-171c5c661b40cfec59719ef27db3446010d67ad5.zip |
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!
Diffstat (limited to 'playerwidget.cpp')
-rw-r--r-- | playerwidget.cpp | 33 |
1 files changed, 23 insertions, 10 deletions
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); } |