From edb00e3cff0d657fe4f11b17d9bec164154f193f Mon Sep 17 00:00:00 2001
From: Gennady Pospelov <g.pospelov@fz-juelich.de>
Date: Tue, 7 Nov 2017 15:15:30 +0100
Subject: [PATCH] QTreeView styles extracted to separate namespace.

---
 .../Views/CommonWidgets/ModelTreeView.cpp     | 25 +-------
 .../JobWidgets/ParameterTuningWidget.cpp      | 19 +-----
 GUI/coregui/utils/StyleUtils.cpp              | 62 +++++++++++++++++++
 GUI/coregui/utils/StyleUtils.h                | 34 ++++++++++
 4 files changed, 100 insertions(+), 40 deletions(-)
 create mode 100644 GUI/coregui/utils/StyleUtils.cpp
 create mode 100644 GUI/coregui/utils/StyleUtils.h

diff --git a/GUI/coregui/Views/CommonWidgets/ModelTreeView.cpp b/GUI/coregui/Views/CommonWidgets/ModelTreeView.cpp
index 540287cd2ca..78a1d00a5dc 100644
--- a/GUI/coregui/Views/CommonWidgets/ModelTreeView.cpp
+++ b/GUI/coregui/Views/CommonWidgets/ModelTreeView.cpp
@@ -17,6 +17,7 @@
 #include "SessionDecorationModel.h"
 #include "SessionModel.h"
 #include "GUIHelpers.h"
+#include "StyleUtils.h"
 #include <QVBoxLayout>
 #include <QTreeView>
 
@@ -36,29 +37,7 @@ ModelTreeView::ModelTreeView(QWidget* parent, SessionModel* model)
    layout->setSpacing(0);
    layout->addWidget(m_tree);
 
-   QString styleSheet;
-
-   // lines arount cell content
-   styleSheet += "QTreeView::item {"
-                 "    border-bottom: 1px solid #c7c8c9; "
-                 "    border-right: 1px solid #c7c8c9;}"
-                 "QTreeView::branch {border-bottom: 1px solid #c7c8c9;}";
-
-   // styling of branch to restore open/closed signs eliminated by previous styling
-   styleSheet += "QTreeView::branch:has-children:!has-siblings:closed,"
-                 "QTreeView::branch:closed:has-children:has-siblings {"
-                 "padding:2px 2px 2px 2px;border-image: none;"
-                 "image: url(:/images/caret-right.svg);}"
-                 "QTreeView::branch:open:has-children:!has-siblings,"
-                 "QTreeView::branch:open:has-children:has-siblings  {"
-                 "padding:2px 2px 2px 2px;border-image: none; image: url(:/images/caret-down.svg);"
-           "}";
-
-   // background of selected rows restored
-   styleSheet += "QTreeView::item:selected{"
-                 " background:#3daee9;}";
-
-   m_tree->setStyleSheet(styleSheet);
+   m_tree->setStyleSheet(StyleUtils::propertyTreeStyle());
    m_tree->setAlternatingRowColors(true);
 
    m_decorationProxy->setSessionModel(model);
diff --git a/GUI/coregui/Views/JobWidgets/ParameterTuningWidget.cpp b/GUI/coregui/Views/JobWidgets/ParameterTuningWidget.cpp
index 835784e316d..6eab1a3cfd2 100644
--- a/GUI/coregui/Views/JobWidgets/ParameterTuningWidget.cpp
+++ b/GUI/coregui/Views/JobWidgets/ParameterTuningWidget.cpp
@@ -25,25 +25,10 @@
 #include "ParameterTuningModel.h"
 #include "SliderSettingsWidget.h"
 #include "WarningSign.h"
+#include "StyleUtils.h"
 #include <QTreeView>
 #include <QVBoxLayout>
 
-namespace {
-const QString style_sheet =
-    "QTreeView::branch {background: "
-    "palette(base);}QTreeView::branch:has-siblings:!adjoins-item "
-    "{border-image: url(:/images/treeview-vline.png) 0;}QTreeView::branch:has-siblings:"
-    "adjoins-item {border-image: url(:/images/treeview-branch-more.png) 0;}QTreeView::branch:"
-    "!has-children:!has-siblings:adjoins-item {border-image: "
-    "url(:/images/treeview-branch-end.png) "
-    "0;}QTreeView::branch:has-children:!has-siblings:closed"
-    ",QTreeView::branch:closed:has-children:has-siblings {border-image: none;image: "
-    "url(:/images/"
-    "treeview-branch-closed.png);}QTreeView::branch:open:has-children:!has-siblings,"
-    "QTreeView::branch:open:has-children:has-siblings  {border-image: none;image: "
-    "url(:/images/treeview-branch-open.png);}";
-}
-
 
 ParameterTuningWidget::ParameterTuningWidget(QWidget* parent)
     : SessionItemWidget(parent)
