diff options
| -rw-r--r-- | src/plugins/Ui/skinned/textscroller.cpp | 16 | ||||
| -rw-r--r-- | src/plugins/Ui/skinned/textscroller.h | 1 | ||||
| -rw-r--r-- | src/qmmpui/playlistmodel.cpp | 13 | ||||
| -rw-r--r-- | src/qmmpui/playlistmodel.h | 5 |
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(); |
