Krita Source Code Documentation
Loading...
Searching...
No Matches
KisPredefinedBrushModel.h
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2022 Dmitry Kazakov <dimula73@gmail.com>
3 *
4 * SPDX-License-Identifier: GPL-2.0-or-later
5 */
6#ifndef KISPREDEFINEDBRUSHMODEL_H
7#define KISPREDEFINEDBRUSHMODEL_H
8
9#include <lager/cursor.hpp>
10#include <lager/constant.hpp>
11#include <lager/lenses.hpp>
12#include <lager/extra/qt.hpp>
13
14#include <KisBrushModel.h>
16
17#include <QObject>
18
19using namespace KisBrushModel;
20using namespace KisWidgetConnectionUtils;
21
22
23class KisPredefinedBrushModel : public QObject
24{
25 Q_OBJECT
26public:
27 KisPredefinedBrushModel(lager::cursor<CommonData> commonData,
28 lager::cursor<PredefinedBrushData> predefinedBrushData,
29 lager::cursor<qreal> commonBrushSizeData,
30 bool supportsHSLBrushTips);
31
32 // the state must be declared **before** any cursors or readers
33 lager::cursor<CommonData> m_commonData;
34 lager::cursor<PredefinedBrushData> m_predefinedBrushData;
35 lager::constant<bool> m_supportsHSLBrushTips;
36 lager::cursor<qreal> m_commonBrushSizeData;
37
38 lager::cursor<PredefinedBrushData> m_effectivePredefinedData;
39
40
42 LAGER_QT_CURSOR(QSize, baseSize);
43 LAGER_QT_CURSOR(qreal, brushSize);
44 LAGER_QT_CURSOR(int, application);
45 LAGER_QT_CURSOR(bool, hasColorAndTransparency);
46 LAGER_QT_CURSOR(bool, autoAdjustMidPoint);
47 LAGER_QT_CURSOR(int, adjustmentMidPoint);
48 LAGER_QT_CURSOR(int, brightnessAdjustment);
49 LAGER_QT_CURSOR(int, contrastAdjustment);
50
51 LAGER_QT_CURSOR(qreal, angle);
52 LAGER_QT_CURSOR(qreal, spacing);
53 LAGER_QT_CURSOR(bool, useAutoSpacing);
54 LAGER_QT_CURSOR(qreal, autoSpacingCoeff);
55 LAGER_QT_CURSOR(SpacingState, aggregatedSpacing);
56 LAGER_QT_READER(ComboBoxState, applicationSwitchState);
57 LAGER_QT_READER(bool, adjustmentsEnabled);
58 LAGER_QT_READER(QString, brushName);
59 LAGER_QT_READER(QString, brushDetails);
60 LAGER_QT_READER(bool, lightnessModeEnabled);
61
63
64 static enumBrushApplication effectiveBrushApplication(PredefinedBrushData predefinedData, bool supportsHSLBrushTips);
65 static qreal effectiveBrushSize(PredefinedBrushData predefinedData);
66 static void setEffectiveBrushSize(PredefinedBrushData &predefinedData, qreal value);
67};
68
69#endif // KISPREDEFINEDBRUSHMODEL_H
float value(const T *src, size_t ch)
LAGER_QT_CURSOR(KoResourceSignature, resourceSignature)
LAGER_QT_CURSOR(bool, useAutoSpacing)
static qreal effectiveBrushSize(PredefinedBrushData predefinedData)
LAGER_QT_CURSOR(int, brightnessAdjustment)
lager::cursor< CommonData > m_commonData
lager::cursor< qreal > m_commonBrushSizeData
LAGER_QT_READER(QString, brushName)
PredefinedBrushData bakedOptionData() const
LAGER_QT_CURSOR(bool, hasColorAndTransparency)
KisPredefinedBrushModel(lager::cursor< CommonData > commonData, lager::cursor< PredefinedBrushData > predefinedBrushData, lager::cursor< qreal > commonBrushSizeData, bool supportsHSLBrushTips)
LAGER_QT_CURSOR(qreal, autoSpacingCoeff)
LAGER_QT_READER(bool, lightnessModeEnabled)
LAGER_QT_CURSOR(qreal, angle)
LAGER_QT_CURSOR(qreal, brushSize)
LAGER_QT_READER(ComboBoxState, applicationSwitchState)
lager::constant< bool > m_supportsHSLBrushTips
LAGER_QT_CURSOR(int, adjustmentMidPoint)
LAGER_QT_READER(QString, brushDetails)
static enumBrushApplication effectiveBrushApplication(PredefinedBrushData predefinedData, bool supportsHSLBrushTips)
LAGER_QT_CURSOR(bool, autoAdjustMidPoint)
LAGER_QT_READER(bool, adjustmentsEnabled)
LAGER_QT_CURSOR(int, contrastAdjustment)
LAGER_QT_CURSOR(int, application)
LAGER_QT_CURSOR(QSize, baseSize)
LAGER_QT_CURSOR(qreal, spacing)
static void setEffectiveBrushSize(PredefinedBrushData &predefinedData, qreal value)
LAGER_QT_CURSOR(SpacingState, aggregatedSpacing)
lager::cursor< PredefinedBrushData > m_predefinedBrushData
lager::cursor< PredefinedBrushData > m_effectivePredefinedData
A simple wrapper object for the main information about the resource.
enumBrushApplication
Definition kis_brush.h:38