File indexing completed on 2025-02-02 04:22:16

0001 /*
0002  *  SPDX-FileCopyrightText: 2022 Dmitry Kazakov <dimula73@gmail.com>
0003  *
0004  *  SPDX-License-Identifier: GPL-2.0-or-later
0005  */
0006 
0007 #ifndef KISTEXTBRUSHMODEL_H
0008 #define KISTEXTBRUSHMODEL_H
0009 
0010 #include <QObject>
0011 #include <QString>
0012 #include <QGuiApplication>
0013 #include <lager/cursor.hpp>
0014 #include <KisBrushModel.h>
0015 
0016 using namespace KisBrushModel;
0017 
0018 class KisTextBrushModel : public QObject
0019 {
0020     Q_OBJECT
0021 public:
0022     KisTextBrushModel(lager::cursor<CommonData> commonData,
0023                       lager::cursor<TextBrushData> textBrushData)
0024         : m_commonData(commonData),
0025           m_textBrushData(textBrushData),
0026           LAGER_QT(spacing) {m_commonData[&CommonData::spacing]},
0027           LAGER_QT(text) {m_textBrushData[&TextBrushData::text]},
0028           LAGER_QT(font) {m_textBrushData[&TextBrushData::font]},
0029           LAGER_QT(usePipeMode) {m_textBrushData[&TextBrushData::usePipeMode]}
0030     {
0031     }
0032 
0033     ~KisTextBrushModel();
0034 
0035     // the state must be declared **before** any cursors or readers
0036     lager::cursor<CommonData> m_commonData;
0037     lager::cursor<TextBrushData> m_textBrushData;
0038 
0039     LAGER_QT_CURSOR(qreal, spacing);
0040     LAGER_QT_CURSOR(QString, text);
0041     LAGER_QT_CURSOR(QString, font);
0042     LAGER_QT_CURSOR(bool, usePipeMode);
0043 };
0044 
0045 #endif // KISTEXTBRUSHMODEL_H