diff options
5 files changed, 28 insertions, 21 deletions
diff --git a/src/plugins/qmldesigner/components/itemlibrary/itemlibrarytreeview.cpp b/src/plugins/qmldesigner/components/itemlibrary/itemlibrarytreeview.cpp index 68bb6ae4e6..2d052fd5f2 100644 --- a/src/plugins/qmldesigner/components/itemlibrary/itemlibrarytreeview.cpp +++ b/src/plugins/qmldesigner/components/itemlibrary/itemlibrarytreeview.cpp @@ -61,6 +61,7 @@ void ItemLibraryTreeView::drawSelectionBackground(QPainter *painter, const QStyl painter->restore(); } +namespace { // This style basically allows us to span the entire row // including the arrow indicators which would otherwise not be // drawn by the delegate @@ -82,6 +83,7 @@ public: } }; +} ItemLibraryTreeView::ItemLibraryTreeView(QWidget *parent) : QTreeView(parent) { diff --git a/src/plugins/qmldesigner/components/navigator/iconcheckboxitemdelegate.cpp b/src/plugins/qmldesigner/components/navigator/iconcheckboxitemdelegate.cpp index 13cb12385e..7ae2d1ecec 100644 --- a/src/plugins/qmldesigner/components/navigator/iconcheckboxitemdelegate.cpp +++ b/src/plugins/qmldesigner/components/navigator/iconcheckboxitemdelegate.cpp @@ -82,7 +82,7 @@ void IconCheckboxItemDelegate::paint(QPainter *painter, if (indexIsHolingModelNode(modelIndex)) { painter->save(); if (styleOption.state & QStyle::State_Selected) - drawSelectionBackground(painter, styleOption); + NavigatorTreeView::drawSelectionBackground(painter, styleOption); if (!m_navigatorTreeModel->nodeForIndex(modelIndex).isRootNode()) { diff --git a/src/plugins/qmldesigner/components/navigator/nameitemdelegate.cpp b/src/plugins/qmldesigner/components/navigator/nameitemdelegate.cpp index 62ceb889f8..6fd880aaac 100644 --- a/src/plugins/qmldesigner/components/navigator/nameitemdelegate.cpp +++ b/src/plugins/qmldesigner/components/navigator/nameitemdelegate.cpp @@ -224,7 +224,7 @@ void NameItemDelegate::paint(QPainter *painter, painter->save(); if (styleOption.state & QStyle::State_Selected) - drawSelectionBackground(painter, styleOption); + NavigatorTreeView::drawSelectionBackground(painter, styleOption); int iconOffset = drawTypeIcon(painter, styleOption, modelIndex, m_navigatorTreeModel); diff --git a/src/plugins/qmldesigner/components/navigator/navigatortreeview.cpp b/src/plugins/qmldesigner/components/navigator/navigatortreeview.cpp index 7a9b2a3681..1d48c10a6d 100644 --- a/src/plugins/qmldesigner/components/navigator/navigatortreeview.cpp +++ b/src/plugins/qmldesigner/components/navigator/navigatortreeview.cpp @@ -48,23 +48,7 @@ namespace QmlDesigner { -void drawSelectionBackground(QPainter *painter, const QStyleOption &option) -{ - painter->save(); - QLinearGradient gradient; - - QColor highlightColor = Utils::StyleHelper::notTooBrightHighlightColor(); - gradient.setColorAt(0, highlightColor.lighter(130)); - gradient.setColorAt(1, highlightColor.darker(130)); - gradient.setStart(option.rect.topLeft()); - gradient.setFinalStop(option.rect.bottomLeft()); - painter->fillRect(option.rect, gradient); - painter->setPen(highlightColor.lighter()); - painter->drawLine(option.rect.topLeft(),option.rect.topRight()); - painter->setPen(highlightColor.darker()); - painter->drawLine(option.rect.bottomLeft(),option.rect.bottomRight()); - painter->restore(); -} +namespace { // This style basically allows us to span the entire row // including the arrow indicators which would otherwise not be @@ -76,7 +60,7 @@ public: { if (element == QStyle::PE_PanelItemViewRow) { if (option->state & QStyle::State_Selected) { - drawSelectionBackground(painter, *option); + NavigatorTreeView::drawSelectionBackground(painter, *option); } else { // // 3D shadows // painter->save(); @@ -118,6 +102,8 @@ public: } }; +} + NavigatorTreeView::NavigatorTreeView(QWidget *parent) : QTreeView(parent) { @@ -126,4 +112,23 @@ NavigatorTreeView::NavigatorTreeView(QWidget *parent) style->setParent(this); } +void NavigatorTreeView::drawSelectionBackground(QPainter *painter, const QStyleOption &option) +{ + painter->save(); + QLinearGradient gradient; + + QColor highlightColor = Utils::StyleHelper::notTooBrightHighlightColor(); + gradient.setColorAt(0, highlightColor.lighter(130)); + gradient.setColorAt(1, highlightColor.darker(130)); + gradient.setStart(option.rect.topLeft()); + gradient.setFinalStop(option.rect.bottomLeft()); + painter->fillRect(option.rect, gradient); + painter->setPen(highlightColor.lighter()); + painter->drawLine(option.rect.topLeft(),option.rect.topRight()); + painter->setPen(highlightColor.darker()); + painter->drawLine(option.rect.bottomLeft(),option.rect.bottomRight()); + painter->restore(); +} + + } diff --git a/src/plugins/qmldesigner/components/navigator/navigatortreeview.h b/src/plugins/qmldesigner/components/navigator/navigatortreeview.h index a87b6b801a..2e96f136f2 100644 --- a/src/plugins/qmldesigner/components/navigator/navigatortreeview.h +++ b/src/plugins/qmldesigner/components/navigator/navigatortreeview.h @@ -35,12 +35,12 @@ namespace QmlDesigner { -void drawSelectionBackground(QPainter *painter, const QStyleOption &option); class NavigatorTreeView : public QTreeView { public: NavigatorTreeView(QWidget *parent = 0); + static void drawSelectionBackground(QPainter *painter, const QStyleOption &option); }; } |
