diff --git a/libs/rtemodel/src/RtePackage.cpp b/libs/rtemodel/src/RtePackage.cpp index 4b8b25977..323ac77e8 100644 --- a/libs/rtemodel/src/RtePackage.cpp +++ b/libs/rtemodel/src/RtePackage.cpp @@ -1175,9 +1175,12 @@ bool RtePackageFilter::IsPackageFiltered(const string& packId) const } if (!IsUseAllPacks()) { string commonId = RtePackage::CommonIdFromId(packId); - if (m_latestPacks.find(commonId) == m_latestPacks.end()) + if(IsPackageSelected(commonId) && contains_key(m_latestInstalledPacks, packId)) { + return true; // pack is explicitly selected as a common ID + } + if(!contains_key(m_latestPacks, commonId)) { return false; - + } for (auto& it : m_selectedPacks) { string id = RtePackage::CommonIdFromId(it); if (id == commonId) { @@ -1185,7 +1188,7 @@ bool RtePackageFilter::IsPackageFiltered(const string& packId) const } } } - if(m_latestInstalledPacks.find(packId) != m_latestInstalledPacks.end()) { + if(contains_key(m_latestInstalledPacks, packId)) { return true; } return false; diff --git a/tools/projmgr/src/ProjMgrRpcServer.cpp b/tools/projmgr/src/ProjMgrRpcServer.cpp index 5c9e78481..4e586e6bc 100644 --- a/tools/projmgr/src/ProjMgrRpcServer.cpp +++ b/tools/projmgr/src/ProjMgrRpcServer.cpp @@ -307,12 +307,17 @@ void RpcHandler::UpdateFilter(const string& context, RteTarget* rteTarget, bool // construct and apply filter // use resolved pack ID's from selected references set packIds; + set latestIds; for(auto& ref : GetPackReferences(context)) { if(ref.selected && ref.resolvedPack.has_value()) { - packIds.insert(ref.resolvedPack.value()); + auto& packId = ref.resolvedPack.value(); + packIds.insert(packId); + string commonId = RtePackage::CommonIdFromId(packId); + latestIds.insert(commonId); } } packFilter.SetSelectedPackages(packIds); + packFilter.SetLatestPacks(latestIds); packFilter.SetUseAllPacks(all); // only update filter if differs from current state