diff --git a/src/plugins/scxmleditor/plugin_interface/connectableitem.cpp b/src/plugins/scxmleditor/plugin_interface/connectableitem.cpp index 3ad6e375e5e..2d543610add 100644 --- a/src/plugins/scxmleditor/plugin_interface/connectableitem.cpp +++ b/src/plugins/scxmleditor/plugin_interface/connectableitem.cpp @@ -31,7 +31,9 @@ ConnectableItem::ConnectableItem(const QPointF &p, BaseItem *parent) setAcceptDrops(true); m_selectedPen.setStyle(Qt::DotLine); + m_selectedPen.setColor(QColor(0x44, 0x44, 0xed)); m_selectedPen.setCosmetic(true); + m_releasedFromParentBrush = QBrush(QColor(0x98, 0x98, 0x98)); setPos(p); connect(this, &ConnectableItem::geometryChanged, this, &ConnectableItem::updateCornerPositions); @@ -528,7 +530,7 @@ void ConnectableItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *o if (m_releasedFromParent) { painter->setPen(Qt::NoPen); - painter->setBrush(scene()->palette().brush(QPalette::ColorGroup::Current, QPalette::Window)); + painter->setBrush(m_releasedFromParentBrush); painter->setClipping(true); painter->setClipPath(m_shadowClipPath); //Since the form is already cliped just draw a rectangle @@ -537,7 +539,6 @@ void ConnectableItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *o } if (isSelected()) { - m_selectedPen.setColor(painter->pen().color()); painter->setPen(m_selectedPen); painter->setBrush(Qt::NoBrush); painter->drawRect(boundingRect()); diff --git a/src/plugins/scxmleditor/plugin_interface/connectableitem.h b/src/plugins/scxmleditor/plugin_interface/connectableitem.h index d5ef06dbfd6..60fa2a1047d 100644 --- a/src/plugins/scxmleditor/plugin_interface/connectableitem.h +++ b/src/plugins/scxmleditor/plugin_interface/connectableitem.h @@ -108,6 +108,7 @@ private: HighlightItem *m_highlighItem = nullptr; TransitionItem *m_newTransition = nullptr; QPen m_selectedPen; + QBrush m_releasedFromParentBrush; int m_minimumWidth = 120; int m_minimumHeight = 100; bool m_releasedFromParent = false; diff --git a/src/plugins/scxmleditor/plugin_interface/cornergrabberitem.cpp b/src/plugins/scxmleditor/plugin_interface/cornergrabberitem.cpp index a4dd8d5535d..e397e7c3e72 100644 --- a/src/plugins/scxmleditor/plugin_interface/cornergrabberitem.cpp +++ b/src/plugins/scxmleditor/plugin_interface/cornergrabberitem.cpp @@ -4,7 +4,6 @@ #include "cornergrabberitem.h" #include -#include #include #include #include @@ -62,8 +61,7 @@ void CornerGrabberItem::paint(QPainter *painter, const QStyleOptionGraphicsItem painter->save(); painter->setRenderHint(QPainter::Antialiasing, true); painter->setPen(Qt::NoPen); - QPalette::ColorGroup group = isEnabled() ? QPalette::Inactive : QPalette::Disabled; - painter->setBrush(scene()->palette().brush(group, QPalette::Highlight)); + painter->setBrush(isEnabled() ? QColor(0x62, 0x62, 0xf9) : QColor(0x12, 0x12, 0x12)); if (m_grabberType == Square) painter->drawRect(m_drawingRect); diff --git a/src/plugins/scxmleditor/plugin_interface/eventitem.cpp b/src/plugins/scxmleditor/plugin_interface/eventitem.cpp index 99bbef18656..af0827257f3 100644 --- a/src/plugins/scxmleditor/plugin_interface/eventitem.cpp +++ b/src/plugins/scxmleditor/plugin_interface/eventitem.cpp @@ -22,8 +22,7 @@ EventItem::EventItem(const QPointF &pos, BaseItem *parent) m_eventNameItem->setFont(serifFont); QString color = editorInfo("fontColor"); - if (!color.isEmpty()) - m_eventNameItem->setDefaultTextColor(QColor(color)); + m_eventNameItem->setDefaultTextColor(color.isEmpty() ? QColor(Qt::black) : QColor(color)); setPos(pos); m_eventNameItem->setTextInteractionFlags(Qt::NoTextInteraction); @@ -52,6 +51,7 @@ OnEntryExitItem::OnEntryExitItem(BaseItem *parent) m_eventNameItem->setParentItem(this); QFont serifFont("Times", 10, QFont::Normal); m_eventNameItem->setFont(serifFont); + m_eventNameItem->setDefaultTextColor(Qt::black); m_eventNameItem->setTextInteractionFlags(Qt::NoTextInteraction); } diff --git a/src/plugins/scxmleditor/plugin_interface/finalstateitem.cpp b/src/plugins/scxmleditor/plugin_interface/finalstateitem.cpp index 20f7d47a8d0..578794b2917 100644 --- a/src/plugins/scxmleditor/plugin_interface/finalstateitem.cpp +++ b/src/plugins/scxmleditor/plugin_interface/finalstateitem.cpp @@ -2,8 +2,6 @@ // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 #include "finalstateitem.h" - -#include #include #include @@ -42,13 +40,13 @@ void FinalStateItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *op painter->setRenderHint(QPainter::Antialiasing, true); painter->setOpacity(getOpacity()); - QPalette::ColorGroup group = overlapping() ? QPalette::Active : QPalette::Inactive; - m_pen.setColor(scene()->palette().color(group, QPalette::WindowText)); + painter->setBrush(QColor(0xff, 0xff, 0xff)); + m_pen.setColor(overlapping() ? qRgb(0xff, 0x00, 0x60) : qRgb(0x45, 0x45, 0x45)); painter->setPen(m_pen); painter->drawEllipse(boundingRect().center(), m_size, m_size); painter->setPen(Qt::NoPen); - painter->setBrush(scene()->palette().color(QPalette::WindowText)); + painter->setBrush(QColor(0x4d, 0x4d, 0x4d)); painter->drawEllipse(boundingRect().center(), m_size * 0.8, m_size * 0.8); painter->restore(); diff --git a/src/plugins/scxmleditor/plugin_interface/graphicsscene.cpp b/src/plugins/scxmleditor/plugin_interface/graphicsscene.cpp index 5837275133a..12b9949f945 100644 --- a/src/plugins/scxmleditor/plugin_interface/graphicsscene.cpp +++ b/src/plugins/scxmleditor/plugin_interface/graphicsscene.cpp @@ -21,7 +21,6 @@ #include #include -#include #include #include @@ -37,8 +36,6 @@ GraphicsScene::GraphicsScene(QObject *parent) { //setMinimumRenderSize(5); setItemIndexMethod(QGraphicsScene::NoIndex); - - setPalette(Utils::creatorTheme()->palette()); } GraphicsScene::~GraphicsScene() diff --git a/src/plugins/scxmleditor/plugin_interface/highlightitem.cpp b/src/plugins/scxmleditor/plugin_interface/highlightitem.cpp index ef12f099a50..5c3e5121519 100644 --- a/src/plugins/scxmleditor/plugin_interface/highlightitem.cpp +++ b/src/plugins/scxmleditor/plugin_interface/highlightitem.cpp @@ -10,6 +10,11 @@ HighlightItem::HighlightItem(BaseItem *baseItem) : QGraphicsObject(nullptr) , m_baseItem(baseItem) { + m_pen = QPen(QColor(0xff, 0x00, 0x60)); + m_pen.setWidth(2); + m_pen.setStyle(Qt::DashLine); + m_pen.setCosmetic(true); + setZValue(1000); } @@ -42,17 +47,12 @@ void HighlightItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *opt QRectF br = m_baseItem->polygonShape().boundingRect(); - QPen pen = painter->pen(); - pen.setWidth(2); - pen.setStyle(Qt::DashLine); - pen.setCosmetic(true); - painter->setPen(pen); - painter->setBrush(Qt::NoBrush); - switch (m_baseItem->type()) { case StateType: case ParallelType: { painter->setOpacity(1.0); + painter->setPen(m_pen); + painter->setBrush(Qt::NoBrush); painter->drawRoundedRect(br, 10, 10); break; } @@ -60,6 +60,8 @@ void HighlightItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *opt case HistoryType: case FinalStateType: { painter->setOpacity(1.0); + painter->setPen(m_pen); + painter->setBrush(Qt::NoBrush); painter->drawEllipse(br); break; } diff --git a/src/plugins/scxmleditor/plugin_interface/highlightitem.h b/src/plugins/scxmleditor/plugin_interface/highlightitem.h index 1beeac02a1c..d793bf65a35 100644 --- a/src/plugins/scxmleditor/plugin_interface/highlightitem.h +++ b/src/plugins/scxmleditor/plugin_interface/highlightitem.h @@ -31,6 +31,8 @@ public: private: QPointer m_baseItem; QRectF m_boundingRect; + QBrush m_brush; + QPen m_pen; }; } // namespace PluginInterface diff --git a/src/plugins/scxmleditor/plugin_interface/historyitem.cpp b/src/plugins/scxmleditor/plugin_interface/historyitem.cpp index 7aabf706fd8..bd89dc0ec13 100644 --- a/src/plugins/scxmleditor/plugin_interface/historyitem.cpp +++ b/src/plugins/scxmleditor/plugin_interface/historyitem.cpp @@ -2,8 +2,6 @@ // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 #include "historyitem.h" - -#include #include #include @@ -42,8 +40,8 @@ void HistoryItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *optio painter->setRenderHint(QPainter::Antialiasing, true); painter->setOpacity(getOpacity()); - QPalette::ColorGroup group = overlapping() ? QPalette::Active : QPalette::Inactive; - m_pen.setColor(scene()->palette().color(group, QPalette::WindowText)); + painter->setBrush(QColor(0xff, 0xff, 0xff)); + m_pen.setColor(overlapping() ? qRgb(0xff, 0x00, 0x60) : qRgb(0x45, 0x45, 0x45)); painter->setPen(m_pen); painter->drawEllipse(boundingRect().center(), m_size, m_size); diff --git a/src/plugins/scxmleditor/plugin_interface/initialstateitem.cpp b/src/plugins/scxmleditor/plugin_interface/initialstateitem.cpp index 1d0b745b472..7902084f0aa 100644 --- a/src/plugins/scxmleditor/plugin_interface/initialstateitem.cpp +++ b/src/plugins/scxmleditor/plugin_interface/initialstateitem.cpp @@ -9,7 +9,6 @@ #include #include -#include #include #include @@ -79,9 +78,9 @@ void InitialStateItem::paint(QPainter *painter, const QStyleOptionGraphicsItem * painter->setRenderHint(QPainter::Antialiasing, true); painter->setOpacity(getOpacity()); - QPalette::ColorGroup group = overlapping() ? QPalette::Active : QPalette::Inactive; - m_pen.setColor(scene()->palette().color(group, QPalette::WindowText)); + m_pen.setColor(overlapping() ? qRgb(0xff, 0x00, 0x60) : qRgb(0x45, 0x45, 0x45)); painter->setPen(m_pen); + painter->setBrush(QColor(0x4d, 0x4d, 0x4d)); painter->drawEllipse(boundingRect().center(), m_size, m_size); painter->restore(); diff --git a/src/plugins/scxmleditor/plugin_interface/quicktransitionitem.cpp b/src/plugins/scxmleditor/plugin_interface/quicktransitionitem.cpp index f3eb182d764..f446998051a 100644 --- a/src/plugins/scxmleditor/plugin_interface/quicktransitionitem.cpp +++ b/src/plugins/scxmleditor/plugin_interface/quicktransitionitem.cpp @@ -4,7 +4,6 @@ #include "quicktransitionitem.h" #include "scxmleditortr.h" -#include #include #include #include @@ -26,8 +25,9 @@ QuickTransitionItem::QuickTransitionItem(int index, ItemType connectionType, QGr m_drawingRect = m_rect.adjusted(4, 4, -4, -4); m_stateRect = m_rect.adjusted(3, 4, -3, -4); m_brush.setStyle(Qt::SolidPattern); - m_brush.setColor(scene()->palette().color(QPalette::Window)); + m_brush.setColor(QColor(0xe8, 0xe8, 0xe8)); + m_pen.setColor(QColor(0x12, 0x12, 0x12)); m_pen.setCapStyle(Qt::RoundCap); setAcceptHoverEvents(true); } @@ -40,14 +40,14 @@ void QuickTransitionItem::setConnectionType(ItemType connectionType) void QuickTransitionItem::hoverLeaveEvent(QGraphicsSceneHoverEvent *e) { Q_UNUSED(e) - m_brush.setColor(scene()->palette().color(QPalette::Inactive, QPalette::Window)); + m_brush.setColor(QColor(0xe8, 0xe8, 0xe8)); update(); } void QuickTransitionItem::hoverEnterEvent(QGraphicsSceneHoverEvent *e) { Q_UNUSED(e) - m_brush.setColor(scene()->palette().color(QPalette::Active, QPalette::Window)); + m_brush.setColor(QColor(0xff, 0xc4, 0xff)); update(); } @@ -59,7 +59,6 @@ void QuickTransitionItem::paint(QPainter *painter, const QStyleOptionGraphicsIte painter->save(); painter->setRenderHint(QPainter::Antialiasing, true); - m_pen.setColor(painter->pen().color()); painter->setPen(m_pen); painter->setBrush(m_brush); painter->drawRect(m_rect); @@ -73,13 +72,13 @@ void QuickTransitionItem::paint(QPainter *painter, const QStyleOptionGraphicsIte switch (m_connectionType) { case StateType: painter->setPen(m_pen); - painter->setBrush(scene()->palette().brush(QPalette::Window)); + painter->setBrush(Qt::white); painter->drawRoundedRect(m_stateRect, 2, 2); break; case ParallelType: painter->setPen(m_pen); - painter->setBrush(scene()->palette().brush(QPalette::Window)); + painter->setBrush(Qt::white); painter->drawRoundedRect(m_stateRect, 2, 2); painter->setPen(m_pen); @@ -91,18 +90,18 @@ void QuickTransitionItem::paint(QPainter *painter, const QStyleOptionGraphicsIte case FinalStateType: painter->setPen(m_pen); - painter->setBrush(scene()->palette().brush(QPalette::Window)); + painter->setBrush(Qt::white); painter->drawEllipse(m_stateRect.center(), 7, 7); painter->setPen(Qt::NoPen); - painter->setBrush(painter->pen().color()); + painter->setBrush(Qt::black); painter->drawEllipse(m_stateRect.center(), 5, 5); break; case HistoryType: painter->setFont(QFont("Arial", 6)); painter->setPen(m_pen); - painter->setBrush(scene()->palette().brush(QPalette::Window)); + painter->setBrush(Qt::white); painter->drawEllipse(m_stateRect.center(), 7, 7); painter->drawText(m_stateRect, Qt::AlignCenter, Tr::tr("H")); break; diff --git a/src/plugins/scxmleditor/plugin_interface/snapline.cpp b/src/plugins/scxmleditor/plugin_interface/snapline.cpp index 5dc786ed6e2..a73d82e4421 100644 --- a/src/plugins/scxmleditor/plugin_interface/snapline.cpp +++ b/src/plugins/scxmleditor/plugin_interface/snapline.cpp @@ -2,9 +2,6 @@ // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 #include "snapline.h" - -#include "utils/theme/theme.h" - #include using namespace ScxmlEditor::PluginInterface; @@ -13,7 +10,7 @@ SnapLine::SnapLine(QGraphicsItem *parent) : QGraphicsLineItem(parent) { QPen pen; - pen.setBrush(Utils::creatorColor(Utils::Theme::Token_Accent_Default)); + pen.setBrush(QColor(0x22, 0xcc, 0x22)); pen.setStyle(Qt::DashLine); setPen(pen); setZValue(502); diff --git a/src/plugins/scxmleditor/plugin_interface/stateitem.cpp b/src/plugins/scxmleditor/plugin_interface/stateitem.cpp index 6811d8f0d3a..ec13794ea8b 100644 --- a/src/plugins/scxmleditor/plugin_interface/stateitem.cpp +++ b/src/plugins/scxmleditor/plugin_interface/stateitem.cpp @@ -16,8 +16,6 @@ #include "statewarningitem.h" #include "textitem.h" #include "transitionitem.h" -#include "utils/stylehelper.h" -#include "utils/theme/theme.h" #include "utilsprovider.h" #include @@ -51,6 +49,8 @@ StateItem::StateItem(const QPointF &pos, BaseItem *parent) connect(m_stateNameItem, &TextItem::textChanged, this, &StateItem::updateTextPositions); connect(m_stateNameItem, &TextItem::textReady, this, &StateItem::titleHasChanged); + m_pen = QPen(QColor(0x45, 0x45, 0x45)); + updateColors(); updatePolygon(); } @@ -127,8 +127,7 @@ void StateItem::updateEditorInfo(bool allChildren) ConnectableItem::updateEditorInfo(allChildren); QString color = editorInfo(Constants::C_SCXML_EDITORINFO_FONTCOLOR); - if (!color.isEmpty()) - m_stateNameItem->setDefaultTextColor(QColor(color)); + m_stateNameItem->setDefaultTextColor(color.isEmpty() ? QColor(Qt::black) : QColor(color)); // Update child too if necessary if (allChildren) { @@ -468,18 +467,17 @@ void StateItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, // Set opacity and color painter->setOpacity(getOpacity()); - QPalette::ColorGroup group = overlapping() ? QPalette::Active : QPalette::Inactive; - m_pen.setColor(scene()->palette().color(group, QPalette::WindowText)); + m_pen.setColor(overlapping() ? qRgb(0xff, 0x00, 0x60) : qRgb(0x45, 0x45, 0x45)); painter->setPen(m_pen); QColor stateColor(editorInfo(Constants::C_SCXML_EDITORINFO_STATECOLOR)); if (!stateColor.isValid()) - stateColor = scene()->palette().color(QPalette::Window); + stateColor = tag() ? tag()->document()->getColor(depth()) : QColor(0x12, 0x34, 0x56); // Draw basic frame QRectF r = boundingRect(); QLinearGradient grad(r.topLeft(), r.bottomLeft()); - grad.setColorAt(0, stateColor); - grad.setColorAt(1, Utils::StyleHelper::mergedColors(painter->pen().color(), stateColor, 8)); + grad.setColorAt(0, stateColor.lighter(115)); + grad.setColorAt(1, stateColor); painter->setBrush(QBrush(grad)); painter->drawRoundedRect(m_drawingRect, STATE_RADIUS, STATE_RADIUS); @@ -513,7 +511,7 @@ void StateItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, if (m_initial) { double size = m_titleRect.height() * 0.3; - painter->setBrush(scene()->palette().brush(QPalette::Window)); + painter->setBrush(QColor(0x4d, 0x4d, 0x4d)); painter->drawEllipse(QPointF(m_titleRect.left() + 2 * size, m_titleRect.center().y()), size, size); } } diff --git a/src/plugins/scxmleditor/plugin_interface/transitionitem.cpp b/src/plugins/scxmleditor/plugin_interface/transitionitem.cpp index 119e2899789..a118fefda32 100644 --- a/src/plugins/scxmleditor/plugin_interface/transitionitem.cpp +++ b/src/plugins/scxmleditor/plugin_interface/transitionitem.cpp @@ -57,6 +57,11 @@ TransitionItem::TransitionItem(BaseItem *parent) { setFlag(ItemIsSelectable, true); + m_highlightPen = QPen(QColor(0xff, 0x00, 0x60)); + m_highlightPen.setWidth(8); + m_highlightPen.setJoinStyle(Qt::MiterJoin); + + m_pen = QPen(QColor(0x12, 0x12, 0x12)); m_pen.setWidth(2); m_arrow << QPointF(0, 0) @@ -948,16 +953,10 @@ void TransitionItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *op Q_UNUSED(widget) painter->save(); + painter->setRenderHint(QPainter::Antialiasing, true); - - m_pen.setColor(painter->pen().color()); painter->setPen(m_pen); - QPen highlightPen; - highlightPen.setWidth(8); - highlightPen.setJoinStyle(Qt::MiterJoin); - highlightPen.setColor(scene()->palette().color(QPalette::HighlightedText)); - if (m_cornerPoints.count() >= 2) { if (m_targetType == InternalSameTarget) { QRectF rect(m_cornerPoints[0].x(), m_cornerPoints[0].y() - SELECTION_DISTANCE, @@ -966,7 +965,7 @@ void TransitionItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *op painter->drawArc(rect, 0, 180 * 16); } else { if (highlight()) { - painter->setPen(highlightPen); + painter->setPen(m_highlightPen); painter->drawPolyline(m_cornerPoints); } painter->setPen(m_pen); @@ -978,7 +977,7 @@ void TransitionItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *op painter->drawEllipse(m_cornerPoints[i], 2, 2); if (highlight()) { - painter->setPen(highlightPen); + painter->setPen(m_highlightPen); painter->drawPolyline(m_arrow); } @@ -993,15 +992,11 @@ void TransitionItem::updateEditorInfo(bool allChilds) BaseItem::updateEditorInfo(allChilds); const QColor fontColor = editorInfo(Constants::C_SCXML_EDITORINFO_FONTCOLOR); - - if (fontColor.isValid()) { - m_eventTagItem->setDefaultTextColor(fontColor); - m_condTagItem->setDefaultTextColor(fontColor); - } + m_eventTagItem->setDefaultTextColor(fontColor.isValid() ? fontColor : Qt::black); + m_condTagItem->setDefaultTextColor(fontColor.isValid() ? fontColor : Qt::black); const QColor stateColor = editorInfo(Constants::C_SCXML_EDITORINFO_STATECOLOR); - if (stateColor.isValid()) - m_pen.setColor(stateColor); + m_pen.setColor(stateColor.isValid() ? stateColor : qRgb(0x12, 0x12, 0x12)); } void TransitionItem::updateTarget(bool fixValue) diff --git a/src/plugins/scxmleditor/plugin_interface/transitionitem.h b/src/plugins/scxmleditor/plugin_interface/transitionitem.h index 43c67cc80eb..13a3a3cf2da 100644 --- a/src/plugins/scxmleditor/plugin_interface/transitionitem.h +++ b/src/plugins/scxmleditor/plugin_interface/transitionitem.h @@ -139,6 +139,7 @@ private: qreal m_arrowSize = 10; qreal m_arrowAngle; QPen m_pen; + QPen m_highlightPen; bool m_lineSelected = false; TagTextItem *m_eventTagItem;