@@ -57,7 +42,7 @@ ParameterTuningWidget::ParameterTuningWidget(QWidget* parent)
 {
     setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
 
-    m_treeView->setStyleSheet(style_sheet);
+    m_treeView->setStyleSheet(StyleUtils::realtimeTreeStyle());
     m_treeView->setItemDelegate(m_delegate);
     m_treeView->setContextMenuPolicy(Qt::CustomContextMenu);
     m_treeView->setDragDropMode(QAbstractItemView::NoDragDrop);
diff --git a/GUI/coregui/utils/StyleUtils.cpp b/GUI/coregui/utils/StyleUtils.cpp
new file mode 100644
index 00000000000..4bcb49d48db
--- /dev/null
+++ b/GUI/coregui/utils/StyleUtils.cpp
@@ -0,0 +1,62 @@
+//* ************************************************************************* //
+//
+//  BornAgain: simulate and fit scattering at grazing incidence
+//
+//! @file      GUI/coregui/utils/StyleUtils.h
+//! @brief     DefinesStyleUtils namespace
+//!
+//! @homepage  http://www.bornagainproject.org
+//! @license   GNU General Public License v3 or higher (see COPYING)
+//! @copyright Forschungszentrum Jülich GmbH 2016
+//! @authors   Scientific Computing Group at MLZ Garching
+//! @authors   Céline Durniak, Marina Ganeva, David Li, Gennady Pospelov
+//! @authors   Walter Van Herck, Joachim Wuttke
+//
+//* ************************************************************************* //
+
+#include "StyleUtils.h"
+
+QString StyleUtils::propertyTreeStyle()
+{
+    QString result;
+
+    // lines arount cell content
+    result += "QTreeView::item {"
+              "    border-bottom: 1px solid #c7c8c9; "
+              "    border-right: 1px solid #c7c8c9;}"
+              "QTreeView::branch {border-bottom: 1px solid #c7c8c9;}";
+
+    // styling of branch to restore open/closed signs eliminated by previous styling
+    result += "QTreeView::branch:has-children:!has-siblings:closed,"
+              "QTreeView::branch:closed:has-children:has-siblings {"
+              "padding:2px 2px 2px 2px;border-image: none;"
+              "image: url(:/images/caret-right.svg);}"
+              "QTreeView::branch:open:has-children:!has-siblings,"
+              "QTreeView::branch:open:has-children:has-siblings  {"
+              "padding:2px 2px 2px 2px;border-image: none; image: url(:/images/caret-down.svg);"
+            "}";
+
+    // background of selected rows restored
+    result += "QTreeView::item:selected{background:#3daee9;}";
+
+    return result;
+}
+
+QString StyleUtils::realtimeTreeStyle()
+{
+    QString result =
+    "QTreeView::branch {background: "
+    "palette(base);}QTreeView::branch:has-siblings:!adjoins-item "
+    "{border-image: url(:/images/treeview-vline.png) 0;}QTreeView::branch:has-siblings:"
+    "adjoins-item {border-image: url(:/images/treeview-branch-more.png) 0;}QTreeView::branch:"
+    "!has-children:!has-siblings:adjoins-item {border-image: "
+    "url(:/images/treeview-branch-end.png) "
+    "0;}QTreeView::branch:has-children:!has-siblings:closed"
+    ",QTreeView::branch:closed:has-children:has-siblings {border-image: none;image: "
+    "url(:/images/"
+    "treeview-branch-closed.png);}QTreeView::branch:open:has-children:!has-siblings,"
+    "QTreeView::branch:open:has-children:has-siblings  {border-image: none;image: "
+    "url(:/images/treeview-branch-open.png);}";
+
+    return result;
+}
diff --git a/GUI/coregui/utils/StyleUtils.h b/GUI/coregui/utils/StyleUtils.h
new file mode 100644
index 00000000000..52b6da1c024
--- /dev/null
+++ b/GUI/coregui/utils/StyleUtils.h
@@ -0,0 +1,34 @@
+//* ************************************************************************* //
+//
+//  BornAgain: simulate and fit scattering at grazing incidence
+//
+//! @file      GUI/coregui/utils/StyleUtils.h
+//! @brief     DefinesStyleUtils namespace
+//!
+//! @homepage  http://www.bornagainproject.org
+//! @license   GNU General Public License v3 or higher (see COPYING)
+//! @copyright Forschungszentrum Jülich GmbH 2016
+//! @authors   Scientific Computing Group at MLZ Garching
+//! @authors   Céline Durniak, Marina Ganeva, David Li, Gennady Pospelov
+//! @authors   Walter Van Herck, Joachim Wuttke
+//
+//* ************************************************************************* //
+
+#ifndef STYLEUTILS_H
+#define STYLEUTILS_H
+
+#include "WinDllMacros.h"
+#include <QString>
+
+namespace StyleUtils
+{
+
+//! Returns string representing the style of QTreeView intended for property editor.
+BA_CORE_API_ QString propertyTreeStyle();
+
+//! Returns string representing the style of QTreeView intended for real time view.
+BA_CORE_API_ QString realtimeTreeStyle();
+
+}
+
+#endif
-- 
GitLab