aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/plugins/Ui/skinned/listwidget.cpp9
-rw-r--r--src/plugins/Ui/skinned/listwidgetdrawer.cpp15
-rw-r--r--src/plugins/Ui/skinned/listwidgetdrawer.h2
3 files changed, 19 insertions, 7 deletions
diff --git a/src/plugins/Ui/skinned/listwidget.cpp b/src/plugins/Ui/skinned/listwidget.cpp
index 37d4423d5..d1b4bb462 100644
--- a/src/plugins/Ui/skinned/listwidget.cpp
+++ b/src/plugins/Ui/skinned/listwidget.cpp
@@ -181,17 +181,12 @@ void ListWidget::paintEvent(QPaintEvent *)
//draw drop line
if(m_drop_index != INVALID_INDEX)
{
- painter.setPen(m_current);
- painter.drawLine (6, (m_drop_index - m_first) * (m_metrics->lineSpacing() + 1),
- width() - 4 , (m_drop_index - m_first) * (m_metrics->lineSpacing() + 1));
+ m_drawer.drawDropLine(&painter, m_drop_index - m_first, width());
}
//draw line
if(m_number_width)
{
- painter.setPen(m_normal);
- int sx = rtl ? width() - 10 - m_number_width - m_metrics->width("9")/2 - 1 :
- 10 + m_number_width + m_metrics->width("9")/2 - 1;
- painter.drawLine(sx, 2, sx, m_rows.size() * (1 + m_metrics->lineSpacing()) - 2 - m_metrics->descent());
+ m_drawer.drawVerticalLine(&painter, m_number_width, m_rows.count(), width(), rtl);
}
}
diff --git a/src/plugins/Ui/skinned/listwidgetdrawer.cpp b/src/plugins/Ui/skinned/listwidgetdrawer.cpp
index d6a9c5918..75f4a0f36 100644
--- a/src/plugins/Ui/skinned/listwidgetdrawer.cpp
+++ b/src/plugins/Ui/skinned/listwidgetdrawer.cpp
@@ -164,3 +164,18 @@ void ListWidgetDrawer::drawTrack(QPainter *painter, int m_number_width, ListWidg
sx = rtl ? 9 : row->rect.right() - 7 - m_metrics->width(row->length);
painter->drawText(sx, row->textY, row->length);
}
+
+void ListWidgetDrawer::drawDropLine(QPainter *painter, int row_number, int width)
+{
+ painter->setPen(m_current);
+ painter->drawLine (5, row_number * (m_metrics->lineSpacing() + 1),
+ width - 5 , row_number * (m_metrics->lineSpacing() + 1));
+}
+
+void ListWidgetDrawer::drawVerticalLine(QPainter *painter, int m_number_width, int row_count, int width, bool rtl)
+{
+ painter->setPen(m_normal);
+ int sx = rtl ? width - 10 - m_number_width - m_metrics->width("9")/2 - 1 :
+ 10 + m_number_width + m_metrics->width("9")/2 - 1;
+ painter->drawLine(sx, 2, sx, row_count * (1 + m_metrics->lineSpacing()) - 2 - m_metrics->descent());
+}
diff --git a/src/plugins/Ui/skinned/listwidgetdrawer.h b/src/plugins/Ui/skinned/listwidgetdrawer.h
index da0788b3c..3604b9fd2 100644
--- a/src/plugins/Ui/skinned/listwidgetdrawer.h
+++ b/src/plugins/Ui/skinned/listwidgetdrawer.h
@@ -69,6 +69,8 @@ public:
void drawBackground(QPainter *painter, ListWidgetRow *row);
void drawSeparator(QPainter *painter, int m_number_width, ListWidgetRow *row, bool rtl);
void drawTrack(QPainter *painter, int m_number_width, ListWidgetRow *row, bool rtl);
+ void drawDropLine(QPainter *painter, int row_number, int width);
+ void drawVerticalLine(QPainter *painter, int m_number_width, int row_count, int width, bool rtl);
private:
QColor m_normal, m_current, m_normal_bg, m_selected_bg;