diff options
| author | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2012-08-12 17:25:29 +0000 |
|---|---|---|
| committer | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2012-08-12 17:25:29 +0000 |
| commit | b353daaa7dd7a32d4ec0036231e11b0439734832 (patch) | |
| tree | e88552b42e32da6e4fadb7d1141da5a2829180ed | |
| parent | 2b0ab39f8bddead60047385e225fc320e7bfcdbc (diff) | |
| download | qmmp-b353daaa7dd7a32d4ec0036231e11b0439734832.tar.gz qmmp-b353daaa7dd7a32d4ec0036231e11b0439734832.tar.bz2 qmmp-b353daaa7dd7a32d4ec0036231e11b0439734832.zip | |
skinned ui: fixed segmentation fault indside popup widget
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@2874 90c681e8-e032-0410-971d-27865f9a5e38
| -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; }; } |
