diff --git a/source/RobotAPI/libraries/armem_gui/memory/TreeWidget.cpp b/source/RobotAPI/libraries/armem_gui/memory/TreeWidget.cpp index 49c9b9807ed4350a79579ec2d7af5dfd814aacfe..314cd4d4ab3658b7566ba35c6e89309a174e4f19 100644 --- a/source/RobotAPI/libraries/armem_gui/memory/TreeWidget.cpp +++ b/source/RobotAPI/libraries/armem_gui/memory/TreeWidget.cpp @@ -299,16 +299,18 @@ namespace armarx::armem::gui::memory (void) level, (void) item; } - template <class... T> - void TreeWidget::updateContainerItem( - const base::detail::MemoryContainerBase<T...>& container, QTreeWidgetItem* item) + template <class ContainerT> + void TreeWidget::updateContainerItem(const ContainerT& container, QTreeWidgetItem* item) { + ARMARX_IMPORTANT << "Updating container " << container.id(); updateItemItem(container, item); item->setText(int(Columns::SIZE), QString::number(container.size())); - if constexpr(std::is_base_of_v<base::detail::AronTyped, base::detail::MemoryContainerBase<T...>>) + // Does not work + if constexpr(std::is_base_of_v<base::detail::AronTyped, ContainerT>) { - const base::detail::AronTyped& cast = dynamic_cast<const base::detail::AronTyped&>(container); + ARMARX_IMPORTANT << "Updating type of container " << container.id(); + const base::detail::AronTyped& cast = static_cast<const base::detail::AronTyped&>(container); std::string typeName; if (cast.aronType()) { diff --git a/source/RobotAPI/libraries/armem_gui/memory/TreeWidget.h b/source/RobotAPI/libraries/armem_gui/memory/TreeWidget.h index 94b1f6a4ea1c49d764eebf0615c5d7ef926966d7..75f56c9ace248e58daf3f7ee3ac69baa12b0edfe 100644 --- a/source/RobotAPI/libraries/armem_gui/memory/TreeWidget.h +++ b/source/RobotAPI/libraries/armem_gui/memory/TreeWidget.h @@ -71,8 +71,8 @@ namespace armarx::armem::gui::memory QTreeWidgetItem* makeItem(const std::string& key, const std::string& levelName, const MemoryID& id); void updateItemItem(const armem::base::detail::MemoryItem& level, QTreeWidgetItem* item); - template <class... T> - void updateContainerItem(const armem::base::detail::MemoryContainerBase<T...>& container, QTreeWidgetItem* item); + template <class ContainerT> + void updateContainerItem(const ContainerT& container, QTreeWidgetItem* item); private: