Krita Source Code Documentation
Loading...
Searching...
No Matches
KisWidgetConnectionUtils.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
7#ifndef KISWIDGETCONNECTIONUTILS_H
8#define KISWIDGETCONNECTIONUTILS_H
9
10#include <QMetaType>
11#include <QStringList>
12
13#include "kritawidgets_export.h"
14
15class QAbstractButton;
16class QAction;
17class QComboBox;
18class QButtonGroup;
19class QSpinBox;
20class QDoubleSpinBox;
21class QObject;
22class QSlider;
23class QCheckBox;
26class KisColorButton;
27class QLineEdit;
30class QWidget;
31
38
39
52template<typename T>
54 T value = T{};
55 bool enabled = true;
56};
57
64 template<typename T>
66 return {std::forward<T>(value), enabled};
67 }
68};
69
72
79
81 qreal spacing = 0.05;
82 bool useAutoSpacing = false;
83 qreal autoSpacingCoeff = 1.0;
84};
85
87 SpacingState operator() (qreal spacing, bool useAutoSpacing, qreal autoSpacingCoeff) {
88 return {spacing, useAutoSpacing, autoSpacingCoeff};
89 }
90};
91
93 std::tuple<qreal, bool, qreal> operator() (const SpacingState &x) {
94 return {x.spacing, x.useAutoSpacing, x.autoSpacingCoeff};
95 }
96};
97
98template <typename T>
100 T value = T{};
101 T min = T{};
102 T max = T{};
103 bool enabled = true;
104};
105
107 template <typename T>
108 SpinBoxState<std::decay_t<T>> operator()(T &&value, T &&min, T &&max, bool enabled) {
109 return {std::forward<T>(value), std::forward<T>(min), std::forward<T>(max), enabled};
110 }
111};
112
115
138void KRITAWIDGETS_EXPORT connectControl(QAbstractButton *button, QObject *source, const char *property);
139void KRITAWIDGETS_EXPORT connectControl(QAction *button, QObject *source, const char *property);
140void KRITAWIDGETS_EXPORT connectControl(QCheckBox *button, QObject *source, const char *property);
141void KRITAWIDGETS_EXPORT connectControl(QSpinBox *spinBox, QObject *source, const char *property);
142void KRITAWIDGETS_EXPORT connectControl(QSlider *slider, QObject *source, const char *property);
143void KRITAWIDGETS_EXPORT connectControl(QDoubleSpinBox *spinBox, QObject *source, const char *property);
144void KRITAWIDGETS_EXPORT connectControlState(QDoubleSpinBox *spinBox, QObject *source, const char *readStateProperty, const char *writeProperty);
145void KRITAWIDGETS_EXPORT connectControlState(QSpinBox *spinBox, QObject *source, const char *readStateProperty, const char *writeProperty);
146void KRITAWIDGETS_EXPORT connectControl(KisMultipliersDoubleSliderSpinBox *spinBox, QObject *source, const char *property);
147void KRITAWIDGETS_EXPORT connectControl(QButtonGroup *button, QObject *source, const char *property);
148void KRITAWIDGETS_EXPORT connectControl(QComboBox *button, QObject *source, const char *property);
149void KRITAWIDGETS_EXPORT connectControl(QComboBox *button, QObject *source, const char *property);
150void KRITAWIDGETS_EXPORT connectControlState(QAbstractButton *button, QObject *source, const char *readStateProperty, const char *writeProperty);
151void KRITAWIDGETS_EXPORT connectControlState(QButtonGroup *group, QObject *source, const char *readStateProperty, const char *writeProperty);
152void KRITAWIDGETS_EXPORT connectControlState(QComboBox *button, QObject *source, const char *readStateProperty, const char *writeProperty);
153void KRITAWIDGETS_EXPORT connectControl(KisSpacingSelectionWidget *widget, QObject *source, const char *property);
154void KRITAWIDGETS_EXPORT connectControl(KisAngleSelector *widget, QObject *source, const char *property);
155void KRITAWIDGETS_EXPORT connectControl(QLineEdit *widget, QObject *source, const char *property);
156void KRITAWIDGETS_EXPORT connectControl(KisFileNameRequester *widget, QObject *source, const char *property);
157void KRITAWIDGETS_EXPORT connectControl(KisColorButton *widget, QObject *source, const char *property);
158void KRITAWIDGETS_EXPORT connectWidgetVisibleToProperty(QWidget* widget, QObject* source, const char* property);
159void KRITAWIDGETS_EXPORT connectWidgetEnabledToProperty(QWidget* widget, QObject* source, const char* property);
160
161
162} // namespace KisWidgetConnectionUtils
163
170
171Q_DECLARE_METATYPE(CheckBoxState)
175Q_DECLARE_METATYPE(DoubleSpinBoxState)
176Q_DECLARE_METATYPE(IntSpinBoxState)
177
178
179#endif // KISWIDGETCONNECTIONUTILS_H
float value(const T *src, size_t ch)
KisMagneticGraph::vertex_descriptor source(typename KisMagneticGraph::edge_descriptor e, KisMagneticGraph g)
A widget with several options to select an angle.
A pushbutton to display or allow user selection of a color.
Q_DECLARE_METATYPE(KisPaintopLodLimitations)
QString button(const QWheelEvent &ev)
void connectControl(KisCompositeOpListWidget *widget, QObject *source, const char *property)
void connectControlState(QSpinBox *spinBox, QObject *source, const char *readStateProperty, const char *writeProperty)
void connectWidgetVisibleToProperty(QWidget *widget, QObject *source, const char *property)
void connectWidgetEnabledToProperty(QWidget *widget, QObject *source, const char *property)
std::tuple< qreal, bool, qreal > operator()(const SpacingState &x)
ControlState< std::decay_t< T > > operator()(T &&value, bool enabled)
SpacingState operator()(qreal spacing, bool useAutoSpacing, qreal autoSpacingCoeff)
SpinBoxState< std::decay_t< T > > operator()(T &&value, T &&min, T &&max, bool enabled)