diff --git a/src/models/alltracksproxymodel.cpp b/src/models/alltracksproxymodel.cpp --- a/src/models/alltracksproxymodel.cpp +++ b/src/models/alltracksproxymodel.cpp @@ -25,7 +25,6 @@ AllTracksProxyModel::AllTracksProxyModel(QObject *parent) : AbstractMediaProxyModel(parent) { setSortCaseSensitivity(Qt::CaseInsensitive); - sortModel(Qt::AscendingOrder); } AllTracksProxyModel::~AllTracksProxyModel() = default; diff --git a/src/qml/DataListView.qml b/src/qml/DataListView.qml --- a/src/qml/DataListView.qml +++ b/src/qml/DataListView.qml @@ -32,7 +32,7 @@ property alias image: listView.image property var modelType property alias sortRole: proxyModel.sortRole - property bool sortAscending: true + property var sortAscending property bool displaySingleAlbum: false DataModel { @@ -179,9 +179,9 @@ realModel.initialize(elisa.musicManager, elisa.musicManager.viewDatabase, modelType, filterType, mainTitle, secondaryTitle, databaseId) } - if (sortAscending) { + if (sortAscending === ViewManager.SortAscending) { proxyModel.sortModel(Qt.AscendingOrder) - } else { + } else if (sortAscending === ViewManager.SortDescending) { proxyModel.sortModel(Qt.DescendingOrder) } } diff --git a/src/viewmanager.h b/src/viewmanager.h --- a/src/viewmanager.h +++ b/src/viewmanager.h @@ -50,8 +50,9 @@ Q_ENUM(ViewsType) enum SortOrder { - SortAscending = true, - SortDescending = false, + NoSort, + SortAscending, + SortDescending, }; Q_ENUM(SortOrder) @@ -71,7 +72,7 @@ void openListView(ViewManager::ViewsType viewType, ElisaUtils::FilterType filterType, int expectedDepth, const QString &mainTitle, const QString &secondaryTitle, qulonglong databaseId, - const QUrl &imageUrl, ElisaUtils::PlayListEntryType dataType, int sortRole, + const QUrl &imageUrl, ElisaUtils::PlayListEntryType dataType, QVariant sortRole, ViewManager::SortOrder sortOrder, bool displaySingleAlbum); void switchFilesBrowserView(ViewManager::ViewsType viewType, int expectedDepth, diff --git a/src/viewmanager.cpp b/src/viewmanager.cpp --- a/src/viewmanager.cpp +++ b/src/viewmanager.cpp @@ -182,21 +182,21 @@ if (mCurrentView == ViewsType::AllAlbums) { mTargetView = ViewsType::OneAlbum; Q_EMIT openListView(mTargetView, ElisaUtils::FilterById, 2, mTargetAlbumTitle, mTargetAlbumAuthor, - mTargetDatabaseId, mTargetImageUrl, ElisaUtils::Track, Qt::DisplayRole, - SortOrder::SortAscending, SingleAlbum); + mTargetDatabaseId, mTargetImageUrl, ElisaUtils::Track, {}, + SortOrder::NoSort, SingleAlbum); } else if (mCurrentView == ViewsType::OneArtist && mCurrentArtistName == mTargetAlbumAuthor) { mTargetView = ViewsType::OneAlbumFromArtist; Q_EMIT openListView(mTargetView, ElisaUtils::FilterById, 3, mTargetAlbumTitle, mTargetAlbumAuthor, - mTargetDatabaseId, mTargetImageUrl, ElisaUtils::Track, Qt::DisplayRole, - SortOrder::SortAscending, SingleAlbum); + mTargetDatabaseId, mTargetImageUrl, ElisaUtils::Track, {}, + SortOrder::NoSort, SingleAlbum); } else if (mCurrentView == ViewsType::OneArtist && mCurrentArtistName != mTargetAlbumAuthor) { mTargetView = ViewsType::OneAlbumFromArtist; Q_EMIT popOneView(); } else if (mCurrentView == ViewsType::OneArtistFromGenre) { mTargetView = ViewsType::OneAlbumFromArtistAndGenre; Q_EMIT openListView(mTargetView, ElisaUtils::FilterById, 4, mTargetAlbumTitle, mTargetAlbumAuthor, - mTargetDatabaseId, mTargetImageUrl, ElisaUtils::Track, Qt::DisplayRole, - SortOrder::SortAscending, SingleAlbum); + mTargetDatabaseId, mTargetImageUrl, ElisaUtils::Track, {}, + SortOrder::NoSort, SingleAlbum); } else { mTargetView = ViewsType::OneAlbum; Q_EMIT openGridView(ViewsType::AllAlbums, ElisaUtils::NoFilter, 1, {}, {}, {}, ElisaUtils::Album,