diff ui/separatoritemdelegate.cpp @ 273:b6c2fa8457b6

Added new list item delegate for drawing a separator.
author Raimund Renkert <rrenkert@intevation.de>
date Wed, 02 Apr 2014 13:38:10 +0200
parents
children 17e1c8f37d72
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ui/separatoritemdelegate.cpp	Wed Apr 02 13:38:10 2014 +0200
@@ -0,0 +1,34 @@
+#include <QtWidgets>
+
+#include "separatoritemdelegate.h"
+
+void SeparatorItemDelegate::paint(QPainter *painter,
+    const QStyleOptionViewItem &option, const QModelIndex &index) const
+{
+    // Save the current painter.
+    painter->save();
+
+    // Get the position for separator line.
+    int topLeftY = option.rect.topLeft().y();
+    int height = option.rect.height();
+    int middle = topLeftY + (height / 2);
+
+    // Draw the first part.
+    QPen linePen(Qt::black, 2, Qt::SolidLine);
+    painter->setPen(linePen);
+    painter->drawLine(10, middle, 80, middle);
+
+    // Draw the text.
+    QString text = index.data().toString();
+    QRect rect = option.rect.adjusted(85, -2, 0, -2);
+    painter->drawText(rect.left(), rect.top(), rect.width(), rect.height(),
+        Qt::AlignVCenter|Qt::AlignLeft, text, &rect);
+
+    // Draw the second part.
+    painter->drawLine(rect.topRight().x() + 5, middle, rect.topRight().x() + 75, middle);
+
+    // Restore the painter to have an unmodified painter for the next draw
+    // action.
+    painter->restore();
+    return;
+}

http://wald.intevation.org/projects/trustbridge/