aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2015-10-02 06:27:28 +0000
committertrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2015-10-02 06:27:28 +0000
commit047d5bb26c81578808fb4b8583888f8dcdff533e (patch)
treed07ca9aeedc68c72f1f76066c199d957476cc56d
parent5b86ac4c17a8f59eabe440966c3308b9094d50c8 (diff)
downloadqmmp-047d5bb26c81578808fb4b8583888f8dcdff533e.tar.gz
qmmp-047d5bb26c81578808fb4b8583888f8dcdff533e.tar.bz2
qmmp-047d5bb26c81578808fb4b8583888f8dcdff533e.zip
Show track details when double-clicking on song title in main window
(patch by Thomas Perl) (#812) git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@5642 90c681e8-e032-0410-971d-27865f9a5e38
-rw-r--r--src/plugins/Ui/skinned/textscroller.cpp16
-rw-r--r--src/plugins/Ui/skinned/textscroller.h1
-rw-r--r--src/qmmpui/playlistmodel.cpp13
-rw-r--r--src/qmmpui/playlistmodel.h5
4 files changed, 35 insertions, 0 deletions
diff --git a/src/plugins/Ui/skinned/textscroller.cpp b/src/plugins/Ui/skinned/textscroller.cpp
index c06a95915..214df8225 100644
--- a/src/plugins/Ui/skinned/textscroller.cpp
+++ b/src/plugins/Ui/skinned/textscroller.cpp
@@ -28,6 +28,8 @@
#include <qmmp/qmmp.h>
#include <qmmp/soundcore.h>
#include <qmmpui/metadataformatter.h>
+#include <qmmpui/playlistmanager.h>
+#include <qmmpui/playlistmodel.h>
#include "skin.h"
#include "actionmanager.h"
#include "textscroller.h"
@@ -205,6 +207,20 @@ void TextScroller::mouseMoveEvent (QMouseEvent *e)
QWidget::mouseMoveEvent(e);
}
+void TextScroller::mouseDoubleClickEvent(QMouseEvent *e)
+{
+ if(e->button() == Qt::LeftButton)
+ {
+ PlayListManager *manager = PlayListManager::instance();
+ PlayListModel *model = manager->currentPlayList();
+ model->showDetailsForCurrent(this);
+ }
+ else
+ {
+ QWidget::mouseDoubleClickEvent(e);
+ }
+}
+
void TextScroller::processState(Qmmp::State state)
{
switch(state)
diff --git a/src/plugins/Ui/skinned/textscroller.h b/src/plugins/Ui/skinned/textscroller.h
index 32cc1cb5a..919f4644b 100644
--- a/src/plugins/Ui/skinned/textscroller.h
+++ b/src/plugins/Ui/skinned/textscroller.h
@@ -60,6 +60,7 @@ private:
void mousePressEvent(QMouseEvent *);
void mouseReleaseEvent(QMouseEvent *);
void mouseMoveEvent(QMouseEvent *);
+ void mouseDoubleClickEvent(QMouseEvent *);
void preparePixmap(const QString &text, bool scrollable = false);
QString m_defautText;
QString m_bufferText;
diff --git a/src/qmmpui/playlistmodel.cpp b/src/qmmpui/playlistmodel.cpp
index e381b109f..768dd6e36 100644
--- a/src/qmmpui/playlistmodel.cpp
+++ b/src/qmmpui/playlistmodel.cpp
@@ -624,6 +624,19 @@ void PlayListModel::showDetails(QWidget *parent)
}
}
+void PlayListModel::showDetailsForCurrent(QWidget *parent)
+{
+ if (m_current_track)
+ {
+ QList<PlayListTrack *> l;
+ l.append(m_current_track);
+ QDialog *d = new DetailsDialog(l, parent);
+ TagUpdater *updater = new TagUpdater(d, l);
+ connect(updater, SIGNAL(destroyed(QObject *)),SLOT(updateMetaData()));
+ d->show();
+ }
+}
+
int PlayListModel::firstSelectedUpper(int row)
{
for (int i = row - 1;i >= 0;i--)
diff --git a/src/qmmpui/playlistmodel.h b/src/qmmpui/playlistmodel.h
index d8602d531..bc39fe2aa 100644
--- a/src/qmmpui/playlistmodel.h
+++ b/src/qmmpui/playlistmodel.h
@@ -458,6 +458,11 @@ public slots:
*/
void showDetails(QWidget *parent = 0);
/*!
+ * Shows the details for the current song (if any).
+ * @param parent parent widget.
+ */
+ void showDetailsForCurrent(QWidget *parent = 0);
+ /*!
* Ensures that the current track is visible.
*/
void doCurrentVisibleRequest();