File indexing completed on 2024-05-12 03:54:10

0001 /*
0002     SPDX-FileCopyrightText: 2020 Kevin Ottens <kevin.ottens@enioka.com>
0003     SPDX-FileCopyrightText: 2020 Cyril Rossi <cyril.rossi@enioka.com>
0004 
0005     SPDX-License-Identifier: LGPL-2.0-or-later
0006 */
0007 
0008 #ifndef SETTINGSHIGHLIGHTERPRIVATE_H
0009 #define SETTINGSHIGHLIGHTERPRIVATE_H
0010 
0011 #include <QPointer>
0012 #include <QQmlParserStatus>
0013 #include <QQuickItem>
0014 
0015 class SettingHighlighterPrivate : public QObject, public QQmlParserStatus
0016 {
0017     Q_OBJECT
0018     Q_PROPERTY(QQuickItem *target READ target WRITE setTarget NOTIFY targetChanged)
0019     Q_PROPERTY(bool highlight READ highlight WRITE setHighlight NOTIFY highlightChanged)
0020     Q_PROPERTY(bool defaultIndicatorVisible READ defaultIndicatorVisible WRITE setDefaultIndicatorVisible NOTIFY defaultIndicatorVisibleChanged)
0021     Q_INTERFACES(QQmlParserStatus)
0022 public:
0023     using QObject::QObject;
0024 
0025     QQuickItem *target() const;
0026     void setTarget(QQuickItem *target);
0027 
0028     bool highlight() const;
0029     void setHighlight(bool highlight);
0030 
0031     bool defaultIndicatorVisible() const;
0032     void setDefaultIndicatorVisible(bool enabled);
0033 
0034 Q_SIGNALS:
0035     void targetChanged();
0036     void highlightChanged();
0037     void defaultIndicatorVisibleChanged(bool enabled);
0038 
0039 private:
0040     void updateTarget();
0041 
0042     void classBegin() override
0043     {
0044     }
0045     void componentComplete() override;
0046 
0047     bool m_isComponentComplete = false;
0048 
0049     QPointer<QQuickItem> m_target = nullptr;
0050     QPointer<QQuickItem> m_styleTarget = nullptr;
0051     bool m_highlight = false;
0052     bool m_enabled = false;
0053 };
0054 
0055 #endif