From 228e0f6f9b27ada8bf9bd8647c21557ae237b304 Mon Sep 17 00:00:00 2001 From: trialuser02 Date: Fri, 9 Jan 2015 18:27:55 +0000 Subject: added feature to remember playlists scroll positions (Fixes issue 728) git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@4686 90c681e8-e032-0410-971d-27865f9a5e38 --- src/plugins/Ui/skinned/listwidget.cpp | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) (limited to 'src/plugins/Ui/skinned/listwidget.cpp') diff --git a/src/plugins/Ui/skinned/listwidget.cpp b/src/plugins/Ui/skinned/listwidget.cpp index 43c06418e..e98eef0c9 100644 --- a/src/plugins/Ui/skinned/listwidget.cpp +++ b/src/plugins/Ui/skinned/listwidget.cpp @@ -518,12 +518,23 @@ void ListWidget::scrollToCurrent() void ListWidget::setModel(PlayListModel *selected, PlayListModel *previous) { if(previous) + { + previous->setProperty("first_visible", m_first); disconnect(previous, 0, this, 0); //disconnect previous model + } qApp->processEvents(); m_model = selected; - m_first = 0; - recenterCurrent(); //TODO restore position - updateList(PlayListModel::STRUCTURE); + + if(m_model->property("first_visible").isValid()) + { + m_first = m_model->property("first_visible").toInt(); + updateList(PlayListModel::STRUCTURE); + } + else + { + m_first = 0; + updateList(PlayListModel::STRUCTURE | PlayListModel::CURRENT); + } connect (m_model, SIGNAL(currentVisibleRequest()), SLOT(scrollToCurrent())); connect (m_model, SIGNAL(listChanged(int)), SLOT(updateList(int))); } -- cgit v1.2.3-13-gbd6f