Krita Source Code Documentation
Loading...
Searching...
No Matches
kis_paintop_option.h
Go to the documentation of this file.
1/* This file is part of the KDE project
2 * SPDX-FileCopyrightText: 2008 Boudewijn Rempt <boud@valdyas.org>
3 *
4 * SPDX-License-Identifier: LGPL-2.0-or-later
5 */
6
7#ifndef KIS_PAINTOP_OPTION_H
8#define KIS_PAINTOP_OPTION_H
9
10#include <kis_types.h>
11#include <kritaui_export.h>
15
16#include <lager/reader.hpp>
17#include <lager/cursor.hpp>
18
19class QWidget;
20class QString;
22
23
37class KRITAUI_EXPORT KisPaintOpOption : public QObject
38{
39 Q_OBJECT
40public:
41
42 using OptionalLodLimitationsReader = std::optional<lager::reader<KisPaintopLodLimitations>>;
43
51
52 KisPaintOpOption(const QString &label, KisPaintOpOption::PaintopCategory category, bool checked);
53 KisPaintOpOption(const QString &label, KisPaintOpOption::PaintopCategory category,
54 lager::cursor<bool> checkedCursor);
55 KisPaintOpOption(const QString &label, KisPaintOpOption::PaintopCategory category,
56 lager::cursor<bool> checkedCursor,
57 lager::reader<bool> externallyEnabledLink);
58 ~KisPaintOpOption() override;
59
60 KisPaintOpOption::PaintopCategory category() const;
61 virtual bool isCheckable() const;
62
63 virtual bool isChecked() const;
64 virtual void setChecked(bool checked);
65
66 bool isEnabled() const;
67
68 void setLocked(bool value);
69 bool isLocked() const;
70
71 QString label() const;
72
76 virtual void setImage(KisImageWSP image);
77 virtual void setNode(KisNodeWSP node);
78 virtual void setResourcesInterface(KisResourcesInterfaceSP resourcesInterface);
79 virtual void setCanvasResourcesInterface(KoCanvasResourcesInterfaceSP canvasResourcesInterface);
80
81 void startReadOptionSetting(const KisPropertiesConfigurationSP setting);
82 void startWriteOptionSetting(KisPropertiesConfigurationSP setting) const;
83
84 QWidget *configurationPage() const;
85
86 virtual void lodLimitations(KisPaintopLodLimitations *l) const;
87 OptionalLodLimitationsReader effectiveLodLimitations() const;
88
89protected:
90 virtual OptionalLodLimitationsReader lodLimitationsReader() const;
91 void setConfigurationPage(QWidget *page);
92
93 KisResourcesInterfaceSP resourcesInterface() const;
94 KoCanvasResourcesInterfaceSP canvasResourcesInterface() const;
95
96protected:
101 Q_UNUSED(setting);
102 }
103
108 Q_UNUSED(setting);
109 }
110
111protected Q_SLOTS:
112 void emitSettingChanged();
113 void emitCheckedChanged(bool checked);
114 void emitEnabledChanged(bool enabled);
115
116Q_SIGNALS:
117
122
129
130private:
131 void slotEnablePageWidget(bool value);
132
133protected:
134
135 bool m_checkable {false};
136 bool m_locked {false};
137
138private:
139
140 struct Private;
141 Private* const m_d;
142};
143
144#endif
float value(const T *src, size_t ch)
std::optional< lager::reader< KisPaintopLodLimitations > > OptionalLodLimitationsReader
void sigEnabledChanged(bool value)
virtual void readOptionSetting(const KisPropertiesConfigurationSP setting)
virtual void writeOptionSetting(KisPropertiesConfigurationSP setting) const
void sigSettingChanged()
void sigCheckedChanged(bool value)