diff options
| -rw-r--r-- | src/plugins/Ui/skinned/listwidget.cpp | 2 | ||||
| -rw-r--r-- | src/plugins/Ui/skinned/popupwidget.cpp | 12 | ||||
| -rw-r--r-- | src/plugins/Ui/skinned/popupwidget.h | 5 |
3 files changed, 9 insertions, 10 deletions
diff --git a/src/plugins/Ui/skinned/listwidget.cpp b/src/plugins/Ui/skinned/listwidget.cpp index b19cab16a..064e142b6 100644 --- a/src/plugins/Ui/skinned/listwidget.cpp +++ b/src/plugins/Ui/skinned/listwidget.cpp @@ -516,7 +516,7 @@ void ListWidget::mouseMoveEvent(QMouseEvent *e) else if(m_popupWidget) { int row = rowAt(e->y()); - if(row < 0 || m_popupWidget->item() != m_model->item(row)) + if(row < 0 || m_popupWidget->url() != m_model->item(row)->url()) m_popupWidget->deactivate(); } } diff --git a/src/plugins/Ui/skinned/popupwidget.cpp b/src/plugins/Ui/skinned/popupwidget.cpp index e4cb79301..640a4fddb 100644 --- a/src/plugins/Ui/skinned/popupwidget.cpp +++ b/src/plugins/Ui/skinned/popupwidget.cpp @@ -40,7 +40,6 @@ PopupWidget::PopupWidget(QWidget *parent) setWindowFlags(Qt::X11BypassWindowManagerHint | Qt::Dialog | Qt::FramelessWindowHint); //setFrameStyle(QFrame::Box | QFrame::Plain); setAttribute(Qt::WA_QuitOnClose, false); - m_item = 0; QHBoxLayout *hlayout = new QHBoxLayout(this); //layout m_pixlabel = new QLabel(this); hlayout->addWidget(m_pixlabel); @@ -86,7 +85,7 @@ void PopupWidget::prepare(PlayListItem *item, QPoint pos) { pos += QPoint(15,10); - m_item = item; + m_url = item->url(); hide(); if(!item) { @@ -112,19 +111,20 @@ void PopupWidget::prepare(PlayListItem *item, QPoint pos) void PopupWidget::deactivate() { m_timer->stop(); + m_url.clear(); hide(); } -PlayListItem *PopupWidget::item() +const QString PopupWidget::url() const { - return m_item; + return m_url; } void PopupWidget::loadCover() { - if(!m_item) + if(m_url.isEmpty()) return; - QPixmap pix = MetaDataManager::instance()->getCover(m_item->url()); + QPixmap pix = MetaDataManager::instance()->getCover(m_url); if(pix.isNull()) pix = QPixmap(":/skinned/ui_no_cover.png"); m_pixlabel->setFixedSize(m_coverSize,m_coverSize); diff --git a/src/plugins/Ui/skinned/popupwidget.h b/src/plugins/Ui/skinned/popupwidget.h index 9966dd3f9..87c3bed2b 100644 --- a/src/plugins/Ui/skinned/popupwidget.h +++ b/src/plugins/Ui/skinned/popupwidget.h @@ -42,7 +42,7 @@ public: void prepare(PlayListItem *item, QPoint pos); void deactivate(); - PlayListItem *item(); + const QString url() const; protected: virtual void mousePressEvent (QMouseEvent *); @@ -58,8 +58,7 @@ private: QString m_template; uint m_pos; int m_coverSize; - PlayListItem *m_item; - + QString m_url; }; } |
