/* SPDX-License-Identifier: GPL-2.0-only */ #include #include #include #include #include #include "ToggleSwitch.h" #include "ToggleSwitch.svg.h" const QByteArray ToggleSwitch::s_toggleOffSvgContent = ToggleSwitchSVG::s_toggledOffContent; const QByteArray ToggleSwitch::s_toggleOnSvgContent = ToggleSwitchSVG::s_toggledOnContent; const int ToggleSwitch::s_colorPosInToggleOn = ToggleSwitch::s_toggleOnSvgContent.indexOf("#1a73e8"); ToggleSwitch::ToggleSwitch(QWidget *parent) : QCheckBox(parent){ setFixedWidth(50); setFixedHeight(width()/2); m_toggleOnSvgContentColored = s_toggleOnSvgContent; } void ToggleSwitch::paintEvent(QPaintEvent *event){ QPainter p(this); if(isChecked()){ auto accent = palette().highlight().color(); m_toggleOnSvgContentColored = m_toggleOnSvgContentColored.replace(s_colorPosInToggleOn, 7, accent.name().toLatin1()); m_svgr.load(m_toggleOnSvgContentColored); } else { m_svgr.load(s_toggleOffSvgContent); } m_svgr.render(&p, this->rect()); p.end(); }