dde-control-center
Deepin Control Center
载入中...
搜索中...
未找到
dccmodel.h
1// SPDX-FileCopyrightText: 2024 - 2027 UnionTech Software Technology Co., Ltd.
2//
3// SPDX-License-Identifier: GPL-3.0-or-later
4#ifndef DCCMODEL_H
5#define DCCMODEL_H
6
7#include <QAbstractItemModel>
8
9namespace dccV25 {
10class DccObject;
11
12class DccModel : public QAbstractItemModel
13{
14 Q_OBJECT
15 Q_PROPERTY(DccObject * root READ root WRITE setRoot NOTIFY rootChanged)
16public:
17 explicit DccModel(QObject *parent = nullptr);
18 ~DccModel() override;
19
20 DccObject *root() const;
21 QHash<int, QByteArray> roleNames() const override;
22 QModelIndex index(const DccObject *object);
23 // Basic functionality:
24 QModelIndex index(int row, int column, const QModelIndex &parentIndex = QModelIndex()) const override;
25 QModelIndex parent(const QModelIndex &index) const override;
26
27 int rowCount(const QModelIndex &parent = QModelIndex()) const override;
28 int columnCount(const QModelIndex &parent = QModelIndex()) const override;
29
30 QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override;
31public Q_SLOTS:
32 void setRoot(DccObject *root);
33 DccObject *getObject(int row);
34
35private Q_SLOTS:
36 void updateObject();
37 void AboutToAddObject(const DccObject *parent, int pos);
38 void addObject(const DccObject *child);
39 void AboutToRemoveObject(const DccObject *parent, int pos);
40 void removeObject(const DccObject *child);
41 void AboutToMoveObject(const DccObject *parent, int pos, int oldPos);
42 void moveObject(const DccObject *child);
43
44Q_SIGNALS:
45 void rootChanged(DccObject *root);
46
47private:
48 void connectObject(const DccObject *obj);
49 void disconnectObject(const DccObject *obj);
50
51private:
52 DccObject *m_root;
53};
54} // namespace dccV25
55#endif // DCCMODEL_H
Definition dccmodel.h:13
Definition dccobject.h:14