20#ifndef LIBREPCB_EDITOR_SLINTHELPERS_H
21#define LIBREPCB_EDITOR_SLINTHELPERS_H
49slint::LogicalPosition
q2s(
const QPointF& p)
noexcept;
50QPointF
s2q(
const slint::LogicalPosition& p)
noexcept;
52slint::PhysicalPosition
q2s(
const QPoint& p)
noexcept;
53QPoint
s2q(
const slint::PhysicalPosition& p)
noexcept;
55slint::PhysicalSize
q2s(
const QSize& s)
noexcept;
56QSize
s2q(
const slint::PhysicalSize& s)
noexcept;
58slint::SharedString
q2s(
const QString& s)
noexcept;
59QString
s2q(
const slint::SharedString& s)
noexcept;
60bool operator==(
const QString& s1,
const slint::SharedString& s2)
noexcept;
61bool operator!=(
const QString& s1,
const slint::SharedString& s2)
noexcept;
62bool operator==(
const slint::SharedString& s1,
const QString& s2)
noexcept;
63bool operator!=(
const slint::SharedString& s1,
const QString& s2)
noexcept;
65std::shared_ptr<slint::VectorModel<slint::SharedString>>
q2s(
66 const QStringList& s)
noexcept;
67QStringList
s2q(
const slint::Model<slint::SharedString>& s)
noexcept;
69slint::Image
q2s(
const QPixmap& p)
noexcept;
71slint::Color
q2s(
const QColor& c)
noexcept;
73slint::private_api::MouseCursor
q2s(Qt::CursorShape s)
noexcept;
75Qt::MouseButton
s2q(
const slint::private_api::PointerEventButton& b)
noexcept;
77slint::private_api::KeyboardModifiers
q2s(Qt::KeyboardModifiers m)
noexcept;
78Qt::KeyboardModifiers
s2q(
79 const slint::private_api::KeyboardModifiers& m)
noexcept;
81slint::SharedString
q2s(Qt::Key k)
noexcept;
84template <
typename TTarget,
typename TClass,
typename T>
85inline void bind(QObject* context,
const TTarget& target,
86 void (TTarget::*setter)(const T&) const, TClass* source,
87 void (TClass::*signal)(T), const T& defaultValue) noexcept {
88 QObject::connect(source, signal, context, [&target, setter](const T& value) {
89 (target.*setter)(value);
91 (target.*setter)(defaultValue);
95template <
typename TTarget,
typename TSl
int,
typename TClass,
typename TQt>
97 QObject* context,
const TTarget& target,
98 void (TTarget::*setter)(const TSlint&) const, TClass* source,
99 void (TClass::*signal)(TQt), const TQt& defaultValue,
100 std::function<TSlint(const TQt&)> convert = [](const TQt& value) {
103 QObject::connect(source, signal, context,
104 [&target, setter, convert](
const TQt& value) {
105 (target.*setter)(convert(value));
107 (target.*setter)(convert(defaultValue));
111 const QString& input, slint::SharedString& error)
noexcept;
114 slint::SharedString& error)
noexcept;
117 const QString& input, slint::SharedString& error,
118 const QString& requiredSuffix = QString()) noexcept;
120std::optional<QUrl> validateUrl(const QString& input,
121 slint::SharedString& error,
122 bool allowEmpty = false) noexcept;
std::optional< Version > validateVersion(const QString &input, slint::SharedString &error) noexcept
Definition slinthelpers.cpp:309
std::optional< FileProofName > validateFileProofName(const QString &input, slint::SharedString &error, const QString &requiredSuffix) noexcept
Definition slinthelpers.cpp:320
QPointF s2q(const slint::LogicalPosition &p) noexcept
Definition slinthelpers.cpp:43
slint::LogicalPosition q2s(const QPointF &p) noexcept
Definition slinthelpers.cpp:38
bool operator==(const QString &s1, const slint::SharedString &s2) noexcept
Definition slinthelpers.cpp:92
void bind(QObject *context, const TTarget &target, void(TTarget::*setter)(const T &) const, TClass *source, void(TClass::*signal)(T), const T &defaultValue) noexcept
Definition slinthelpers.h:85
std::optional< ElementName > validateElementName(const QString &input, slint::SharedString &error) noexcept
Definition slinthelpers.cpp:298
bool operator!=(const QString &s1, const slint::SharedString &s2) noexcept
Definition slinthelpers.cpp:96
Definition occmodel.cpp:77