13#include <QButtonGroup>
14#include <QStackedWidget>
16#include <klocalizedstring.h>
33#include <lager/constant.hpp>
44 switch (precisionLevel) {
47 i18n(
"Precision Level 1 (fastest)\n"
48 "Subpixel precision: disabled\n"
49 "Brush size precision: 5%\n"
51 "Optimal for very big brushes");
55 i18n(
"Precision Level 2\n"
56 "Subpixel precision: disabled\n"
57 "Brush size precision: 1%\n"
59 "Optimal for big brushes");
63 i18n(
"Precision Level 3\n"
64 "Subpixel precision: disabled\n"
65 "Brush size precision: exact");
69 i18n(
"Precision Level 4 (optimal)\n"
70 "Subpixel precision: 50%\n"
71 "Brush size precision: exact\n"
73 "Gives up to 50% better performance in comparison to Level 5");
77 i18n(
"Precision Level 5 (best quality)\n"
78 "Subpixel precision: exact\n"
79 "Brush size precision: exact\n"
81 "The slowest performance. Best quality.");
101 lager::cursor<PrecisionData> m_source;
110 Private(lager::cursor<PrecisionData> precisionData)
111 :
model(precisionData)
123 lager::cursor<BrushType> brushType,
124 lager::cursor<PrecisionData> precisionData,
125 KisBrushOptionWidgetFlags flags,
128 , m_currentBrushWidget(0)
129 , m_d(new
Private(precisionData))
148 m_d->brushType = brushType.zoom(kislager::lenses::do_static_cast<BrushType, int>);
170 connect(&
m_d->model, &PrecisionModel::precisionToolTipChanged,
173 connect(&
m_d->model, &PrecisionModel::useAutoPrecisionChanged,
175 connect(&
m_d->model, &PrecisionModel::useAutoPrecisionChanged,
208 Q_FOREACH(
const QString &option, options) {
210 if (l.count() != 2) {
214 if (l[0] ==
"KisAutoBrushWidget") {
217 else if (l[0] ==
"KisBrushChooser") {
220 else if (l[0] ==
"KisTextBrushChooser") {
224 qWarning() <<
"KisBrushSelectionWidget: Invalid option given to disable:" << option;
228 QWidget *w = qobject_cast<QWidget*>(o);
230 w->setVisible(
false);
239 return lager::with(
m_d->brushType.xform(kiszug::map_equal<int>(
Predefined)),
241 .map(std::logical_and{});
267 button->setGroupPosition(pos);
269 button->setAutoRaise(
false);
270 button->setCheckable(
true);
277#include "kis_brush_selection_widget.moc"
float value(const T *src, size_t ch)
KisMagneticGraph::vertex_descriptor source(typename KisMagneticGraph::edge_descriptor e, KisMagneticGraph g)
connect(this, SIGNAL(optionsChanged()), this, SLOT(saveOptions()))
lager::reader< bool > lightnessModeEnabled() const
void setImage(KisImageWSP image)
LAGER_QT(useAutoPrecision)
LAGER_QT_CURSOR(bool, useAutoPrecision)
PrecisionModel(lager::cursor< PrecisionData > source)
LAGER_QT_READER(QString, precisionToolTip)
LAGER_QT_CURSOR(int, precisionLevel)
LAGER_QT(precisionToolTip)
#define KIS_SAFE_ASSERT_RECOVER_NOOP(cond)
QString button(const QWheelEvent &ev)