Tue, 28 Jun 2022 11:51:17 +0300
- Add CMake build type to about page and window title
- Use locale-dependant short date format in window title and long format in about page
- Move version definition into project() call
- Renamed the c++ macros to match CMake variable names
#include <QColorDialog> #include <QStyleFactory> #include "widgets/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->setText(color.name()); QPalette palette{color}; const qreal lightness = color.lightnessF(); const QColor foreground = lightness < 0.4 ? Qt::white : Qt::black; palette.setColor(QPalette::ButtonText, foreground); this->setPalette(palette); this->setStyle(QStyleFactory::create("Fusion")); Q_EMIT this->colorChanged(this->storedSelectedColor); } }