[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