paysages3d/src/editing/inputcolor.cpp

52 lines
1.1 KiB
C++
Raw Normal View History

#include "inputcolor.h"
#include <QLabel>
#include <QPushButton>
#include <QPainter>
#include <QColorDialog>
2013-08-18 15:13:15 +00:00
#include "editing/lighting/SmallPreviewColor.h"
#include "editing/tools.h"
InputColor::InputColor(QWidget* form, QString label, Color* value):
BaseInput(form, label),
2013-08-18 15:13:15 +00:00
_original(value)
{
2013-08-18 15:13:15 +00:00
_preview = new SmallPreviewColor(form, &_edited);
_preview->setMinimumSize(50, 20);
_control = new QPushButton(tr("Edit"), form);
_control->setMaximumWidth(150);
connect((QPushButton*)_control, SIGNAL(clicked()), this, SLOT(chooseColor()));
}
void InputColor::updatePreview()
{
_preview->update();
BaseInput::updatePreview();
}
void InputColor::applyValue()
{
2013-08-18 15:13:15 +00:00
*_original = _edited;
BaseInput::applyValue();
}
void InputColor::revert()
{
2013-08-18 15:13:15 +00:00
_edited = *_original;
BaseInput::revert();
}
void InputColor::chooseColor()
{
2013-08-18 15:13:15 +00:00
QColor col = QColorDialog::getColor(colorToQColor(_edited), _control);
if (col.isValid())
{
2013-08-18 15:13:15 +00:00
_edited.r = col.redF();
_edited.g = col.greenF();
_edited.b = col.blueF();
applyValue();
}
}