From bd30d815d1567fd7bae5f304c5b74f245059f18e Mon Sep 17 00:00:00 2001 From: David Sansome Date: Sat, 26 Dec 2009 15:21:36 +0000 Subject: [PATCH] Don't resort the playlist when reloading --- src/mainwindow.cpp | 3 +++ src/playlist.cpp | 6 ++---- src/playlist.h | 3 ++- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 9ff388e53..53be44621 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -45,7 +45,10 @@ MainWindow::MainWindow(QWidget *parent) playlist_->Restore(); + playlist_->IgnoreSorting(true); ui_.playlist->setModel(playlist_); + playlist_->IgnoreSorting(false); + ui_.library_view->setModel(library_sort_model_); ui_.library_view->SetLibrary(library_); diff --git a/src/playlist.cpp b/src/playlist.cpp index 2f1417555..34d8c53c2 100644 --- a/src/playlist.cpp +++ b/src/playlist.cpp @@ -17,7 +17,7 @@ const char* Playlist::kSettingsGroup = "Playlist"; Playlist::Playlist(QObject *parent) : QAbstractListModel(parent), current_is_paused_(false), - ignore_next_sort_(true) + ignore_sorting_(false) { } @@ -273,10 +273,8 @@ bool Playlist::CompareItems(int column, Qt::SortOrder order, } void Playlist::sort(int column, Qt::SortOrder order) { - if (ignore_next_sort_) { - ignore_next_sort_ = false; + if (ignore_sorting_) return; - } layoutAboutToBeChanged(); diff --git a/src/playlist.h b/src/playlist.h index 2461c9734..8d51213ca 100644 --- a/src/playlist.h +++ b/src/playlist.h @@ -70,6 +70,7 @@ class Playlist : public QAbstractListModel { void Paused(); void Playing(); void Stopped(); + void IgnoreSorting(bool value) { ignore_sorting_ = value; } private: void SetCurrentIsPaused(bool paused); @@ -82,7 +83,7 @@ class Playlist : public QAbstractListModel { bool current_is_paused_; // Hack to stop QTreeView::setModel sorting the playlist - bool ignore_next_sort_; + bool ignore_sorting_; }; #endif // PLAYLIST_H