From f8c66ff96ae2417e744b2d46daa8577d642b9c9f Mon Sep 17 00:00:00 2001 From: Treeki Date: Tue, 4 Sep 2012 19:56:58 +0200 Subject: pulled the colour picker out into a LSColorPicker widget --- lscolorpicker.cpp | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 lscolorpicker.cpp (limited to 'lscolorpicker.cpp') diff --git a/lscolorpicker.cpp b/lscolorpicker.cpp new file mode 100644 index 0000000..df911a2 --- /dev/null +++ b/lscolorpicker.cpp @@ -0,0 +1,47 @@ +#include "lscolorpicker.h" +#include + +LSColorPicker::LSColorPicker(QWidget *parent) : + QToolButton(parent) { + + connect(this, SIGNAL(clicked()), SLOT(tryAndChoose())); + setColor(QColor::fromRgb(255,255,255,255)); +} + +void LSColorPicker::setColor(QColor newCol) { + m_color = newCol; + refreshButton(); +} + +void LSColorPicker::tryAndChoose() { + QColor newCol = QColorDialog::getColor( + m_color, this, + "Pick a Colour", + QColorDialog::ShowAlphaChannel); + + if (newCol.isValid() && newCol != m_color) { + QColor oldCol = m_color; + m_color = newCol; + refreshButton(); + emit colorPicked(newCol, oldCol); + } +} + + +void LSColorPicker::refreshButton() { + setStyleSheet(QString("QToolButton { background-color: rgba(%1,%2,%3,%4); }") + .arg(m_color.red()) + .arg(m_color.green()) + .arg(m_color.blue()) + .arg(m_color.alpha())); + + setText(QString("RGBA %1,%2,%3,%4 (#%5%6%7%8)") + .arg(m_color.red()) + .arg(m_color.green()) + .arg(m_color.blue()) + .arg(m_color.alpha()) + .arg(m_color.red(), 2, 16, (QChar)'0') + .arg(m_color.green(), 2, 16, (QChar)'0') + .arg(m_color.blue(), 2, 16, (QChar)'0') + .arg(m_color.alpha(), 2, 16, (QChar)'0')); +} -- cgit v1.2.3