From 7b5e9960a11f35b3792d3417557fef5abc1ca876 Mon Sep 17 00:00:00 2001 From: trialuser02 Date: Wed, 20 Nov 2013 11:57:25 +0000 Subject: prepare for insert functions impelementation git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@3918 90c681e8-e032-0410-971d-27865f9a5e38 --- src/plugins/Ui/skinned/listwidget.cpp | 26 ++++++++++++++++++++++++++ src/plugins/Ui/skinned/listwidget.h | 3 +++ 2 files changed, 29 insertions(+) (limited to 'src/plugins/Ui') diff --git a/src/plugins/Ui/skinned/listwidget.cpp b/src/plugins/Ui/skinned/listwidget.cpp index 6aa9792eb..8acd31783 100644 --- a/src/plugins/Ui/skinned/listwidget.cpp +++ b/src/plugins/Ui/skinned/listwidget.cpp @@ -46,6 +46,7 @@ ListWidget::ListWidget(QWidget *parent) m_popupWidget = 0; m_metrics = 0; m_extra_metrics = 0; + m_drop_row = -1; loadColors(); m_menu = new QMenu(this); m_scroll_direction = NONE; @@ -264,6 +265,14 @@ void ListWidget::paintEvent(QPaintEvent *) } sx = rtl ? 9 : width() - 7 - m_metrics->width(m_rows[i]->length); painter.drawText(sx, sy, m_rows[i]->length); + + //draw drop line + if(m_drop_row == (m_first + i)) + { + painter.setPen(m_current); + painter.drawLine (6, i * (m_metrics->lineSpacing() + 2), + width() - 4 , i * (m_metrics->lineSpacing() + 2)); + } } //draw line if(m_number_width) @@ -548,6 +557,23 @@ void ListWidget::dropEvent(QDropEvent *event) m_model->add(u.toString()); } } + m_drop_row = -1; +} + +void ListWidget::dragLeaveEvent(QDragLeaveEvent *) +{ + m_drop_row = -1; + update(); +} + +void ListWidget::dragMoveEvent(QDragMoveEvent *event) +{ + int row = rowAt(event->pos().y()); + if(row != m_drop_row) + { + m_drop_row = row; + update(); + } } const QString ListWidget::getExtraString(int i) diff --git a/src/plugins/Ui/skinned/listwidget.h b/src/plugins/Ui/skinned/listwidget.h index b7e902203..57f5f4d1a 100644 --- a/src/plugins/Ui/skinned/listwidget.h +++ b/src/plugins/Ui/skinned/listwidget.h @@ -98,6 +98,8 @@ protected: int rowAt(int)const; void dragEnterEvent(QDragEnterEvent *event); void dropEvent(QDropEvent *event); + void dragLeaveEvent(QDragLeaveEvent *); + void dragMoveEvent(QDragMoveEvent *event); void contextMenuEvent (QContextMenuEvent * event); bool event (QEvent *e); @@ -140,6 +142,7 @@ private: bool m_show_anchor; bool m_align_numbres; int m_number_width; + int m_drop_row; QList m_rows; MediaPlayer *m_player; PlayListPopup::PopupWidget *m_popupWidget; -- cgit v1.2.3-13-gbd6f