aboutsummaryrefslogtreecommitdiff
path: root/src/plugins
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins')
-rw-r--r--src/plugins/Ui/skinned/listwidget.cpp26
-rw-r--r--src/plugins/Ui/skinned/listwidget.h3
2 files changed, 29 insertions, 0 deletions
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<ListWidgetRow *> m_rows;
MediaPlayer *m_player;
PlayListPopup::PopupWidget *m_popupWidget;