diff options
author | Arno <arno@disconnect.de> | 2018-02-17 07:03:44 +0100 |
---|---|---|
committer | Arno <arno@disconnect.de> | 2018-02-17 07:03:44 +0100 |
commit | 3095a50fe57b9ccefca133106651f3bc2c3d7895 (patch) | |
tree | e8dadeb57be1a78f39592cda4307536303fc18dd /collectionfavoritesview.cpp | |
parent | ca1d008ebaa5a28284cdba97046b48be421ccacd (diff) | |
download | BeetPlayer-3095a50fe57b9ccefca133106651f3bc2c3d7895.tar.gz BeetPlayer-3095a50fe57b9ccefca133106651f3bc2c3d7895.tar.bz2 BeetPlayer-3095a50fe57b9ccefca133106651f3bc2c3d7895.zip |
New class: CollectionFavoritesView
Basically the same as populateByFavorites, just wrapped in a shiny, new
CollectionWidget.
Diffstat (limited to 'collectionfavoritesview.cpp')
-rw-r--r-- | collectionfavoritesview.cpp | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/collectionfavoritesview.cpp b/collectionfavoritesview.cpp new file mode 100644 index 0000000..d57d0d2 --- /dev/null +++ b/collectionfavoritesview.cpp @@ -0,0 +1,43 @@ +#include <QSqlDatabase> +#include <QSqlQuery> +#include <QStandardItem> + +#include "collectionfavoritesview.h" + +CollectionFavoritesView::CollectionFavoritesView(QWidget *parent) : CollectionWidget(parent) { +} + +void CollectionFavoritesView::populate(){ + model()->clear(); + model()->setHorizontalHeaderLabels(headers()); + QSqlDatabase db = QSqlDatabase::database("beetplayerdb"); + QStandardItem *root = model()->invisibleRootItem(); + QIcon songIcon(":/song.png"); + QSqlQuery favQ2(db); + favQ2.prepare("SELECT sipos, tfullpath, igenres_id, artists.tartists_name, albums.talbum_name, ilength from songs, artists, albums WHERE songs.ttitle = :song AND albums.talbum_name = :album AND albums.ialbums_id = songs.ialbums_id AND artists.tartists_name = :artist AND artists.iartists_id = songs.iartists_id"); + QSqlQuery favQ1("SELECT tartist_name, talbum_name, ttitle FROM persistent_favorites", db); + while(favQ1.next()){ + QStandardItem *curSong = new QStandardItem; + curSong->setEditable(false); + curSong->setFont(QFont("courier")); + favQ2.bindValue(":song", favQ1.value(2)); + favQ2.bindValue(":album", favQ1.value(1)); + favQ2.bindValue(":artist", favQ1.value(0)); + favQ2.exec(); + favQ2.next(); + QFontMetrics fm(QFont("courier")); + QString songTitle = fm.elidedText(favQ1.value(2).toString(), Qt::ElideRight, fm.width('X') * 28); + QString songText = QString("%1 - %2 - %3").arg(favQ1.value(0).toString(), -25).arg(songTitle, -30).arg(favQ1.value(1).toString()); + curSong->setText(songText); + curSong->setIcon(songIcon); + curSong->setData(Song, TypeRole); + curSong->setData(favQ2.value(0), IdRole); + curSong->setData(favQ2.value(1), FullPathRole); + curSong->setData(favQ2.value(2), GenreRole); + curSong->setData(favQ1.value(0), ArtistRole); + curSong->setData(favQ1.value(2), TitleRole); + curSong->setData(favQ1.value(1), AlbumRole); + curSong->setData(favQ2.value(5), LengthRole); + root->appendRow(QList<QStandardItem*>() << curSong); + } +} |