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