diff options
author | Tim Jenssen <tim.jenssen@digia.com> | 2014-07-07 15:14:53 +0200 |
---|---|---|
committer | Marco Bubke <marco.bubke@digia.com> | 2014-07-07 16:20:02 +0200 |
commit | 8ac0e03ef42a46851a47346ae4bc440651d8aaff (patch) | |
tree | a81ace213d6915d896ca8b8401322f03a1fa7f8c | |
parent | 2932e68fd48a947f4eddc5409c629a28e259e586 (diff) | |
download | qt-creator-8ac0e03ef42a46851a47346ae4bc440651d8aaff.tar.gz |
QmlDesigner: fix using the right object/unit
TreeViewStyle is existing two times and wasn't in anonymous namespace.
The result after refactoring was that the wrong TreeViewStyle was used.
Moved the two times existing drawSelectionBackground to NavigatorTreeView
to avoid similar problems.
Change-Id: Id87894a01b5f6c94c81c478f9492ec6b78eb9e70
Reviewed-by: Marco Bubke <marco.bubke@digia.com>
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); }; } |