2#include <QtQml/QQmlEngine>
7class WidthProvider :
public QObject {
11 Q_PROPERTY(
double width READ width NOTIFY widthChanged FINAL)
12 Q_PROPERTY(qint32 column READ column NOTIFY columnChanged FINAL)
13 Q_PROPERTY(
double minimum READ minimum WRITE setMinimum NOTIFY minimumChanged FINAL)
14 Q_PROPERTY(
double leftMargin READ leftMargin WRITE setLeftMargin NOTIFY leftMarginChanged FINAL)
16 double rightMargin READ rightMargin WRITE setrightMargin NOTIFY rightMarginChanged FINAL)
17 Q_PROPERTY(
double spacing READ spacing WRITE setSpacing NOTIFY spacingChanged FINAL)
18 Q_PROPERTY(
double total READ total WRITE setTotal NOTIFY totalChanged FINAL)
20 explicit WidthProvider(QObject* parent =
nullptr);
22 Q_INVOKABLE qint32 calculateX(qint32 column)
noexcept;
24 auto width() const noexcept ->
double;
25 Q_SIGNAL
void widthChanged();
27 auto column() const noexcept -> qint32;
28 Q_SIGNAL
void columnChanged();
30 auto leftMargin() const noexcept ->
double;
31 void setLeftMargin(
double);
32 Q_SIGNAL
void leftMarginChanged();
34 auto rightMargin() const noexcept ->
double;
35 void setrightMargin(
double);
36 Q_SIGNAL
void rightMarginChanged();
38 auto minimum() const noexcept ->
double;
39 void setMinimum(
double);
40 Q_SIGNAL
void minimumChanged();
42 auto spacing() const noexcept ->
double;
43 void setSpacing(
double);
44 Q_SIGNAL
void spacingChanged();
46 auto total() const noexcept ->
double;
47 void setTotal(
double);
48 Q_SIGNAL
void totalChanged();
50 Q_SLOT
void refresh();
59 double m_right_margin;