diff options
| author | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2015-01-09 18:27:55 +0000 |
|---|---|---|
| committer | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2015-01-09 18:27:55 +0000 |
| commit | 228e0f6f9b27ada8bf9bd8647c21557ae237b304 (patch) | |
| tree | c22a2681e5fd9e137ff08a85015c842e6ddaec53 /src/plugins/Ui | |
| parent | 89bcbf1452a217aa8c73cf93de006eff0c9fdddb (diff) | |
| download | qmmp-228e0f6f9b27ada8bf9bd8647c21557ae237b304.tar.gz qmmp-228e0f6f9b27ada8bf9bd8647c21557ae237b304.tar.bz2 qmmp-228e0f6f9b27ada8bf9bd8647c21557ae237b304.zip | |
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
Diffstat (limited to 'src/plugins/Ui')
| -rw-r--r-- | src/plugins/Ui/skinned/listwidget.cpp | 17 | ||||
| -rw-r--r-- | src/plugins/Ui/skinned/playlist.cpp | 2 |
2 files changed, 15 insertions, 4 deletions
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))); } diff --git a/src/plugins/Ui/skinned/playlist.cpp b/src/plugins/Ui/skinned/playlist.cpp index b01dc9ba8..a7ef07d3d 100644 --- a/src/plugins/Ui/skinned/playlist.cpp +++ b/src/plugins/Ui/skinned/playlist.cpp @@ -105,7 +105,7 @@ PlayList::PlayList (PlayListManager *manager, QWidget *parent) connect (m_pl_control, SIGNAL (ejectClicked()), SIGNAL (eject())); connect (m_pl_manager, SIGNAL (selectedPlayListChanged(PlayListModel *, PlayListModel *)), - m_listWidget, SLOT(setModel(PlayListModel*))); + m_listWidget, SLOT(setModel(PlayListModel*, PlayListModel*))); m_listWidget->setModel(m_pl_manager->selectedPlayList()); createMenus(); |
