From 18f87d65d5005709fea24e26b205b527b5e9ac2b Mon Sep 17 00:00:00 2001 From: Tobias Rundstrom Date: Sun, 26 Feb 2006 22:07:58 -0300 Subject: [PATCH] Make Items in playlist clickable. --- PlaylistList.cpp | 17 +++++++++++++++++ PlaylistList.h | 2 ++ XMMSHandler.cpp | 9 +++++++++ XMMSHandler.h | 1 + 4 files changed, 29 insertions(+) diff --git a/PlaylistList.cpp b/PlaylistList.cpp index 753e101..8cb32c9 100644 --- a/PlaylistList.cpp +++ b/PlaylistList.cpp @@ -150,6 +150,23 @@ PlaylistList::playlistList (QList l) update (); } +void +PlaylistList::mouseDoubleClickEvent (QMouseEvent *event) +{ + XMMSHandler *xmmsh = XMMSHandler::getInstance (); + + if (m_items->count() < 1 || m_selected->count() < 1) { + return; + } + + PlaylistItem *it = m_items->value (m_selected->first()); + if (!it) { + return; + } + + xmmsh->requestTrackChange (m_items->indexOf(it)); +} + void PlaylistList::mousePressEvent (QMouseEvent *event) { diff --git a/PlaylistList.h b/PlaylistList.h index 34a8070..d868e55 100644 --- a/PlaylistList.h +++ b/PlaylistList.h @@ -28,6 +28,8 @@ class PlaylistList : public QWidget { private: void paintEvent (QPaintEvent *event); void mousePressEvent (QMouseEvent *event); + void mouseDoubleClickEvent (QMouseEvent *event); + void mouseMoveEvent (QMouseEvent *event) {} QList *m_items; diff --git a/XMMSHandler.cpp b/XMMSHandler.cpp index e402828..0b984c5 100644 --- a/XMMSHandler.cpp +++ b/XMMSHandler.cpp @@ -62,6 +62,15 @@ XMMSHandler::requestPlaylistList (void) r->connect (sigc::mem_fun (this, &XMMSHandler::playlist_list)); } +void +XMMSHandler::requestTrackChange (int pos) +{ + XMMSResult *r = m_xmmsc->playlist_set_next (pos); + delete r; + XMMSResult *r2 = m_xmmsc->playback_tickle (); + delete r2; +} + void XMMSHandler::playlist_list (XMMSResultValueList *res) { diff --git a/XMMSHandler.h b/XMMSHandler.h index 5fc2158..e714cf1 100644 --- a/XMMSHandler.h +++ b/XMMSHandler.h @@ -23,6 +23,7 @@ class XMMSHandler : public QObject, public sigc::trackable { void requestMediainfo (uint id); void requestPlaylistList (void); + void requestTrackChange (int pos); const XMMSClient *getXMMS () { return m_xmmsc; }