summaryrefslogtreecommitdiffstats
path: root/playerwidget.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'playerwidget.cpp')
-rw-r--r--playerwidget.cpp49
1 files changed, 34 insertions, 15 deletions
diff --git a/playerwidget.cpp b/playerwidget.cpp
index ff5633d..60cbe8b 100644
--- a/playerwidget.cpp
+++ b/playerwidget.cpp
@@ -811,7 +811,7 @@ void PlayerWidget::doPopulateByFavorites(){
mView->setModel(mViewModel);
mCurrentModel = mViewModel;
mViewModel->clear();
- mViewModel->setHorizontalHeaderLabels(QStringList() << tr("Favorites"));
+ mViewModel->setHorizontalHeaderLabels(QStringList() << tr("Song") << tr("Album") << tr("Artist"));
QStandardItem *root = mViewModel->invisibleRootItem();
emit message(QString(tr("Populating by Favorites... Please wait!")));
qApp->processEvents();
@@ -827,26 +827,45 @@ void PlayerWidget::populateByFavorites(QStandardItem *parent){
QSqlDatabase db = QSqlDatabase::database("beetplayerdb");
QStandardItem *root = parent;
QIcon songIcon(":/song.png");
- QSqlQuery favQ(db);
- favQ.prepare("SELECT sipos, persistent_favorites.ttitle, tfullpath, igenres_id, artists.tartists_name, albums.talbum_name, ilength FROM songs, artists, albums, persistent_favorites WHERE persistent_favorites.tartist_name = artists.tartists_name AND persistent_favorites.talbum_name = albums.talbum_name AND persistent_favorites.ttitle = songs.ttitle ORDER BY tartists_name");
- favQ.exec();
- while(favQ.next()){
+ QSqlQuery favQ1(db);
+ favQ1.prepare("SELECT tartist_name, talbum_name, ttitle FROM persistent_favorites");
+ 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");
+ favQ1.exec();
+ while(favQ1.next()){
QStandardItem *curSong = new QStandardItem;
+ QStandardItem *curAlbum = new QStandardItem;
+ QStandardItem *curArtist = new QStandardItem;
curSong->setEditable(false);
curSong->setFont(QFont("courier"));
- QString songText = QString(tr("%1 - %2 (%3)")).arg(favQ.value(4).toString()).arg(favQ.value(1).toString()).arg(favQ.value(5).toString());
- curSong->setText(songText);
+ favQ2.bindValue(":song", favQ1.value(2));
+ favQ2.bindValue(":album", favQ1.value(1));
+ favQ2.bindValue(":artist", favQ1.value(0));
+ favQ2.exec();
+ favQ2.next();
+ curSong->setText(favQ1.value(2).toString());
curSong->setIcon(songIcon);
curSong->setData(Song, TypeRole);
- curSong->setData(favQ.value(0), IdRole);
- curSong->setData(favQ.value(2), FullPathRole);
- curSong->setData(favQ.value(3), GenreRole);
- curSong->setData(favQ.value(4), ArtistRole);
- curSong->setData(favQ.value(1), TitleRole);
- curSong->setData(favQ.value(5), AlbumRole);
- curSong->setData(favQ.value(6), LengthRole);
- root->appendRow(curSong);
+ 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);
+ curAlbum->setText(favQ1.value(1).toString());
+ curAlbum->setFont(QFont("courier"));
+ curAlbum->setEditable(false);
+ curArtist->setText(favQ1.value(0).toString());
+ curArtist->setFont(QFont("courier"));
+ curArtist->setEditable(false);
+ root->appendRow(QList<QStandardItem*>() << curSong << curAlbum << curArtist);
}
+ mView->resizeColumnToContents(2);
+ mView->resizeColumnToContents(1);
+ mView->resizeColumnToContents(0);
+ mView->setSortingEnabled(true);
+ mView->sortByColumn(0, Qt::AscendingOrder);
}
void PlayerWidget::doModelChanged(){