5#ifndef QQSTYLEKITPROPERTYRESOLVER_P_H
6#define QQSTYLEKITPROPERTYRESOLVER_P_H
29class QQStyleKitReader;
36using AttachedVariationList = QVarLengthArray<
const QQStyleKitVariationAttached *, 20>;
57 const QQSK::Property property,
62 const QQSK::Property property,
63 const QVariant &value);
67 const QQSK::Property property);
70 QQStyleKitExtendableControlType exactType);
73 static bool s_styleWarningsIssued;
74 static bool s_isReadingProperty;
75 static QQSK::State s_cachedState;
76 static QVarLengthArray<QQSK::StateFlag, 10> s_cachedStateList;
80 static QVariant readPropertyInStorageForState(
82 const T *storageProvider, QQSK::State state);
84 template <
class INDICES_CONTAINER>
85 static QVariant readPropertyInControlForStates(
88 int startIndex,
int recursionLevel);
90 static QVariant readPropertyInControl(
93 static QVariant readPropertyInRelevantControls(
95 const QQStyleKitExtendableControlType exactType,
96 const QList<QQStyleKitExtendableControlType> baseTypes);
98 static QVariant readPropertyInVariations(
99 const QList<QPointer<QQStyleKitVariation>> &variations,
101 const PropertyPathIds &ids,
102 const QQStyleKitExtendableControlType exactType,
103 const QList<QQStyleKitExtendableControlType> baseTypes);
105 static QVariant readPropertyInStyle(
106 QQStyleKitStyle *style,
107 const PropertyPathIds &ids,
108 QQStyleKitReader *styleReader);
110 static void cacheReaderState(QQSK::State state);
112 static inline void addVariationToReader(
113 QQStyleKitReader *styleReader,
117 static void addInstanceVariationsToReader(
118 QQStyleKitReader *styleReader,
120 const AttachedVariationList &attachedVariations);
122 static void addTypeVariationsToReader(
123 QQStyleKitReader *styleReader,
125 const AttachedVariationList &attachedVariations);
127 static void rebuildVariationsForReader(QQStyleKitReader *styleReader, QQStyleKitStyle *style);
QQStyleKitDelegateProperties * delegateStyle() const
~QQStyleKitDelegateContainer() override
void componentComplete() override
Invoked after the root component that caused this instantiation has completed construction.
QObject * quickControl() const
void setQuickControl(QObject *control)
void quickControlChanged()
void delegateInstanceChanged()
void geometryChange(const QRectF &newGeometry, const QRectF &oldGeometry) override
void setDelegateStyle(QQStyleKitDelegateProperties *delegateProperties)
QQuickItem * delegateInstance() const
QQStyleKitDelegateProperties * first() const
void forEachExistingNestedGroup(const std::function< void(QQStyleKitPropertyGroup *)> &f) const override
QQStyleKitDelegateProperties * second() const
QQStyleKitDelegateProperties * foreground() const
void emitGlobally(QQStyleKitExtendableControlType controlType, CHANGED_SIGNALS... changedSignals) const
void forEachExistingNestedGroup(const std::function< void(QQStyleKitPropertyGroup *)> &f) const override
void emitGlobally(QQStyleKitExtendableControlType controlType, CHANGED_SIGNALS... changedSignals) const
void forEachExistingNestedGroup(const std::function< void(QQStyleKitPropertyGroup *)> &f) const override
QQStyleKitDelegateProperties * foreground() const
QQStyleKitIndicatorProperties * down() const
QQStyleKitIndicatorProperties * up() const
QQStyleKitIndicatorProperties * second() const
QQStyleKitIndicatorProperties * first() const
bool setStyleProperty(QQSK::Property property, T value)
QQStyleKitPropertyGroupSpace m_groupSpace
void emitChangedForAllStylePropertiesRecursive(EmitFlags emitFlags)
T styleProperty(QQSK::Property property, const T &defaultValue) const
T styleProperty(QQSK::Property property, QQSK::Property alternative=QQSK::Property::NoProperty) const
T * lazyCreateGroup(T *const &ptr, QQSK::PropertyGroup group) const
QQSK::PropertyPathFlags pathFlags() const
void handleStylePropertyChanged(void(SUBCLASS::*changedSignal)())
QQSK::PropertyPathFlags m_pathFlags
virtual void forEachExistingNestedGroup(const std::function< void(QQStyleKitPropertyGroup *)> &f) const
void handleStylePropertiesChanged(CHANGED_SIGNALS... changedSignals)
bool isDefined(QQSK::Property property) const
QQStyleKitControlProperties * controlProperties() const
bool isControlProperties() const
QQStyleKitPropertyGroupSpace groupSpace() const
PropertyPathId pathId() const
static QQSK::PropertyGroup extractSubtype(PropertyPathId pathId)
static QQSK::State extractState(PropertyStorageId storageId)
static QString pathIdToPathString(PropertyPathId pathId)
static QString storageIdToPathString(PropertyStorageId storageId)
static PropertyPathId extractPropertyPathId(PropertyStorageId storageId, QQStyleKitPropertyPath::Flag flag=QQStyleKitPropertyPath::Flag::IncludeSubtype)
PropertyStorageId createStorageId(QQSK::State state) const
QQSK::PropertyGroup subType() const
QQSK::Property property() const
static QVariant readStyleProperty(const QQStyleKitPropertyGroup *group, const QQSK::Property property, const QQSK::Property alternative=QQSK::Property::NoProperty)
static bool hasLocalStyleProperty(const QQStyleKitPropertyGroup *group, const QQSK::Property property)
static const QList< QQStyleKitExtendableControlType > baseTypesForType(QQStyleKitExtendableControlType exactType)
static bool writeStyleProperty(const QQStyleKitPropertyGroup *group, const QQSK::Property property, const QVariant &value)
void setRightPadding(qreal rightPadding)
void setBottomPadding(qreal bottomPadding)
void setTopPadding(qreal topPadding)
void setLeftPadding(qreal leftPadding)
void setPadding(qreal padding)
qreal rightPadding() const
void setItalic(bool italic)
void setAlignment(Qt::Alignment alignment)
void forEachExistingNestedGroup(const std::function< void(QQStyleKitPropertyGroup *)> &f) const override
qreal bottomPadding() const
void setPointSize(qreal pointSize)
void setColor(const QColor &color)
void bottomPaddingChanged()
Qt::Alignment alignment() const
void emitGlobally(QQStyleKitExtendableControlType controlType, CHANGED_SIGNALS... changedSignals) const
QQStyleKitTextProperties * first() const
void rightPaddingChanged()
QQStyleKitTextProperties * second() const
void leftPaddingChanged()
qreal leftPadding() const
Combined button and popup list for selecting options.
constexpr PropertyPathId subtypeStorageSpaceSize
constexpr PropertyPathId stateStorageSpaceSize
constexpr PropertyPathId maxPropertyStorageSpaceSize
constexpr PropertyPathId nestedGroupCount
constexpr PropertyPathId maxStateCombinationCount
constexpr PropertyPathId nestedGroupsStartSize
constexpr PropertyPathId subtypeCount