aboutsummaryrefslogtreecommitdiff
path: root/src/plugins/Ui/skinned/listwidget.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/Ui/skinned/listwidget.cpp')
-rw-r--r--src/plugins/Ui/skinned/listwidget.cpp26
1 files changed, 26 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)