13#include <QButtonGroup>
14#include <QStackedWidget>
16#include <klocalizedstring.h>
31#include <lager/constant.hpp>
42 switch (precisionLevel) {
45 i18n(
"Precision Level 1 (fastest)\n"
46 "Subpixel precision: disabled\n"
47 "Brush size precision: 5%\n"
49 "Optimal for very big brushes");
53 i18n(
"Precision Level 2\n"
54 "Subpixel precision: disabled\n"
55 "Brush size precision: 1%\n"
57 "Optimal for big brushes");
61 i18n(
"Precision Level 3\n"
62 "Subpixel precision: disabled\n"
63 "Brush size precision: exact");
67 i18n(
"Precision Level 4 (optimal)\n"
68 "Subpixel precision: 50%\n"
69 "Brush size precision: exact\n"
71 "Gives up to 50% better performance in comparison to Level 5");
75 i18n(
"Precision Level 5 (best quality)\n"
76 "Subpixel precision: exact\n"
77 "Brush size precision: exact\n"
79 "The slowest performance. Best quality.");
99 lager::cursor<PrecisionData> m_source;
108 Private(lager::cursor<PrecisionData> precisionData)
109 :
model(precisionData)
121 lager::cursor<BrushType> brushType,
122 lager::cursor<PrecisionData> precisionData,
123 KisBrushOptionWidgetFlags flags,
126 , m_currentBrushWidget(0)
127 , m_d(new
Private(precisionData))
146 m_d->brushType = brushType.zoom(kislager::lenses::do_static_cast<BrushType, int>);
150 connect(
m_buttonGroup, &QButtonGroup::idClicked, [
this] (
int id) {
m_d->brushType.set(
id);});
168 connect(&
m_d->model, &PrecisionModel::precisionToolTipChanged,
171 connect(&
m_d->model, &PrecisionModel::useAutoPrecisionChanged,
173 connect(&
m_d->model, &PrecisionModel::useAutoPrecisionChanged,
202 Q_FOREACH(
const QString &option, options) {
204 if (l.count() != 2) {
208 if (l[0] ==
"KisAutoBrushWidget") {
211 else if (l[0] ==
"KisBrushChooser") {
214 else if (l[0] ==
"KisTextBrushChooser") {
218 qWarning() <<
"KisBrushSelectionWidget: Invalid option given to disable:" << option;
222 QWidget *w = qobject_cast<QWidget*>(o);
224 w->setVisible(
false);
233 return lager::with(
m_d->brushType.xform(kiszug::map_equal<int>(
Predefined)),
235 .map(std::logical_and{});
261 button->setGroupPosition(pos);
263 button->setAutoRaise(
false);
264 button->setCheckable(
true);
271#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)
lager::reader< bool > lightnessModeEnabled() const
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)