DtkDeclarative
DTK Declarative module
载入中...
搜索中...
未找到
dquickdciiconimage_p_p.h
1// SPDX-FileCopyrightText: 2022 - 2026 UnionTech Software Technology Co., Ltd.
2//
3// SPDX-License-Identifier: LGPL-3.0-or-later
4
5#ifndef DQUICKDCIICONIMAGE_P_P_H
6#define DQUICKDCIICONIMAGE_P_P_H
7
8#include "dquickiconimage_p.h"
9#include "dqmlglobalobject_p.h"
10#include "dquickdciiconimage_p.h"
11#include "dquickiconimage_p_p.h"
12
13#include <dobject_p.h>
14#include <DDciIconPalette>
15#include <DDciIconPlayer>
16#include <QTimer>
17
18DQUICK_BEGIN_NAMESPACE
19class DQuickDciIconImageItemPrivate;
21{
22 Q_DECLARE_PUBLIC(DQuickIconImage)
23
24public:
26#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)
27 bool transformChanged(QQuickItem *transformedItem) override;
28#endif
29 void maybeUpdateUrl();
30 void play(int mode);
31 QUrlQuery getUrlQuery();
32
33 void updatePlayer();
34 void updatePlayerIconSize();
35private:
36 DQuickDciIconImagePrivate *parentPriv;
37 DDciIconPlayer *player = nullptr;
38 QString iconPathCache;
39};
40
41class DQuickDciIconImagePrivate : public DCORE_NAMESPACE::DObjectPrivate
42{
43 Q_DECLARE_PUBLIC(DQuickDciIconImage)
44
45public:
47 void layout();
48 void scheduleLayout();
49 void updateImageSourceUrl();
50 void play(DQMLGlobalObject::ControlState mode);
51
52 DDciIconPalette palette;
53 DQuickIconImage *imageItem;
54 QTimer *layoutTimer = nullptr;
55 DQMLGlobalObject::ControlState mode = DQMLGlobalObject::NormalState;
56 DGuiApplicationHelper::ColorType theme = DGuiApplicationHelper::ColorType::LightType;
57 bool fallbackToQIcon = true;
58};
59
60DQUICK_END_NAMESPACE
61#endif // DQUICKDCIICONIMAGE_P_P_H
Definition dquickdciiconimage_p_p.h:21
Definition dquickdciiconimage_p_p.h:42
Definition dquickdciiconimage_p.h:23
Definition dquickiconimage_p_p.h:20
Definition dquickiconimage_p.h:23