diff -r 5188f8a74a5c -r c6f5de03dc0f widgets/colorbutton.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/widgets/colorbutton.cpp Wed Jun 22 22:59:56 2022 +0300 @@ -0,0 +1,36 @@ +#include +#include "colorbutton.h" + +ColorButton::ColorButton(const QColor& color, QWidget* parent) : + ColorButton{parent} +{ + this->setColor(color); +} + +ColorButton::ColorButton(QWidget* parent) : + QPushButton{parent} +{ + connect(this, &QPushButton::clicked, [&](){ + const QColor color = QColorDialog::getColor(this->storedSelectedColor, this->parentWidget()); + if (color.isValid()) { + this->setColor(color); + } + }); + this->setColor(Qt::black); +} + +const QColor& ColorButton::color() const +{ + return this->storedSelectedColor; +} + +void ColorButton::setColor(const QColor& color) +{ + if (this->storedSelectedColor != color) { + this->storedSelectedColor = color; + this->setStyleSheet(QString{"background-color: %1"}.arg(color.name())); + this->setText(color.name()); + Q_EMIT this->colorChanged(this->storedSelectedColor); + } +} +