diff options
author | Jochen Becher <[email protected]> | 2017-12-23 18:51:33 +0100 |
---|---|---|
committer | Jochen Becher <[email protected]> | 2018-01-09 14:22:06 +0000 |
commit | 959d577920de0575f3df31697b8b71e05fd7e9d3 (patch) | |
tree | 4a2393954f0e33e2861f32d12bde469dc2e8f56c /src/libs/modelinglib | |
parent | 13a3710477edca1697888e3de8d5f901e3ab9701 (diff) |
ModelEditor: Introduce new role "Flat"
Display items flat filled instead of using gradient.
Change-Id: If91bed451a92993e9cf798f019cad52a0062b02c
Reviewed-by: Tobias Hunger <[email protected]>
Diffstat (limited to 'src/libs/modelinglib')
-rw-r--r-- | src/libs/modelinglib/qmt/diagram/dobject.h | 3 | ||||
-rw-r--r-- | src/libs/modelinglib/qmt/model_widgets_ui/propertiesviewmview.cpp | 9 | ||||
-rw-r--r-- | src/libs/modelinglib/qmt/style/defaultstyleengine.cpp | 8 |
3 files changed, 16 insertions, 4 deletions
diff --git a/src/libs/modelinglib/qmt/diagram/dobject.h b/src/libs/modelinglib/qmt/diagram/dobject.h index 17d22488ab5..de2222dc2e5 100644 --- a/src/libs/modelinglib/qmt/diagram/dobject.h +++ b/src/libs/modelinglib/qmt/diagram/dobject.h @@ -58,7 +58,8 @@ public: SecondaryRoleLighter, SecondaryRoleDarker, SecondaryRoleSoften, - SecondaryRoleOutline + SecondaryRoleOutline, + SecondaryRoleFlat }; enum StereotypeDisplay { diff --git a/src/libs/modelinglib/qmt/model_widgets_ui/propertiesviewmview.cpp b/src/libs/modelinglib/qmt/model_widgets_ui/propertiesviewmview.cpp index d0a87dfaa9d..f0d18509fed 100644 --- a/src/libs/modelinglib/qmt/model_widgets_ui/propertiesviewmview.cpp +++ b/src/libs/modelinglib/qmt/model_widgets_ui/propertiesviewmview.cpp @@ -185,6 +185,8 @@ static int translateVisualSecondaryRoleToIndex(DObject::VisualSecondaryRole visu return 3; case DObject::SecondaryRoleOutline: return 4; + case DObject::SecondaryRoleFlat: + return 5; } return 0; } @@ -194,9 +196,10 @@ static DObject::VisualSecondaryRole translateIndexToVisualSecondaryRole(int inde static const DObject::VisualSecondaryRole map[] = { DObject::SecondaryRoleNone, DObject::SecondaryRoleLighter, DObject::SecondaryRoleDarker, - DObject::SecondaryRoleSoften, DObject::SecondaryRoleOutline + DObject::SecondaryRoleSoften, DObject::SecondaryRoleOutline, + DObject::SecondaryRoleFlat }; - QMT_ASSERT(index >= 0 && index <= 4, return DObject::SecondaryRoleNone); + QMT_ASSERT(index >= 0 && index <= 5, return DObject::SecondaryRoleNone); return map[index]; } @@ -925,7 +928,7 @@ void PropertiesView::MView::visitDObject(const DObject *object) if (!m_visualSecondaryRoleSelector) { m_visualSecondaryRoleSelector = new QComboBox(m_topWidget); m_visualSecondaryRoleSelector->addItems({ tr("Normal"), tr("Lighter"), tr("Darker"), - tr("Soften"), tr("Outline") }); + tr("Soften"), tr("Outline"), tr("Flat") }); addRow(tr("Role:"), m_visualSecondaryRoleSelector, "role"); connect(m_visualSecondaryRoleSelector, static_cast<void (QComboBox::*)(int)>(&QComboBox::activated), this, &PropertiesView::MView::onVisualSecondaryRoleChanged); diff --git a/src/libs/modelinglib/qmt/style/defaultstyleengine.cpp b/src/libs/modelinglib/qmt/style/defaultstyleengine.cpp index 7f69962c677..c75249cb6b7 100644 --- a/src/libs/modelinglib/qmt/style/defaultstyleengine.cpp +++ b/src/libs/modelinglib/qmt/style/defaultstyleengine.cpp @@ -246,6 +246,8 @@ const Style *DefaultStyleEngine::applyObjectStyle(const Style *baseStyle, StyleE style->setTextBrush(QBrush(textColor)); if (objectVisuals.visualSecondaryRole() == DObject::SecondaryRoleOutline) { style->setFillBrush(QBrush(Qt::white)); + } else if (objectVisuals.visualSecondaryRole() == DObject::SecondaryRoleFlat) { + style->setFillBrush(QBrush(fillColor)); } else { if (!parameters->suppressGradients()) { QLinearGradient fillGradient(0.0, 0.0, 0.0, 1.0); @@ -259,6 +261,8 @@ const Style *DefaultStyleEngine::applyObjectStyle(const Style *baseStyle, StyleE } if (objectVisuals.visualSecondaryRole() == DObject::SecondaryRoleOutline) style->setExtraFillBrush(QBrush(Qt::white)); + else if (objectVisuals.visualSecondaryRole() == DObject::SecondaryRoleFlat) + style->setExtraFillBrush(QBrush(fillColor)); else style->setExtraFillBrush(QBrush(fillColor.darker(120))); style->setNormalFont(normalFont); @@ -498,10 +502,12 @@ bool DefaultStyleEngine::areStackingRoles(DObject::VisualPrimaryRole rhsPrimaryR case DObject::SecondaryRoleNone: case DObject::SecondaryRoleLighter: case DObject::SecondaryRoleDarker: + case DObject::SecondaryRoleFlat: switch (lhsSecondaryRols) { case DObject::SecondaryRoleNone: case DObject::SecondaryRoleLighter: case DObject::SecondaryRoleDarker: + case DObject::SecondaryRoleFlat: return lhsPrimaryRole == rhsPrimaryRole; case DObject::SecondaryRoleSoften: case DObject::SecondaryRoleOutline: @@ -576,6 +582,8 @@ QColor DefaultStyleEngine::baseColor(ElementType elementType, ObjectVisuals obje case DObject::SecondaryRoleOutline: QMT_CHECK(false); break; + case DObject::SecondaryRoleFlat: + break; } return baseColor; |