From 94a5d5c69f3253edeb4526df817fc11c0df8cb32 Mon Sep 17 00:00:00 2001 From: Sander Speetjens Date: Thu, 22 Aug 2024 10:02:37 +0200 Subject: [PATCH] sim base add is_ui_id_unique implement it in the add_ui_item function --- tools/simulator_base.cpp | 14 ++++++++++++++ tools/simulator_base.hpp | 2 ++ 2 files changed, 16 insertions(+) diff --git a/tools/simulator_base.cpp b/tools/simulator_base.cpp index 9096ec0..dfa4600 100644 --- a/tools/simulator_base.cpp +++ b/tools/simulator_base.cpp @@ -11,8 +11,22 @@ std::string Simulator_base::name() const { return p_name; } +bool Simulator_base::is_ui_id_unique(std::string id) const { + // Check if the UI name is unique + for (UI_item* item : p_UI_items) { + if (item->id() == id) { + return false; + } + } + + return true; +} + void Simulator_base::add_UI_item(UI_item* item) { // Add a UI item to the simulator + if (is_ui_id_unique(item->id()) == false) { + throw std::runtime_error("UI item id " + item->id() + " is not unique"); + } p_UI_items_map[item->id()] = item; p_UI_items.push_back(item); } diff --git a/tools/simulator_base.hpp b/tools/simulator_base.hpp index b677024..a510f7a 100644 --- a/tools/simulator_base.hpp +++ b/tools/simulator_base.hpp @@ -10,6 +10,8 @@ class Simulator_base { std::string name() const; + bool is_ui_id_unique(std::string id) const; + void add_UI_item(UI_item* item); json get_UI_items() const;