aboutsummaryrefslogtreecommitdiffstats
path: root/src/libs/modelinglib
diff options
context:
space:
mode:
authorJochen Becher <[email protected]>2017-12-23 18:51:33 +0100
committerJochen Becher <[email protected]>2018-01-09 14:22:06 +0000
commit959d577920de0575f3df31697b8b71e05fd7e9d3 (patch)
tree4a2393954f0e33e2861f32d12bde469dc2e8f56c /src/libs/modelinglib
parent13a3710477edca1697888e3de8d5f901e3ab9701 (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.h3
-rw-r--r--src/libs/modelinglib/qmt/model_widgets_ui/propertiesviewmview.cpp9
-rw-r--r--src/libs/modelinglib/qmt/style/defaultstyleengine.cpp8
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;