diff --git a/autotests/CMakeLists.txt b/autotests/CMakeLists.txt index ff83c6bb..c86f1e17 100644 --- a/autotests/CMakeLists.txt +++ b/autotests/CMakeLists.txt @@ -1,176 +1,188 @@ enable_testing() configure_file(mediaplaylisttestconfig.h.in ${CMAKE_CURRENT_BINARY_DIR}/mediaplaylisttestconfig.h @ONLY) include_directories(${elisa_CURRENT_BINARY_DIR}) include_directories(${elisa_BINARY_DIR}) include_directories(${elisa_BINARY_DIR}/src) +set(viewManagerTest_SOURCES + viewmanagertest.cpp + ../src/elisautils.cpp +) + +ecm_add_test(${viewManagerTest_SOURCES} + TEST_NAME "viewManagerTest" + LINK_LIBRARIES + Qt5::Test elisaLib) + +target_include_directories(viewManagerTest PRIVATE ${CMAKE_SOURCE_DIR}/src) + set(databaseInterfaceTest_SOURCES databaseinterfacetest.cpp databasetestdata.h ) ecm_add_test(${databaseInterfaceTest_SOURCES} TEST_NAME "databaseInterfaceTest" LINK_LIBRARIES Qt5::Test elisaLib) target_include_directories(databaseInterfaceTest PRIVATE ${CMAKE_SOURCE_DIR}/src) set(managemediaplayercontrolTest_SOURCES managemediaplayercontroltest.cpp ../src/elisautils.cpp ) ecm_add_test(${managemediaplayercontrolTest_SOURCES} TEST_NAME "managemediaplayercontrolTest" LINK_LIBRARIES Qt5::Test elisaLib ) set(manageheaderbarTest_SOURCES manageheaderbartest.cpp ../src/elisautils.cpp ) ecm_add_test(${manageheaderbarTest_SOURCES} TEST_NAME "manageheaderbarTest" LINK_LIBRARIES Qt5::Test elisaLib ) target_include_directories(manageheaderbarTest PRIVATE ${CMAKE_SOURCE_DIR}/src) set(manageaudioplayerTest_SOURCES manageaudioplayertest.cpp ) ecm_add_test(${manageaudioplayerTest_SOURCES} TEST_NAME "manageaudioplayerTest" LINK_LIBRARIES Qt5::Test elisaLib ) target_include_directories(manageaudioplayerTest PRIVATE ${CMAKE_SOURCE_DIR}/src) set(mediaplaylistTest_SOURCES qabstractitemmodeltester.cpp mediaplaylisttest.cpp ../src/elisautils.cpp ) ecm_qt_declare_logging_category(mediaplaylistTest_SOURCES HEADER elisa_debug.h IDENTIFIER lcModelTest CATEGORY_NAME qt.modeltest) ecm_add_test(${mediaplaylistTest_SOURCES} TEST_NAME "mediaplaylistTest" LINK_LIBRARIES Qt5::Test elisaLib Qt5::CorePrivate ) target_include_directories(mediaplaylistTest PRIVATE ${CMAKE_SOURCE_DIR}/src) set(trackslistenertest_SOURCES trackslistenertest.cpp ../src/elisautils.cpp ) ecm_add_test(${trackslistenertest_SOURCES} TEST_NAME "trackslistenertest" LINK_LIBRARIES Qt5::Test elisaLib ) target_include_directories(trackslistenertest PRIVATE ${CMAKE_SOURCE_DIR}/src) set(datamodeltest_SOURCES qabstractitemmodeltester.cpp datamodeltest.cpp ) ecm_qt_declare_logging_category(datamodeltest_SOURCES HEADER elisa_debug.h IDENTIFIER lcModelTest CATEGORY_NAME qt.modeltest) ecm_add_test(${datamodeltest_SOURCES} TEST_NAME "datamodeltest" LINK_LIBRARIES Qt5::Test elisaLib Qt5::CorePrivate ) target_include_directories(datamodeltest PRIVATE ${CMAKE_SOURCE_DIR}/src) set(trackmetadatamodeltest_SOURCES qabstractitemmodeltester.cpp trackmetadatamodeltest.cpp ) ecm_qt_declare_logging_category(trackmetadatamodeltest_SOURCES HEADER elisa_debug.h IDENTIFIER lcModelTest CATEGORY_NAME qt.modeltest) ecm_add_test(${trackmetadatamodeltest_SOURCES} TEST_NAME "trackmetadatamodeltest" LINK_LIBRARIES Qt5::Test elisaLib Qt5::CorePrivate ) target_include_directories(trackmetadatamodeltest PRIVATE ${CMAKE_SOURCE_DIR}/src) set(alltracksproxymodeltest_SOURCES qabstractitemmodeltester.cpp alltracksproxymodeltest.cpp ) ecm_qt_declare_logging_category(alltracksproxymodeltest_SOURCES HEADER elisa_debug.h IDENTIFIER lcModelTest CATEGORY_NAME qt.modeltest) ecm_add_test(${alltracksproxymodeltest_SOURCES} TEST_NAME "alltracksproxymodeltest" LINK_LIBRARIES Qt5::Test elisaLib Qt5::CorePrivate ) target_include_directories(alltracksproxymodeltest PRIVATE ${CMAKE_SOURCE_DIR}/src) if (KF5FileMetaData_FOUND) set(localfilelistingtest_SOURCES localfilelistingtest.cpp ) ecm_add_test(${localfilelistingtest_SOURCES} TEST_NAME "localfilelistingtest" LINK_LIBRARIES Qt5::Test elisaLib ) target_include_directories(localfilelistingtest PRIVATE ${CMAKE_SOURCE_DIR}/src) endif() if (KF5XmlGui_FOUND AND KF5KCMUtils_FOUND) set(elisaapplicationtest_SOURCES elisaapplicationtest.cpp ../src/elisautils.cpp ) ecm_add_test(${elisaapplicationtest_SOURCES} TEST_NAME "elisaapplicationtest" LINK_LIBRARIES Qt5::Test elisaLib ) target_include_directories(elisaapplicationtest PRIVATE ${CMAKE_SOURCE_DIR}/src) endif() if (Qt5Quick_FOUND AND Qt5Widgets_FOUND AND NOT WIN32) set(elisaqmltests_SOURCES elisaqmltests.cpp qmltests/tst_GridBrowserDelegate.qml qmltests/tst_NavigationActionBar.qml qmltests/tst_PlayListEntry.qml ) ecm_add_test(${elisaqmltests_SOURCES} TEST_NAME "elisaqmltests" LINK_LIBRARIES Qt5::Core Qt5::Widgets Qt5::Test Qt5::QuickTest GUI) target_compile_definitions(elisaqmltests PRIVATE QUICK_TEST_SOURCE_DIR="${CMAKE_SOURCE_DIR}/autotests/qmltests") target_include_directories(elisaqmltests PRIVATE ${CMAKE_SOURCE_DIR}/src) endif() diff --git a/autotests/viewmanagertest.cpp b/autotests/viewmanagertest.cpp new file mode 100644 index 00000000..df27d8f4 --- /dev/null +++ b/autotests/viewmanagertest.cpp @@ -0,0 +1,106 @@ +/* + * Copyright 2015-2017 Matthieu Gallien + * + * This program is free software: you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + */ + +#include "viewmanager.h" + +#include + +#include + +class ViewManagerTests: public QObject +{ + Q_OBJECT + +private: + +private Q_SLOTS: + + void initTestCase() + { + qRegisterMetaType("ViewManager::ViewsType"); + qRegisterMetaType("ElisaUtils::PlayListEntryType"); + } + + void closeAllViewsTest() + { + ViewManager viewManager; + + QSignalSpy openGridViewSpy(&viewManager, &ViewManager::openGridView); + QSignalSpy switchRecentlyPlayedTracksViewSpy(&viewManager, &ViewManager::switchRecentlyPlayedTracksView); + QSignalSpy switchFrequentlyPlayedTracksViewSpy(&viewManager, &ViewManager::switchFrequentlyPlayedTracksView); + QSignalSpy switchOneAlbumViewSpy(&viewManager, &ViewManager::switchOneAlbumView); + QSignalSpy switchAllTracksViewSpy(&viewManager, &ViewManager::switchAllTracksView); + QSignalSpy switchFilesBrowserViewSpy(&viewManager, &ViewManager::switchFilesBrowserView); + QSignalSpy switchOffAllViewsSpy(&viewManager, &ViewManager::switchOffAllViews); + QSignalSpy popOneViewSpy(&viewManager, &ViewManager::popOneView); + + viewManager.closeAllViews(); + + QCOMPARE(openGridViewSpy.count(), 0); + QCOMPARE(switchRecentlyPlayedTracksViewSpy.count(), 0); + QCOMPARE(switchFrequentlyPlayedTracksViewSpy.count(), 0); + QCOMPARE(switchOneAlbumViewSpy.count(), 0); + QCOMPARE(switchAllTracksViewSpy.count(), 0); + QCOMPARE(switchFilesBrowserViewSpy.count(), 0); + QCOMPARE(switchOffAllViewsSpy.count(), 1); + QCOMPARE(popOneViewSpy.count(), 0); + } + + void openAlbumViewTest() + { + ViewManager viewManager; + + QSignalSpy openGridViewSpy(&viewManager, &ViewManager::openGridView); + QSignalSpy switchRecentlyPlayedTracksViewSpy(&viewManager, &ViewManager::switchRecentlyPlayedTracksView); + QSignalSpy switchFrequentlyPlayedTracksViewSpy(&viewManager, &ViewManager::switchFrequentlyPlayedTracksView); + QSignalSpy switchOneAlbumViewSpy(&viewManager, &ViewManager::switchOneAlbumView); + QSignalSpy switchAllTracksViewSpy(&viewManager, &ViewManager::switchAllTracksView); + QSignalSpy switchFilesBrowserViewSpy(&viewManager, &ViewManager::switchFilesBrowserView); + QSignalSpy switchOffAllViewsSpy(&viewManager, &ViewManager::switchOffAllViews); + QSignalSpy popOneViewSpy(&viewManager, &ViewManager::popOneView); + + viewManager.openChildView(QStringLiteral("album1"), QStringLiteral("artist1"), {}, 12, ElisaUtils::Album); + + QCOMPARE(openGridViewSpy.count(), 1); + QCOMPARE(switchRecentlyPlayedTracksViewSpy.count(), 0); + QCOMPARE(switchFrequentlyPlayedTracksViewSpy.count(), 0); + QCOMPARE(switchOneAlbumViewSpy.count(), 0); + QCOMPARE(switchAllTracksViewSpy.count(), 0); + QCOMPARE(switchFilesBrowserViewSpy.count(), 0); + QCOMPARE(switchOffAllViewsSpy.count(), 0); + QCOMPARE(popOneViewSpy.count(), 0); + + QCOMPARE(openGridViewSpy.at(0).count(), 11); + QCOMPARE(openGridViewSpy.at(0).at(0).value(), ViewManager::AllAlbums); + + viewManager.viewIsLoaded(ViewManager::AllAlbums); + + QCOMPARE(openGridViewSpy.count(), 1); + QCOMPARE(switchRecentlyPlayedTracksViewSpy.count(), 0); + QCOMPARE(switchFrequentlyPlayedTracksViewSpy.count(), 0); + QCOMPARE(switchOneAlbumViewSpy.count(), 1); + QCOMPARE(switchAllTracksViewSpy.count(), 0); + QCOMPARE(switchFilesBrowserViewSpy.count(), 0); + QCOMPARE(switchOffAllViewsSpy.count(), 0); + QCOMPARE(popOneViewSpy.count(), 0); + } +}; + +QTEST_GUILESS_MAIN(ViewManagerTests) + + +#include "viewmanagertest.moc" diff --git a/src/viewmanager.cpp b/src/viewmanager.cpp index f8b9ec6c..a4c44820 100644 --- a/src/viewmanager.cpp +++ b/src/viewmanager.cpp @@ -1,371 +1,372 @@ /* * Copyright 2018 Matthieu Gallien * * This program is free software: you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 3 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this program. If not, see . */ #include "viewmanager.h" ViewManager::ViewManager(QObject *parent) : QObject(parent) { } void ViewManager::closeAllViews() { mCurrentView = ViewsType::NoViews; mTargetView = ViewsType::NoViews; Q_EMIT switchOffAllViews(mTargetView); } void ViewManager::openParentView(ViewManager::ViewsType viewType, const QString &mainTitle, const QUrl &mainImage) { switch(viewType) { case NoViews: closeAllViews(); break; case RecentlyPlayedTracks: openRecentlyPlayedTracks(mainTitle, mainImage); break; case FrequentlyPlayedTracks: openFrequentlyPlayedTracks(mainTitle, mainImage); break; case AllAlbums: openAllAlbums(mainTitle, mainImage); break; case AllArtists: openAllArtists(mainTitle, mainImage); break; case AllTracks: openAllTracks(mainTitle, mainImage); break; case AllGenres: openAllGenres(mainTitle, mainImage); break; case FilesBrowser: openFilesBrowser(mainTitle, mainImage); break; case OneAlbum: case OneArtist: case OneAlbumFromArtist: case OneArtistFromGenre: case OneAlbumFromArtistAndGenre: case AllArtistsFromGenre: break; } } void ViewManager::openChildView(const QString &innerMainTitle, const QString &innerSecondaryTitle, const QUrl &innerImage, qulonglong databaseId, ElisaUtils::PlayListEntryType dataType) { switch(dataType) { case ElisaUtils::Album: openOneAlbum(innerMainTitle, innerSecondaryTitle, innerImage, databaseId); break; case ElisaUtils::Artist: openOneArtist(innerMainTitle, innerImage, databaseId); break; case ElisaUtils::Genre: openAllArtistsFromGenre(innerMainTitle); break; case ElisaUtils::Track: case ElisaUtils::FileName: case ElisaUtils::Lyricist: case ElisaUtils::Composer: case ElisaUtils::Unknown: break; } } void ViewManager::viewIsLoaded(ViewManager::ViewsType viewType) { switch (viewType) { case ViewsType::RecentlyPlayedTracks: recentlyPlayedTracksIsLoaded(); break; case ViewsType::FrequentlyPlayedTracks: frequentlyPlayedTracksIsLoaded(); break; case ViewsType::AllAlbums: allAlbumsViewIsLoaded(); break; case ViewsType::OneAlbum: oneAlbumViewIsLoaded(); break; case ViewsType::AllArtists: allArtistsViewIsLoaded(); break; case ViewsType::OneArtist: oneArtistViewIsLoaded(); break; case ViewsType::OneAlbumFromArtist: oneAlbumViewIsLoaded(); break; case ViewsType::AllTracks: allTracksViewIsLoaded(); break; case ViewsType::AllGenres: allGenresViewIsLoaded(); break; case ViewsType::AllArtistsFromGenre: allArtistsFromGenreViewIsLoaded(); break; case ViewsType::OneArtistFromGenre: oneArtistViewIsLoaded(); break; case ViewsType::OneAlbumFromArtistAndGenre: oneAlbumViewIsLoaded(); break; case ViewsType::FilesBrowser: filesBrowserViewIsLoaded(); break; case ViewsType::NoViews: break; } } void ViewManager::openRecentlyPlayedTracks(const QString &mainTitle, const QUrl &imageUrl) { mTargetView = ViewsType::RecentlyPlayedTracks; if (mCurrentView != mTargetView) { Q_EMIT switchRecentlyPlayedTracksView(mTargetView, 1, mainTitle, imageUrl, ElisaUtils::Track); } } void ViewManager::openFrequentlyPlayedTracks(const QString &mainTitle, const QUrl &imageUrl) { mTargetView = ViewsType::FrequentlyPlayedTracks; if (mCurrentView != mTargetView) { Q_EMIT switchFrequentlyPlayedTracksView(mTargetView, 1, mainTitle, imageUrl, ElisaUtils::Track); } } void ViewManager::openAllAlbums(const QString &mainTitle, const QUrl &imageUrl) { mTargetView = ViewsType::AllAlbums; if (mCurrentView != mTargetView) { Q_EMIT openGridView(mTargetView, 1, mainTitle, {}, imageUrl, ElisaUtils::Album, QUrl(QStringLiteral("image://icon/media-optical-audio")), {}, {}, true, true); } } void ViewManager::openOneAlbum(const QString &albumTitle, const QString &albumAuthor, const QUrl &albumCover, qulonglong albumDatabaseId) { mTargetAlbumTitle = albumTitle; mTargetAlbumAuthor = albumAuthor; mTargetDatabaseId = albumDatabaseId; mTargetImageUrl = albumCover; if (mCurrentView == ViewsType::AllAlbums) { mTargetView = ViewsType::OneAlbum; Q_EMIT switchOneAlbumView(mTargetView, 2, mTargetAlbumTitle, mTargetImageUrl, mTargetAlbumAuthor, mTargetDatabaseId); } else if (mCurrentView == ViewsType::OneArtist) { mTargetView = ViewsType::OneAlbumFromArtist; Q_EMIT switchOneAlbumView(mTargetView, 3, mTargetAlbumTitle, mTargetImageUrl, mTargetAlbumAuthor, mTargetDatabaseId); } else if (mCurrentView == ViewsType::OneArtistFromGenre) { mTargetView = ViewsType::OneAlbumFromArtistAndGenre; Q_EMIT switchOneAlbumView(mTargetView, 4, mTargetAlbumTitle, mTargetImageUrl, mTargetAlbumAuthor, mTargetDatabaseId); } else { + mTargetView = ViewsType::OneAlbum; Q_EMIT openGridView(ViewsType::AllAlbums, 1, {}, {}, {}, ElisaUtils::Album, QUrl(QStringLiteral("image://icon/media-optical-audio")), {}, {}, true, true); } } void ViewManager::openAllArtists(const QString &mainTitle, const QUrl &imageUrl) { mTargetView = ViewsType::AllArtists; if (mCurrentView != mTargetView) { Q_EMIT openGridView(ViewsType::AllArtists, 1, mainTitle, {}, imageUrl, ElisaUtils::Artist, QUrl(QStringLiteral("image://icon/view-media-artist")), {}, {}, false, false); } } void ViewManager::openOneArtist(const QString &artistName, const QUrl &artistImageUrl, qulonglong artistDatabaseId) { mTargetArtistName = artistName; mTargetDatabaseId = artistDatabaseId; mTargetImageUrl = artistImageUrl; if (mCurrentView == ViewsType::AllArtistsFromGenre) { mTargetView = ViewsType::OneArtistFromGenre; } else { mTargetView = ViewsType::OneArtist; } if (mCurrentView == ViewsType::AllArtists && mTargetView == ViewsType::OneArtist) { Q_EMIT openGridView(mTargetView, 2, mTargetArtistName, {}, mTargetImageUrl, ElisaUtils::Album, QUrl(QStringLiteral("image://icon/media-optical-audio")), {}, mTargetArtistName, true, true); } else if (mCurrentView == ViewsType::OneArtist && mCurrentArtistName != mTargetArtistName && mTargetView == ViewsType::OneArtist) { Q_EMIT openGridView(mTargetView, 2, mTargetArtistName, {}, mTargetImageUrl, ElisaUtils::Album, QUrl(QStringLiteral("image://icon/media-optical-audio")), {}, mTargetArtistName, true, true); } else if (mCurrentView == ViewsType::OneAlbumFromArtist && mCurrentArtistName != mTargetArtistName && mTargetView == ViewsType::OneArtist) { Q_EMIT openGridView(mTargetView, 2, mTargetArtistName, {}, mTargetImageUrl, ElisaUtils::Album, QUrl(QStringLiteral("image://icon/media-optical-audio")), {}, mTargetArtistName, true, true); } else if (mCurrentView == ViewsType::AllArtistsFromGenre && mTargetView == ViewsType::OneArtistFromGenre) { Q_EMIT openGridView(mTargetView, 3, mTargetArtistName, {}, mTargetImageUrl, ElisaUtils::Album, QUrl(QStringLiteral("image://icon/media-optical-audio")), mTargetGenreName, mTargetArtistName, true, true); } else { Q_EMIT openGridView(ViewsType::AllArtists, 1, {}, {}, {}, ElisaUtils::Artist, QUrl(QStringLiteral("image://icon/view-media-artist")), {}, {}, false, false); } } void ViewManager::openAllTracks(const QString &mainTitle, const QUrl &imageUrl) { mTargetView = ViewsType::AllTracks; if (mCurrentView != mTargetView) { Q_EMIT switchAllTracksView(mTargetView, 1, mainTitle, imageUrl, ElisaUtils::Track); } } void ViewManager::openAllGenres(const QString &mainTitle, const QUrl &imageUrl) { mTargetView = ViewsType::AllGenres; if (mCurrentView != mTargetView) { Q_EMIT openGridView(mTargetView, 1, mainTitle, {}, imageUrl, ElisaUtils::Genre, QUrl(QStringLiteral("image://icon/view-media-genre")), {}, {}, false, false); } } void ViewManager::openAllArtistsFromGenre(const QString &genreName) { mTargetView = ViewsType::AllArtistsFromGenre; mTargetGenreName = genreName; if (mCurrentView == ViewsType::AllGenres) { Q_EMIT openGridView(mTargetView, 2, mTargetGenreName, {}, QUrl(QStringLiteral("image://icon/view-media-artist")), ElisaUtils::Artist, QUrl(QStringLiteral("image://icon/view-media-artist")), mTargetGenreName, {}, false, false); } else { Q_EMIT openGridView(ViewsType::AllGenres, 1, {}, {}, {}, ElisaUtils::Genre, QUrl(QStringLiteral("image://icon/view-media-genre")), {}, {}, false, false); } } void ViewManager::openFilesBrowser(const QString &mainTitle, const QUrl &imageUrl) { mTargetView = ViewsType::FilesBrowser; if (mCurrentView != mTargetView) { Q_EMIT switchFilesBrowserView(mTargetView, 1, mainTitle, imageUrl); } } void ViewManager::recentlyPlayedTracksIsLoaded() { mCurrentView = ViewsType::RecentlyPlayedTracks; } void ViewManager::frequentlyPlayedTracksIsLoaded() { mCurrentView = ViewsType::FrequentlyPlayedTracks; } void ViewManager::allAlbumsViewIsLoaded() { mCurrentView = ViewsType::AllAlbums; if (mTargetView == ViewsType::OneAlbum) { Q_EMIT switchOneAlbumView(mTargetView, 2, mTargetAlbumTitle, mTargetImageUrl, mTargetArtistName, mTargetDatabaseId); } } void ViewManager::oneAlbumViewIsLoaded() { mCurrentAlbumTitle = mTargetAlbumTitle; mCurrentAlbumAuthor = mTargetAlbumAuthor; if (mTargetView == ViewsType::OneAlbum) { mCurrentView = ViewsType::OneAlbum; } else if (mTargetView == ViewsType::OneAlbumFromArtist) { mCurrentView = ViewsType::OneAlbumFromArtist; } else if (mTargetView == ViewsType::OneAlbumFromArtistAndGenre) { mCurrentView = ViewsType::OneAlbumFromArtistAndGenre; } } void ViewManager::allArtistsViewIsLoaded() { mCurrentView = ViewsType::AllArtists; if (mTargetView == ViewsType::OneArtist) { Q_EMIT openGridView(mTargetView, 2, mTargetArtistName, {}, mTargetImageUrl, ElisaUtils::Album, QUrl(QStringLiteral("image://icon/media-optical-audio")), {}, mTargetArtistName, true, true); } } void ViewManager::oneArtistViewIsLoaded() { mCurrentArtistName = mTargetArtistName; if (mTargetView == ViewsType::OneArtist) { mCurrentView = ViewsType::OneArtist; } else { mCurrentGenreName = mTargetGenreName; mCurrentView = ViewsType::OneArtistFromGenre; } } void ViewManager::allTracksViewIsLoaded() { mCurrentView = ViewsType::AllTracks; } void ViewManager::allGenresViewIsLoaded() { mCurrentView = ViewsType::AllGenres; } void ViewManager::allArtistsFromGenreViewIsLoaded() { mCurrentGenreName = mTargetGenreName; mCurrentView = ViewsType::AllArtistsFromGenre; } void ViewManager::filesBrowserViewIsLoaded() { mCurrentView = ViewsType::FilesBrowser; } void ViewManager::goBack() { Q_EMIT popOneView(); if (mCurrentView == ViewsType::OneAlbum) { mCurrentView = ViewsType::AllAlbums; } else if (mCurrentView == ViewsType::OneArtist) { mCurrentView = ViewsType::AllArtists; } else if (mCurrentView == ViewsType::OneAlbumFromArtist) { mCurrentView = ViewsType::OneArtist; } else if (mCurrentView == ViewsType::AllArtistsFromGenre) { mCurrentView = ViewsType::AllGenres; } else if (mCurrentView == ViewsType::OneArtistFromGenre) { mCurrentView = ViewsType::AllArtistsFromGenre; } else if (mCurrentView == ViewsType::OneAlbumFromArtistAndGenre) { mCurrentView = ViewsType::OneArtistFromGenre; } mTargetView = mCurrentView; } #include "moc_viewmanager.cpp"