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;
24class QGroupBox;
27class KisColorButton;
28class QLineEdit;
31class QWidget;
32
39
40
53template<typename T>
55 T value = T{};
56 bool enabled = true;
57};
58
65 template<typename T>
67 return {std::forward<T>(value), enabled};
68 }
69};
70
73
80
82 qreal spacing = 0.05;
83 bool useAutoSpacing = false;
84 qreal autoSpacingCoeff = 1.0;
85};
86
88 SpacingState operator() (qreal spacing, bool useAutoSpacing, qreal autoSpacingCoeff) {
89 return {spacing, useAutoSpacing, autoSpacingCoeff};
90 }
91};
92
94 std::tuple<qreal, bool, qreal> operator() (const SpacingState &x) {
95 return {x.spacing, x.useAutoSpacing, x.autoSpacingCoeff};
96 }
97};
98
99template <typename T>
101 T value = T{};
102 T min = T{};
103 T max = T{};
104 bool enabled = true;
105};
106
108 template <typename T>
109 SpinBoxState<std::decay_t<T>> operator()(T &&value, T &&min, T &&max, bool enabled) {
110 return {std::forward<T>(value), std::forward<T>(min), std::forward<T>(max), enabled};
111 }
112};
113
116
139void KRITAWIDGETS_EXPORT connectControl(QAbstractButton *button, QObject *source, const char *property);
140void KRITAWIDGETS_EXPORT connectControl(QAction *button, QObject *source, const char *property);
141void KRITAWIDGETS_EXPORT connectControl(QCheckBox *button, QObject *source, const char *property);
142void KRITAWIDGETS_EXPORT connectControl(QGroupBox *button, QObject *source, const char *property);
143void KRITAWIDGETS_EXPORT connectControl(QSpinBox *spinBox, QObject *source, const char *property);
144void KRITAWIDGETS_EXPORT connectControl(QSlider *slider, QObject *source, const char *property);
145void KRITAWIDGETS_EXPORT connectControl(QDoubleSpinBox *spinBox, QObject *source, const char *property);
146void KRITAWIDGETS_EXPORT connectControlState(QDoubleSpinBox *spinBox, QObject *source, const char *readStateProperty, const char *writeProperty);
147void KRITAWIDGETS_EXPORT connectControlState(QSpinBox *spinBox, QObject *source, const char *readStateProperty, const char *writeProperty);
148void KRITAWIDGETS_EXPORT connectControl(KisMultipliersDoubleSliderSpinBox *spinBox, QObject *source, const char *property);
149void KRITAWIDGETS_EXPORT connectControl(QButtonGroup *button, QObject *source, const char *property);
150void KRITAWIDGETS_EXPORT connectControl(QComboBox *button, QObject *source, const char *property);
151void KRITAWIDGETS_EXPORT connectControl(QComboBox *button, QObject *source, const char *property);
152void KRITAWIDGETS_EXPORT connectControlState(QAbstractButton *button, QObject *source, const char *readStateProperty, const char *writeProperty);
153void KRITAWIDGETS_EXPORT connectControlState(QGroupBox *button, QObject *source, const char *readStateProperty, const char *writeProperty);
154void KRITAWIDGETS_EXPORT connectControlState(QButtonGroup *group, QObject *source, const char *readStateProperty, const char *writeProperty);
155void KRITAWIDGETS_EXPORT connectControlState(QComboBox *button, QObject *source, const char *readStateProperty, const char *writeProperty);
156void KRITAWIDGETS_EXPORT connectControl(KisSpacingSelectionWidget *widget, QObject *source, const char *property);
157void KRITAWIDGETS_EXPORT connectControl(KisAngleSelector *widget, QObject *source, const char *property);
158void KRITAWIDGETS_EXPORT connectControl(QLineEdit *widget, QObject *source, const char *property);
159void KRITAWIDGETS_EXPORT connectControl(KisFileNameRequester *widget, QObject *source, const char *property);
160void KRITAWIDGETS_EXPORT connectControl(KisColorButton *widget, QObject *source, const char *property);
161void KRITAWIDGETS_EXPORT connectWidgetVisibleToProperty(QWidget* widget, QObject* source, const char* property);
162void KRITAWIDGETS_EXPORT connectWidgetEnabledToProperty(QWidget* widget, QObject* source, const char* property);
163
164
165} // namespace KisWidgetConnectionUtils
166
173
174Q_DECLARE_METATYPE(CheckBoxState)
178Q_DECLARE_METATYPE(DoubleSpinBoxState)
179Q_DECLARE_METATYPE(IntSpinBoxState)
180
181
182#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)