[Pkg-mpd-commits] [qmpdclient] 21/38: Jump to song also selects and scrolls playlist.

Andrey Rahmatullin wrar at moszumanska.debian.org
Mon May 23 07:19:45 UTC 2016


This is an automated email from the git hooks/post-receive script.

wrar pushed a commit to branch master
in repository qmpdclient.

commit e41141050d5f953723674e04f1972ef23ab73281
Author: Voker57 <voker57 at gmail.com>
Date:   Wed Jun 27 16:28:24 2012 +0400

    Jump to song also selects and scrolls playlist.
---
 src/mainwindow.cpp   | 8 +++++++-
 src/mainwindow.h     | 2 ++
 src/playlistpanel.h  | 2 +-
 src/playlistview.cpp | 5 +++++
 src/playlistview.h   | 2 +-
 5 files changed, 16 insertions(+), 3 deletions(-)

diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp
index 2faea71..7b690b7 100644
--- a/src/mainwindow.cpp
+++ b/src/mainwindow.cpp
@@ -37,6 +37,7 @@
 #include "shortcuts.h"
 #include "shoutcastpanel.h"
 #include "trayicon.h"
+#include "playlistmodel.h"
 #include <QCloseEvent>
 #include <QDesktopWidget>
 #include <QProgressBar>
@@ -63,7 +64,7 @@ MainWindow::MainWindow() : QMainWindow(0) {
 	// Ideal style vertical tabbars
 	leftBar->link(leftStack, splitter);
 	rightBar->link(rightStack, splitter);
-	m_playlistTab = leftBar->addPanel(new PlaylistPanel, true);
+	m_playlistTab = leftBar->addPanel(m_playlistPanel = new PlaylistPanel, true);
 	m_libraryTab = rightBar->addPanel(m_libraryPanel = new LibraryPanel);
 	m_directoriesTab = rightBar->addPanel(new DirectoryPanel);
 	m_radioTab = rightBar->addPanel(new RadioPanel);
@@ -321,6 +322,11 @@ void MainWindow::locateCurrentSong() {
 	// Get current song name, album, artist and go update stuff
 	m_libraryPanel->artistView->selectString(m_song.artist());
 	m_libraryPanel->albumView->selectString(m_song.album());
+
+	// Scroll playlist
+	QModelIndex idx = m_playlistPanel->playlistView->model()->indexOfSong(m_playlistPanel->playlistView->model()->playingSong());
+	m_playlistPanel->playlistView->scrollTo(idx);
+	m_playlistPanel->playlistView->selectionModel()->select(idx, QItemSelectionModel::SelectCurrent);
 }
 
 void MainWindow::playlistUpdated(const MPDSongList &list)
diff --git a/src/mainwindow.h b/src/mainwindow.h
index fb9b8ff..ba9bcc1 100644
--- a/src/mainwindow.h
+++ b/src/mainwindow.h
@@ -30,6 +30,7 @@ class QProgressBar;
 class QShortcut;
 class LibraryPanel;
 class MPDSongList;
+class PlaylistPanel;
 
 class MainWindow : public QMainWindow, private Ui::MainWindow {
 	Q_OBJECT
@@ -83,5 +84,6 @@ private:
 	QShortcut *m_hideKey;
 	TrayIcon *m_trayIcon;
 	LibraryPanel *m_libraryPanel;
+	PlaylistPanel *m_playlistPanel;
 };
 #endif
diff --git a/src/playlistpanel.h b/src/playlistpanel.h
index a85c1e7..2696a66 100644
--- a/src/playlistpanel.h
+++ b/src/playlistpanel.h
@@ -22,7 +22,7 @@
 
 #include "ui_playlistpanel.h"
 
-class PlaylistPanel : public QWidget, private Ui::PlaylistPanel {
+class PlaylistPanel : public QWidget, public Ui::PlaylistPanel {
 	Q_OBJECT
 
 public:
diff --git a/src/playlistview.cpp b/src/playlistview.cpp
index a68035a..3396bb0 100644
--- a/src/playlistview.cpp
+++ b/src/playlistview.cpp
@@ -266,4 +266,9 @@ void PlaylistView::queueSelectedSong() {
 
 void PlaylistView::setFilter(const QString &needle) {
 	m_model->setFilter(needle);
+}
+
+PlaylistModel *PlaylistView::model()
+{
+   return m_model;
 }
\ No newline at end of file
diff --git a/src/playlistview.h b/src/playlistview.h
index 9f9a478..0f04f18 100644
--- a/src/playlistview.h
+++ b/src/playlistview.h
@@ -33,7 +33,7 @@ public:
 	PlaylistView(QWidget *);
 	MPDSongList selectedSongs() const;
 	void setFilter(const QString &);
-
+   PlaylistModel *model();
 public slots:
 	void updateTranslation();
 

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-mpd/qmpdclient.git



More information about the Pkg-mpd-commits mailing list