From a95916ab038b7625c13d9d21ee76ec7e971163e8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9C=B1=E5=AD=90=E6=A5=9A=5Czhuzi?= Date: Wed, 3 Apr 2024 11:19:35 +0800 Subject: [PATCH] update --- ...rWindow.qml => FluentInitializrWindow.qml} | 8 +-- src/FluTreeModel.cpp | 58 +++++++++---------- src/FluTreeModel.h | 26 ++++----- 3 files changed, 46 insertions(+), 46 deletions(-) rename example/qml/window/{FluentInitalizrWindow.qml => FluentInitializrWindow.qml} (93%) diff --git a/example/qml/window/FluentInitalizrWindow.qml b/example/qml/window/FluentInitializrWindow.qml similarity index 93% rename from example/qml/window/FluentInitalizrWindow.qml rename to example/qml/window/FluentInitializrWindow.qml index 99e1118d..7f4f8e9d 100644 --- a/example/qml/window/FluentInitalizrWindow.qml +++ b/example/qml/window/FluentInitializrWindow.qml @@ -8,14 +8,14 @@ import "../component" FluWindowDialog { id:window - title:qsTr("FluentUI Initalizr") + title:qsTr("FluentUI Initializr") width: 600 height: 400 contentDelegate:Component{ Item{ Connections{ - target: InitalizrHelper + target: InitializrHelper function onError(message){ showError(message) } @@ -27,7 +27,7 @@ FluWindowDialog { FluText{ id:text_title - text:qsTr("FluentUI Initalizr") + text:qsTr("FluentUI Initializr") font: FluTextStyle.Title anchors{ left: parent.left @@ -102,7 +102,7 @@ FluWindowDialog { width: 120 anchors.verticalCenter: parent.verticalCenter onClicked: { - InitalizrHelper.generate(text_box_name.text,text_box_path.text) + InitializrHelper.generate(text_box_name.text,text_box_path.text) } } } diff --git a/src/FluTreeModel.cpp b/src/FluTreeModel.cpp index 57d74164..1865dd66 100644 --- a/src/FluTreeModel.cpp +++ b/src/FluTreeModel.cpp @@ -2,7 +2,7 @@ #include -FluNode::FluNode(QObject *parent): QObject{parent}{ +FluTreeNode::FluTreeNode(QObject *parent): QObject{parent}{ } FluTreeModel::FluTreeModel(QObject *parent): QAbstractItemModel{parent}{ @@ -41,7 +41,7 @@ QHash FluTreeModel::roleNames() const { return { {Qt::DisplayRole, "dataModel"} }; }; -void FluTreeModel::setData(QList data){ +void FluTreeModel::setData(QList data){ beginResetModel(); _rows = data; endResetModel(); @@ -51,20 +51,20 @@ void FluTreeModel::removeRows(int row,int count){ if (row < 0 || row + count > _rows.size() || count==0) return; beginRemoveRows(QModelIndex(),row, row + count - 1); - QList firstPart = _rows.mid(0,row); - QList secondPart = _rows.mid(row + count); + QList firstPart = _rows.mid(0,row); + QList secondPart = _rows.mid(row + count); _rows.clear(); _rows.append(firstPart); _rows.append(secondPart); endRemoveRows(); } -void FluTreeModel::insertRows(int row,QList data){ +void FluTreeModel::insertRows(int row,QList data){ if (row < 0 || row > _rows.size() || data.size() == 0) return;; beginInsertRows(QModelIndex(), row, row + data.size() - 1); - QList firstPart = _rows.mid(0, row); - QList secondPart = _rows.mid(row); + QList firstPart = _rows.mid(0, row); + QList secondPart = _rows.mid(row); _rows.clear(); _rows.append(firstPart); _rows.append(data); @@ -79,7 +79,7 @@ QObject* FluTreeModel::getRow(int row){ void FluTreeModel::checkRow(int row,bool checked){ auto itemData = _rows.at(row); if(itemData->hasChildren()){ - QList stack = itemData->_children; + QList stack = itemData->_children; std::reverse(stack.begin(), stack.end()); while (stack.count() > 0) { auto item = stack.at(stack.count()-1); @@ -87,7 +87,7 @@ void FluTreeModel::checkRow(int row,bool checked){ if(!item->hasChildren()){ item->_checked = checked; } - QList children = item->_children; + QList children = item->_children; if(!children.isEmpty()){ std::reverse(children.begin(), children.end()); foreach (auto c, children) { @@ -101,8 +101,8 @@ void FluTreeModel::checkRow(int row,bool checked){ } itemData->_checked = checked; } - Q_EMIT layoutChanged(QList(),QAbstractItemModel::VerticalSortHint); - QList data; + Q_EMIT layoutChanged(); + QList data; foreach (auto item, _dataSource) { if(!item->hasChildren()){ if(item->_checked){ @@ -119,16 +119,16 @@ void FluTreeModel::setDataSource(QList> data){ delete _root; _root = nullptr; } - _root = new FluNode(this); + _root = new FluTreeNode(this); std::reverse(data.begin(), data.end()); while (data.count() > 0) { auto item = data.at(data.count()-1); data.pop_back(); - FluNode* node = new FluNode(this); + FluTreeNode* node = new FluTreeNode(this); node->_title = item.value("title").toString(); node->_key = item.value("key").toString(); node->_depth = item.value("__depth").toInt(); - node->_parent = item.value("__parent").value(); + node->_parent = item.value("__parent").value(); node->_isExpanded = true; if(node->_parent){ node->_parent->_children.append(node); @@ -181,8 +181,8 @@ void FluTreeModel::expand(int row){ _rows.at(row)->_isExpanded = true; Q_EMIT dataChanged(index(row,0),index(row,0)); auto modelData = _rows.at(row); - QList insertData; - QList stack = modelData->_children; + QList insertData; + QList stack = modelData->_children; std::reverse(stack.begin(), stack.end()); while (stack.count() > 0) { auto item = stack.at(stack.count()-1); @@ -190,7 +190,7 @@ void FluTreeModel::expand(int row){ if(item->isShown()){ insertData.append(item); } - QList children = item->_children; + QList children = item->_children; if(!children.isEmpty()){ std::reverse(children.begin(), children.end()); foreach (auto c, children) { @@ -242,7 +242,7 @@ void FluTreeModel::dragAndDrop(int dragIndex,int dropIndex,bool isDropTopArea){ Q_EMIT layoutAboutToBeChanged(); if(dragItem->_parent == dropItem->_parent){ - QList* children = &(dragItem->_parent->_children); + QList* children = &(dragItem->_parent->_children); int srcIndex = children->indexOf(dragItem); int destIndex = children->indexOf(dropItem); if(dropIndex > dragIndex){ @@ -260,14 +260,14 @@ void FluTreeModel::dragAndDrop(int dragIndex,int dropIndex,bool isDropTopArea){ } children->move(srcIndex,targetIndex); }else{ - QList* srcChildren = &(dragItem->_parent->_children); - QList* destChildren = &(dropItem->_parent->_children); + QList* srcChildren = &(dragItem->_parent->_children); + QList* destChildren = &(dropItem->_parent->_children); int srcIndex = srcChildren->indexOf(dragItem); int destIndex = destChildren->indexOf(dropItem); dragItem->_depth = dropItem->_depth; dragItem->_parent = dropItem->_parent; if(dragItem->hasChildren()){ - QList stack = dragItem->_children; + QList stack = dragItem->_children; foreach (auto node, stack) { node->_depth = dragItem->_depth+1; } @@ -275,7 +275,7 @@ void FluTreeModel::dragAndDrop(int dragIndex,int dropIndex,bool isDropTopArea){ while (stack.count() > 0) { auto item = stack.at(stack.count()-1); stack.pop_back(); - QList children = item->_children; + QList children = item->_children; if(!children.isEmpty()){ std::reverse(children.begin(), children.end()); foreach (auto c, children) { @@ -302,7 +302,7 @@ void FluTreeModel::dragAndDrop(int dragIndex,int dropIndex,bool isDropTopArea){ destChildren->insert(targetIndex,dragItem); } changePersistentIndex(index(qMin(dragIndex,dropIndex),0),index(qMax(dragIndex,dropIndex),0)); - Q_EMIT layoutChanged(QList(),QAbstractItemModel::VerticalSortHint); + Q_EMIT layoutChanged(); } @@ -318,14 +318,14 @@ void FluTreeModel::refreshNode(int row){ Q_EMIT dataChanged(index(row,0),index(row,0)); }; -FluNode* FluTreeModel::getNode(int row){ +FluTreeNode* FluTreeModel::getNode(int row){ return _rows.at(row); } void FluTreeModel::allExpand(){ beginResetModel(); - QList data; - QList stack = _root->_children; + QList data; + QList stack = _root->_children; std::reverse(stack.begin(), stack.end()); while (stack.count() > 0) { auto item = stack.at(stack.count()-1); @@ -334,7 +334,7 @@ void FluTreeModel::allExpand(){ item->_isExpanded = true; } data.append(item); - QList children = item->_children; + QList children = item->_children; if(!children.isEmpty()){ std::reverse(children.begin(), children.end()); foreach (auto c, children) { @@ -347,7 +347,7 @@ void FluTreeModel::allExpand(){ } void FluTreeModel::allCollapse(){ beginResetModel(); - QList stack = _root->_children; + QList stack = _root->_children; std::reverse(stack.begin(), stack.end()); while (stack.count() > 0) { auto item = stack.at(stack.count()-1); @@ -355,7 +355,7 @@ void FluTreeModel::allCollapse(){ if(item->hasChildren()){ item->_isExpanded = false; } - QList children = item->_children; + QList children = item->_children; if(!children.isEmpty()){ std::reverse(children.begin(), children.end()); foreach (auto c, children) { diff --git a/src/FluTreeModel.h b/src/FluTreeModel.h index ddaccd81..9b588d3d 100644 --- a/src/FluTreeModel.h +++ b/src/FluTreeModel.h @@ -8,9 +8,9 @@ #include "stdafx.h" /** - * @brief The FluNode class + * @brief The FluTreeNode class */ -class FluNode : public QObject{ +class FluTreeNode : public QObject{ Q_OBJECT Q_PROPERTY(QString key READ key CONSTANT) Q_PROPERTY(QString title READ title CONSTANT) @@ -18,14 +18,14 @@ class FluNode : public QObject{ Q_PROPERTY(bool isExpanded READ isExpanded CONSTANT) Q_PROPERTY(bool checked READ checked CONSTANT) public: - explicit FluNode(QObject *parent = nullptr); + explicit FluTreeNode(QObject *parent = nullptr); Q_INVOKABLE QString key(){return _key;}; Q_INVOKABLE QString title(){return _title;}; Q_INVOKABLE int depth(){return _depth;}; Q_INVOKABLE bool isExpanded(){return _isExpanded;}; Q_INVOKABLE bool hasChildren(){ return !_children.isEmpty();}; Q_INVOKABLE bool hasNextNodeByIndex(int index){ - FluNode* p = this; + FluTreeNode* p = this; for(int i=0;i<(_depth - index -1);i++){ p = p->_parent; } @@ -75,15 +75,15 @@ public: int _depth=0; bool _checked = false; bool _isExpanded=true; - QList _children; - FluNode* _parent = nullptr; + QList _children; + FluTreeNode* _parent = nullptr; }; class FluTreeModel : public QAbstractItemModel { Q_OBJECT Q_PROPERTY_AUTO(int,dataSourceSize) - Q_PROPERTY_AUTO(QList,selectionModel) + Q_PROPERTY_AUTO(QList,selectionModel) QML_NAMED_ELEMENT(FluTreeModel) QML_ADDED_IN_MINOR_VERSION(1) public: @@ -96,23 +96,23 @@ public: QModelIndex index(int row, int column,const QModelIndex &parent = QModelIndex()) const override; Q_INVOKABLE void removeRows(int row,int count); - Q_INVOKABLE void insertRows(int row,QList data); + Q_INVOKABLE void insertRows(int row,QList data); Q_INVOKABLE QObject* getRow(int row); - Q_INVOKABLE void setData(QList data); + Q_INVOKABLE void setData(QList data); Q_INVOKABLE void setDataSource(QList> data); Q_INVOKABLE void collapse(int row); Q_INVOKABLE void expand(int row); Q_INVOKABLE void dragAndDrop(int dragIndex,int dropIndex,bool isDropTopArea); - Q_INVOKABLE FluNode* getNode(int row); + Q_INVOKABLE FluTreeNode* getNode(int row); Q_INVOKABLE void refreshNode(int row); Q_INVOKABLE void checkRow(int row,bool checked); Q_INVOKABLE bool hitHasChildrenExpanded(int row); Q_INVOKABLE void allExpand(); Q_INVOKABLE void allCollapse(); private: - QList _rows; - QList _dataSource; - FluNode* _root = nullptr; + QList _rows; + QList _dataSource; + FluTreeNode* _root = nullptr; }; #endif // FLUTREEMODEL_H