BrushPreview::BrushPreview(QWidget *parent, Qt::WindowFlags f) : QFrame(parent,f), m_preview(nullptr), _sizepressure(false), _opacitypressure(false), _hardnesspressure(false), _smudgepressure(false), m_color(Qt::black), m_bg(Qt::white), m_hardedge(false), _shape(Stroke), _fillTolerance(0), _fillExpansion(0), _underFill(false), m_needupdate(true), _tranparentbg(false) { setAttribute(Qt::WA_NoSystemBackground); setMinimumSize(32,32); _ctxmenu = new QMenu(this); _ctxmenu->addAction(tr("Change Foreground Color"), this, SIGNAL(requestColorChange())); }
QWidget *FillSettings::createUiWidget(QWidget *parent) { QWidget *uiwidget = new QWidget(parent); _ui = new Ui_FillSettings; _ui->setupUi(uiwidget); connect(_ui->preview, SIGNAL(requestColorChange()), parent, SLOT(changeForegroundColor())); connect(_ui->tolerance, &QSlider::valueChanged, this, &FillSettings::pushSettings); connect(_ui->sizelimit, QOverload<double>::of(&QDoubleSpinBox::valueChanged), this, &FillSettings::pushSettings); connect(_ui->expand, &QSlider::valueChanged, this, &FillSettings::pushSettings); connect(_ui->samplemerged, &QAbstractButton::toggled, this, &FillSettings::pushSettings); connect(_ui->fillunder, &QAbstractButton::toggled, this, &FillSettings::pushSettings); connect(_ui->erasermode, &QAbstractButton::toggled, this, &FillSettings::pushSettings); connect(_ui->erasermode, &QAbstractButton::toggled, this, [this](bool erase) { _ui->preview->setPreviewShape(erase ? BrushPreview::FloodErase : BrushPreview::FloodFill); _ui->fillunder->setEnabled(!erase); _ui->samplemerged->setEnabled(!erase); _ui->preview->setTransparentBackground(!erase); }); return uiwidget; }
void BrushPreview::mouseDoubleClickEvent(QMouseEvent*) { emit requestColorChange(); }