diff --git a/autotests/manageheaderbartest.h b/autotests/manageheaderbartest.h --- a/autotests/manageheaderbartest.h +++ b/autotests/manageheaderbartest.h @@ -65,25 +65,9 @@ void simpleInitialCase(); - void setCurrentTrackCase(); + void setCurrentTrackWithInvalidData(); - void setCurrentTrackCaseFromNewAlbum(); - - void completeCase(); - - void setCurrentTrackAndInvalidCase(); - - void setCurrentTrackAndRemoveItCase(); - - void insertBeforeCurrentTrack(); - - void moveCurrentTrack(); - - void moveAnotherTrack(); - - void setCurrentTrackTest(); - - void setPlayListModelTest(); + void setCurrentTrackWithData(); }; diff --git a/autotests/manageheaderbartest.cpp b/autotests/manageheaderbartest.cpp --- a/autotests/manageheaderbartest.cpp +++ b/autotests/manageheaderbartest.cpp @@ -42,17 +42,14 @@ void ManageHeaderBarTest::initTestCase() { - qRegisterMetaType>("QHash"); - qRegisterMetaType>("QVector"); - qRegisterMetaType>("QHash"); + } void ManageHeaderBarTest::simpleInitialCase() { ManageHeaderBar myControl; QCOMPARE(myControl.currentTrack().isValid(), false); - QCOMPARE(myControl.playListModel(), static_cast(nullptr)); QCOMPARE(myControl.artistRole(), static_cast(Qt::DisplayRole)); QCOMPARE(myControl.titleRole(), static_cast(Qt::DisplayRole)); QCOMPARE(myControl.albumRole(), static_cast(Qt::DisplayRole)); @@ -64,17 +61,13 @@ QCOMPARE(myControl.album().toString().isEmpty(), true); QCOMPARE(myControl.image().toString().isEmpty(), true); QCOMPARE(myControl.isValid(), false); - QCOMPARE(myControl.remainingTracks(), 0); } -void ManageHeaderBarTest::setCurrentTrackCase() +void ManageHeaderBarTest::setCurrentTrackWithInvalidData() { - QStringListModel myPlayList; - ManageHeaderBar myControl; QSignalSpy currentTrackChangedSpy(&myControl, &ManageHeaderBar::currentTrackChanged); - QSignalSpy playListModelChangedSpy(&myControl, &ManageHeaderBar::playListModelChanged); QSignalSpy artistRoleChangedSpy(&myControl, &ManageHeaderBar::artistRoleChanged); QSignalSpy titleRoleChangedSpy(&myControl, &ManageHeaderBar::titleRoleChanged); QSignalSpy albumRoleChangedSpy(&myControl, &ManageHeaderBar::albumRoleChanged); @@ -87,10 +80,8 @@ QSignalSpy imageChangedSpy(&myControl, &ManageHeaderBar::imageChanged); QSignalSpy albumIdChangedSpy(&myControl, &ManageHeaderBar::albumIdChanged); QSignalSpy isValidChangedSpy(&myControl, &ManageHeaderBar::isValidChanged); - QSignalSpy remainingTracksChangedSpy(&myControl, &ManageHeaderBar::remainingTracksChanged); QCOMPARE(myControl.currentTrack().isValid(), false); - QCOMPARE(myControl.playListModel(), static_cast(nullptr)); QCOMPARE(myControl.artistRole(), static_cast(Qt::DisplayRole)); QCOMPARE(myControl.titleRole(), static_cast(Qt::DisplayRole)); QCOMPARE(myControl.albumRole(), static_cast(Qt::DisplayRole)); @@ -102,12 +93,8 @@ QCOMPARE(myControl.album().toString().isEmpty(), true); QCOMPARE(myControl.image().toString().isEmpty(), true); QCOMPARE(myControl.isValid(), false); - QCOMPARE(myControl.remainingTracks(), 0); - - myControl.setPlayListModel(&myPlayList); QCOMPARE(currentTrackChangedSpy.count(), 0); - QCOMPARE(playListModelChangedSpy.count(), 1); QCOMPARE(artistRoleChangedSpy.count(), 0); QCOMPARE(titleRoleChangedSpy.count(), 0); QCOMPARE(albumRoleChangedSpy.count(), 0); @@ -120,14 +107,10 @@ QCOMPARE(imageChangedSpy.count(), 0); QCOMPARE(albumIdChangedSpy.count(), 0); QCOMPARE(isValidChangedSpy.count(), 0); - QCOMPARE(remainingTracksChangedSpy.count(), 0); - QCOMPARE(myControl.playListModel(), &myPlayList); + myControl.setCurrentTrack(QPersistentModelIndex()); - QCOMPARE(myPlayList.insertRows(0, 3), true); - - QCOMPARE(currentTrackChangedSpy.count(), 0); - QCOMPARE(playListModelChangedSpy.count(), 1); + QCOMPARE(currentTrackChangedSpy.count(), 1); QCOMPARE(artistRoleChangedSpy.count(), 0); QCOMPARE(titleRoleChangedSpy.count(), 0); QCOMPARE(albumRoleChangedSpy.count(), 0); @@ -140,37 +123,15 @@ QCOMPARE(imageChangedSpy.count(), 0); QCOMPARE(albumIdChangedSpy.count(), 0); QCOMPARE(isValidChangedSpy.count(), 0); - QCOMPARE(remainingTracksChangedSpy.count(), 0); - - myControl.setCurrentTrack(myPlayList.index(1, 0)); - - QCOMPARE(currentTrackChangedSpy.count(), 1); - QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(artistRoleChangedSpy.count(), 0); - QCOMPARE(titleRoleChangedSpy.count(), 0); - QCOMPARE(albumRoleChangedSpy.count(), 0); - QCOMPARE(imageRoleChangedSpy.count(), 0); - QCOMPARE(albumIdRoleChangedSpy.count(), 0); - QCOMPARE(isValidRoleChangedSpy.count(), 0); - QCOMPARE(artistChangedSpy.count(), 1); - QCOMPARE(titleChangedSpy.count(), 1); - QCOMPARE(albumChangedSpy.count(), 1); - QCOMPARE(imageChangedSpy.count(), 1); - QCOMPARE(albumIdChangedSpy.count(), 0); - QCOMPARE(isValidChangedSpy.count(), 0); - QCOMPARE(remainingTracksChangedSpy.count(), 1); - - QCOMPARE(myControl.currentTrack(), QPersistentModelIndex(myPlayList.index(1, 0))); } -void ManageHeaderBarTest::setCurrentTrackCaseFromNewAlbum() +void ManageHeaderBarTest::setCurrentTrackWithData() { QStringListModel myPlayList; ManageHeaderBar myControl; QSignalSpy currentTrackChangedSpy(&myControl, &ManageHeaderBar::currentTrackChanged); - QSignalSpy playListModelChangedSpy(&myControl, &ManageHeaderBar::playListModelChanged); QSignalSpy artistRoleChangedSpy(&myControl, &ManageHeaderBar::artistRoleChanged); QSignalSpy titleRoleChangedSpy(&myControl, &ManageHeaderBar::titleRoleChanged); QSignalSpy albumRoleChangedSpy(&myControl, &ManageHeaderBar::albumRoleChanged); @@ -183,10 +144,8 @@ QSignalSpy imageChangedSpy(&myControl, &ManageHeaderBar::imageChanged); QSignalSpy albumIdChangedSpy(&myControl, &ManageHeaderBar::albumIdChanged); QSignalSpy isValidChangedSpy(&myControl, &ManageHeaderBar::isValidChanged); - QSignalSpy remainingTracksChangedSpy(&myControl, &ManageHeaderBar::remainingTracksChanged); QCOMPARE(myControl.currentTrack().isValid(), false); - QCOMPARE(myControl.playListModel(), static_cast(nullptr)); QCOMPARE(myControl.artistRole(), static_cast(Qt::DisplayRole)); QCOMPARE(myControl.titleRole(), static_cast(Qt::DisplayRole)); QCOMPARE(myControl.albumRole(), static_cast(Qt::DisplayRole)); @@ -198,12 +157,8 @@ QCOMPARE(myControl.album().toString().isEmpty(), true); QCOMPARE(myControl.image().toString().isEmpty(), true); QCOMPARE(myControl.isValid(), false); - QCOMPARE(myControl.remainingTracks(), 0); - - myControl.setPlayListModel(&myPlayList); QCOMPARE(currentTrackChangedSpy.count(), 0); - QCOMPARE(playListModelChangedSpy.count(), 1); QCOMPARE(artistRoleChangedSpy.count(), 0); QCOMPARE(titleRoleChangedSpy.count(), 0); QCOMPARE(albumRoleChangedSpy.count(), 0); @@ -216,14 +171,10 @@ QCOMPARE(imageChangedSpy.count(), 0); QCOMPARE(albumIdChangedSpy.count(), 0); QCOMPARE(isValidChangedSpy.count(), 0); - QCOMPARE(remainingTracksChangedSpy.count(), 0); - - QCOMPARE(myControl.playListModel(), &myPlayList); QCOMPARE(myPlayList.insertRows(0, 1), true); QCOMPARE(currentTrackChangedSpy.count(), 0); - QCOMPARE(playListModelChangedSpy.count(), 1); QCOMPARE(artistRoleChangedSpy.count(), 0); QCOMPARE(titleRoleChangedSpy.count(), 0); QCOMPARE(albumRoleChangedSpy.count(), 0); @@ -236,12 +187,10 @@ QCOMPARE(imageChangedSpy.count(), 0); QCOMPARE(albumIdChangedSpy.count(), 0); QCOMPARE(isValidChangedSpy.count(), 0); - QCOMPARE(remainingTracksChangedSpy.count(), 0); myControl.setCurrentTrack(myPlayList.index(0, 0)); QCOMPARE(currentTrackChangedSpy.count(), 1); - QCOMPARE(playListModelChangedSpy.count(), 1); QCOMPARE(artistRoleChangedSpy.count(), 0); QCOMPARE(titleRoleChangedSpy.count(), 0); QCOMPARE(albumRoleChangedSpy.count(), 0); @@ -253,2513 +202,11 @@ QCOMPARE(albumChangedSpy.count(), 1); QCOMPARE(imageChangedSpy.count(), 1); QCOMPARE(albumIdChangedSpy.count(), 0); - QCOMPARE(isValidChangedSpy.count(), 0); - QCOMPARE(remainingTracksChangedSpy.count(), 0); + QCOMPARE(isValidChangedSpy.count(), 0);; QCOMPARE(myControl.currentTrack(), QPersistentModelIndex(myPlayList.index(0, 0))); } -void ManageHeaderBarTest::completeCase() -{ - QStandardItemModel myPlayList; - - ManageHeaderBar myControl; - - QSignalSpy currentTrackChangedSpy(&myControl, &ManageHeaderBar::currentTrackChanged); - QSignalSpy playListModelChangedSpy(&myControl, &ManageHeaderBar::playListModelChanged); - QSignalSpy artistRoleChangedSpy(&myControl, &ManageHeaderBar::artistRoleChanged); - QSignalSpy titleRoleChangedSpy(&myControl, &ManageHeaderBar::titleRoleChanged); - QSignalSpy albumRoleChangedSpy(&myControl, &ManageHeaderBar::albumRoleChanged); - QSignalSpy imageRoleChangedSpy(&myControl, &ManageHeaderBar::imageRoleChanged); - QSignalSpy albumIdRoleChangedSpy(&myControl, &ManageHeaderBar::albumIdRoleChanged); - QSignalSpy isValidRoleChangedSpy(&myControl, &ManageHeaderBar::isValidRoleChanged); - QSignalSpy artistChangedSpy(&myControl, &ManageHeaderBar::artistChanged); - QSignalSpy titleChangedSpy(&myControl, &ManageHeaderBar::titleChanged); - QSignalSpy albumChangedSpy(&myControl, &ManageHeaderBar::albumChanged); - QSignalSpy imageChangedSpy(&myControl, &ManageHeaderBar::imageChanged); - QSignalSpy albumIdChangedSpy(&myControl, &ManageHeaderBar::albumIdChanged); - QSignalSpy isValidChangedSpy(&myControl, &ManageHeaderBar::isValidChanged); - QSignalSpy remainingTracksChangedSpy(&myControl, &ManageHeaderBar::remainingTracksChanged); - - QCOMPARE(myControl.currentTrack().isValid(), false); - QCOMPARE(myControl.playListModel(), static_cast(nullptr)); - QCOMPARE(myControl.artistRole(), static_cast(Qt::DisplayRole)); - QCOMPARE(myControl.titleRole(), static_cast(Qt::DisplayRole)); - QCOMPARE(myControl.albumRole(), static_cast(Qt::DisplayRole)); - QCOMPARE(myControl.imageRole(), static_cast(Qt::DisplayRole)); - QCOMPARE(myControl.albumIdRole(), static_cast(Qt::DisplayRole)); - QCOMPARE(myControl.isValidRole(), static_cast(Qt::DisplayRole)); - QCOMPARE(myControl.artist().toString().isEmpty(), true); - QCOMPARE(myControl.title().toString().isEmpty(), true); - QCOMPARE(myControl.album().toString().isEmpty(), true); - QCOMPARE(myControl.image().toString().isEmpty(), true); - QCOMPARE(myControl.isValid(), false); - QCOMPARE(myControl.remainingTracks(), 0); - - myControl.setArtistRole(ManageHeaderBarTest::ArtistRole); - - QCOMPARE(currentTrackChangedSpy.count(), 0); - QCOMPARE(playListModelChangedSpy.count(), 0); - QCOMPARE(artistRoleChangedSpy.count(), 1); - QCOMPARE(titleRoleChangedSpy.count(), 0); - QCOMPARE(albumRoleChangedSpy.count(), 0); - QCOMPARE(imageRoleChangedSpy.count(), 0); - QCOMPARE(albumIdRoleChangedSpy.count(), 0); - QCOMPARE(isValidRoleChangedSpy.count(), 0); - QCOMPARE(artistChangedSpy.count(), 0); - QCOMPARE(titleChangedSpy.count(), 0); - QCOMPARE(albumChangedSpy.count(), 0); - QCOMPARE(imageChangedSpy.count(), 0); - QCOMPARE(albumIdChangedSpy.count(), 0); - QCOMPARE(isValidChangedSpy.count(), 0); - QCOMPARE(remainingTracksChangedSpy.count(), 0); - - QCOMPARE(myControl.artistRole(), static_cast(ManageHeaderBarTest::ArtistRole)); - - myControl.setTitleRole(ManageHeaderBarTest::TitleRole); - - QCOMPARE(currentTrackChangedSpy.count(), 0); - QCOMPARE(playListModelChangedSpy.count(), 0); - QCOMPARE(artistRoleChangedSpy.count(), 1); - QCOMPARE(titleRoleChangedSpy.count(), 1); - QCOMPARE(albumRoleChangedSpy.count(), 0); - QCOMPARE(imageRoleChangedSpy.count(), 0); - QCOMPARE(albumIdRoleChangedSpy.count(), 0); - QCOMPARE(isValidRoleChangedSpy.count(), 0); - QCOMPARE(artistChangedSpy.count(), 0); - QCOMPARE(titleChangedSpy.count(), 0); - QCOMPARE(albumChangedSpy.count(), 0); - QCOMPARE(imageChangedSpy.count(), 0); - QCOMPARE(albumIdChangedSpy.count(), 0); - QCOMPARE(isValidChangedSpy.count(), 0); - QCOMPARE(remainingTracksChangedSpy.count(), 0); - - QCOMPARE(myControl.titleRole(), static_cast(ManageHeaderBarTest::TitleRole)); - - myControl.setAlbumRole(ManageHeaderBarTest::AlbumRole); - - QCOMPARE(currentTrackChangedSpy.count(), 0); - QCOMPARE(playListModelChangedSpy.count(), 0); - QCOMPARE(artistRoleChangedSpy.count(), 1); - QCOMPARE(titleRoleChangedSpy.count(), 1); - QCOMPARE(albumRoleChangedSpy.count(), 1); - QCOMPARE(imageRoleChangedSpy.count(), 0); - QCOMPARE(albumIdRoleChangedSpy.count(), 0); - QCOMPARE(isValidRoleChangedSpy.count(), 0); - QCOMPARE(artistChangedSpy.count(), 0); - QCOMPARE(titleChangedSpy.count(), 0); - QCOMPARE(albumChangedSpy.count(), 0); - QCOMPARE(imageChangedSpy.count(), 0); - QCOMPARE(albumIdChangedSpy.count(), 0); - QCOMPARE(isValidChangedSpy.count(), 0); - QCOMPARE(remainingTracksChangedSpy.count(), 0); - - QCOMPARE(myControl.albumRole(), static_cast(ManageHeaderBarTest::AlbumRole)); - - myControl.setImageRole(ManageHeaderBarTest::ImageRole); - - QCOMPARE(currentTrackChangedSpy.count(), 0); - QCOMPARE(playListModelChangedSpy.count(), 0); - QCOMPARE(artistRoleChangedSpy.count(), 1); - QCOMPARE(titleRoleChangedSpy.count(), 1); - QCOMPARE(albumRoleChangedSpy.count(), 1); - QCOMPARE(imageRoleChangedSpy.count(), 1); - QCOMPARE(albumIdRoleChangedSpy.count(), 0); - QCOMPARE(isValidRoleChangedSpy.count(), 0); - QCOMPARE(artistChangedSpy.count(), 0); - QCOMPARE(titleChangedSpy.count(), 0); - QCOMPARE(albumChangedSpy.count(), 0); - QCOMPARE(imageChangedSpy.count(), 0); - QCOMPARE(albumIdChangedSpy.count(), 0); - QCOMPARE(isValidChangedSpy.count(), 0); - QCOMPARE(remainingTracksChangedSpy.count(), 0); - - QCOMPARE(myControl.imageRole(), static_cast(ManageHeaderBarTest::ImageRole)); - - myControl.setAlbumIdRole(ManageHeaderBarTest::AlbumIdRole); - - QCOMPARE(currentTrackChangedSpy.count(), 0); - QCOMPARE(playListModelChangedSpy.count(), 0); - QCOMPARE(artistRoleChangedSpy.count(), 1); - QCOMPARE(titleRoleChangedSpy.count(), 1); - QCOMPARE(albumRoleChangedSpy.count(), 1); - QCOMPARE(imageRoleChangedSpy.count(), 1); - QCOMPARE(albumIdRoleChangedSpy.count(), 1); - QCOMPARE(isValidRoleChangedSpy.count(), 0); - QCOMPARE(artistChangedSpy.count(), 0); - QCOMPARE(titleChangedSpy.count(), 0); - QCOMPARE(albumChangedSpy.count(), 0); - QCOMPARE(imageChangedSpy.count(), 0); - QCOMPARE(albumIdChangedSpy.count(), 0); - QCOMPARE(isValidChangedSpy.count(), 0); - QCOMPARE(remainingTracksChangedSpy.count(), 0); - - QCOMPARE(myControl.albumIdRole(), static_cast(ManageHeaderBarTest::AlbumIdRole)); - - myControl.setIsValidRole(ManageHeaderBarTest::IsValidRole); - - QCOMPARE(currentTrackChangedSpy.count(), 0); - QCOMPARE(playListModelChangedSpy.count(), 0); - QCOMPARE(artistRoleChangedSpy.count(), 1); - QCOMPARE(titleRoleChangedSpy.count(), 1); - QCOMPARE(albumRoleChangedSpy.count(), 1); - QCOMPARE(imageRoleChangedSpy.count(), 1); - QCOMPARE(albumIdRoleChangedSpy.count(), 1); - QCOMPARE(isValidRoleChangedSpy.count(), 1); - QCOMPARE(artistChangedSpy.count(), 0); - QCOMPARE(titleChangedSpy.count(), 0); - QCOMPARE(albumChangedSpy.count(), 0); - QCOMPARE(imageChangedSpy.count(), 0); - QCOMPARE(albumIdChangedSpy.count(), 0); - QCOMPARE(isValidChangedSpy.count(), 0); - QCOMPARE(remainingTracksChangedSpy.count(), 0); - - QCOMPARE(myControl.isValidRole(), static_cast(ManageHeaderBarTest::IsValidRole)); - - myControl.setPlayListModel(&myPlayList); - - QCOMPARE(currentTrackChangedSpy.count(), 0); - QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(artistRoleChangedSpy.count(), 1); - QCOMPARE(titleRoleChangedSpy.count(), 1); - QCOMPARE(albumRoleChangedSpy.count(), 1); - QCOMPARE(imageRoleChangedSpy.count(), 1); - QCOMPARE(albumIdRoleChangedSpy.count(), 1); - QCOMPARE(isValidRoleChangedSpy.count(), 1); - QCOMPARE(artistChangedSpy.count(), 0); - QCOMPARE(titleChangedSpy.count(), 0); - QCOMPARE(albumChangedSpy.count(), 0); - QCOMPARE(imageChangedSpy.count(), 0); - QCOMPARE(albumIdChangedSpy.count(), 0); - QCOMPARE(isValidChangedSpy.count(), 0); - QCOMPARE(remainingTracksChangedSpy.count(), 0); - - QCOMPARE(myControl.playListModel(), &myPlayList); - - myPlayList.appendRow(new QStandardItem); - myPlayList.appendRow(new QStandardItem); - myPlayList.appendRow(new QStandardItem); - - QCOMPARE(currentTrackChangedSpy.count(), 0); - QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(artistRoleChangedSpy.count(), 1); - QCOMPARE(titleRoleChangedSpy.count(), 1); - QCOMPARE(albumRoleChangedSpy.count(), 1); - QCOMPARE(imageRoleChangedSpy.count(), 1); - QCOMPARE(albumIdRoleChangedSpy.count(), 1); - QCOMPARE(isValidRoleChangedSpy.count(), 1); - QCOMPARE(artistChangedSpy.count(), 0); - QCOMPARE(titleChangedSpy.count(), 0); - QCOMPARE(albumChangedSpy.count(), 0); - QCOMPARE(imageChangedSpy.count(), 0); - QCOMPARE(albumIdChangedSpy.count(), 0); - QCOMPARE(isValidChangedSpy.count(), 0); - QCOMPARE(remainingTracksChangedSpy.count(), 0); - - myControl.setCurrentTrack(myPlayList.index(1, 0)); - - QCOMPARE(currentTrackChangedSpy.count(), 1); - QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(artistRoleChangedSpy.count(), 1); - QCOMPARE(titleRoleChangedSpy.count(), 1); - QCOMPARE(albumRoleChangedSpy.count(), 1); - QCOMPARE(imageRoleChangedSpy.count(), 1); - QCOMPARE(albumIdRoleChangedSpy.count(), 1); - QCOMPARE(isValidRoleChangedSpy.count(), 1); - QCOMPARE(artistChangedSpy.count(), 0); - QCOMPARE(titleChangedSpy.count(), 0); - QCOMPARE(albumChangedSpy.count(), 0); - QCOMPARE(imageChangedSpy.count(), 0); - QCOMPARE(albumIdChangedSpy.count(), 0); - QCOMPARE(isValidChangedSpy.count(), 0); - QCOMPARE(remainingTracksChangedSpy.count(), 1); - - QCOMPARE(myControl.currentTrack(), QPersistentModelIndex(myPlayList.index(1, 0))); - QCOMPARE(myControl.remainingTracks(), 1); - - auto firstItem = myPlayList.item(0, 0); - firstItem->setData(QUrl::fromUserInput(QStringLiteral("file://0.mp3")), ManageHeaderBarTest::ResourceRole); - - QCOMPARE(currentTrackChangedSpy.count(), 1); - QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(artistRoleChangedSpy.count(), 1); - QCOMPARE(titleRoleChangedSpy.count(), 1); - QCOMPARE(albumRoleChangedSpy.count(), 1); - QCOMPARE(imageRoleChangedSpy.count(), 1); - QCOMPARE(albumIdRoleChangedSpy.count(), 1); - QCOMPARE(isValidRoleChangedSpy.count(), 1); - QCOMPARE(artistChangedSpy.count(), 0); - QCOMPARE(titleChangedSpy.count(), 0); - QCOMPARE(albumChangedSpy.count(), 0); - QCOMPARE(imageChangedSpy.count(), 0); - QCOMPARE(albumIdChangedSpy.count(), 0); - QCOMPARE(isValidChangedSpy.count(), 0); - QCOMPARE(remainingTracksChangedSpy.count(), 1); - - auto currentItem = myPlayList.item(1, 0); - currentItem->setData(QStringLiteral("artist1"), ManageHeaderBarTest::ArtistRole); - - QCOMPARE(currentTrackChangedSpy.count(), 1); - QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(artistRoleChangedSpy.count(), 1); - QCOMPARE(titleRoleChangedSpy.count(), 1); - QCOMPARE(albumRoleChangedSpy.count(), 1); - QCOMPARE(imageRoleChangedSpy.count(), 1); - QCOMPARE(albumIdRoleChangedSpy.count(), 1); - QCOMPARE(isValidRoleChangedSpy.count(), 1); - QCOMPARE(artistChangedSpy.count(), 1); - QCOMPARE(titleChangedSpy.count(), 0); - QCOMPARE(albumChangedSpy.count(), 0); - QCOMPARE(imageChangedSpy.count(), 0); - QCOMPARE(albumIdChangedSpy.count(), 0); - QCOMPARE(isValidChangedSpy.count(), 0); - QCOMPARE(remainingTracksChangedSpy.count(), 1); - - QCOMPARE(myControl.artist(), QVariant(QStringLiteral("artist1"))); - - currentItem->setData(QStringLiteral("song1"), ManageHeaderBarTest::TitleRole); - - QCOMPARE(currentTrackChangedSpy.count(), 1); - QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(artistRoleChangedSpy.count(), 1); - QCOMPARE(titleRoleChangedSpy.count(), 1); - QCOMPARE(albumRoleChangedSpy.count(), 1); - QCOMPARE(imageRoleChangedSpy.count(), 1); - QCOMPARE(albumIdRoleChangedSpy.count(), 1); - QCOMPARE(isValidRoleChangedSpy.count(), 1); - QCOMPARE(artistChangedSpy.count(), 1); - QCOMPARE(titleChangedSpy.count(), 1); - QCOMPARE(albumChangedSpy.count(), 0); - QCOMPARE(imageChangedSpy.count(), 0); - QCOMPARE(albumIdChangedSpy.count(), 0); - QCOMPARE(isValidChangedSpy.count(), 0); - QCOMPARE(remainingTracksChangedSpy.count(), 1); - - QCOMPARE(myControl.title(), QVariant(QStringLiteral("song1"))); - - currentItem->setData(QStringLiteral("album1"), ManageHeaderBarTest::AlbumRole); - - QCOMPARE(currentTrackChangedSpy.count(), 1); - QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(artistRoleChangedSpy.count(), 1); - QCOMPARE(titleRoleChangedSpy.count(), 1); - QCOMPARE(albumRoleChangedSpy.count(), 1); - QCOMPARE(imageRoleChangedSpy.count(), 1); - QCOMPARE(albumIdRoleChangedSpy.count(), 1); - QCOMPARE(isValidRoleChangedSpy.count(), 1); - QCOMPARE(artistChangedSpy.count(), 1); - QCOMPARE(titleChangedSpy.count(), 1); - QCOMPARE(albumChangedSpy.count(), 1); - QCOMPARE(imageChangedSpy.count(), 0); - QCOMPARE(albumIdChangedSpy.count(), 0); - QCOMPARE(isValidChangedSpy.count(), 0); - QCOMPARE(remainingTracksChangedSpy.count(), 1); - - QCOMPARE(myControl.album(), QVariant(QStringLiteral("album1"))); - - currentItem->setData(QUrl::fromUserInput(QStringLiteral("file://image.png")), ManageHeaderBarTest::ImageRole); - - QCOMPARE(currentTrackChangedSpy.count(), 1); - QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(artistRoleChangedSpy.count(), 1); - QCOMPARE(titleRoleChangedSpy.count(), 1); - QCOMPARE(albumRoleChangedSpy.count(), 1); - QCOMPARE(imageRoleChangedSpy.count(), 1); - QCOMPARE(albumIdRoleChangedSpy.count(), 1); - QCOMPARE(isValidRoleChangedSpy.count(), 1); - QCOMPARE(artistChangedSpy.count(), 1); - QCOMPARE(titleChangedSpy.count(), 1); - QCOMPARE(albumChangedSpy.count(), 1); - QCOMPARE(imageChangedSpy.count(), 1); - QCOMPARE(albumIdChangedSpy.count(), 0); - QCOMPARE(isValidChangedSpy.count(), 0); - QCOMPARE(remainingTracksChangedSpy.count(), 1); - - QCOMPARE(myControl.image(), QUrl::fromUserInput(QStringLiteral("file://image.png"))); - - currentItem->setData(qulonglong(12), ManageHeaderBarTest::AlbumIdRole); - - QCOMPARE(currentTrackChangedSpy.count(), 1); - QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(artistRoleChangedSpy.count(), 1); - QCOMPARE(titleRoleChangedSpy.count(), 1); - QCOMPARE(albumRoleChangedSpy.count(), 1); - QCOMPARE(imageRoleChangedSpy.count(), 1); - QCOMPARE(albumIdRoleChangedSpy.count(), 1); - QCOMPARE(isValidRoleChangedSpy.count(), 1); - QCOMPARE(artistChangedSpy.count(), 1); - QCOMPARE(titleChangedSpy.count(), 1); - QCOMPARE(albumChangedSpy.count(), 1); - QCOMPARE(imageChangedSpy.count(), 1); - QCOMPARE(albumIdChangedSpy.count(), 1); - QCOMPARE(isValidChangedSpy.count(), 0); - QCOMPARE(remainingTracksChangedSpy.count(), 1); - - QCOMPARE(myControl.albumId(), 12); - - currentItem->setData(true, ManageHeaderBarTest::IsValidRole); - - QCOMPARE(currentTrackChangedSpy.count(), 1); - QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(artistRoleChangedSpy.count(), 1); - QCOMPARE(titleRoleChangedSpy.count(), 1); - QCOMPARE(albumRoleChangedSpy.count(), 1); - QCOMPARE(imageRoleChangedSpy.count(), 1); - QCOMPARE(albumIdRoleChangedSpy.count(), 1); - QCOMPARE(isValidRoleChangedSpy.count(), 1); - QCOMPARE(artistChangedSpy.count(), 1); - QCOMPARE(titleChangedSpy.count(), 1); - QCOMPARE(albumChangedSpy.count(), 1); - QCOMPARE(imageChangedSpy.count(), 1); - QCOMPARE(albumIdChangedSpy.count(), 1); - QCOMPARE(isValidChangedSpy.count(), 1); - QCOMPARE(remainingTracksChangedSpy.count(), 1); - - QCOMPARE(myControl.isValid(), true); - - QCOMPARE(myPlayList.removeRow(2), true); - - QCOMPARE(currentTrackChangedSpy.count(), 1); - QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(artistRoleChangedSpy.count(), 1); - QCOMPARE(titleRoleChangedSpy.count(), 1); - QCOMPARE(albumRoleChangedSpy.count(), 1); - QCOMPARE(imageRoleChangedSpy.count(), 1); - QCOMPARE(albumIdRoleChangedSpy.count(), 1); - QCOMPARE(isValidRoleChangedSpy.count(), 1); - QCOMPARE(artistChangedSpy.count(), 1); - QCOMPARE(titleChangedSpy.count(), 1); - QCOMPARE(albumChangedSpy.count(), 1); - QCOMPARE(imageChangedSpy.count(), 1); - QCOMPARE(albumIdChangedSpy.count(), 1); - QCOMPARE(isValidChangedSpy.count(), 1); - QCOMPARE(remainingTracksChangedSpy.count(), 2); - - QCOMPARE(myControl.remainingTracks(), 0); - - myControl.setCurrentTrack({}); - - QCOMPARE(currentTrackChangedSpy.count(), 2); - QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(artistRoleChangedSpy.count(), 1); - QCOMPARE(titleRoleChangedSpy.count(), 1); - QCOMPARE(albumRoleChangedSpy.count(), 1); - QCOMPARE(imageRoleChangedSpy.count(), 1); - QCOMPARE(albumIdRoleChangedSpy.count(), 1); - QCOMPARE(isValidRoleChangedSpy.count(), 1); - QCOMPARE(artistChangedSpy.count(), 2); - QCOMPARE(titleChangedSpy.count(), 2); - QCOMPARE(albumChangedSpy.count(), 2); - QCOMPARE(imageChangedSpy.count(), 2); - QCOMPARE(albumIdChangedSpy.count(), 2); - QCOMPARE(isValidChangedSpy.count(), 2); - QCOMPARE(remainingTracksChangedSpy.count(), 2); - - QCOMPARE(myControl.currentTrack(), QPersistentModelIndex()); - QCOMPARE(myControl.artist().toString().isEmpty(), true); - QCOMPARE(myControl.title().toString().isEmpty(), true); - QCOMPARE(myControl.album().toString().isEmpty(), true); - QCOMPARE(myControl.image().toString().isEmpty(), true); - QCOMPARE(myControl.albumId(), 0); - QCOMPARE(myControl.isValid(), false); - QCOMPARE(myControl.remainingTracks(), 0); - - myControl.setCurrentTrack(myPlayList.index(1, 0)); - - QCOMPARE(currentTrackChangedSpy.count(), 3); - QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(artistRoleChangedSpy.count(), 1); - QCOMPARE(titleRoleChangedSpy.count(), 1); - QCOMPARE(albumRoleChangedSpy.count(), 1); - QCOMPARE(imageRoleChangedSpy.count(), 1); - QCOMPARE(albumIdRoleChangedSpy.count(), 1); - QCOMPARE(isValidRoleChangedSpy.count(), 1); - QCOMPARE(artistChangedSpy.count(), 3); - QCOMPARE(titleChangedSpy.count(), 3); - QCOMPARE(albumChangedSpy.count(), 3); - QCOMPARE(imageChangedSpy.count(), 3); - QCOMPARE(albumIdChangedSpy.count(), 3); - QCOMPARE(isValidChangedSpy.count(), 3); - QCOMPARE(remainingTracksChangedSpy.count(), 2); - - QCOMPARE(myControl.currentTrack(), QPersistentModelIndex(myPlayList.index(1, 0))); - QCOMPARE(myControl.artist().toString(), QStringLiteral("artist1")); - QCOMPARE(myControl.title().toString(), QStringLiteral("song1")); - QCOMPARE(myControl.album().toString(), QStringLiteral("album1")); - QCOMPARE(myControl.image().toString(), QStringLiteral("file://image.png")); - QCOMPARE(myControl.isValid(), true); - QCOMPARE(myControl.remainingTracks(), 0); - - myPlayList.appendRow(new QStandardItem); - - QCOMPARE(currentTrackChangedSpy.count(), 3); - QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(artistRoleChangedSpy.count(), 1); - QCOMPARE(titleRoleChangedSpy.count(), 1); - QCOMPARE(albumRoleChangedSpy.count(), 1); - QCOMPARE(imageRoleChangedSpy.count(), 1); - QCOMPARE(albumIdRoleChangedSpy.count(), 1); - QCOMPARE(isValidRoleChangedSpy.count(), 1); - QCOMPARE(artistChangedSpy.count(), 3); - QCOMPARE(titleChangedSpy.count(), 3); - QCOMPARE(albumChangedSpy.count(), 3); - QCOMPARE(imageChangedSpy.count(), 3); - QCOMPARE(albumIdChangedSpy.count(), 3); - QCOMPARE(isValidChangedSpy.count(), 3); - QCOMPARE(remainingTracksChangedSpy.count(), 3); - - QCOMPARE(myControl.remainingTracks(), 1); - - auto lastItem = myPlayList.item(2, 0); - lastItem->setData(QUrl::fromUserInput(QStringLiteral("file://2.mp3")), ManageHeaderBarTest::ResourceRole); - lastItem->setData(QStringLiteral("artist1"), ManageHeaderBarTest::ArtistRole); - lastItem->setData(QStringLiteral("song2"), ManageHeaderBarTest::TitleRole); - lastItem->setData(QStringLiteral("album1"), ManageHeaderBarTest::AlbumRole); - lastItem->setData(QUrl::fromUserInput(QStringLiteral("file://image.png")), ManageHeaderBarTest::ImageRole); - lastItem->setData(qulonglong(12), ManageHeaderBarTest::AlbumIdRole); - lastItem->setData(true, ManageHeaderBarTest::IsValidRole); - - QCOMPARE(currentTrackChangedSpy.count(), 3); - QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(artistRoleChangedSpy.count(), 1); - QCOMPARE(titleRoleChangedSpy.count(), 1); - QCOMPARE(albumRoleChangedSpy.count(), 1); - QCOMPARE(imageRoleChangedSpy.count(), 1); - QCOMPARE(albumIdRoleChangedSpy.count(), 1); - QCOMPARE(isValidRoleChangedSpy.count(), 1); - QCOMPARE(artistChangedSpy.count(), 3); - QCOMPARE(titleChangedSpy.count(), 3); - QCOMPARE(albumChangedSpy.count(), 3); - QCOMPARE(imageChangedSpy.count(), 3); - QCOMPARE(albumIdChangedSpy.count(), 3); - QCOMPARE(isValidChangedSpy.count(), 3); - QCOMPARE(remainingTracksChangedSpy.count(), 3); - - myControl.setCurrentTrack(myPlayList.index(2, 0)); - - QCOMPARE(currentTrackChangedSpy.count(), 4); - QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(artistRoleChangedSpy.count(), 1); - QCOMPARE(titleRoleChangedSpy.count(), 1); - QCOMPARE(albumRoleChangedSpy.count(), 1); - QCOMPARE(imageRoleChangedSpy.count(), 1); - QCOMPARE(albumIdRoleChangedSpy.count(), 1); - QCOMPARE(isValidRoleChangedSpy.count(), 1); - QCOMPARE(artistChangedSpy.count(), 3); - QCOMPARE(titleChangedSpy.count(), 4); - QCOMPARE(albumChangedSpy.count(), 3); - QCOMPARE(imageChangedSpy.count(), 3); - QCOMPARE(albumIdChangedSpy.count(), 3); - QCOMPARE(isValidChangedSpy.count(), 3); - QCOMPARE(remainingTracksChangedSpy.count(), 4); - - QCOMPARE(myControl.currentTrack(), QPersistentModelIndex(myPlayList.index(2, 0))); - QCOMPARE(myControl.title().toString(), QStringLiteral("song2")); - QCOMPARE(myControl.albumId(), 12); - QCOMPARE(myControl.remainingTracks(), 0); -} - -void ManageHeaderBarTest::setCurrentTrackAndInvalidCase() -{ - QStandardItemModel myPlayList; - - ManageHeaderBar myControl; - - QSignalSpy currentTrackChangedSpy(&myControl, &ManageHeaderBar::currentTrackChanged); - QSignalSpy playListModelChangedSpy(&myControl, &ManageHeaderBar::playListModelChanged); - QSignalSpy artistRoleChangedSpy(&myControl, &ManageHeaderBar::artistRoleChanged); - QSignalSpy titleRoleChangedSpy(&myControl, &ManageHeaderBar::titleRoleChanged); - QSignalSpy albumRoleChangedSpy(&myControl, &ManageHeaderBar::albumRoleChanged); - QSignalSpy imageRoleChangedSpy(&myControl, &ManageHeaderBar::imageRoleChanged); - QSignalSpy albumIdRoleChangedSpy(&myControl, &ManageHeaderBar::albumIdRoleChanged); - QSignalSpy isValidRoleChangedSpy(&myControl, &ManageHeaderBar::isValidRoleChanged); - QSignalSpy artistChangedSpy(&myControl, &ManageHeaderBar::artistChanged); - QSignalSpy titleChangedSpy(&myControl, &ManageHeaderBar::titleChanged); - QSignalSpy albumChangedSpy(&myControl, &ManageHeaderBar::albumChanged); - QSignalSpy imageChangedSpy(&myControl, &ManageHeaderBar::imageChanged); - QSignalSpy albumIdChangedSpy(&myControl, &ManageHeaderBar::albumIdChanged); - QSignalSpy isValidChangedSpy(&myControl, &ManageHeaderBar::isValidChanged); - QSignalSpy remainingTracksChangedSpy(&myControl, &ManageHeaderBar::remainingTracksChanged); - - QCOMPARE(myControl.currentTrack().isValid(), false); - QCOMPARE(myControl.playListModel(), static_cast(nullptr)); - QCOMPARE(myControl.artistRole(), static_cast(Qt::DisplayRole)); - QCOMPARE(myControl.titleRole(), static_cast(Qt::DisplayRole)); - QCOMPARE(myControl.albumRole(), static_cast(Qt::DisplayRole)); - QCOMPARE(myControl.imageRole(), static_cast(Qt::DisplayRole)); - QCOMPARE(myControl.albumIdRole(), static_cast(Qt::DisplayRole)); - QCOMPARE(myControl.isValidRole(), static_cast(Qt::DisplayRole)); - QCOMPARE(myControl.artist().toString().isEmpty(), true); - QCOMPARE(myControl.title().toString().isEmpty(), true); - QCOMPARE(myControl.album().toString().isEmpty(), true); - QCOMPARE(myControl.image().toString().isEmpty(), true); - QCOMPARE(myControl.isValid(), false); - QCOMPARE(myControl.remainingTracks(), 0); - - myControl.setArtistRole(ManageHeaderBarTest::ArtistRole); - - QCOMPARE(currentTrackChangedSpy.count(), 0); - QCOMPARE(playListModelChangedSpy.count(), 0); - QCOMPARE(artistRoleChangedSpy.count(), 1); - QCOMPARE(titleRoleChangedSpy.count(), 0); - QCOMPARE(albumRoleChangedSpy.count(), 0); - QCOMPARE(imageRoleChangedSpy.count(), 0); - QCOMPARE(albumIdRoleChangedSpy.count(), 0); - QCOMPARE(isValidRoleChangedSpy.count(), 0); - QCOMPARE(artistChangedSpy.count(), 0); - QCOMPARE(titleChangedSpy.count(), 0); - QCOMPARE(albumChangedSpy.count(), 0); - QCOMPARE(imageChangedSpy.count(), 0); - QCOMPARE(albumIdChangedSpy.count(), 0); - QCOMPARE(isValidChangedSpy.count(), 0); - QCOMPARE(remainingTracksChangedSpy.count(), 0); - - QCOMPARE(myControl.artistRole(), static_cast(ManageHeaderBarTest::ArtistRole)); - - myControl.setTitleRole(ManageHeaderBarTest::TitleRole); - - QCOMPARE(currentTrackChangedSpy.count(), 0); - QCOMPARE(playListModelChangedSpy.count(), 0); - QCOMPARE(artistRoleChangedSpy.count(), 1); - QCOMPARE(titleRoleChangedSpy.count(), 1); - QCOMPARE(albumRoleChangedSpy.count(), 0); - QCOMPARE(imageRoleChangedSpy.count(), 0); - QCOMPARE(albumIdRoleChangedSpy.count(), 0); - QCOMPARE(isValidRoleChangedSpy.count(), 0); - QCOMPARE(artistChangedSpy.count(), 0); - QCOMPARE(titleChangedSpy.count(), 0); - QCOMPARE(albumChangedSpy.count(), 0); - QCOMPARE(imageChangedSpy.count(), 0); - QCOMPARE(albumIdChangedSpy.count(), 0); - QCOMPARE(isValidChangedSpy.count(), 0); - QCOMPARE(remainingTracksChangedSpy.count(), 0); - - QCOMPARE(myControl.titleRole(), static_cast(ManageHeaderBarTest::TitleRole)); - - myControl.setAlbumRole(ManageHeaderBarTest::AlbumRole); - - QCOMPARE(currentTrackChangedSpy.count(), 0); - QCOMPARE(playListModelChangedSpy.count(), 0); - QCOMPARE(artistRoleChangedSpy.count(), 1); - QCOMPARE(titleRoleChangedSpy.count(), 1); - QCOMPARE(albumRoleChangedSpy.count(), 1); - QCOMPARE(imageRoleChangedSpy.count(), 0); - QCOMPARE(albumIdRoleChangedSpy.count(), 0); - QCOMPARE(isValidRoleChangedSpy.count(), 0); - QCOMPARE(artistChangedSpy.count(), 0); - QCOMPARE(titleChangedSpy.count(), 0); - QCOMPARE(albumChangedSpy.count(), 0); - QCOMPARE(imageChangedSpy.count(), 0); - QCOMPARE(albumIdChangedSpy.count(), 0); - QCOMPARE(isValidChangedSpy.count(), 0); - QCOMPARE(remainingTracksChangedSpy.count(), 0); - - QCOMPARE(myControl.albumRole(), static_cast(ManageHeaderBarTest::AlbumRole)); - - myControl.setImageRole(ManageHeaderBarTest::ImageRole); - - QCOMPARE(currentTrackChangedSpy.count(), 0); - QCOMPARE(playListModelChangedSpy.count(), 0); - QCOMPARE(artistRoleChangedSpy.count(), 1); - QCOMPARE(titleRoleChangedSpy.count(), 1); - QCOMPARE(albumRoleChangedSpy.count(), 1); - QCOMPARE(imageRoleChangedSpy.count(), 1); - QCOMPARE(albumIdRoleChangedSpy.count(), 0); - QCOMPARE(isValidRoleChangedSpy.count(), 0); - QCOMPARE(artistChangedSpy.count(), 0); - QCOMPARE(titleChangedSpy.count(), 0); - QCOMPARE(albumChangedSpy.count(), 0); - QCOMPARE(imageChangedSpy.count(), 0); - QCOMPARE(albumIdChangedSpy.count(), 0); - QCOMPARE(isValidChangedSpy.count(), 0); - QCOMPARE(remainingTracksChangedSpy.count(), 0); - - QCOMPARE(myControl.imageRole(), static_cast(ManageHeaderBarTest::ImageRole)); - - myControl.setAlbumIdRole(ManageHeaderBarTest::AlbumIdRole); - - QCOMPARE(currentTrackChangedSpy.count(), 0); - QCOMPARE(playListModelChangedSpy.count(), 0); - QCOMPARE(artistRoleChangedSpy.count(), 1); - QCOMPARE(titleRoleChangedSpy.count(), 1); - QCOMPARE(albumRoleChangedSpy.count(), 1); - QCOMPARE(imageRoleChangedSpy.count(), 1); - QCOMPARE(albumIdRoleChangedSpy.count(), 1); - QCOMPARE(isValidRoleChangedSpy.count(), 0); - QCOMPARE(artistChangedSpy.count(), 0); - QCOMPARE(titleChangedSpy.count(), 0); - QCOMPARE(albumChangedSpy.count(), 0); - QCOMPARE(imageChangedSpy.count(), 0); - QCOMPARE(albumIdChangedSpy.count(), 0); - QCOMPARE(isValidChangedSpy.count(), 0); - QCOMPARE(remainingTracksChangedSpy.count(), 0); - - QCOMPARE(myControl.albumIdRole(), static_cast(ManageHeaderBarTest::AlbumIdRole)); - - myControl.setIsValidRole(ManageHeaderBarTest::IsValidRole); - - QCOMPARE(currentTrackChangedSpy.count(), 0); - QCOMPARE(playListModelChangedSpy.count(), 0); - QCOMPARE(artistRoleChangedSpy.count(), 1); - QCOMPARE(titleRoleChangedSpy.count(), 1); - QCOMPARE(albumRoleChangedSpy.count(), 1); - QCOMPARE(imageRoleChangedSpy.count(), 1); - QCOMPARE(albumIdRoleChangedSpy.count(), 1); - QCOMPARE(isValidRoleChangedSpy.count(), 1); - QCOMPARE(artistChangedSpy.count(), 0); - QCOMPARE(titleChangedSpy.count(), 0); - QCOMPARE(albumChangedSpy.count(), 0); - QCOMPARE(imageChangedSpy.count(), 0); - QCOMPARE(albumIdChangedSpy.count(), 0); - QCOMPARE(isValidChangedSpy.count(), 0); - QCOMPARE(remainingTracksChangedSpy.count(), 0); - - QCOMPARE(myControl.isValidRole(), static_cast(ManageHeaderBarTest::IsValidRole)); - - myControl.setPlayListModel(&myPlayList); - - QCOMPARE(currentTrackChangedSpy.count(), 0); - QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(artistRoleChangedSpy.count(), 1); - QCOMPARE(titleRoleChangedSpy.count(), 1); - QCOMPARE(albumRoleChangedSpy.count(), 1); - QCOMPARE(imageRoleChangedSpy.count(), 1); - QCOMPARE(albumIdRoleChangedSpy.count(), 1); - QCOMPARE(isValidRoleChangedSpy.count(), 1); - QCOMPARE(artistChangedSpy.count(), 0); - QCOMPARE(titleChangedSpy.count(), 0); - QCOMPARE(albumChangedSpy.count(), 0); - QCOMPARE(imageChangedSpy.count(), 0); - QCOMPARE(albumIdChangedSpy.count(), 0); - QCOMPARE(isValidChangedSpy.count(), 0); - QCOMPARE(remainingTracksChangedSpy.count(), 0); - - QCOMPARE(myControl.playListModel(), &myPlayList); - - myPlayList.appendRow(new QStandardItem); - myPlayList.appendRow(new QStandardItem); - myPlayList.appendRow(new QStandardItem); - - QCOMPARE(currentTrackChangedSpy.count(), 0); - QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(artistRoleChangedSpy.count(), 1); - QCOMPARE(titleRoleChangedSpy.count(), 1); - QCOMPARE(albumRoleChangedSpy.count(), 1); - QCOMPARE(imageRoleChangedSpy.count(), 1); - QCOMPARE(albumIdRoleChangedSpy.count(), 1); - QCOMPARE(isValidRoleChangedSpy.count(), 1); - QCOMPARE(artistChangedSpy.count(), 0); - QCOMPARE(titleChangedSpy.count(), 0); - QCOMPARE(albumChangedSpy.count(), 0); - QCOMPARE(imageChangedSpy.count(), 0); - QCOMPARE(albumIdChangedSpy.count(), 0); - QCOMPARE(isValidChangedSpy.count(), 0); - QCOMPARE(remainingTracksChangedSpy.count(), 0); - - myControl.setCurrentTrack(myPlayList.index(1, 0)); - - QCOMPARE(currentTrackChangedSpy.count(), 1); - QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(artistRoleChangedSpy.count(), 1); - QCOMPARE(titleRoleChangedSpy.count(), 1); - QCOMPARE(albumRoleChangedSpy.count(), 1); - QCOMPARE(imageRoleChangedSpy.count(), 1); - QCOMPARE(albumIdRoleChangedSpy.count(), 1); - QCOMPARE(isValidRoleChangedSpy.count(), 1); - QCOMPARE(artistChangedSpy.count(), 0); - QCOMPARE(titleChangedSpy.count(), 0); - QCOMPARE(albumChangedSpy.count(), 0); - QCOMPARE(imageChangedSpy.count(), 0); - QCOMPARE(albumIdChangedSpy.count(), 0); - QCOMPARE(isValidChangedSpy.count(), 0); - QCOMPARE(remainingTracksChangedSpy.count(), 1); - - QCOMPARE(myControl.currentTrack(), QPersistentModelIndex(myPlayList.index(1, 0))); - QCOMPARE(myControl.remainingTracks(), 1); - - auto firstItem = myPlayList.item(0, 0); - firstItem->setData(QUrl::fromUserInput(QStringLiteral("file://0.mp3")), ManageHeaderBarTest::ResourceRole); - - QCOMPARE(currentTrackChangedSpy.count(), 1); - QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(artistRoleChangedSpy.count(), 1); - QCOMPARE(titleRoleChangedSpy.count(), 1); - QCOMPARE(albumRoleChangedSpy.count(), 1); - QCOMPARE(imageRoleChangedSpy.count(), 1); - QCOMPARE(albumIdRoleChangedSpy.count(), 1); - QCOMPARE(isValidRoleChangedSpy.count(), 1); - QCOMPARE(artistChangedSpy.count(), 0); - QCOMPARE(titleChangedSpy.count(), 0); - QCOMPARE(albumChangedSpy.count(), 0); - QCOMPARE(imageChangedSpy.count(), 0); - QCOMPARE(albumIdChangedSpy.count(), 0); - QCOMPARE(isValidChangedSpy.count(), 0); - QCOMPARE(remainingTracksChangedSpy.count(), 1); - - auto currentItem = myPlayList.item(1, 0); - currentItem->setData(QStringLiteral("artist1"), ManageHeaderBarTest::ArtistRole); - - QCOMPARE(currentTrackChangedSpy.count(), 1); - QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(artistRoleChangedSpy.count(), 1); - QCOMPARE(titleRoleChangedSpy.count(), 1); - QCOMPARE(albumRoleChangedSpy.count(), 1); - QCOMPARE(imageRoleChangedSpy.count(), 1); - QCOMPARE(albumIdRoleChangedSpy.count(), 1); - QCOMPARE(isValidRoleChangedSpy.count(), 1); - QCOMPARE(artistChangedSpy.count(), 1); - QCOMPARE(titleChangedSpy.count(), 0); - QCOMPARE(albumChangedSpy.count(), 0); - QCOMPARE(imageChangedSpy.count(), 0); - QCOMPARE(albumIdChangedSpy.count(), 0); - QCOMPARE(isValidChangedSpy.count(), 0); - QCOMPARE(remainingTracksChangedSpy.count(), 1); - - QCOMPARE(myControl.artist(), QVariant(QStringLiteral("artist1"))); - - currentItem->setData(QStringLiteral("song1"), ManageHeaderBarTest::TitleRole); - - QCOMPARE(currentTrackChangedSpy.count(), 1); - QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(artistRoleChangedSpy.count(), 1); - QCOMPARE(titleRoleChangedSpy.count(), 1); - QCOMPARE(albumRoleChangedSpy.count(), 1); - QCOMPARE(imageRoleChangedSpy.count(), 1); - QCOMPARE(albumIdRoleChangedSpy.count(), 1); - QCOMPARE(isValidRoleChangedSpy.count(), 1); - QCOMPARE(artistChangedSpy.count(), 1); - QCOMPARE(titleChangedSpy.count(), 1); - QCOMPARE(albumChangedSpy.count(), 0); - QCOMPARE(imageChangedSpy.count(), 0); - QCOMPARE(albumIdChangedSpy.count(), 0); - QCOMPARE(isValidChangedSpy.count(), 0); - QCOMPARE(remainingTracksChangedSpy.count(), 1); - - QCOMPARE(myControl.title(), QVariant(QStringLiteral("song1"))); - - currentItem->setData(QStringLiteral("album1"), ManageHeaderBarTest::AlbumRole); - - QCOMPARE(currentTrackChangedSpy.count(), 1); - QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(artistRoleChangedSpy.count(), 1); - QCOMPARE(titleRoleChangedSpy.count(), 1); - QCOMPARE(albumRoleChangedSpy.count(), 1); - QCOMPARE(imageRoleChangedSpy.count(), 1); - QCOMPARE(albumIdRoleChangedSpy.count(), 1); - QCOMPARE(isValidRoleChangedSpy.count(), 1); - QCOMPARE(artistChangedSpy.count(), 1); - QCOMPARE(titleChangedSpy.count(), 1); - QCOMPARE(albumChangedSpy.count(), 1); - QCOMPARE(imageChangedSpy.count(), 0); - QCOMPARE(albumIdChangedSpy.count(), 0); - QCOMPARE(isValidChangedSpy.count(), 0); - QCOMPARE(remainingTracksChangedSpy.count(), 1); - - QCOMPARE(myControl.album(), QVariant(QStringLiteral("album1"))); - - currentItem->setData(QUrl::fromUserInput(QStringLiteral("file://image.png")), ManageHeaderBarTest::ImageRole); - - QCOMPARE(currentTrackChangedSpy.count(), 1); - QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(artistRoleChangedSpy.count(), 1); - QCOMPARE(titleRoleChangedSpy.count(), 1); - QCOMPARE(albumRoleChangedSpy.count(), 1); - QCOMPARE(imageRoleChangedSpy.count(), 1); - QCOMPARE(albumIdRoleChangedSpy.count(), 1); - QCOMPARE(isValidRoleChangedSpy.count(), 1); - QCOMPARE(artistChangedSpy.count(), 1); - QCOMPARE(titleChangedSpy.count(), 1); - QCOMPARE(albumChangedSpy.count(), 1); - QCOMPARE(imageChangedSpy.count(), 1); - QCOMPARE(albumIdChangedSpy.count(), 0); - QCOMPARE(isValidChangedSpy.count(), 0); - QCOMPARE(remainingTracksChangedSpy.count(), 1); - - QCOMPARE(myControl.image(), QUrl::fromUserInput(QStringLiteral("file://image.png"))); - - currentItem->setData(qulonglong(12), ManageHeaderBarTest::AlbumIdRole); - - QCOMPARE(currentTrackChangedSpy.count(), 1); - QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(artistRoleChangedSpy.count(), 1); - QCOMPARE(titleRoleChangedSpy.count(), 1); - QCOMPARE(albumRoleChangedSpy.count(), 1); - QCOMPARE(imageRoleChangedSpy.count(), 1); - QCOMPARE(albumIdRoleChangedSpy.count(), 1); - QCOMPARE(isValidRoleChangedSpy.count(), 1); - QCOMPARE(artistChangedSpy.count(), 1); - QCOMPARE(titleChangedSpy.count(), 1); - QCOMPARE(albumChangedSpy.count(), 1); - QCOMPARE(imageChangedSpy.count(), 1); - QCOMPARE(albumIdChangedSpy.count(), 1); - QCOMPARE(isValidChangedSpy.count(), 0); - QCOMPARE(remainingTracksChangedSpy.count(), 1); - - QCOMPARE(myControl.albumId(), qulonglong(12)); - - currentItem->setData(true, ManageHeaderBarTest::IsValidRole); - - QCOMPARE(currentTrackChangedSpy.count(), 1); - QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(artistRoleChangedSpy.count(), 1); - QCOMPARE(titleRoleChangedSpy.count(), 1); - QCOMPARE(albumRoleChangedSpy.count(), 1); - QCOMPARE(imageRoleChangedSpy.count(), 1); - QCOMPARE(albumIdRoleChangedSpy.count(), 1); - QCOMPARE(isValidRoleChangedSpy.count(), 1); - QCOMPARE(artistChangedSpy.count(), 1); - QCOMPARE(titleChangedSpy.count(), 1); - QCOMPARE(albumChangedSpy.count(), 1); - QCOMPARE(imageChangedSpy.count(), 1); - QCOMPARE(albumIdChangedSpy.count(), 1); - QCOMPARE(isValidChangedSpy.count(), 1); - QCOMPARE(remainingTracksChangedSpy.count(), 1); - - QCOMPARE(myControl.isValid(), true); - - QCOMPARE(myPlayList.removeRow(2), true); - - QCOMPARE(currentTrackChangedSpy.count(), 1); - QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(artistRoleChangedSpy.count(), 1); - QCOMPARE(titleRoleChangedSpy.count(), 1); - QCOMPARE(albumRoleChangedSpy.count(), 1); - QCOMPARE(imageRoleChangedSpy.count(), 1); - QCOMPARE(albumIdRoleChangedSpy.count(), 1); - QCOMPARE(isValidRoleChangedSpy.count(), 1); - QCOMPARE(artistChangedSpy.count(), 1); - QCOMPARE(titleChangedSpy.count(), 1); - QCOMPARE(albumChangedSpy.count(), 1); - QCOMPARE(imageChangedSpy.count(), 1); - QCOMPARE(albumIdChangedSpy.count(), 1); - QCOMPARE(isValidChangedSpy.count(), 1); - QCOMPARE(remainingTracksChangedSpy.count(), 2); - - QCOMPARE(myControl.remainingTracks(), 0); - - QCOMPARE(myPlayList.removeRows(0, 2), true); - - QCOMPARE(currentTrackChangedSpy.count(), 1); - QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(artistRoleChangedSpy.count(), 1); - QCOMPARE(titleRoleChangedSpy.count(), 1); - QCOMPARE(albumRoleChangedSpy.count(), 1); - QCOMPARE(imageRoleChangedSpy.count(), 1); - QCOMPARE(albumIdRoleChangedSpy.count(), 1); - QCOMPARE(isValidRoleChangedSpy.count(), 1); - QCOMPARE(artistChangedSpy.count(), 2); - QCOMPARE(titleChangedSpy.count(), 2); - QCOMPARE(albumChangedSpy.count(), 2); - QCOMPARE(imageChangedSpy.count(), 2); - QCOMPARE(albumIdChangedSpy.count(), 2); - QCOMPARE(isValidChangedSpy.count(), 2); - QCOMPARE(remainingTracksChangedSpy.count(), 2); - - QCOMPARE(myControl.artist().toString().isEmpty(), true); - QCOMPARE(myControl.title().toString().isEmpty(), true); - QCOMPARE(myControl.album().toString().isEmpty(), true); - QCOMPARE(myControl.image().toString().isEmpty(), true); - QCOMPARE(myControl.isValid(), false); - QCOMPARE(myControl.remainingTracks(), 0); -} - -void ManageHeaderBarTest::setCurrentTrackAndRemoveItCase() -{ - QStandardItemModel myPlayList; - - ManageHeaderBar myControl; - - QSignalSpy currentTrackChangedSpy(&myControl, &ManageHeaderBar::currentTrackChanged); - QSignalSpy playListModelChangedSpy(&myControl, &ManageHeaderBar::playListModelChanged); - QSignalSpy artistRoleChangedSpy(&myControl, &ManageHeaderBar::artistRoleChanged); - QSignalSpy titleRoleChangedSpy(&myControl, &ManageHeaderBar::titleRoleChanged); - QSignalSpy albumRoleChangedSpy(&myControl, &ManageHeaderBar::albumRoleChanged); - QSignalSpy imageRoleChangedSpy(&myControl, &ManageHeaderBar::imageRoleChanged); - QSignalSpy albumIdRoleChangedSpy(&myControl, &ManageHeaderBar::albumIdRoleChanged); - QSignalSpy isValidRoleChangedSpy(&myControl, &ManageHeaderBar::isValidRoleChanged); - QSignalSpy artistChangedSpy(&myControl, &ManageHeaderBar::artistChanged); - QSignalSpy titleChangedSpy(&myControl, &ManageHeaderBar::titleChanged); - QSignalSpy albumChangedSpy(&myControl, &ManageHeaderBar::albumChanged); - QSignalSpy imageChangedSpy(&myControl, &ManageHeaderBar::imageChanged); - QSignalSpy albumIdChangedSpy(&myControl, &ManageHeaderBar::albumIdChanged); - QSignalSpy isValidChangedSpy(&myControl, &ManageHeaderBar::isValidChanged); - QSignalSpy remainingTracksChangedSpy(&myControl, &ManageHeaderBar::remainingTracksChanged); - - QCOMPARE(myControl.currentTrack().isValid(), false); - QCOMPARE(myControl.playListModel(), static_cast(nullptr)); - QCOMPARE(myControl.artistRole(), static_cast(Qt::DisplayRole)); - QCOMPARE(myControl.titleRole(), static_cast(Qt::DisplayRole)); - QCOMPARE(myControl.albumRole(), static_cast(Qt::DisplayRole)); - QCOMPARE(myControl.imageRole(), static_cast(Qt::DisplayRole)); - QCOMPARE(myControl.albumIdRole(), static_cast(Qt::DisplayRole)); - QCOMPARE(myControl.isValidRole(), static_cast(Qt::DisplayRole)); - QCOMPARE(myControl.artist().toString().isEmpty(), true); - QCOMPARE(myControl.title().toString().isEmpty(), true); - QCOMPARE(myControl.album().toString().isEmpty(), true); - QCOMPARE(myControl.image().toString().isEmpty(), true); - QCOMPARE(myControl.isValid(), false); - QCOMPARE(myControl.remainingTracks(), 0); - - myControl.setArtistRole(ManageHeaderBarTest::ArtistRole); - - QCOMPARE(currentTrackChangedSpy.count(), 0); - QCOMPARE(playListModelChangedSpy.count(), 0); - QCOMPARE(artistRoleChangedSpy.count(), 1); - QCOMPARE(titleRoleChangedSpy.count(), 0); - QCOMPARE(albumRoleChangedSpy.count(), 0); - QCOMPARE(imageRoleChangedSpy.count(), 0); - QCOMPARE(albumIdRoleChangedSpy.count(), 0); - QCOMPARE(isValidRoleChangedSpy.count(), 0); - QCOMPARE(artistChangedSpy.count(), 0); - QCOMPARE(titleChangedSpy.count(), 0); - QCOMPARE(albumChangedSpy.count(), 0); - QCOMPARE(imageChangedSpy.count(), 0); - QCOMPARE(albumIdChangedSpy.count(), 0); - QCOMPARE(isValidChangedSpy.count(), 0); - QCOMPARE(remainingTracksChangedSpy.count(), 0); - - QCOMPARE(myControl.artistRole(), static_cast(ManageHeaderBarTest::ArtistRole)); - - myControl.setTitleRole(ManageHeaderBarTest::TitleRole); - - QCOMPARE(currentTrackChangedSpy.count(), 0); - QCOMPARE(playListModelChangedSpy.count(), 0); - QCOMPARE(artistRoleChangedSpy.count(), 1); - QCOMPARE(titleRoleChangedSpy.count(), 1); - QCOMPARE(albumRoleChangedSpy.count(), 0); - QCOMPARE(imageRoleChangedSpy.count(), 0); - QCOMPARE(albumIdRoleChangedSpy.count(), 0); - QCOMPARE(isValidRoleChangedSpy.count(), 0); - QCOMPARE(artistChangedSpy.count(), 0); - QCOMPARE(titleChangedSpy.count(), 0); - QCOMPARE(albumChangedSpy.count(), 0); - QCOMPARE(imageChangedSpy.count(), 0); - QCOMPARE(albumIdChangedSpy.count(), 0); - QCOMPARE(isValidChangedSpy.count(), 0); - QCOMPARE(remainingTracksChangedSpy.count(), 0); - - QCOMPARE(myControl.titleRole(), static_cast(ManageHeaderBarTest::TitleRole)); - - myControl.setAlbumRole(ManageHeaderBarTest::AlbumRole); - - QCOMPARE(currentTrackChangedSpy.count(), 0); - QCOMPARE(playListModelChangedSpy.count(), 0); - QCOMPARE(artistRoleChangedSpy.count(), 1); - QCOMPARE(titleRoleChangedSpy.count(), 1); - QCOMPARE(albumRoleChangedSpy.count(), 1); - QCOMPARE(imageRoleChangedSpy.count(), 0); - QCOMPARE(albumIdRoleChangedSpy.count(), 0); - QCOMPARE(isValidRoleChangedSpy.count(), 0); - QCOMPARE(artistChangedSpy.count(), 0); - QCOMPARE(titleChangedSpy.count(), 0); - QCOMPARE(albumChangedSpy.count(), 0); - QCOMPARE(imageChangedSpy.count(), 0); - QCOMPARE(albumIdChangedSpy.count(), 0); - QCOMPARE(isValidChangedSpy.count(), 0); - QCOMPARE(remainingTracksChangedSpy.count(), 0); - - QCOMPARE(myControl.albumRole(), static_cast(ManageHeaderBarTest::AlbumRole)); - - myControl.setImageRole(ManageHeaderBarTest::ImageRole); - - QCOMPARE(currentTrackChangedSpy.count(), 0); - QCOMPARE(playListModelChangedSpy.count(), 0); - QCOMPARE(artistRoleChangedSpy.count(), 1); - QCOMPARE(titleRoleChangedSpy.count(), 1); - QCOMPARE(albumRoleChangedSpy.count(), 1); - QCOMPARE(imageRoleChangedSpy.count(), 1); - QCOMPARE(albumIdRoleChangedSpy.count(), 0); - QCOMPARE(isValidRoleChangedSpy.count(), 0); - QCOMPARE(artistChangedSpy.count(), 0); - QCOMPARE(titleChangedSpy.count(), 0); - QCOMPARE(albumChangedSpy.count(), 0); - QCOMPARE(imageChangedSpy.count(), 0); - QCOMPARE(albumIdChangedSpy.count(), 0); - QCOMPARE(isValidChangedSpy.count(), 0); - QCOMPARE(remainingTracksChangedSpy.count(), 0); - - QCOMPARE(myControl.imageRole(), static_cast(ManageHeaderBarTest::ImageRole)); - - myControl.setAlbumIdRole(ManageHeaderBarTest::AlbumIdRole); - - QCOMPARE(currentTrackChangedSpy.count(), 0); - QCOMPARE(playListModelChangedSpy.count(), 0); - QCOMPARE(artistRoleChangedSpy.count(), 1); - QCOMPARE(titleRoleChangedSpy.count(), 1); - QCOMPARE(albumRoleChangedSpy.count(), 1); - QCOMPARE(imageRoleChangedSpy.count(), 1); - QCOMPARE(albumIdRoleChangedSpy.count(), 1); - QCOMPARE(isValidRoleChangedSpy.count(), 0); - QCOMPARE(artistChangedSpy.count(), 0); - QCOMPARE(titleChangedSpy.count(), 0); - QCOMPARE(albumChangedSpy.count(), 0); - QCOMPARE(imageChangedSpy.count(), 0); - QCOMPARE(albumIdChangedSpy.count(), 0); - QCOMPARE(isValidChangedSpy.count(), 0); - QCOMPARE(remainingTracksChangedSpy.count(), 0); - - QCOMPARE(myControl.albumIdRole(), static_cast(ManageHeaderBarTest::AlbumIdRole)); - - myControl.setIsValidRole(ManageHeaderBarTest::IsValidRole); - - QCOMPARE(currentTrackChangedSpy.count(), 0); - QCOMPARE(playListModelChangedSpy.count(), 0); - QCOMPARE(artistRoleChangedSpy.count(), 1); - QCOMPARE(titleRoleChangedSpy.count(), 1); - QCOMPARE(albumRoleChangedSpy.count(), 1); - QCOMPARE(imageRoleChangedSpy.count(), 1); - QCOMPARE(albumIdRoleChangedSpy.count(), 1); - QCOMPARE(isValidRoleChangedSpy.count(), 1); - QCOMPARE(artistChangedSpy.count(), 0); - QCOMPARE(titleChangedSpy.count(), 0); - QCOMPARE(albumChangedSpy.count(), 0); - QCOMPARE(imageChangedSpy.count(), 0); - QCOMPARE(albumIdChangedSpy.count(), 0); - QCOMPARE(isValidChangedSpy.count(), 0); - QCOMPARE(remainingTracksChangedSpy.count(), 0); - - QCOMPARE(myControl.isValidRole(), static_cast(ManageHeaderBarTest::IsValidRole)); - - myControl.setPlayListModel(&myPlayList); - - QCOMPARE(currentTrackChangedSpy.count(), 0); - QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(artistRoleChangedSpy.count(), 1); - QCOMPARE(titleRoleChangedSpy.count(), 1); - QCOMPARE(albumRoleChangedSpy.count(), 1); - QCOMPARE(imageRoleChangedSpy.count(), 1); - QCOMPARE(albumIdRoleChangedSpy.count(), 1); - QCOMPARE(isValidRoleChangedSpy.count(), 1); - QCOMPARE(artistChangedSpy.count(), 0); - QCOMPARE(titleChangedSpy.count(), 0); - QCOMPARE(albumChangedSpy.count(), 0); - QCOMPARE(imageChangedSpy.count(), 0); - QCOMPARE(albumIdChangedSpy.count(), 0); - QCOMPARE(isValidChangedSpy.count(), 0); - QCOMPARE(remainingTracksChangedSpy.count(), 0); - - QCOMPARE(myControl.playListModel(), &myPlayList); - - myPlayList.appendRow(new QStandardItem); - myPlayList.appendRow(new QStandardItem); - - QCOMPARE(currentTrackChangedSpy.count(), 0); - QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(artistRoleChangedSpy.count(), 1); - QCOMPARE(titleRoleChangedSpy.count(), 1); - QCOMPARE(albumRoleChangedSpy.count(), 1); - QCOMPARE(imageRoleChangedSpy.count(), 1); - QCOMPARE(albumIdRoleChangedSpy.count(), 1); - QCOMPARE(isValidRoleChangedSpy.count(), 1); - QCOMPARE(artistChangedSpy.count(), 0); - QCOMPARE(titleChangedSpy.count(), 0); - QCOMPARE(albumChangedSpy.count(), 0); - QCOMPARE(imageChangedSpy.count(), 0); - QCOMPARE(albumIdChangedSpy.count(), 0); - QCOMPARE(isValidChangedSpy.count(), 0); - QCOMPARE(remainingTracksChangedSpy.count(), 0); - - auto firstItem = myPlayList.item(0, 0); - firstItem->setData(QUrl::fromUserInput(QStringLiteral("file://0.mp3")), ManageHeaderBarTest::ResourceRole); - - QCOMPARE(currentTrackChangedSpy.count(), 0); - QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(artistRoleChangedSpy.count(), 1); - QCOMPARE(titleRoleChangedSpy.count(), 1); - QCOMPARE(albumRoleChangedSpy.count(), 1); - QCOMPARE(imageRoleChangedSpy.count(), 1); - QCOMPARE(albumIdRoleChangedSpy.count(), 1); - QCOMPARE(isValidRoleChangedSpy.count(), 1); - QCOMPARE(artistChangedSpy.count(), 0); - QCOMPARE(titleChangedSpy.count(), 0); - QCOMPARE(albumChangedSpy.count(), 0); - QCOMPARE(imageChangedSpy.count(), 0); - QCOMPARE(albumIdChangedSpy.count(), 0); - QCOMPARE(isValidChangedSpy.count(), 0); - QCOMPARE(remainingTracksChangedSpy.count(), 0); - - firstItem->setData(QStringLiteral("artist1"), ManageHeaderBarTest::ArtistRole); - - QCOMPARE(currentTrackChangedSpy.count(), 0); - QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(artistRoleChangedSpy.count(), 1); - QCOMPARE(titleRoleChangedSpy.count(), 1); - QCOMPARE(albumRoleChangedSpy.count(), 1); - QCOMPARE(imageRoleChangedSpy.count(), 1); - QCOMPARE(albumIdRoleChangedSpy.count(), 1); - QCOMPARE(isValidRoleChangedSpy.count(), 1); - QCOMPARE(artistChangedSpy.count(), 0); - QCOMPARE(titleChangedSpy.count(), 0); - QCOMPARE(albumChangedSpy.count(), 0); - QCOMPARE(imageChangedSpy.count(), 0); - QCOMPARE(albumIdChangedSpy.count(), 0); - QCOMPARE(isValidChangedSpy.count(), 0); - QCOMPARE(remainingTracksChangedSpy.count(), 0); - - firstItem->setData(QStringLiteral("song1"), ManageHeaderBarTest::TitleRole); - - QCOMPARE(currentTrackChangedSpy.count(), 0); - QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(artistRoleChangedSpy.count(), 1); - QCOMPARE(titleRoleChangedSpy.count(), 1); - QCOMPARE(albumRoleChangedSpy.count(), 1); - QCOMPARE(imageRoleChangedSpy.count(), 1); - QCOMPARE(albumIdRoleChangedSpy.count(), 1); - QCOMPARE(isValidRoleChangedSpy.count(), 1); - QCOMPARE(artistChangedSpy.count(), 0); - QCOMPARE(titleChangedSpy.count(), 0); - QCOMPARE(albumChangedSpy.count(), 0); - QCOMPARE(imageChangedSpy.count(), 0); - QCOMPARE(albumIdChangedSpy.count(), 0); - QCOMPARE(isValidChangedSpy.count(), 0); - QCOMPARE(remainingTracksChangedSpy.count(), 0); - - firstItem->setData(QStringLiteral("album1"), ManageHeaderBarTest::AlbumRole); - - QCOMPARE(currentTrackChangedSpy.count(), 0); - QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(artistRoleChangedSpy.count(), 1); - QCOMPARE(titleRoleChangedSpy.count(), 1); - QCOMPARE(albumRoleChangedSpy.count(), 1); - QCOMPARE(imageRoleChangedSpy.count(), 1); - QCOMPARE(albumIdRoleChangedSpy.count(), 1); - QCOMPARE(isValidRoleChangedSpy.count(), 1); - QCOMPARE(artistChangedSpy.count(), 0); - QCOMPARE(titleChangedSpy.count(), 0); - QCOMPARE(albumChangedSpy.count(), 0); - QCOMPARE(imageChangedSpy.count(), 0); - QCOMPARE(albumIdChangedSpy.count(), 0); - QCOMPARE(isValidChangedSpy.count(), 0); - QCOMPARE(remainingTracksChangedSpy.count(), 0); - - firstItem->setData(QUrl::fromUserInput(QStringLiteral("file://image.png")), ManageHeaderBarTest::ImageRole); - - QCOMPARE(currentTrackChangedSpy.count(), 0); - QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(artistRoleChangedSpy.count(), 1); - QCOMPARE(titleRoleChangedSpy.count(), 1); - QCOMPARE(albumRoleChangedSpy.count(), 1); - QCOMPARE(imageRoleChangedSpy.count(), 1); - QCOMPARE(albumIdRoleChangedSpy.count(), 1); - QCOMPARE(isValidRoleChangedSpy.count(), 1); - QCOMPARE(artistChangedSpy.count(), 0); - QCOMPARE(titleChangedSpy.count(), 0); - QCOMPARE(albumChangedSpy.count(), 0); - QCOMPARE(imageChangedSpy.count(), 0); - QCOMPARE(albumIdChangedSpy.count(), 0); - QCOMPARE(isValidChangedSpy.count(), 0); - QCOMPARE(remainingTracksChangedSpy.count(), 0); - - firstItem->setData(true, ManageHeaderBarTest::IsValidRole); - - QCOMPARE(currentTrackChangedSpy.count(), 0); - QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(artistRoleChangedSpy.count(), 1); - QCOMPARE(titleRoleChangedSpy.count(), 1); - QCOMPARE(albumRoleChangedSpy.count(), 1); - QCOMPARE(imageRoleChangedSpy.count(), 1); - QCOMPARE(albumIdRoleChangedSpy.count(), 1); - QCOMPARE(isValidRoleChangedSpy.count(), 1); - QCOMPARE(artistChangedSpy.count(), 0); - QCOMPARE(titleChangedSpy.count(), 0); - QCOMPARE(albumChangedSpy.count(), 0); - QCOMPARE(imageChangedSpy.count(), 0); - QCOMPARE(albumIdChangedSpy.count(), 0); - QCOMPARE(isValidChangedSpy.count(), 0); - QCOMPARE(remainingTracksChangedSpy.count(), 0); - - myControl.setCurrentTrack(myPlayList.index(0, 0)); - - QCOMPARE(currentTrackChangedSpy.count(), 1); - QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(artistRoleChangedSpy.count(), 1); - QCOMPARE(titleRoleChangedSpy.count(), 1); - QCOMPARE(albumRoleChangedSpy.count(), 1); - QCOMPARE(imageRoleChangedSpy.count(), 1); - QCOMPARE(albumIdRoleChangedSpy.count(), 1); - QCOMPARE(isValidRoleChangedSpy.count(), 1); - QCOMPARE(artistChangedSpy.count(), 1); - QCOMPARE(titleChangedSpy.count(), 1); - QCOMPARE(albumChangedSpy.count(), 1); - QCOMPARE(imageChangedSpy.count(), 1); - QCOMPARE(albumIdChangedSpy.count(), 0); - QCOMPARE(isValidChangedSpy.count(), 1); - QCOMPARE(remainingTracksChangedSpy.count(), 1); - - QCOMPARE(myControl.currentTrack(), QPersistentModelIndex(myPlayList.index(0, 0))); - QCOMPARE(myControl.remainingTracks(), 1); - QCOMPARE(myControl.isValid(), true); - QCOMPARE(myControl.image(), QUrl::fromUserInput(QStringLiteral("file://image.png"))); - QCOMPARE(myControl.album(), QVariant(QStringLiteral("album1"))); - QCOMPARE(myControl.artist(), QVariant(QStringLiteral("artist1"))); - QCOMPARE(myControl.title(), QVariant(QStringLiteral("song1"))); - - QCOMPARE(myPlayList.removeRow(0), true); - - QCOMPARE(currentTrackChangedSpy.count(), 1); - QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(artistRoleChangedSpy.count(), 1); - QCOMPARE(titleRoleChangedSpy.count(), 1); - QCOMPARE(albumRoleChangedSpy.count(), 1); - QCOMPARE(imageRoleChangedSpy.count(), 1); - QCOMPARE(albumIdRoleChangedSpy.count(), 1); - QCOMPARE(isValidRoleChangedSpy.count(), 1); - QCOMPARE(artistChangedSpy.count(), 2); - QCOMPARE(titleChangedSpy.count(), 2); - QCOMPARE(albumChangedSpy.count(), 2); - QCOMPARE(imageChangedSpy.count(), 2); - QCOMPARE(albumIdChangedSpy.count(), 0); - QCOMPARE(isValidChangedSpy.count(), 2); - QCOMPARE(remainingTracksChangedSpy.count(), 2); - - QCOMPARE(myControl.artist().toString().isEmpty(), true); - QCOMPARE(myControl.title().toString().isEmpty(), true); - QCOMPARE(myControl.album().toString().isEmpty(), true); - QCOMPARE(myControl.image().toString().isEmpty(), true); - QCOMPARE(myControl.isValid(), false); - QCOMPARE(myControl.remainingTracks(), 0); -} - -void ManageHeaderBarTest::insertBeforeCurrentTrack() -{ - QStandardItemModel myPlayList; - - ManageHeaderBar myControl; - - QSignalSpy currentTrackChangedSpy(&myControl, &ManageHeaderBar::currentTrackChanged); - QSignalSpy playListModelChangedSpy(&myControl, &ManageHeaderBar::playListModelChanged); - QSignalSpy artistRoleChangedSpy(&myControl, &ManageHeaderBar::artistRoleChanged); - QSignalSpy titleRoleChangedSpy(&myControl, &ManageHeaderBar::titleRoleChanged); - QSignalSpy albumRoleChangedSpy(&myControl, &ManageHeaderBar::albumRoleChanged); - QSignalSpy imageRoleChangedSpy(&myControl, &ManageHeaderBar::imageRoleChanged); - QSignalSpy albumIdRoleChangedSpy(&myControl, &ManageHeaderBar::albumIdRoleChanged); - QSignalSpy isValidRoleChangedSpy(&myControl, &ManageHeaderBar::isValidRoleChanged); - QSignalSpy artistChangedSpy(&myControl, &ManageHeaderBar::artistChanged); - QSignalSpy titleChangedSpy(&myControl, &ManageHeaderBar::titleChanged); - QSignalSpy albumChangedSpy(&myControl, &ManageHeaderBar::albumChanged); - QSignalSpy imageChangedSpy(&myControl, &ManageHeaderBar::imageChanged); - QSignalSpy albumIdChangedSpy(&myControl, &ManageHeaderBar::albumIdChanged); - QSignalSpy isValidChangedSpy(&myControl, &ManageHeaderBar::isValidChanged); - QSignalSpy remainingTracksChangedSpy(&myControl, &ManageHeaderBar::remainingTracksChanged); - - QCOMPARE(myControl.currentTrack().isValid(), false); - QCOMPARE(myControl.playListModel(), static_cast(nullptr)); - QCOMPARE(myControl.artistRole(), static_cast(Qt::DisplayRole)); - QCOMPARE(myControl.titleRole(), static_cast(Qt::DisplayRole)); - QCOMPARE(myControl.albumRole(), static_cast(Qt::DisplayRole)); - QCOMPARE(myControl.imageRole(), static_cast(Qt::DisplayRole)); - QCOMPARE(myControl.albumIdRole(), static_cast(Qt::DisplayRole)); - QCOMPARE(myControl.isValidRole(), static_cast(Qt::DisplayRole)); - QCOMPARE(myControl.artist().toString().isEmpty(), true); - QCOMPARE(myControl.title().toString().isEmpty(), true); - QCOMPARE(myControl.album().toString().isEmpty(), true); - QCOMPARE(myControl.image().toString().isEmpty(), true); - QCOMPARE(myControl.isValid(), false); - QCOMPARE(myControl.remainingTracks(), 0); - - myControl.setArtistRole(ManageHeaderBarTest::ArtistRole); - - QCOMPARE(currentTrackChangedSpy.count(), 0); - QCOMPARE(playListModelChangedSpy.count(), 0); - QCOMPARE(artistRoleChangedSpy.count(), 1); - QCOMPARE(titleRoleChangedSpy.count(), 0); - QCOMPARE(albumRoleChangedSpy.count(), 0); - QCOMPARE(imageRoleChangedSpy.count(), 0); - QCOMPARE(albumIdRoleChangedSpy.count(), 0); - QCOMPARE(isValidRoleChangedSpy.count(), 0); - QCOMPARE(artistChangedSpy.count(), 0); - QCOMPARE(titleChangedSpy.count(), 0); - QCOMPARE(albumChangedSpy.count(), 0); - QCOMPARE(imageChangedSpy.count(), 0); - QCOMPARE(albumIdChangedSpy.count(), 0); - QCOMPARE(isValidChangedSpy.count(), 0); - QCOMPARE(remainingTracksChangedSpy.count(), 0); - - QCOMPARE(myControl.artistRole(), static_cast(ManageHeaderBarTest::ArtistRole)); - - myControl.setTitleRole(ManageHeaderBarTest::TitleRole); - - QCOMPARE(currentTrackChangedSpy.count(), 0); - QCOMPARE(playListModelChangedSpy.count(), 0); - QCOMPARE(artistRoleChangedSpy.count(), 1); - QCOMPARE(titleRoleChangedSpy.count(), 1); - QCOMPARE(albumRoleChangedSpy.count(), 0); - QCOMPARE(imageRoleChangedSpy.count(), 0); - QCOMPARE(albumIdRoleChangedSpy.count(), 0); - QCOMPARE(isValidRoleChangedSpy.count(), 0); - QCOMPARE(artistChangedSpy.count(), 0); - QCOMPARE(titleChangedSpy.count(), 0); - QCOMPARE(albumChangedSpy.count(), 0); - QCOMPARE(imageChangedSpy.count(), 0); - QCOMPARE(albumIdChangedSpy.count(), 0); - QCOMPARE(isValidChangedSpy.count(), 0); - QCOMPARE(remainingTracksChangedSpy.count(), 0); - - QCOMPARE(myControl.titleRole(), static_cast(ManageHeaderBarTest::TitleRole)); - - myControl.setAlbumRole(ManageHeaderBarTest::AlbumRole); - - QCOMPARE(currentTrackChangedSpy.count(), 0); - QCOMPARE(playListModelChangedSpy.count(), 0); - QCOMPARE(artistRoleChangedSpy.count(), 1); - QCOMPARE(titleRoleChangedSpy.count(), 1); - QCOMPARE(albumRoleChangedSpy.count(), 1); - QCOMPARE(imageRoleChangedSpy.count(), 0); - QCOMPARE(albumIdRoleChangedSpy.count(), 0); - QCOMPARE(isValidRoleChangedSpy.count(), 0); - QCOMPARE(artistChangedSpy.count(), 0); - QCOMPARE(titleChangedSpy.count(), 0); - QCOMPARE(albumChangedSpy.count(), 0); - QCOMPARE(imageChangedSpy.count(), 0); - QCOMPARE(albumIdChangedSpy.count(), 0); - QCOMPARE(isValidChangedSpy.count(), 0); - QCOMPARE(remainingTracksChangedSpy.count(), 0); - - QCOMPARE(myControl.albumRole(), static_cast(ManageHeaderBarTest::AlbumRole)); - - myControl.setImageRole(ManageHeaderBarTest::ImageRole); - - QCOMPARE(currentTrackChangedSpy.count(), 0); - QCOMPARE(playListModelChangedSpy.count(), 0); - QCOMPARE(artistRoleChangedSpy.count(), 1); - QCOMPARE(titleRoleChangedSpy.count(), 1); - QCOMPARE(albumRoleChangedSpy.count(), 1); - QCOMPARE(imageRoleChangedSpy.count(), 1); - QCOMPARE(albumIdRoleChangedSpy.count(), 0); - QCOMPARE(isValidRoleChangedSpy.count(), 0); - QCOMPARE(artistChangedSpy.count(), 0); - QCOMPARE(titleChangedSpy.count(), 0); - QCOMPARE(albumChangedSpy.count(), 0); - QCOMPARE(imageChangedSpy.count(), 0); - QCOMPARE(albumIdChangedSpy.count(), 0); - QCOMPARE(isValidChangedSpy.count(), 0); - QCOMPARE(remainingTracksChangedSpy.count(), 0); - - QCOMPARE(myControl.imageRole(), static_cast(ManageHeaderBarTest::ImageRole)); - - myControl.setAlbumIdRole(ManageHeaderBarTest::AlbumIdRole); - - QCOMPARE(currentTrackChangedSpy.count(), 0); - QCOMPARE(playListModelChangedSpy.count(), 0); - QCOMPARE(artistRoleChangedSpy.count(), 1); - QCOMPARE(titleRoleChangedSpy.count(), 1); - QCOMPARE(albumRoleChangedSpy.count(), 1); - QCOMPARE(imageRoleChangedSpy.count(), 1); - QCOMPARE(albumIdRoleChangedSpy.count(), 1); - QCOMPARE(isValidRoleChangedSpy.count(), 0); - QCOMPARE(artistChangedSpy.count(), 0); - QCOMPARE(titleChangedSpy.count(), 0); - QCOMPARE(albumChangedSpy.count(), 0); - QCOMPARE(imageChangedSpy.count(), 0); - QCOMPARE(albumIdChangedSpy.count(), 0); - QCOMPARE(isValidChangedSpy.count(), 0); - QCOMPARE(remainingTracksChangedSpy.count(), 0); - - QCOMPARE(myControl.albumIdRole(), static_cast(ManageHeaderBarTest::AlbumIdRole)); - - myControl.setIsValidRole(ManageHeaderBarTest::IsValidRole); - - QCOMPARE(currentTrackChangedSpy.count(), 0); - QCOMPARE(playListModelChangedSpy.count(), 0); - QCOMPARE(artistRoleChangedSpy.count(), 1); - QCOMPARE(titleRoleChangedSpy.count(), 1); - QCOMPARE(albumRoleChangedSpy.count(), 1); - QCOMPARE(imageRoleChangedSpy.count(), 1); - QCOMPARE(albumIdRoleChangedSpy.count(), 1); - QCOMPARE(isValidRoleChangedSpy.count(), 1); - QCOMPARE(artistChangedSpy.count(), 0); - QCOMPARE(titleChangedSpy.count(), 0); - QCOMPARE(albumChangedSpy.count(), 0); - QCOMPARE(imageChangedSpy.count(), 0); - QCOMPARE(albumIdChangedSpy.count(), 0); - QCOMPARE(isValidChangedSpy.count(), 0); - QCOMPARE(remainingTracksChangedSpy.count(), 0); - - QCOMPARE(myControl.isValidRole(), static_cast(ManageHeaderBarTest::IsValidRole)); - - myControl.setPlayListModel(&myPlayList); - - QCOMPARE(currentTrackChangedSpy.count(), 0); - QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(artistRoleChangedSpy.count(), 1); - QCOMPARE(titleRoleChangedSpy.count(), 1); - QCOMPARE(albumRoleChangedSpy.count(), 1); - QCOMPARE(imageRoleChangedSpy.count(), 1); - QCOMPARE(albumIdRoleChangedSpy.count(), 1); - QCOMPARE(isValidRoleChangedSpy.count(), 1); - QCOMPARE(artistChangedSpy.count(), 0); - QCOMPARE(titleChangedSpy.count(), 0); - QCOMPARE(albumChangedSpy.count(), 0); - QCOMPARE(imageChangedSpy.count(), 0); - QCOMPARE(albumIdChangedSpy.count(), 0); - QCOMPARE(isValidChangedSpy.count(), 0); - QCOMPARE(remainingTracksChangedSpy.count(), 0); - - QCOMPARE(myControl.playListModel(), &myPlayList); - - myPlayList.appendRow(new QStandardItem); - myPlayList.appendRow(new QStandardItem); - - QCOMPARE(currentTrackChangedSpy.count(), 0); - QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(artistRoleChangedSpy.count(), 1); - QCOMPARE(titleRoleChangedSpy.count(), 1); - QCOMPARE(albumRoleChangedSpy.count(), 1); - QCOMPARE(imageRoleChangedSpy.count(), 1); - QCOMPARE(albumIdRoleChangedSpy.count(), 1); - QCOMPARE(isValidRoleChangedSpy.count(), 1); - QCOMPARE(artistChangedSpy.count(), 0); - QCOMPARE(titleChangedSpy.count(), 0); - QCOMPARE(albumChangedSpy.count(), 0); - QCOMPARE(imageChangedSpy.count(), 0); - QCOMPARE(albumIdChangedSpy.count(), 0); - QCOMPARE(isValidChangedSpy.count(), 0); - QCOMPARE(remainingTracksChangedSpy.count(), 0); - - auto firstItem = myPlayList.item(0, 0); - firstItem->setData(QUrl::fromUserInput(QStringLiteral("file://0.mp3")), ManageHeaderBarTest::ResourceRole); - - QCOMPARE(currentTrackChangedSpy.count(), 0); - QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(artistRoleChangedSpy.count(), 1); - QCOMPARE(titleRoleChangedSpy.count(), 1); - QCOMPARE(albumRoleChangedSpy.count(), 1); - QCOMPARE(imageRoleChangedSpy.count(), 1); - QCOMPARE(albumIdRoleChangedSpy.count(), 1); - QCOMPARE(isValidRoleChangedSpy.count(), 1); - QCOMPARE(artistChangedSpy.count(), 0); - QCOMPARE(titleChangedSpy.count(), 0); - QCOMPARE(albumChangedSpy.count(), 0); - QCOMPARE(imageChangedSpy.count(), 0); - QCOMPARE(albumIdChangedSpy.count(), 0); - QCOMPARE(isValidChangedSpy.count(), 0); - QCOMPARE(remainingTracksChangedSpy.count(), 0); - - firstItem->setData(QStringLiteral("artist1"), ManageHeaderBarTest::ArtistRole); - - QCOMPARE(currentTrackChangedSpy.count(), 0); - QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(artistRoleChangedSpy.count(), 1); - QCOMPARE(titleRoleChangedSpy.count(), 1); - QCOMPARE(albumRoleChangedSpy.count(), 1); - QCOMPARE(imageRoleChangedSpy.count(), 1); - QCOMPARE(albumIdRoleChangedSpy.count(), 1); - QCOMPARE(isValidRoleChangedSpy.count(), 1); - QCOMPARE(artistChangedSpy.count(), 0); - QCOMPARE(titleChangedSpy.count(), 0); - QCOMPARE(albumChangedSpy.count(), 0); - QCOMPARE(imageChangedSpy.count(), 0); - QCOMPARE(albumIdChangedSpy.count(), 0); - QCOMPARE(isValidChangedSpy.count(), 0); - QCOMPARE(remainingTracksChangedSpy.count(), 0); - - firstItem->setData(QStringLiteral("song1"), ManageHeaderBarTest::TitleRole); - - QCOMPARE(currentTrackChangedSpy.count(), 0); - QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(artistRoleChangedSpy.count(), 1); - QCOMPARE(titleRoleChangedSpy.count(), 1); - QCOMPARE(albumRoleChangedSpy.count(), 1); - QCOMPARE(imageRoleChangedSpy.count(), 1); - QCOMPARE(albumIdRoleChangedSpy.count(), 1); - QCOMPARE(isValidRoleChangedSpy.count(), 1); - QCOMPARE(artistChangedSpy.count(), 0); - QCOMPARE(titleChangedSpy.count(), 0); - QCOMPARE(albumChangedSpy.count(), 0); - QCOMPARE(imageChangedSpy.count(), 0); - QCOMPARE(albumIdChangedSpy.count(), 0); - QCOMPARE(isValidChangedSpy.count(), 0); - QCOMPARE(remainingTracksChangedSpy.count(), 0); - - firstItem->setData(QStringLiteral("album1"), ManageHeaderBarTest::AlbumRole); - - QCOMPARE(currentTrackChangedSpy.count(), 0); - QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(artistRoleChangedSpy.count(), 1); - QCOMPARE(titleRoleChangedSpy.count(), 1); - QCOMPARE(albumRoleChangedSpy.count(), 1); - QCOMPARE(imageRoleChangedSpy.count(), 1); - QCOMPARE(albumIdRoleChangedSpy.count(), 1); - QCOMPARE(isValidRoleChangedSpy.count(), 1); - QCOMPARE(artistChangedSpy.count(), 0); - QCOMPARE(titleChangedSpy.count(), 0); - QCOMPARE(albumChangedSpy.count(), 0); - QCOMPARE(imageChangedSpy.count(), 0); - QCOMPARE(albumIdChangedSpy.count(), 0); - QCOMPARE(isValidChangedSpy.count(), 0); - QCOMPARE(remainingTracksChangedSpy.count(), 0); - - firstItem->setData(QUrl::fromUserInput(QStringLiteral("file://image.png")), ManageHeaderBarTest::ImageRole); - - QCOMPARE(currentTrackChangedSpy.count(), 0); - QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(artistRoleChangedSpy.count(), 1); - QCOMPARE(titleRoleChangedSpy.count(), 1); - QCOMPARE(albumRoleChangedSpy.count(), 1); - QCOMPARE(imageRoleChangedSpy.count(), 1); - QCOMPARE(albumIdRoleChangedSpy.count(), 1); - QCOMPARE(isValidRoleChangedSpy.count(), 1); - QCOMPARE(artistChangedSpy.count(), 0); - QCOMPARE(titleChangedSpy.count(), 0); - QCOMPARE(albumChangedSpy.count(), 0); - QCOMPARE(imageChangedSpy.count(), 0); - QCOMPARE(albumIdChangedSpy.count(), 0); - QCOMPARE(isValidChangedSpy.count(), 0); - QCOMPARE(remainingTracksChangedSpy.count(), 0); - - firstItem->setData(true, ManageHeaderBarTest::IsValidRole); - - QCOMPARE(currentTrackChangedSpy.count(), 0); - QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(artistRoleChangedSpy.count(), 1); - QCOMPARE(titleRoleChangedSpy.count(), 1); - QCOMPARE(albumRoleChangedSpy.count(), 1); - QCOMPARE(imageRoleChangedSpy.count(), 1); - QCOMPARE(albumIdRoleChangedSpy.count(), 1); - QCOMPARE(isValidRoleChangedSpy.count(), 1); - QCOMPARE(artistChangedSpy.count(), 0); - QCOMPARE(titleChangedSpy.count(), 0); - QCOMPARE(albumChangedSpy.count(), 0); - QCOMPARE(imageChangedSpy.count(), 0); - QCOMPARE(albumIdChangedSpy.count(), 0); - QCOMPARE(isValidChangedSpy.count(), 0); - QCOMPARE(remainingTracksChangedSpy.count(), 0); - - myControl.setCurrentTrack(myPlayList.index(0, 0)); - - QCOMPARE(currentTrackChangedSpy.count(), 1); - QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(artistRoleChangedSpy.count(), 1); - QCOMPARE(titleRoleChangedSpy.count(), 1); - QCOMPARE(albumRoleChangedSpy.count(), 1); - QCOMPARE(imageRoleChangedSpy.count(), 1); - QCOMPARE(albumIdRoleChangedSpy.count(), 1); - QCOMPARE(isValidRoleChangedSpy.count(), 1); - QCOMPARE(artistChangedSpy.count(), 1); - QCOMPARE(titleChangedSpy.count(), 1); - QCOMPARE(albumChangedSpy.count(), 1); - QCOMPARE(imageChangedSpy.count(), 1); - QCOMPARE(albumIdChangedSpy.count(), 0); - QCOMPARE(isValidChangedSpy.count(), 1); - QCOMPARE(remainingTracksChangedSpy.count(), 1); - - QCOMPARE(myControl.currentTrack(), QPersistentModelIndex(myPlayList.index(0, 0))); - QCOMPARE(myControl.remainingTracks(), 1); - QCOMPARE(myControl.isValid(), true); - QCOMPARE(myControl.image(), QUrl::fromUserInput(QStringLiteral("file://image.png"))); - QCOMPARE(myControl.album(), QVariant(QStringLiteral("album1"))); - QCOMPARE(myControl.artist(), QVariant(QStringLiteral("artist1"))); - QCOMPARE(myControl.title(), QVariant(QStringLiteral("song1"))); - - myPlayList.insertRow(0, new QStandardItem); - - QCOMPARE(currentTrackChangedSpy.count(), 1); - QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(artistRoleChangedSpy.count(), 1); - QCOMPARE(titleRoleChangedSpy.count(), 1); - QCOMPARE(albumRoleChangedSpy.count(), 1); - QCOMPARE(imageRoleChangedSpy.count(), 1); - QCOMPARE(albumIdRoleChangedSpy.count(), 1); - QCOMPARE(isValidRoleChangedSpy.count(), 1); - QCOMPARE(artistChangedSpy.count(), 1); - QCOMPARE(titleChangedSpy.count(), 1); - QCOMPARE(albumChangedSpy.count(), 1); - QCOMPARE(imageChangedSpy.count(), 1); - QCOMPARE(albumIdChangedSpy.count(), 0); - QCOMPARE(isValidChangedSpy.count(), 1); - QCOMPARE(remainingTracksChangedSpy.count(), 1); -} - -void ManageHeaderBarTest::moveCurrentTrack() -{ - MediaPlayList myPlayList; - DatabaseInterface myDatabaseContent; - TracksListener myListener(&myDatabaseContent); - - myDatabaseContent.init(QStringLiteral("testDbDirectContent")); - - connect(&myListener, &TracksListener::trackHasChanged, - &myPlayList, &MediaPlayList::trackChanged); - connect(&myPlayList, &MediaPlayList::newEntryInList, - &myListener, &TracksListener::newEntryInList); - connect(&myPlayList, &MediaPlayList::newTrackByNameInList, - &myListener, &TracksListener::trackByNameInList); - connect(&myDatabaseContent, &DatabaseInterface::tracksAdded, - &myListener, &TracksListener::tracksAdded); - - ManageHeaderBar myControl; - - QSignalSpy currentTrackChangedSpy(&myControl, &ManageHeaderBar::currentTrackChanged); - QSignalSpy playListModelChangedSpy(&myControl, &ManageHeaderBar::playListModelChanged); - QSignalSpy artistRoleChangedSpy(&myControl, &ManageHeaderBar::artistRoleChanged); - QSignalSpy titleRoleChangedSpy(&myControl, &ManageHeaderBar::titleRoleChanged); - QSignalSpy albumRoleChangedSpy(&myControl, &ManageHeaderBar::albumRoleChanged); - QSignalSpy imageRoleChangedSpy(&myControl, &ManageHeaderBar::imageRoleChanged); - QSignalSpy albumIdRoleChangedSpy(&myControl, &ManageHeaderBar::albumIdRoleChanged); - QSignalSpy isValidRoleChangedSpy(&myControl, &ManageHeaderBar::isValidRoleChanged); - QSignalSpy artistChangedSpy(&myControl, &ManageHeaderBar::artistChanged); - QSignalSpy titleChangedSpy(&myControl, &ManageHeaderBar::titleChanged); - QSignalSpy albumChangedSpy(&myControl, &ManageHeaderBar::albumChanged); - QSignalSpy imageChangedSpy(&myControl, &ManageHeaderBar::imageChanged); - QSignalSpy albumIdChangedSpy(&myControl, &ManageHeaderBar::albumIdChanged); - QSignalSpy isValidChangedSpy(&myControl, &ManageHeaderBar::isValidChanged); - QSignalSpy remainingTracksChangedSpy(&myControl, &ManageHeaderBar::remainingTracksChanged); - - QCOMPARE(myControl.currentTrack().isValid(), false); - QCOMPARE(myControl.playListModel(), static_cast(nullptr)); - QCOMPARE(myControl.artistRole(), static_cast(Qt::DisplayRole)); - QCOMPARE(myControl.titleRole(), static_cast(Qt::DisplayRole)); - QCOMPARE(myControl.albumRole(), static_cast(Qt::DisplayRole)); - QCOMPARE(myControl.imageRole(), static_cast(Qt::DisplayRole)); - QCOMPARE(myControl.albumIdRole(), static_cast(Qt::DisplayRole)); - QCOMPARE(myControl.isValidRole(), static_cast(Qt::DisplayRole)); - QCOMPARE(myControl.artist().toString().isEmpty(), true); - QCOMPARE(myControl.title().toString().isEmpty(), true); - QCOMPARE(myControl.album().toString().isEmpty(), true); - QCOMPARE(myControl.image().toString().isEmpty(), true); - QCOMPARE(myControl.isValid(), false); - QCOMPARE(myControl.remainingTracks(), 0); - - myControl.setArtistRole(MediaPlayList::ArtistRole); - - QCOMPARE(currentTrackChangedSpy.count(), 0); - QCOMPARE(playListModelChangedSpy.count(), 0); - QCOMPARE(artistRoleChangedSpy.count(), 1); - QCOMPARE(titleRoleChangedSpy.count(), 0); - QCOMPARE(albumRoleChangedSpy.count(), 0); - QCOMPARE(imageRoleChangedSpy.count(), 0); - QCOMPARE(albumIdRoleChangedSpy.count(), 0); - QCOMPARE(isValidRoleChangedSpy.count(), 0); - QCOMPARE(artistChangedSpy.count(), 0); - QCOMPARE(titleChangedSpy.count(), 0); - QCOMPARE(albumChangedSpy.count(), 0); - QCOMPARE(imageChangedSpy.count(), 0); - QCOMPARE(albumIdChangedSpy.count(), 0); - QCOMPARE(isValidChangedSpy.count(), 0); - QCOMPARE(remainingTracksChangedSpy.count(), 0); - - QCOMPARE(myControl.artistRole(), static_cast(MediaPlayList::ArtistRole)); - - myControl.setTitleRole(MediaPlayList::TitleRole); - - QCOMPARE(currentTrackChangedSpy.count(), 0); - QCOMPARE(playListModelChangedSpy.count(), 0); - QCOMPARE(artistRoleChangedSpy.count(), 1); - QCOMPARE(titleRoleChangedSpy.count(), 1); - QCOMPARE(albumRoleChangedSpy.count(), 0); - QCOMPARE(imageRoleChangedSpy.count(), 0); - QCOMPARE(albumIdRoleChangedSpy.count(), 0); - QCOMPARE(isValidRoleChangedSpy.count(), 0); - QCOMPARE(artistChangedSpy.count(), 0); - QCOMPARE(titleChangedSpy.count(), 0); - QCOMPARE(albumChangedSpy.count(), 0); - QCOMPARE(imageChangedSpy.count(), 0); - QCOMPARE(albumIdChangedSpy.count(), 0); - QCOMPARE(isValidChangedSpy.count(), 0); - QCOMPARE(remainingTracksChangedSpy.count(), 0); - - QCOMPARE(myControl.titleRole(), static_cast(MediaPlayList::TitleRole)); - - myControl.setAlbumRole(MediaPlayList::AlbumRole); - - QCOMPARE(currentTrackChangedSpy.count(), 0); - QCOMPARE(playListModelChangedSpy.count(), 0); - QCOMPARE(artistRoleChangedSpy.count(), 1); - QCOMPARE(titleRoleChangedSpy.count(), 1); - QCOMPARE(albumRoleChangedSpy.count(), 1); - QCOMPARE(imageRoleChangedSpy.count(), 0); - QCOMPARE(albumIdRoleChangedSpy.count(), 0); - QCOMPARE(isValidRoleChangedSpy.count(), 0); - QCOMPARE(artistChangedSpy.count(), 0); - QCOMPARE(titleChangedSpy.count(), 0); - QCOMPARE(albumChangedSpy.count(), 0); - QCOMPARE(imageChangedSpy.count(), 0); - QCOMPARE(albumIdChangedSpy.count(), 0); - QCOMPARE(isValidChangedSpy.count(), 0); - QCOMPARE(remainingTracksChangedSpy.count(), 0); - - QCOMPARE(myControl.albumRole(), static_cast(MediaPlayList::AlbumRole)); - - myControl.setImageRole(MediaPlayList::ImageUrlRole); - - QCOMPARE(currentTrackChangedSpy.count(), 0); - QCOMPARE(playListModelChangedSpy.count(), 0); - QCOMPARE(artistRoleChangedSpy.count(), 1); - QCOMPARE(titleRoleChangedSpy.count(), 1); - QCOMPARE(albumRoleChangedSpy.count(), 1); - QCOMPARE(imageRoleChangedSpy.count(), 1); - QCOMPARE(albumIdRoleChangedSpy.count(), 0); - QCOMPARE(isValidRoleChangedSpy.count(), 0); - QCOMPARE(artistChangedSpy.count(), 0); - QCOMPARE(titleChangedSpy.count(), 0); - QCOMPARE(albumChangedSpy.count(), 0); - QCOMPARE(imageChangedSpy.count(), 0); - QCOMPARE(albumIdChangedSpy.count(), 0); - QCOMPARE(isValidChangedSpy.count(), 0); - QCOMPARE(remainingTracksChangedSpy.count(), 0); - - QCOMPARE(myControl.imageRole(), static_cast(MediaPlayList::ImageUrlRole)); - - myControl.setAlbumIdRole(MediaPlayList::AlbumIdRole); - - QCOMPARE(currentTrackChangedSpy.count(), 0); - QCOMPARE(playListModelChangedSpy.count(), 0); - QCOMPARE(artistRoleChangedSpy.count(), 1); - QCOMPARE(titleRoleChangedSpy.count(), 1); - QCOMPARE(albumRoleChangedSpy.count(), 1); - QCOMPARE(imageRoleChangedSpy.count(), 1); - QCOMPARE(albumIdRoleChangedSpy.count(), 1); - QCOMPARE(isValidRoleChangedSpy.count(), 0); - QCOMPARE(artistChangedSpy.count(), 0); - QCOMPARE(titleChangedSpy.count(), 0); - QCOMPARE(albumChangedSpy.count(), 0); - QCOMPARE(imageChangedSpy.count(), 0); - QCOMPARE(albumIdChangedSpy.count(), 0); - QCOMPARE(isValidChangedSpy.count(), 0); - QCOMPARE(remainingTracksChangedSpy.count(), 0); - - QCOMPARE(myControl.albumIdRole(), static_cast(MediaPlayList::AlbumIdRole)); - - myControl.setIsValidRole(MediaPlayList::IsValidRole); - - QCOMPARE(currentTrackChangedSpy.count(), 0); - QCOMPARE(playListModelChangedSpy.count(), 0); - QCOMPARE(artistRoleChangedSpy.count(), 1); - QCOMPARE(titleRoleChangedSpy.count(), 1); - QCOMPARE(albumRoleChangedSpy.count(), 1); - QCOMPARE(imageRoleChangedSpy.count(), 1); - QCOMPARE(albumIdRoleChangedSpy.count(), 1); - QCOMPARE(isValidRoleChangedSpy.count(), 1); - QCOMPARE(artistChangedSpy.count(), 0); - QCOMPARE(titleChangedSpy.count(), 0); - QCOMPARE(albumChangedSpy.count(), 0); - QCOMPARE(imageChangedSpy.count(), 0); - QCOMPARE(albumIdChangedSpy.count(), 0); - QCOMPARE(isValidChangedSpy.count(), 0); - QCOMPARE(remainingTracksChangedSpy.count(), 0); - - QCOMPARE(myControl.isValidRole(), static_cast(MediaPlayList::IsValidRole)); - - myControl.setPlayListModel(&myPlayList); - - QCOMPARE(currentTrackChangedSpy.count(), 0); - QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(artistRoleChangedSpy.count(), 1); - QCOMPARE(titleRoleChangedSpy.count(), 1); - QCOMPARE(albumRoleChangedSpy.count(), 1); - QCOMPARE(imageRoleChangedSpy.count(), 1); - QCOMPARE(albumIdRoleChangedSpy.count(), 1); - QCOMPARE(isValidRoleChangedSpy.count(), 1); - QCOMPARE(artistChangedSpy.count(), 0); - QCOMPARE(titleChangedSpy.count(), 0); - QCOMPARE(albumChangedSpy.count(), 0); - QCOMPARE(imageChangedSpy.count(), 0); - QCOMPARE(albumIdChangedSpy.count(), 0); - QCOMPARE(isValidChangedSpy.count(), 0); - QCOMPARE(remainingTracksChangedSpy.count(), 0); - - QCOMPARE(myControl.playListModel(), &myPlayList); - - myDatabaseContent.insertTracksList(mNewTracks, mNewCovers); - - myPlayList.enqueue({myDatabaseContent.trackIdFromTitleAlbumTrackDiscNumber(QStringLiteral("track1"), QStringLiteral("artist1"), QStringLiteral("album2"), 1, 1), - QStringLiteral("track1")}, - ElisaUtils::Track); - myPlayList.enqueue({myDatabaseContent.trackIdFromTitleAlbumTrackDiscNumber(QStringLiteral("track2"), QStringLiteral("artist1"), QStringLiteral("album1"), 2, 2), - QStringLiteral("track2")}, - ElisaUtils::Track); - - QCOMPARE(currentTrackChangedSpy.count(), 0); - QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(artistRoleChangedSpy.count(), 1); - QCOMPARE(titleRoleChangedSpy.count(), 1); - QCOMPARE(albumRoleChangedSpy.count(), 1); - QCOMPARE(imageRoleChangedSpy.count(), 1); - QCOMPARE(albumIdRoleChangedSpy.count(), 1); - QCOMPARE(isValidRoleChangedSpy.count(), 1); - QCOMPARE(artistChangedSpy.count(), 0); - QCOMPARE(titleChangedSpy.count(), 0); - QCOMPARE(albumChangedSpy.count(), 0); - QCOMPARE(imageChangedSpy.count(), 0); - QCOMPARE(albumIdChangedSpy.count(), 0); - QCOMPARE(isValidChangedSpy.count(), 0); - QCOMPARE(remainingTracksChangedSpy.count(), 0); - - myControl.setCurrentTrack(myPlayList.index(0, 0)); - - QCOMPARE(currentTrackChangedSpy.count(), 1); - QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(artistRoleChangedSpy.count(), 1); - QCOMPARE(titleRoleChangedSpy.count(), 1); - QCOMPARE(albumRoleChangedSpy.count(), 1); - QCOMPARE(imageRoleChangedSpy.count(), 1); - QCOMPARE(albumIdRoleChangedSpy.count(), 1); - QCOMPARE(isValidRoleChangedSpy.count(), 1); - QCOMPARE(artistChangedSpy.count(), 1); - QCOMPARE(titleChangedSpy.count(), 1); - QCOMPARE(albumChangedSpy.count(), 1); - QCOMPARE(imageChangedSpy.count(), 1); - QCOMPARE(albumIdChangedSpy.count(), 1); - QCOMPARE(isValidChangedSpy.count(), 1); - QCOMPARE(remainingTracksChangedSpy.count(), 1); - - QCOMPARE(myControl.currentTrack(), QPersistentModelIndex(myPlayList.index(0, 0))); - QCOMPARE(myControl.remainingTracks(), 1); - QCOMPARE(myControl.isValid(), true); - QCOMPARE(myControl.image(), QUrl::fromUserInput(QStringLiteral("file:album2"))); - QCOMPARE(myControl.album(), QVariant(QStringLiteral("album2"))); - QCOMPARE(myControl.artist(), QVariant(QStringLiteral("artist1"))); - QCOMPARE(myControl.title(), QVariant(QStringLiteral("track1"))); - QCOMPARE(myControl.albumId(), qulonglong(2)); - - QCOMPARE(myPlayList.moveRow(myControl.currentTrack().parent(), 0, myControl.currentTrack().parent(), 2), true); - - QCOMPARE(currentTrackChangedSpy.count(), 1); - QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(artistRoleChangedSpy.count(), 1); - QCOMPARE(titleRoleChangedSpy.count(), 1); - QCOMPARE(albumRoleChangedSpy.count(), 1); - QCOMPARE(imageRoleChangedSpy.count(), 1); - QCOMPARE(albumIdRoleChangedSpy.count(), 1); - QCOMPARE(isValidRoleChangedSpy.count(), 1); - QCOMPARE(artistChangedSpy.count(), 1); - QCOMPARE(titleChangedSpy.count(), 1); - QCOMPARE(albumChangedSpy.count(), 1); - QCOMPARE(imageChangedSpy.count(), 1); - QCOMPARE(albumIdChangedSpy.count(), 1); - QCOMPARE(isValidChangedSpy.count(), 1); - QCOMPARE(remainingTracksChangedSpy.count(), 2); - - QCOMPARE(myControl.remainingTracks(), 0); -} - -void ManageHeaderBarTest::moveAnotherTrack() -{ - MediaPlayList myPlayList; - DatabaseInterface myDatabaseContent; - TracksListener myListener(&myDatabaseContent); - - myDatabaseContent.init(QStringLiteral("testDbDirectContent")); - - connect(&myListener, &TracksListener::trackHasChanged, - &myPlayList, &MediaPlayList::trackChanged); - connect(&myPlayList, &MediaPlayList::newEntryInList, - &myListener, &TracksListener::newEntryInList); - connect(&myPlayList, &MediaPlayList::newTrackByNameInList, - &myListener, &TracksListener::trackByNameInList); - connect(&myDatabaseContent, &DatabaseInterface::tracksAdded, - &myListener, &TracksListener::tracksAdded); - - ManageHeaderBar myControl; - - QSignalSpy currentTrackChangedSpy(&myControl, &ManageHeaderBar::currentTrackChanged); - QSignalSpy playListModelChangedSpy(&myControl, &ManageHeaderBar::playListModelChanged); - QSignalSpy artistRoleChangedSpy(&myControl, &ManageHeaderBar::artistRoleChanged); - QSignalSpy titleRoleChangedSpy(&myControl, &ManageHeaderBar::titleRoleChanged); - QSignalSpy albumRoleChangedSpy(&myControl, &ManageHeaderBar::albumRoleChanged); - QSignalSpy imageRoleChangedSpy(&myControl, &ManageHeaderBar::imageRoleChanged); - QSignalSpy albumIdRoleChangedSpy(&myControl, &ManageHeaderBar::albumIdRoleChanged); - QSignalSpy isValidRoleChangedSpy(&myControl, &ManageHeaderBar::isValidRoleChanged); - QSignalSpy artistChangedSpy(&myControl, &ManageHeaderBar::artistChanged); - QSignalSpy titleChangedSpy(&myControl, &ManageHeaderBar::titleChanged); - QSignalSpy albumChangedSpy(&myControl, &ManageHeaderBar::albumChanged); - QSignalSpy imageChangedSpy(&myControl, &ManageHeaderBar::imageChanged); - QSignalSpy albumIdChangedSpy(&myControl, &ManageHeaderBar::albumIdChanged); - QSignalSpy isValidChangedSpy(&myControl, &ManageHeaderBar::isValidChanged); - QSignalSpy remainingTracksChangedSpy(&myControl, &ManageHeaderBar::remainingTracksChanged); - - QCOMPARE(myControl.currentTrack().isValid(), false); - QCOMPARE(myControl.playListModel(), static_cast(nullptr)); - QCOMPARE(myControl.artistRole(), static_cast(Qt::DisplayRole)); - QCOMPARE(myControl.titleRole(), static_cast(Qt::DisplayRole)); - QCOMPARE(myControl.albumRole(), static_cast(Qt::DisplayRole)); - QCOMPARE(myControl.imageRole(), static_cast(Qt::DisplayRole)); - QCOMPARE(myControl.albumIdRole(), static_cast(Qt::DisplayRole)); - QCOMPARE(myControl.isValidRole(), static_cast(Qt::DisplayRole)); - QCOMPARE(myControl.artist().toString().isEmpty(), true); - QCOMPARE(myControl.title().toString().isEmpty(), true); - QCOMPARE(myControl.album().toString().isEmpty(), true); - QCOMPARE(myControl.image().toString().isEmpty(), true); - QCOMPARE(myControl.isValid(), false); - QCOMPARE(myControl.remainingTracks(), 0); - - myControl.setArtistRole(MediaPlayList::ArtistRole); - - QCOMPARE(currentTrackChangedSpy.count(), 0); - QCOMPARE(playListModelChangedSpy.count(), 0); - QCOMPARE(artistRoleChangedSpy.count(), 1); - QCOMPARE(titleRoleChangedSpy.count(), 0); - QCOMPARE(albumRoleChangedSpy.count(), 0); - QCOMPARE(imageRoleChangedSpy.count(), 0); - QCOMPARE(albumIdRoleChangedSpy.count(), 0); - QCOMPARE(isValidRoleChangedSpy.count(), 0); - QCOMPARE(artistChangedSpy.count(), 0); - QCOMPARE(titleChangedSpy.count(), 0); - QCOMPARE(albumChangedSpy.count(), 0); - QCOMPARE(imageChangedSpy.count(), 0); - QCOMPARE(albumIdChangedSpy.count(), 0); - QCOMPARE(isValidChangedSpy.count(), 0); - QCOMPARE(remainingTracksChangedSpy.count(), 0); - - QCOMPARE(myControl.artistRole(), static_cast(MediaPlayList::ArtistRole)); - - myControl.setTitleRole(MediaPlayList::TitleRole); - - QCOMPARE(currentTrackChangedSpy.count(), 0); - QCOMPARE(playListModelChangedSpy.count(), 0); - QCOMPARE(artistRoleChangedSpy.count(), 1); - QCOMPARE(titleRoleChangedSpy.count(), 1); - QCOMPARE(albumRoleChangedSpy.count(), 0); - QCOMPARE(imageRoleChangedSpy.count(), 0); - QCOMPARE(albumIdRoleChangedSpy.count(), 0); - QCOMPARE(isValidRoleChangedSpy.count(), 0); - QCOMPARE(artistChangedSpy.count(), 0); - QCOMPARE(titleChangedSpy.count(), 0); - QCOMPARE(albumChangedSpy.count(), 0); - QCOMPARE(imageChangedSpy.count(), 0); - QCOMPARE(albumIdChangedSpy.count(), 0); - QCOMPARE(isValidChangedSpy.count(), 0); - QCOMPARE(remainingTracksChangedSpy.count(), 0); - - QCOMPARE(myControl.titleRole(), static_cast(MediaPlayList::TitleRole)); - - myControl.setAlbumRole(MediaPlayList::AlbumRole); - - QCOMPARE(currentTrackChangedSpy.count(), 0); - QCOMPARE(playListModelChangedSpy.count(), 0); - QCOMPARE(artistRoleChangedSpy.count(), 1); - QCOMPARE(titleRoleChangedSpy.count(), 1); - QCOMPARE(albumRoleChangedSpy.count(), 1); - QCOMPARE(imageRoleChangedSpy.count(), 0); - QCOMPARE(albumIdRoleChangedSpy.count(), 0); - QCOMPARE(isValidRoleChangedSpy.count(), 0); - QCOMPARE(artistChangedSpy.count(), 0); - QCOMPARE(titleChangedSpy.count(), 0); - QCOMPARE(albumChangedSpy.count(), 0); - QCOMPARE(imageChangedSpy.count(), 0); - QCOMPARE(albumIdChangedSpy.count(), 0); - QCOMPARE(isValidChangedSpy.count(), 0); - QCOMPARE(remainingTracksChangedSpy.count(), 0); - - QCOMPARE(myControl.albumRole(), static_cast(MediaPlayList::AlbumRole)); - - myControl.setImageRole(MediaPlayList::ImageUrlRole); - - QCOMPARE(currentTrackChangedSpy.count(), 0); - QCOMPARE(playListModelChangedSpy.count(), 0); - QCOMPARE(artistRoleChangedSpy.count(), 1); - QCOMPARE(titleRoleChangedSpy.count(), 1); - QCOMPARE(albumRoleChangedSpy.count(), 1); - QCOMPARE(imageRoleChangedSpy.count(), 1); - QCOMPARE(albumIdRoleChangedSpy.count(), 0); - QCOMPARE(isValidRoleChangedSpy.count(), 0); - QCOMPARE(artistChangedSpy.count(), 0); - QCOMPARE(titleChangedSpy.count(), 0); - QCOMPARE(albumChangedSpy.count(), 0); - QCOMPARE(imageChangedSpy.count(), 0); - QCOMPARE(albumIdChangedSpy.count(), 0); - QCOMPARE(isValidChangedSpy.count(), 0); - QCOMPARE(remainingTracksChangedSpy.count(), 0); - - QCOMPARE(myControl.imageRole(), static_cast(MediaPlayList::ImageUrlRole)); - - myControl.setAlbumIdRole(MediaPlayList::AlbumIdRole); - - QCOMPARE(currentTrackChangedSpy.count(), 0); - QCOMPARE(playListModelChangedSpy.count(), 0); - QCOMPARE(artistRoleChangedSpy.count(), 1); - QCOMPARE(titleRoleChangedSpy.count(), 1); - QCOMPARE(albumRoleChangedSpy.count(), 1); - QCOMPARE(imageRoleChangedSpy.count(), 1); - QCOMPARE(albumIdRoleChangedSpy.count(), 1); - QCOMPARE(isValidRoleChangedSpy.count(), 0); - QCOMPARE(artistChangedSpy.count(), 0); - QCOMPARE(titleChangedSpy.count(), 0); - QCOMPARE(albumChangedSpy.count(), 0); - QCOMPARE(imageChangedSpy.count(), 0); - QCOMPARE(albumIdChangedSpy.count(), 0); - QCOMPARE(isValidChangedSpy.count(), 0); - QCOMPARE(remainingTracksChangedSpy.count(), 0); - - QCOMPARE(myControl.albumIdRole(), static_cast(MediaPlayList::AlbumIdRole)); - - myControl.setIsValidRole(MediaPlayList::IsValidRole); - - QCOMPARE(currentTrackChangedSpy.count(), 0); - QCOMPARE(playListModelChangedSpy.count(), 0); - QCOMPARE(artistRoleChangedSpy.count(), 1); - QCOMPARE(titleRoleChangedSpy.count(), 1); - QCOMPARE(albumRoleChangedSpy.count(), 1); - QCOMPARE(imageRoleChangedSpy.count(), 1); - QCOMPARE(albumIdRoleChangedSpy.count(), 1); - QCOMPARE(isValidRoleChangedSpy.count(), 1); - QCOMPARE(artistChangedSpy.count(), 0); - QCOMPARE(titleChangedSpy.count(), 0); - QCOMPARE(albumChangedSpy.count(), 0); - QCOMPARE(imageChangedSpy.count(), 0); - QCOMPARE(albumIdChangedSpy.count(), 0); - QCOMPARE(isValidChangedSpy.count(), 0); - QCOMPARE(remainingTracksChangedSpy.count(), 0); - - QCOMPARE(myControl.isValidRole(), static_cast(MediaPlayList::IsValidRole)); - - myControl.setPlayListModel(&myPlayList); - - QCOMPARE(currentTrackChangedSpy.count(), 0); - QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(artistRoleChangedSpy.count(), 1); - QCOMPARE(titleRoleChangedSpy.count(), 1); - QCOMPARE(albumRoleChangedSpy.count(), 1); - QCOMPARE(imageRoleChangedSpy.count(), 1); - QCOMPARE(albumIdRoleChangedSpy.count(), 1); - QCOMPARE(isValidRoleChangedSpy.count(), 1); - QCOMPARE(artistChangedSpy.count(), 0); - QCOMPARE(titleChangedSpy.count(), 0); - QCOMPARE(albumChangedSpy.count(), 0); - QCOMPARE(imageChangedSpy.count(), 0); - QCOMPARE(albumIdChangedSpy.count(), 0); - QCOMPARE(isValidChangedSpy.count(), 0); - QCOMPARE(remainingTracksChangedSpy.count(), 0); - - QCOMPARE(myControl.playListModel(), &myPlayList); - - auto newFiles = QList(); - const auto &constNewTracks = mNewTracks; - for (const auto &oneTrack : constNewTracks) { - newFiles.push_back(oneTrack.resourceURI()); - } - - myDatabaseContent.insertTracksList(mNewTracks, mNewCovers); - - myPlayList.enqueue({myDatabaseContent.trackIdFromTitleAlbumTrackDiscNumber(QStringLiteral("track1"), QStringLiteral("artist1"), QStringLiteral("album2"), 1, 1), - QStringLiteral("track1")}, - ElisaUtils::Track); - myPlayList.enqueue({myDatabaseContent.trackIdFromTitleAlbumTrackDiscNumber(QStringLiteral("track2"), QStringLiteral("artist1"), QStringLiteral("album1"), 2, 2), - QStringLiteral("track2")}, - ElisaUtils::Track); - - QCOMPARE(currentTrackChangedSpy.count(), 0); - QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(artistRoleChangedSpy.count(), 1); - QCOMPARE(titleRoleChangedSpy.count(), 1); - QCOMPARE(albumRoleChangedSpy.count(), 1); - QCOMPARE(imageRoleChangedSpy.count(), 1); - QCOMPARE(albumIdRoleChangedSpy.count(), 1); - QCOMPARE(isValidRoleChangedSpy.count(), 1); - QCOMPARE(artistChangedSpy.count(), 0); - QCOMPARE(titleChangedSpy.count(), 0); - QCOMPARE(albumChangedSpy.count(), 0); - QCOMPARE(imageChangedSpy.count(), 0); - QCOMPARE(albumIdChangedSpy.count(), 0); - QCOMPARE(isValidChangedSpy.count(), 0); - QCOMPARE(remainingTracksChangedSpy.count(), 0); - - myControl.setCurrentTrack(myPlayList.index(0, 0)); - - QCOMPARE(currentTrackChangedSpy.count(), 1); - QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(artistRoleChangedSpy.count(), 1); - QCOMPARE(titleRoleChangedSpy.count(), 1); - QCOMPARE(albumRoleChangedSpy.count(), 1); - QCOMPARE(imageRoleChangedSpy.count(), 1); - QCOMPARE(albumIdRoleChangedSpy.count(), 1); - QCOMPARE(isValidRoleChangedSpy.count(), 1); - QCOMPARE(artistChangedSpy.count(), 1); - QCOMPARE(titleChangedSpy.count(), 1); - QCOMPARE(albumChangedSpy.count(), 1); - QCOMPARE(imageChangedSpy.count(), 1); - QCOMPARE(albumIdChangedSpy.count(), 1); - QCOMPARE(isValidChangedSpy.count(), 1); - QCOMPARE(remainingTracksChangedSpy.count(), 1); - - QCOMPARE(myControl.currentTrack(), QPersistentModelIndex(myPlayList.index(0, 0))); - QCOMPARE(myControl.remainingTracks(), 1); - QCOMPARE(myControl.isValid(), true); - QCOMPARE(myControl.image(), QUrl::fromUserInput(QStringLiteral("file:album2"))); - QCOMPARE(myControl.album(), QVariant(QStringLiteral("album2"))); - QCOMPARE(myControl.artist(), QVariant(QStringLiteral("artist1"))); - QCOMPARE(myControl.title(), QVariant(QStringLiteral("track1"))); - QCOMPARE(myControl.albumId(), qulonglong(2)); - - QCOMPARE(myPlayList.moveRow(myControl.currentTrack().parent(), 1, myControl.currentTrack().parent(), 0), true); - - QCOMPARE(currentTrackChangedSpy.count(), 1); - QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(artistRoleChangedSpy.count(), 1); - QCOMPARE(titleRoleChangedSpy.count(), 1); - QCOMPARE(albumRoleChangedSpy.count(), 1); - QCOMPARE(imageRoleChangedSpy.count(), 1); - QCOMPARE(albumIdRoleChangedSpy.count(), 1); - QCOMPARE(isValidRoleChangedSpy.count(), 1); - QCOMPARE(artistChangedSpy.count(), 1); - QCOMPARE(titleChangedSpy.count(), 1); - QCOMPARE(albumChangedSpy.count(), 1); - QCOMPARE(imageChangedSpy.count(), 1); - QCOMPARE(albumIdChangedSpy.count(), 1); - QCOMPARE(isValidChangedSpy.count(), 1); - QCOMPARE(remainingTracksChangedSpy.count(), 2); - - QCOMPARE(myControl.remainingTracks(), 0); -} - -void ManageHeaderBarTest::setCurrentTrackTest() -{ - MediaPlayList myPlayList; - DatabaseInterface myDatabaseContent; - TracksListener myListener(&myDatabaseContent); - - myDatabaseContent.init(QStringLiteral("testDbDirectContent")); - - connect(&myListener, &TracksListener::trackHasChanged, - &myPlayList, &MediaPlayList::trackChanged); - connect(&myPlayList, &MediaPlayList::newEntryInList, - &myListener, &TracksListener::newEntryInList); - connect(&myPlayList, &MediaPlayList::newTrackByNameInList, - &myListener, &TracksListener::trackByNameInList); - connect(&myDatabaseContent, &DatabaseInterface::tracksAdded, - &myListener, &TracksListener::tracksAdded); - - ManageHeaderBar myControl; - - QSignalSpy currentTrackChangedSpy(&myControl, &ManageHeaderBar::currentTrackChanged); - QSignalSpy playListModelChangedSpy(&myControl, &ManageHeaderBar::playListModelChanged); - QSignalSpy artistRoleChangedSpy(&myControl, &ManageHeaderBar::artistRoleChanged); - QSignalSpy titleRoleChangedSpy(&myControl, &ManageHeaderBar::titleRoleChanged); - QSignalSpy albumRoleChangedSpy(&myControl, &ManageHeaderBar::albumRoleChanged); - QSignalSpy imageRoleChangedSpy(&myControl, &ManageHeaderBar::imageRoleChanged); - QSignalSpy albumIdRoleChangedSpy(&myControl, &ManageHeaderBar::albumIdRoleChanged); - QSignalSpy isValidRoleChangedSpy(&myControl, &ManageHeaderBar::isValidRoleChanged); - QSignalSpy artistChangedSpy(&myControl, &ManageHeaderBar::artistChanged); - QSignalSpy titleChangedSpy(&myControl, &ManageHeaderBar::titleChanged); - QSignalSpy albumChangedSpy(&myControl, &ManageHeaderBar::albumChanged); - QSignalSpy imageChangedSpy(&myControl, &ManageHeaderBar::imageChanged); - QSignalSpy albumIdChangedSpy(&myControl, &ManageHeaderBar::albumIdChanged); - QSignalSpy isValidChangedSpy(&myControl, &ManageHeaderBar::isValidChanged); - QSignalSpy remainingTracksChangedSpy(&myControl, &ManageHeaderBar::remainingTracksChanged); - - QCOMPARE(myControl.currentTrack().isValid(), false); - QCOMPARE(myControl.playListModel(), static_cast(nullptr)); - QCOMPARE(myControl.artistRole(), static_cast(Qt::DisplayRole)); - QCOMPARE(myControl.titleRole(), static_cast(Qt::DisplayRole)); - QCOMPARE(myControl.albumRole(), static_cast(Qt::DisplayRole)); - QCOMPARE(myControl.imageRole(), static_cast(Qt::DisplayRole)); - QCOMPARE(myControl.albumIdRole(), static_cast(Qt::DisplayRole)); - QCOMPARE(myControl.isValidRole(), static_cast(Qt::DisplayRole)); - QCOMPARE(myControl.artist().toString().isEmpty(), true); - QCOMPARE(myControl.title().toString().isEmpty(), true); - QCOMPARE(myControl.album().toString().isEmpty(), true); - QCOMPARE(myControl.image().toString().isEmpty(), true); - QCOMPARE(myControl.isValid(), false); - QCOMPARE(myControl.remainingTracks(), 0); - - myControl.setArtistRole(MediaPlayList::ArtistRole); - - QCOMPARE(currentTrackChangedSpy.count(), 0); - QCOMPARE(playListModelChangedSpy.count(), 0); - QCOMPARE(artistRoleChangedSpy.count(), 1); - QCOMPARE(titleRoleChangedSpy.count(), 0); - QCOMPARE(albumRoleChangedSpy.count(), 0); - QCOMPARE(imageRoleChangedSpy.count(), 0); - QCOMPARE(albumIdRoleChangedSpy.count(), 0); - QCOMPARE(isValidRoleChangedSpy.count(), 0); - QCOMPARE(artistChangedSpy.count(), 0); - QCOMPARE(titleChangedSpy.count(), 0); - QCOMPARE(albumChangedSpy.count(), 0); - QCOMPARE(imageChangedSpy.count(), 0); - QCOMPARE(albumIdChangedSpy.count(), 0); - QCOMPARE(isValidChangedSpy.count(), 0); - QCOMPARE(remainingTracksChangedSpy.count(), 0); - - QCOMPARE(myControl.artistRole(), static_cast(MediaPlayList::ArtistRole)); - - myControl.setTitleRole(MediaPlayList::TitleRole); - - QCOMPARE(currentTrackChangedSpy.count(), 0); - QCOMPARE(playListModelChangedSpy.count(), 0); - QCOMPARE(artistRoleChangedSpy.count(), 1); - QCOMPARE(titleRoleChangedSpy.count(), 1); - QCOMPARE(albumRoleChangedSpy.count(), 0); - QCOMPARE(imageRoleChangedSpy.count(), 0); - QCOMPARE(albumIdRoleChangedSpy.count(), 0); - QCOMPARE(isValidRoleChangedSpy.count(), 0); - QCOMPARE(artistChangedSpy.count(), 0); - QCOMPARE(titleChangedSpy.count(), 0); - QCOMPARE(albumChangedSpy.count(), 0); - QCOMPARE(imageChangedSpy.count(), 0); - QCOMPARE(albumIdChangedSpy.count(), 0); - QCOMPARE(isValidChangedSpy.count(), 0); - QCOMPARE(remainingTracksChangedSpy.count(), 0); - - QCOMPARE(myControl.titleRole(), static_cast(MediaPlayList::TitleRole)); - - myControl.setAlbumRole(MediaPlayList::AlbumRole); - - QCOMPARE(currentTrackChangedSpy.count(), 0); - QCOMPARE(playListModelChangedSpy.count(), 0); - QCOMPARE(artistRoleChangedSpy.count(), 1); - QCOMPARE(titleRoleChangedSpy.count(), 1); - QCOMPARE(albumRoleChangedSpy.count(), 1); - QCOMPARE(imageRoleChangedSpy.count(), 0); - QCOMPARE(albumIdRoleChangedSpy.count(), 0); - QCOMPARE(isValidRoleChangedSpy.count(), 0); - QCOMPARE(artistChangedSpy.count(), 0); - QCOMPARE(titleChangedSpy.count(), 0); - QCOMPARE(albumChangedSpy.count(), 0); - QCOMPARE(imageChangedSpy.count(), 0); - QCOMPARE(albumIdChangedSpy.count(), 0); - QCOMPARE(isValidChangedSpy.count(), 0); - QCOMPARE(remainingTracksChangedSpy.count(), 0); - - QCOMPARE(myControl.albumRole(), static_cast(MediaPlayList::AlbumRole)); - - myControl.setImageRole(MediaPlayList::ImageUrlRole); - - QCOMPARE(currentTrackChangedSpy.count(), 0); - QCOMPARE(playListModelChangedSpy.count(), 0); - QCOMPARE(artistRoleChangedSpy.count(), 1); - QCOMPARE(titleRoleChangedSpy.count(), 1); - QCOMPARE(albumRoleChangedSpy.count(), 1); - QCOMPARE(imageRoleChangedSpy.count(), 1); - QCOMPARE(albumIdRoleChangedSpy.count(), 0); - QCOMPARE(isValidRoleChangedSpy.count(), 0); - QCOMPARE(artistChangedSpy.count(), 0); - QCOMPARE(titleChangedSpy.count(), 0); - QCOMPARE(albumChangedSpy.count(), 0); - QCOMPARE(imageChangedSpy.count(), 0); - QCOMPARE(albumIdChangedSpy.count(), 0); - QCOMPARE(isValidChangedSpy.count(), 0); - QCOMPARE(remainingTracksChangedSpy.count(), 0); - - QCOMPARE(myControl.imageRole(), static_cast(MediaPlayList::ImageUrlRole)); - - myControl.setAlbumIdRole(MediaPlayList::AlbumIdRole); - - QCOMPARE(currentTrackChangedSpy.count(), 0); - QCOMPARE(playListModelChangedSpy.count(), 0); - QCOMPARE(artistRoleChangedSpy.count(), 1); - QCOMPARE(titleRoleChangedSpy.count(), 1); - QCOMPARE(albumRoleChangedSpy.count(), 1); - QCOMPARE(imageRoleChangedSpy.count(), 1); - QCOMPARE(albumIdRoleChangedSpy.count(), 1); - QCOMPARE(isValidRoleChangedSpy.count(), 0); - QCOMPARE(artistChangedSpy.count(), 0); - QCOMPARE(titleChangedSpy.count(), 0); - QCOMPARE(albumChangedSpy.count(), 0); - QCOMPARE(imageChangedSpy.count(), 0); - QCOMPARE(albumIdChangedSpy.count(), 0); - QCOMPARE(isValidChangedSpy.count(), 0); - QCOMPARE(remainingTracksChangedSpy.count(), 0); - - QCOMPARE(myControl.albumIdRole(), static_cast(MediaPlayList::AlbumIdRole)); - - myControl.setIsValidRole(MediaPlayList::IsValidRole); - - QCOMPARE(currentTrackChangedSpy.count(), 0); - QCOMPARE(playListModelChangedSpy.count(), 0); - QCOMPARE(artistRoleChangedSpy.count(), 1); - QCOMPARE(titleRoleChangedSpy.count(), 1); - QCOMPARE(albumRoleChangedSpy.count(), 1); - QCOMPARE(imageRoleChangedSpy.count(), 1); - QCOMPARE(albumIdRoleChangedSpy.count(), 1); - QCOMPARE(isValidRoleChangedSpy.count(), 1); - QCOMPARE(artistChangedSpy.count(), 0); - QCOMPARE(titleChangedSpy.count(), 0); - QCOMPARE(albumChangedSpy.count(), 0); - QCOMPARE(imageChangedSpy.count(), 0); - QCOMPARE(albumIdChangedSpy.count(), 0); - QCOMPARE(isValidChangedSpy.count(), 0); - QCOMPARE(remainingTracksChangedSpy.count(), 0); - - QCOMPARE(myControl.isValidRole(), static_cast(MediaPlayList::IsValidRole)); - - myControl.setPlayListModel(&myPlayList); - - QCOMPARE(currentTrackChangedSpy.count(), 0); - QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(artistRoleChangedSpy.count(), 1); - QCOMPARE(titleRoleChangedSpy.count(), 1); - QCOMPARE(albumRoleChangedSpy.count(), 1); - QCOMPARE(imageRoleChangedSpy.count(), 1); - QCOMPARE(albumIdRoleChangedSpy.count(), 1); - QCOMPARE(isValidRoleChangedSpy.count(), 1); - QCOMPARE(artistChangedSpy.count(), 0); - QCOMPARE(titleChangedSpy.count(), 0); - QCOMPARE(albumChangedSpy.count(), 0); - QCOMPARE(imageChangedSpy.count(), 0); - QCOMPARE(albumIdChangedSpy.count(), 0); - QCOMPARE(isValidChangedSpy.count(), 0); - QCOMPARE(remainingTracksChangedSpy.count(), 0); - - QCOMPARE(myControl.playListModel(), &myPlayList); - - auto newFiles = QList(); - const auto &constNewTracks = mNewTracks; - for (const auto &oneTrack : constNewTracks) { - newFiles.push_back(oneTrack.resourceURI()); - } - - myDatabaseContent.insertTracksList(mNewTracks, mNewCovers); - - myPlayList.enqueue({myDatabaseContent.trackIdFromTitleAlbumTrackDiscNumber(QStringLiteral("track1"), QStringLiteral("artist1"), QStringLiteral("album2"), 1, 1), - QStringLiteral("track1")}, - ElisaUtils::Track); - myPlayList.enqueue({myDatabaseContent.trackIdFromTitleAlbumTrackDiscNumber(QStringLiteral("track2"), QStringLiteral("artist1"), QStringLiteral("album1"), 2, 2), - QStringLiteral("track2")}, - ElisaUtils::Track); - - QCOMPARE(currentTrackChangedSpy.count(), 0); - QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(artistRoleChangedSpy.count(), 1); - QCOMPARE(titleRoleChangedSpy.count(), 1); - QCOMPARE(albumRoleChangedSpy.count(), 1); - QCOMPARE(imageRoleChangedSpy.count(), 1); - QCOMPARE(albumIdRoleChangedSpy.count(), 1); - QCOMPARE(isValidRoleChangedSpy.count(), 1); - QCOMPARE(artistChangedSpy.count(), 0); - QCOMPARE(titleChangedSpy.count(), 0); - QCOMPARE(albumChangedSpy.count(), 0); - QCOMPARE(imageChangedSpy.count(), 0); - QCOMPARE(albumIdChangedSpy.count(), 0); - QCOMPARE(isValidChangedSpy.count(), 0); - QCOMPARE(remainingTracksChangedSpy.count(), 0); - - myControl.setCurrentTrack(myPlayList.index(0, 0)); - - QCOMPARE(currentTrackChangedSpy.count(), 1); - QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(artistRoleChangedSpy.count(), 1); - QCOMPARE(titleRoleChangedSpy.count(), 1); - QCOMPARE(albumRoleChangedSpy.count(), 1); - QCOMPARE(imageRoleChangedSpy.count(), 1); - QCOMPARE(albumIdRoleChangedSpy.count(), 1); - QCOMPARE(isValidRoleChangedSpy.count(), 1); - QCOMPARE(artistChangedSpy.count(), 1); - QCOMPARE(titleChangedSpy.count(), 1); - QCOMPARE(albumChangedSpy.count(), 1); - QCOMPARE(imageChangedSpy.count(), 1); - QCOMPARE(albumIdChangedSpy.count(), 1); - QCOMPARE(isValidChangedSpy.count(), 1); - QCOMPARE(remainingTracksChangedSpy.count(), 1); - - QCOMPARE(myControl.currentTrack(), QPersistentModelIndex(myPlayList.index(0, 0))); - QCOMPARE(myControl.remainingTracks(), 1); - QCOMPARE(myControl.isValid(), true); - QCOMPARE(myControl.image(), QUrl::fromUserInput(QStringLiteral("file:album2"))); - QCOMPARE(myControl.album(), QVariant(QStringLiteral("album2"))); - QCOMPARE(myControl.artist(), QVariant(QStringLiteral("artist1"))); - QCOMPARE(myControl.title(), QVariant(QStringLiteral("track1"))); - QCOMPARE(myControl.albumId(), qulonglong(2)); - - myControl.setCurrentTrack(myPlayList.index(0, 0)); - - QCOMPARE(currentTrackChangedSpy.count(), 1); - QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(artistRoleChangedSpy.count(), 1); - QCOMPARE(titleRoleChangedSpy.count(), 1); - QCOMPARE(albumRoleChangedSpy.count(), 1); - QCOMPARE(imageRoleChangedSpy.count(), 1); - QCOMPARE(albumIdRoleChangedSpy.count(), 1); - QCOMPARE(isValidRoleChangedSpy.count(), 1); - QCOMPARE(artistChangedSpy.count(), 1); - QCOMPARE(titleChangedSpy.count(), 1); - QCOMPARE(albumChangedSpy.count(), 1); - QCOMPARE(imageChangedSpy.count(), 1); - QCOMPARE(albumIdChangedSpy.count(), 1); - QCOMPARE(isValidChangedSpy.count(), 1); - QCOMPARE(remainingTracksChangedSpy.count(), 1); -} - -void ManageHeaderBarTest::setPlayListModelTest() -{ - MediaPlayList myPlayList; - DatabaseInterface myDatabaseContent; - TracksListener myListener(&myDatabaseContent); - - myDatabaseContent.init(QStringLiteral("testDbDirectContent")); - - connect(&myListener, &TracksListener::trackHasChanged, - &myPlayList, &MediaPlayList::trackChanged); - connect(&myPlayList, &MediaPlayList::newEntryInList, - &myListener, &TracksListener::newEntryInList); - connect(&myPlayList, &MediaPlayList::newTrackByNameInList, - &myListener, &TracksListener::trackByNameInList); - connect(&myDatabaseContent, &DatabaseInterface::tracksAdded, - &myListener, &TracksListener::tracksAdded); - - ManageHeaderBar myControl; - - QSignalSpy currentTrackChangedSpy(&myControl, &ManageHeaderBar::currentTrackChanged); - QSignalSpy playListModelChangedSpy(&myControl, &ManageHeaderBar::playListModelChanged); - QSignalSpy artistRoleChangedSpy(&myControl, &ManageHeaderBar::artistRoleChanged); - QSignalSpy titleRoleChangedSpy(&myControl, &ManageHeaderBar::titleRoleChanged); - QSignalSpy albumRoleChangedSpy(&myControl, &ManageHeaderBar::albumRoleChanged); - QSignalSpy imageRoleChangedSpy(&myControl, &ManageHeaderBar::imageRoleChanged); - QSignalSpy albumIdRoleChangedSpy(&myControl, &ManageHeaderBar::albumIdRoleChanged); - QSignalSpy isValidRoleChangedSpy(&myControl, &ManageHeaderBar::isValidRoleChanged); - QSignalSpy artistChangedSpy(&myControl, &ManageHeaderBar::artistChanged); - QSignalSpy titleChangedSpy(&myControl, &ManageHeaderBar::titleChanged); - QSignalSpy albumChangedSpy(&myControl, &ManageHeaderBar::albumChanged); - QSignalSpy imageChangedSpy(&myControl, &ManageHeaderBar::imageChanged); - QSignalSpy albumIdChangedSpy(&myControl, &ManageHeaderBar::albumIdChanged); - QSignalSpy isValidChangedSpy(&myControl, &ManageHeaderBar::isValidChanged); - QSignalSpy remainingTracksChangedSpy(&myControl, &ManageHeaderBar::remainingTracksChanged); - - QCOMPARE(myControl.currentTrack().isValid(), false); - QCOMPARE(myControl.playListModel(), static_cast(nullptr)); - QCOMPARE(myControl.artistRole(), static_cast(Qt::DisplayRole)); - QCOMPARE(myControl.titleRole(), static_cast(Qt::DisplayRole)); - QCOMPARE(myControl.albumRole(), static_cast(Qt::DisplayRole)); - QCOMPARE(myControl.imageRole(), static_cast(Qt::DisplayRole)); - QCOMPARE(myControl.albumIdRole(), static_cast(Qt::DisplayRole)); - QCOMPARE(myControl.isValidRole(), static_cast(Qt::DisplayRole)); - QCOMPARE(myControl.artist().toString().isEmpty(), true); - QCOMPARE(myControl.title().toString().isEmpty(), true); - QCOMPARE(myControl.album().toString().isEmpty(), true); - QCOMPARE(myControl.image().toString().isEmpty(), true); - QCOMPARE(myControl.isValid(), false); - QCOMPARE(myControl.remainingTracks(), 0); - - myControl.setPlayListModel(&myPlayList); - - QCOMPARE(currentTrackChangedSpy.count(), 0); - QCOMPARE(playListModelChangedSpy.count(), 1); - QCOMPARE(artistRoleChangedSpy.count(), 0); - QCOMPARE(titleRoleChangedSpy.count(), 0); - QCOMPARE(albumRoleChangedSpy.count(), 0); - QCOMPARE(imageRoleChangedSpy.count(), 0); - QCOMPARE(albumIdRoleChangedSpy.count(), 0); - QCOMPARE(isValidRoleChangedSpy.count(), 0); - QCOMPARE(artistChangedSpy.count(), 0); - QCOMPARE(titleChangedSpy.count(), 0); - QCOMPARE(albumChangedSpy.count(), 0); - QCOMPARE(imageChangedSpy.count(), 0); - QCOMPARE(albumIdChangedSpy.count(), 0); - QCOMPARE(isValidChangedSpy.count(), 0); - QCOMPARE(remainingTracksChangedSpy.count(), 0); - - QCOMPARE(myControl.playListModel(), &myPlayList); - - myControl.setPlayListModel(nullptr); - - QCOMPARE(currentTrackChangedSpy.count(), 0); - QCOMPARE(playListModelChangedSpy.count(), 2); - QCOMPARE(artistRoleChangedSpy.count(), 0); - QCOMPARE(titleRoleChangedSpy.count(), 0); - QCOMPARE(albumRoleChangedSpy.count(), 0); - QCOMPARE(imageRoleChangedSpy.count(), 0); - QCOMPARE(albumIdRoleChangedSpy.count(), 0); - QCOMPARE(isValidRoleChangedSpy.count(), 0); - QCOMPARE(artistChangedSpy.count(), 0); - QCOMPARE(titleChangedSpy.count(), 0); - QCOMPARE(albumChangedSpy.count(), 0); - QCOMPARE(imageChangedSpy.count(), 0); - QCOMPARE(albumIdChangedSpy.count(), 0); - QCOMPARE(isValidChangedSpy.count(), 0); - QCOMPARE(remainingTracksChangedSpy.count(), 0); - - QCOMPARE(myControl.playListModel(), static_cast(nullptr)); -} - QTEST_GUILESS_MAIN(ManageHeaderBarTest) diff --git a/autotests/mediaplaylisttest.h b/autotests/mediaplaylisttest.h --- a/autotests/mediaplaylisttest.h +++ b/autotests/mediaplaylisttest.h @@ -125,6 +125,8 @@ void singleTrack(); + void remainingTracksTest(); + void testBringUpAndRemoveLastCase(); void testSaveAndRestoreSettings(); diff --git a/autotests/mediaplaylisttest.cpp b/autotests/mediaplaylisttest.cpp --- a/autotests/mediaplaylisttest.cpp +++ b/autotests/mediaplaylisttest.cpp @@ -6231,6 +6231,99 @@ QCOMPARE(myPlayList.currentTrack(), QPersistentModelIndex(myPlayList.index(0, 0))); } +void MediaPlayListTest::remainingTracksTest() +{ + MediaPlayList myPlayList; + QAbstractItemModelTester testModel(&myPlayList); + DatabaseInterface myDatabaseContent; + TracksListener myListener(&myDatabaseContent); + + QSignalSpy currentTrackChangedSpy(&myPlayList, &MediaPlayList::currentTrackChanged); + QSignalSpy randomPlayChangedSpy(&myPlayList, &MediaPlayList::randomPlayChanged); + QSignalSpy repeatPlayChangedSpy(&myPlayList, &MediaPlayList::repeatPlayChanged); + QSignalSpy remainingTracksChangedSpy(&myPlayList, &MediaPlayList::remainingTracksChanged); + + myDatabaseContent.init(QStringLiteral("testDbDirectContent")); + + connect(&myListener, &TracksListener::trackHasChanged, + &myPlayList, &MediaPlayList::trackChanged, + Qt::QueuedConnection); + connect(&myListener, &TracksListener::tracksListAdded, + &myPlayList, &MediaPlayList::tracksListAdded, + Qt::QueuedConnection); + connect(&myPlayList, &MediaPlayList::newTrackByNameInList, + &myListener, &TracksListener::trackByNameInList, + Qt::QueuedConnection); + connect(&myPlayList, &MediaPlayList::newEntryInList, + &myListener, &TracksListener::newEntryInList, + Qt::QueuedConnection); + connect(&myDatabaseContent, &DatabaseInterface::tracksAdded, + &myListener, &TracksListener::tracksAdded); + + myDatabaseContent.insertTracksList(mNewTracks, mNewCovers); + + QCOMPARE(currentTrackChangedSpy.count(), 0); + QCOMPARE(randomPlayChangedSpy.count(), 0); + QCOMPARE(repeatPlayChangedSpy.count(), 0); + QCOMPARE(remainingTracksChangedSpy.count(), 0); + + myPlayList.enqueue({myDatabaseContent.trackIdFromTitleAlbumTrackDiscNumber(QStringLiteral("track1"), QStringLiteral("artist1"), QStringLiteral("album2"), 1, 1), + QStringLiteral("track1")}, + ElisaUtils::Track); + myPlayList.enqueue({myDatabaseContent.trackIdFromTitleAlbumTrackDiscNumber(QStringLiteral("track3"), QStringLiteral("artist3"), QStringLiteral("album1"), 3, 3), + QStringLiteral("track3")}, + ElisaUtils::Track); + myPlayList.enqueue({myDatabaseContent.trackIdFromTitleAlbumTrackDiscNumber(QStringLiteral("track4"), QStringLiteral("artist1"), QStringLiteral("album1"), 4, 4), + QStringLiteral("track4")}, + ElisaUtils::Track); + myPlayList.enqueue({myDatabaseContent.trackIdFromTitleAlbumTrackDiscNumber(QStringLiteral("track2"), QStringLiteral("artist1"), QStringLiteral("album1"), 2, 2), + QStringLiteral("track2")}, + ElisaUtils::Track); + myPlayList.enqueue({myDatabaseContent.trackIdFromTitleAlbumTrackDiscNumber(QStringLiteral("track1"), QStringLiteral("artist1"), QStringLiteral("album2"), 1, 1), + QStringLiteral("track1")}, + ElisaUtils::Track); + + QCOMPARE(currentTrackChangedSpy.count(), 0); + QCOMPARE(randomPlayChangedSpy.count(), 0); + QCOMPARE(repeatPlayChangedSpy.count(), 0); + QCOMPARE(remainingTracksChangedSpy.count(), 5); + + QCOMPARE(currentTrackChangedSpy.wait(), true); + + QCOMPARE(currentTrackChangedSpy.count(), 1); + QCOMPARE(randomPlayChangedSpy.count(), 0); + QCOMPARE(repeatPlayChangedSpy.count(), 0); + QCOMPARE(remainingTracksChangedSpy.count(), 6); + + QCOMPARE(myPlayList.currentTrack(), QPersistentModelIndex(myPlayList.index(0, 0))); + QCOMPARE(myPlayList.remainingTracks(), 4); + + myPlayList.skipNextTrack(); + + QCOMPARE(remainingTracksChangedSpy.count(), 7); + QCOMPARE(myPlayList.currentTrack(), QPersistentModelIndex(myPlayList.index(1, 0))); + QCOMPARE(myPlayList.remainingTracks(), 3); + + myPlayList.setRandomPlay(true); + + QCOMPARE(currentTrackChangedSpy.count(), 2); + QCOMPARE(randomPlayChangedSpy.count(), 1); + QCOMPARE(repeatPlayChangedSpy.count(), 0); + QCOMPARE(remainingTracksChangedSpy.count(), 8); + + QCOMPARE(myPlayList.remainingTracks(), -1); + + myPlayList.setRandomPlay(false); + myPlayList.setRepeatPlay(true); + + QCOMPARE(currentTrackChangedSpy.count(), 2); + QCOMPARE(randomPlayChangedSpy.count(), 2); + QCOMPARE(repeatPlayChangedSpy.count(), 1); + QCOMPARE(remainingTracksChangedSpy.count(), 10); + + QCOMPARE(myPlayList.remainingTracks(), -1); +} + void MediaPlayListTest::testBringUpAndRemoveLastCase() { MediaPlayList myPlayList; diff --git a/src/elisaapplication.cpp b/src/elisaapplication.cpp --- a/src/elisaapplication.cpp +++ b/src/elisaapplication.cpp @@ -393,7 +393,6 @@ d->mManageHeaderBar->setDatabaseIdRole(MediaPlayList::DatabaseIdRole); d->mManageHeaderBar->setAlbumIdRole(MediaPlayList::AlbumIdRole); d->mManageHeaderBar->setIsValidRole(MediaPlayList::IsValidRole); - d->mManageHeaderBar->setPlayListModel(d->mMediaPlayList.get()); QObject::connect(d->mMediaPlayList.get(), &MediaPlayList::currentTrackChanged, d->mManageHeaderBar.get(), &ManageHeaderBar::setCurrentTrack); if (!d->mArguments.isEmpty()) { diff --git a/src/manageheaderbar.h b/src/manageheaderbar.h --- a/src/manageheaderbar.h +++ b/src/manageheaderbar.h @@ -36,11 +36,6 @@ WRITE setCurrentTrack NOTIFY currentTrackChanged) - Q_PROPERTY(QAbstractItemModel* playListModel - READ playListModel - WRITE setPlayListModel - NOTIFY playListModelChanged) - Q_PROPERTY(int artistRole READ artistRole WRITE setArtistRole @@ -122,18 +117,12 @@ READ isValid NOTIFY isValidChanged) - Q_PROPERTY(int remainingTracks - READ remainingTracks - NOTIFY remainingTracksChanged) - public: explicit ManageHeaderBar(QObject *parent = nullptr); QPersistentModelIndex currentTrack() const; - QAbstractItemModel* playListModel() const; - int artistRole() const; int titleRole() const; @@ -170,14 +159,10 @@ bool isValid() const; - int remainingTracks() const; - Q_SIGNALS: void currentTrackChanged(); - void playListModelChanged(); - void artistRoleChanged(); void titleRoleChanged(); @@ -208,8 +193,6 @@ void imageChanged(); - void remainingTracksChanged(); - void databaseIdChanged(); void albumIdChanged(); @@ -220,8 +203,6 @@ void setCurrentTrack(const QPersistentModelIndex ¤tTrack); - void setPlayListModel(QAbstractItemModel* aPlayListModel); - void setArtistRole(int value); void setTitleRole(int value); @@ -240,18 +221,6 @@ void setIsValidRole(int isValidRole); - void playListLayoutChanged(const QList &parents, QAbstractItemModel::LayoutChangeHint hint); - - void tracksInserted(const QModelIndex &parent, int first, int last); - - void tracksDataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight, const QVector &roles); - - void tracksAboutToBeMoved(const QModelIndex &parent, int start, int end, const QModelIndex &destination, int row); - - void tracksMoved(const QModelIndex &parent, int start, int end, const QModelIndex &destination, int row); - - void tracksRemoved(const QModelIndex &parent, int first, int last); - private: void notifyArtistProperty(); @@ -272,12 +241,8 @@ void notifyIsValidProperty(); - void notifyRemainingTracksProperty(); - QPersistentModelIndex mCurrentTrack; - QAbstractItemModel *mPlayListModel = nullptr; - int mArtistRole = Qt::DisplayRole; int mTitleRole = Qt::DisplayRole; diff --git a/src/manageheaderbar.cpp b/src/manageheaderbar.cpp --- a/src/manageheaderbar.cpp +++ b/src/manageheaderbar.cpp @@ -19,9 +19,6 @@ #include #include -#include - -#include ManageHeaderBar::ManageHeaderBar(QObject *parent) : QObject(parent) @@ -206,15 +203,6 @@ return mCurrentTrack.data(mIsValidRole).toBool(); } -int ManageHeaderBar::remainingTracks() const -{ - if (!mCurrentTrack.isValid()) { - return 0; - } - - return mPlayListModel->rowCount(mCurrentTrack.parent()) - mCurrentTrack.row() - 1; -} - int ManageHeaderBar::isValidRole() const { return mIsValidRole; @@ -225,138 +213,6 @@ return mCurrentTrack; } -void ManageHeaderBar::playListLayoutChanged(const QList &parents, QAbstractItemModel::LayoutChangeHint hint) -{ - Q_UNUSED(parents); - Q_UNUSED(hint); - - qDebug() << "ManageHeaderBar::playListLayoutChanged" << "not implemented"; -} - -void ManageHeaderBar::tracksInserted(const QModelIndex &parent, int first, int last) -{ - Q_UNUSED(parent); - Q_UNUSED(first); - Q_UNUSED(last); - - if (!mCurrentTrack.isValid()) { - return; - } - - if (mCurrentTrack.row() >= first) { - return; - } - - Q_EMIT remainingTracksChanged(); - mOldRemainingTracks = remainingTracks(); -} - -void ManageHeaderBar::tracksDataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight, const QVector &roles) -{ - if (!mCurrentTrack.isValid()) { - return; - } - - if (mCurrentTrack.row() > bottomRight.row() || mCurrentTrack.row() < topLeft.row()) { - return; - } - - if (mCurrentTrack.column() > bottomRight.column() || mCurrentTrack.column() < topLeft.column()) { - return; - } - - if (roles.isEmpty()) { - notifyArtistProperty(); - notifyTitleProperty(); - notifyAlbumProperty(); - notifyAlbumArtistProperty(); - notifyFileNameProperty(); - notifyImageProperty(); - notifyDatabaseIdProperty(); - notifyAlbumIdProperty(); - notifyIsValidProperty(); - } else { - for(auto oneRole : roles) { - if (oneRole == mArtistRole) { - notifyArtistProperty(); - } - if (oneRole == mTitleRole) { - notifyTitleProperty(); - } - if (oneRole == mAlbumRole) { - notifyAlbumProperty(); - } - if (oneRole == mAlbumArtistRole) { - notifyAlbumArtistProperty(); - } - if (oneRole == mFileNameRole) { - notifyFileNameProperty(); - } - if (oneRole == mImageRole) { - notifyImageProperty(); - } - if (oneRole == mDatabaseIdRole) { - notifyDatabaseIdProperty(); - } - if (oneRole == mAlbumIdRole) { - notifyAlbumIdProperty(); - } - if (oneRole == mIsValidRole) { - notifyIsValidProperty(); - } - } - } -} - -void ManageHeaderBar::tracksAboutToBeMoved(const QModelIndex &parent, int start, int end, const QModelIndex &destination, int row) -{ - Q_UNUSED(parent); - Q_UNUSED(start); - Q_UNUSED(end); - Q_UNUSED(destination); - Q_UNUSED(row); - - mOldRemainingTracks = remainingTracks(); -} - -void ManageHeaderBar::tracksMoved(const QModelIndex &parent, int start, int end, const QModelIndex &destination, int row) -{ - Q_UNUSED(parent); - Q_UNUSED(start); - Q_UNUSED(end); - Q_UNUSED(destination); - Q_UNUSED(row); - - auto newRemainingTracks = remainingTracks(); - if (mOldRemainingTracks != newRemainingTracks) { - Q_EMIT remainingTracksChanged(); - } -} - -void ManageHeaderBar::tracksRemoved(const QModelIndex &parent, int first, int last) -{ - Q_UNUSED(parent); - Q_UNUSED(first); - Q_UNUSED(last); - - if (!mCurrentTrack.isValid()) { - notifyArtistProperty(); - notifyTitleProperty(); - notifyAlbumProperty(); - notifyAlbumArtistProperty(); - notifyFileNameProperty(); - notifyImageProperty(); - notifyDatabaseIdProperty(); - notifyAlbumIdProperty(); - notifyIsValidProperty(); - notifyRemainingTracksProperty(); - - return; - } - - notifyRemainingTracksProperty(); -} - void ManageHeaderBar::notifyArtistProperty() { auto newArtistValue = mCurrentTrack.data(mArtistRole); @@ -457,38 +313,17 @@ } } -void ManageHeaderBar::notifyRemainingTracksProperty() -{ - auto newRemainingTracksValue = remainingTracks(); - if (mOldRemainingTracks != newRemainingTracksValue) { - Q_EMIT remainingTracksChanged(); - - mOldRemainingTracks = newRemainingTracksValue; - } -} - void ManageHeaderBar::setIsValidRole(int isValidRole) { mIsValidRole = isValidRole; emit isValidRoleChanged(); } void ManageHeaderBar::setCurrentTrack(const QPersistentModelIndex ¤tTrack) { - if (mCurrentTrack == currentTrack) { - return; - } - - auto oldRemainingTracksCount = remainingTracks(); - mCurrentTrack = currentTrack; Q_EMIT currentTrackChanged(); - if (mCurrentTrack.isValid() && oldRemainingTracksCount != remainingTracks()) { - Q_EMIT remainingTracksChanged(); - mOldRemainingTracks = remainingTracks(); - } - notifyArtistProperty(); notifyTitleProperty(); notifyAlbumProperty(); @@ -500,35 +335,4 @@ notifyIsValidProperty(); } -void ManageHeaderBar::setPlayListModel(QAbstractItemModel *aPlayListModel) -{ - if (mPlayListModel) { - disconnect(mPlayListModel, &QAbstractItemModel::rowsInserted, this, &ManageHeaderBar::tracksInserted); - disconnect(mPlayListModel, &QAbstractItemModel::rowsAboutToBeMoved, this, &ManageHeaderBar::tracksAboutToBeMoved); - disconnect(mPlayListModel, &QAbstractItemModel::rowsMoved, this, &ManageHeaderBar::tracksMoved); - disconnect(mPlayListModel, &QAbstractItemModel::rowsRemoved, this, &ManageHeaderBar::tracksRemoved); - disconnect(mPlayListModel, &QAbstractItemModel::dataChanged, this, &ManageHeaderBar::tracksDataChanged); - disconnect(mPlayListModel, &QAbstractItemModel::layoutChanged, this, &ManageHeaderBar::playListLayoutChanged); - } - - mPlayListModel = aPlayListModel; - - if (mPlayListModel) { - connect(mPlayListModel, &QAbstractItemModel::rowsInserted, this, &ManageHeaderBar::tracksInserted); - connect(mPlayListModel, &QAbstractItemModel::rowsAboutToBeMoved, this, &ManageHeaderBar::tracksAboutToBeMoved); - connect(mPlayListModel, &QAbstractItemModel::rowsMoved, this, &ManageHeaderBar::tracksMoved); - connect(mPlayListModel, &QAbstractItemModel::rowsRemoved, this, &ManageHeaderBar::tracksRemoved); - connect(mPlayListModel, &QAbstractItemModel::dataChanged, this, &ManageHeaderBar::tracksDataChanged); - connect(mPlayListModel, &QAbstractItemModel::layoutChanged, this, &ManageHeaderBar::playListLayoutChanged); - } - - Q_EMIT playListModelChanged(); -} - -QAbstractItemModel *ManageHeaderBar::playListModel() const -{ - return mPlayListModel; -} - - #include "moc_manageheaderbar.cpp" diff --git a/src/mediaplaylist.h b/src/mediaplaylist.h --- a/src/mediaplaylist.h +++ b/src/mediaplaylist.h @@ -72,6 +72,10 @@ WRITE setRepeatPlay NOTIFY repeatPlayChanged) + Q_PROPERTY(int remainingTracks + READ remainingTracks + NOTIFY remainingTracksChanged) + public: enum ColumnsRoles { @@ -172,6 +176,8 @@ bool repeatPlay() const; + int remainingTracks() const; + Q_SIGNALS: void displayUndoInline(); @@ -209,6 +215,8 @@ void ensurePlay(); + void remainingTracksChanged(); + public Q_SLOTS: void setPersistentState(const QVariantMap &persistentState); diff --git a/src/mediaplaylist.cpp b/src/mediaplaylist.cpp --- a/src/mediaplaylist.cpp +++ b/src/mediaplaylist.cpp @@ -146,66 +146,66 @@ } case ColumnsRoles::AlbumSectionRole: result = QJsonDocument{QJsonArray{d->mTrackData[index.row()][TrackDataType::key_type::AlbumRole].toString(), - d->mTrackData[index.row()][TrackDataType::key_type::AlbumArtistRole].toString(), - d->mTrackData[index.row()][TrackDataType::key_type::ImageUrlRole].toUrl().toString()}}.toJson(); - break; - default: - const auto &trackData = d->mTrackData[index.row()]; - auto roleEnum = static_cast(role); - auto itData = trackData.find(roleEnum); - if (itData != trackData.end()) { - result = itData.value(); - } else { - result = {}; - } - } - } else { - switch(role) - { - case ColumnsRoles::IsValidRole: - result = d->mData[index.row()].mIsValid; - break; - case ColumnsRoles::TitleRole: - result = d->mData[index.row()].mTitle; - break; - case ColumnsRoles::IsPlayingRole: - result = d->mData[index.row()].mIsPlaying; - break; - case ColumnsRoles::ArtistRole: - result = d->mData[index.row()].mArtist; - break; - case ColumnsRoles::AlbumArtistRole: - result = d->mData[index.row()].mArtist; - break; - case ColumnsRoles::AlbumRole: - result = d->mData[index.row()].mAlbum; - break; - case ColumnsRoles::TrackNumberRole: - result = -1; - break; - case ColumnsRoles::IsSingleDiscAlbumRole: - result = false; - break; - case Qt::DisplayRole: - result = d->mData[index.row()].mTitle; - break; - case ColumnsRoles::ImageUrlRole: - result = QUrl(QStringLiteral("image://icon/error")); - break; - case ColumnsRoles::ShadowForImageRole: - result = false; - break; - case ColumnsRoles::AlbumSectionRole: - result = QJsonDocument{QJsonArray{d->mData[index.row()].mAlbum.toString(), - d->mData[index.row()].mArtist.toString(), - QUrl(QStringLiteral("image://icon/error")).toString()}}.toJson(); - break; - default: + d->mTrackData[index.row()][TrackDataType::key_type::AlbumArtistRole].toString(), + d->mTrackData[index.row()][TrackDataType::key_type::ImageUrlRole].toUrl().toString()}}.toJson(); + break; + default: + const auto &trackData = d->mTrackData[index.row()]; + auto roleEnum = static_cast(role); + auto itData = trackData.find(roleEnum); + if (itData != trackData.end()) { + result = itData.value(); + } else { result = {}; } - } +} +} else { +switch(role) +{ + case ColumnsRoles::IsValidRole: + result = d->mData[index.row()].mIsValid; + break; + case ColumnsRoles::TitleRole: + result = d->mData[index.row()].mTitle; + break; + case ColumnsRoles::IsPlayingRole: + result = d->mData[index.row()].mIsPlaying; + break; + case ColumnsRoles::ArtistRole: + result = d->mData[index.row()].mArtist; + break; + case ColumnsRoles::AlbumArtistRole: + result = d->mData[index.row()].mArtist; + break; + case ColumnsRoles::AlbumRole: + result = d->mData[index.row()].mAlbum; + break; + case ColumnsRoles::TrackNumberRole: + result = -1; + break; + case ColumnsRoles::IsSingleDiscAlbumRole: + result = false; + break; + case Qt::DisplayRole: + result = d->mData[index.row()].mTitle; + break; + case ColumnsRoles::ImageUrlRole: + result = QUrl(QStringLiteral("image://icon/error")); + break; + case ColumnsRoles::ShadowForImageRole: + result = false; + break; + case ColumnsRoles::AlbumSectionRole: + result = QJsonDocument{QJsonArray{d->mData[index.row()].mAlbum.toString(), + d->mData[index.row()].mArtist.toString(), + QUrl(QStringLiteral("image://icon/error")).toString()}}.toJson(); +break; +default: +result = {}; +} +} - return result; +return result; } bool MediaPlayList::setData(const QModelIndex &index, const QVariant &value, int role) @@ -305,6 +305,7 @@ } Q_EMIT tracksCountChanged(); + Q_EMIT remainingTracksChanged(); Q_EMIT persistentStateChanged(); return false; @@ -361,6 +362,7 @@ } Q_EMIT tracksCountChanged(); + Q_EMIT remainingTracksChanged(); Q_EMIT persistentStateChanged(); if (!newEntry.mIsValid) { @@ -414,6 +416,7 @@ } Q_EMIT tracksCountChanged(); + Q_EMIT remainingTracksChanged(); Q_EMIT newEntryInList(0, artistName, newEntry.mEntryType); Q_EMIT persistentStateChanged(); } @@ -448,6 +451,7 @@ } Q_EMIT tracksCountChanged(); + Q_EMIT remainingTracksChanged(); Q_EMIT persistentStateChanged(); Q_EMIT dataChanged(index(rowCount() - 1, 0), index(rowCount() - 1, 0), {MediaPlayList::IsPlayingRole}); @@ -472,6 +476,7 @@ } Q_EMIT tracksCountChanged(); + Q_EMIT remainingTracksChanged(); Q_EMIT persistentStateChanged(); Q_EMIT dataChanged(index(rowCount() - 1, 0), index(rowCount() - 1, 0), {MediaPlayList::IsPlayingRole}); @@ -488,6 +493,7 @@ endInsertRows(); Q_EMIT tracksCountChanged(); + Q_EMIT remainingTracksChanged(); Q_EMIT persistentStateChanged(); } @@ -504,6 +510,7 @@ endInsertRows(); Q_EMIT tracksCountChanged(); + Q_EMIT remainingTracksChanged(); Q_EMIT persistentStateChanged(); } @@ -535,6 +542,7 @@ displayOrHideUndoInline(true); Q_EMIT tracksCountChanged(); + Q_EMIT remainingTracksChanged(); Q_EMIT persistentStateChanged(); } @@ -586,6 +594,7 @@ } Q_EMIT tracksCountChanged(); + Q_EMIT remainingTracksChanged(); Q_EMIT persistentStateChanged(); Q_EMIT dataChanged(index(rowCount() - 1, 0), index(rowCount() - 1, 0), {MediaPlayList::IsPlayingRole}); @@ -917,6 +926,7 @@ } Q_EMIT tracksCountChanged(); + Q_EMIT remainingTracksChanged(); } Q_EMIT persistentStateChanged(); } @@ -1010,6 +1020,8 @@ if (!d->mCurrentTrack.isValid()) { resetCurrentTrack(); + } else if (i == d->mCurrentTrack.row()) { + notifyCurrentTrackChanged(); } break; @@ -1028,6 +1040,8 @@ if (!d->mCurrentTrack.isValid()) { resetCurrentTrack(); + } else if (i == d->mCurrentTrack.row()) { + notifyCurrentTrackChanged(); } break; @@ -1079,14 +1093,16 @@ if (d->mRandomPlay != value) { d->mRandomPlay = value; Q_EMIT randomPlayChanged(); + Q_EMIT remainingTracksChanged(); } } void MediaPlayList::setRepeatPlay(bool value) { if (d->mRepeatPlay != value) { d->mRepeatPlay = value; Q_EMIT repeatPlayChanged(); + Q_EMIT remainingTracksChanged(); } } @@ -1235,6 +1251,7 @@ { Q_EMIT currentTrackChanged(d->mCurrentTrack); Q_EMIT currentTrackRowChanged(); + Q_EMIT remainingTracksChanged(); bool currentTrackIsValid = d->mCurrentTrack.isValid(); if (currentTrackIsValid) { d->mCurrentPlayListPosition = d->mCurrentTrack.row(); @@ -1279,4 +1296,17 @@ return stream; } +int MediaPlayList::remainingTracks() const +{ + if (!d->mCurrentTrack.isValid()) { + return -1; + } + + if (d->mRandomPlay || d->mRepeatPlay) { + return -1; + } else { + return rowCount() - d->mCurrentTrack.row() - 1; + } +} + #include "moc_mediaplaylist.cpp" diff --git a/src/qml/ElisaMainWindow.qml b/src/qml/ElisaMainWindow.qml --- a/src/qml/ElisaMainWindow.qml +++ b/src/qml/ElisaMainWindow.qml @@ -183,7 +183,7 @@ Layout.maximumHeight: mainWindow.height * 0.2 + elisaTheme.mediaPlayerControlHeight Layout.fillWidth: true - tracksCount: elisa.manageHeaderBar.remainingTracks + tracksCount: elisa.mediaPlayList.remainingTracks album: elisa.manageHeaderBar.album title: elisa.manageHeaderBar.title artist: elisa.manageHeaderBar.artist diff --git a/src/qml/HeaderBar.qml b/src/qml/HeaderBar.qml --- a/src/qml/HeaderBar.qml +++ b/src/qml/HeaderBar.qml @@ -323,10 +323,10 @@ LabelWithToolTip { id: remainingTracksLabel - text: i18np("1 track remaining", "%1 tracks remaining", tracksCount) + text: tracksCount > 0 ? i18np("1 track remaining", "%1 tracks remaining", tracksCount) : i18n("No remaining tracks") elide: Text.ElideRight - visible: tracksCount > 0 + visible: tracksCount >= 0 // Hardcoded because the headerbar blur always makes a dark-ish // background, so we don't want to use a color scheme color that // might also be dark