diff --git a/src/controller/WorkbenchNavController.cpp b/src/controller/WorkbenchNavController.cpp index 74c286a..4739b3b 100644 --- a/src/controller/WorkbenchNavController.cpp +++ b/src/controller/WorkbenchNavController.cpp @@ -50,6 +50,7 @@ void WorkbenchNavController::loadProjectsAndStructure() { return; } lastProjects_ = ps.value.rows; + tmExceptionCache_.clear(); QString curP; if (!ps.value.rows.empty()) { const auto& first = ps.value.rows.front(); @@ -66,7 +67,6 @@ void WorkbenchNavController::loadProjectsAndStructure() { if (curP.isEmpty()) { lastStructNodes_.clear(); - tmExceptionCache_.clear(); emit structureLoaded(QString(), {}); // 暂无项目 → 空树 return; } @@ -186,12 +186,12 @@ void WorkbenchNavController::setCheckedTms(const QStringList& tmObjectIds) { } it = tmExceptionCache_.emplace(tm, ex.value).first; } - const auto grouped = data::dto::groupExceptionsByConsortium(it->second); + auto grouped = data::dto::groupExceptionsByConsortium(it->second); data::ObjectExceptionGroup g; g.objectId = tm; g.objectName = nameOf(tm); - g.consortia = grouped.consortia; - g.looseExceptions = grouped.loose; + g.consortia = std::move(grouped.consortia); + g.looseExceptions = std::move(grouped.loose); total += static_cast(it->second.size()); groups.push_back(std::move(g)); } diff --git a/src/controller/WorkbenchNavController.hpp b/src/controller/WorkbenchNavController.hpp index 52616ba..2f28103 100644 --- a/src/controller/WorkbenchNavController.hpp +++ b/src/controller/WorkbenchNavController.hpp @@ -40,7 +40,7 @@ signals: void filesLoaded(const QString& tmObjectId, const std::vector& rows, int total, bool append); void objectDetailLoaded(const QString& title, const geopro::data::DynamicForm& form); - void exceptionTreeLoaded(const std::vector& groups, int tmCount); + void exceptionTreeLoaded(const std::vector& groups, int exceptionCount); void datasetDetailLoaded(const geopro::data::DynamicForm& form); void loadFailed(const QString& stage, const QString& message);