diff --git a/example/example_en_US.ts b/example/example_en_US.ts
index f67acf47..72fff7c3 100644
--- a/example/example_en_US.ts
+++ b/example/example_en_US.ts
@@ -2394,22 +2394,22 @@ Some contents...
-
+
-
+
-
+
-
+
diff --git a/example/example_zh_CN.ts b/example/example_zh_CN.ts
index 568ee1fe..8ec55285 100644
--- a/example/example_zh_CN.ts
+++ b/example/example_zh_CN.ts
@@ -2504,22 +2504,22 @@ Some contents...
共计选中%1条数据
-
+
标题
-
+
地址
-
+
头像
-
+
名称
diff --git a/example/qml/page/T_TreeView.qml b/example/qml/page/T_TreeView.qml
index c98f68b2..a42010f1 100644
--- a/example/qml/page/T_TreeView.qml
+++ b/example/qml/page/T_TreeView.qml
@@ -28,7 +28,7 @@ FluContentPage {
}
const dig = (path = '0', level = 5) => {
const list = [];
- for (let i = 0; i < 5; i += 1) {
+ for (let i = 0; i < 4; i += 1) {
const key = `${path}-${i}`;
const treeNode = {
title: key,
@@ -148,7 +148,8 @@ FluContentPage {
text: "print selection model"
onClicked: {
var printData = []
- var data = tree_view.selectionModel
+ var data = tree_view.selectionModel();
+ console.debug(data.length)
for(var i = 0; i <= data.length-1 ; i++){
const newObj = Object.assign({}, data[i].data);
delete newObj["__parent"];
diff --git a/src/FluTreeModel.cpp b/src/FluTreeModel.cpp
index aada5733..020e8af8 100644
--- a/src/FluTreeModel.cpp
+++ b/src/FluTreeModel.cpp
@@ -113,15 +113,7 @@ void FluTreeModel::checkRow(int row, bool checked) {
itemData->_checked = checked;
}
Q_EMIT dataChanged(index(0, 0), index(rowCount() - 1, 0));
- QList data;
- foreach (auto item, _dataSource) {
- if (!item->hasChildren()) {
- if (item->_checked) {
- data.append(item);
- }
- }
- }
- selectionModel(data);
+
}
void FluTreeModel::setDataSource(QList> data) {
@@ -272,3 +264,13 @@ void FluTreeModel::allCollapse() {
_rows = _root->_children;
endResetModel();
}
+
+QVariant FluTreeModel::selectionModel(){
+ QList data;
+ foreach (auto item, _dataSource) {
+ if (item->checked()) {
+ data.append(item);
+ }
+ }
+ return QVariant::fromValue(data);
+}
diff --git a/src/FluTreeModel.h b/src/FluTreeModel.h
index 07eb6ed6..d8eda4f5 100644
--- a/src/FluTreeModel.h
+++ b/src/FluTreeModel.h
@@ -89,7 +89,6 @@ public:
class FluTreeModel : public QAbstractItemModel {
Q_OBJECT
Q_PROPERTY_AUTO(int, dataSourceSize)
-Q_PROPERTY_AUTO(QList, selectionModel)
Q_PROPERTY_AUTO(QList, columnSource)
QML_NAMED_ELEMENT(FluTreeModel)
QML_ADDED_IN_MINOR_VERSION(1)
@@ -141,6 +140,8 @@ public:
Q_INVOKABLE void allCollapse();
+ Q_INVOKABLE QVariant selectionModel();
+
private:
QList _rows;
QList _dataSource;
diff --git a/src/Qt5/imports/FluentUI/Controls/FluTreeView.qml b/src/Qt5/imports/FluentUI/Controls/FluTreeView.qml
index 765d3793..c74872a9 100644
--- a/src/Qt5/imports/FluentUI/Controls/FluTreeView.qml
+++ b/src/Qt5/imports/FluentUI/Controls/FluTreeView.qml
@@ -12,7 +12,6 @@ Rectangle {
property int cellHeight: 30
property int depthPadding: 15
property bool checkable: false
- property alias selectionModel: tree_model.selectionModel
property color lineColor: FluTheme.dividerColor
property color borderColor: FluTheme.dark ? Qt.rgba(37/255,37/255,37/255,1) : Qt.rgba(228/255,228/255,228/255,1)
property color selectedBorderColor: FluTheme.primaryColor
@@ -739,4 +738,7 @@ Rectangle {
d.editPosition = undefined
d.editDelegate = undefined
}
+ function selectionModel(){
+ return tree_model.selectionModel()
+ }
}
diff --git a/src/Qt6/imports/FluentUI/Controls/FluTreeView.qml b/src/Qt6/imports/FluentUI/Controls/FluTreeView.qml
index c504b25e..47fbb0a1 100644
--- a/src/Qt6/imports/FluentUI/Controls/FluTreeView.qml
+++ b/src/Qt6/imports/FluentUI/Controls/FluTreeView.qml
@@ -12,7 +12,6 @@ Rectangle {
property int cellHeight: 30
property int depthPadding: 15
property bool checkable: false
- property alias selectionModel: tree_model.selectionModel
property color lineColor: FluTheme.dividerColor
property color borderColor: FluTheme.dark ? Qt.rgba(37/255,37/255,37/255,1) : Qt.rgba(228/255,228/255,228/255,1)
property color selectedBorderColor: FluTheme.primaryColor
@@ -739,4 +738,7 @@ Rectangle {
d.editPosition = undefined
d.editDelegate = undefined
}
+ function selectionModel(){
+ return tree_model.selectionModel()
+ }
}