From cdd4df09caddeef9de3e614c30ce05199ab1f96c Mon Sep 17 00:00:00 2001 From: Ralph Wessel Date: Wed, 6 Nov 2024 19:18:37 +0000 Subject: [PATCH] Added setDefaultTable and getDefaultTable for BIMElementDatabase --- .../Speckle/Database/BIMElementDatabase.cpp | 20 +++++++++++++++++++ .../Speckle/Database/BIMElementDatabase.h | 10 ++++++++++ .../Element/ArchicadElementDBaseEngine.cpp | 20 +++++++++++++++++++ .../Element/ArchicadElementDBaseEngine.h | 10 ++++++++++ 4 files changed, 60 insertions(+) diff --git a/SpeckleLib/Speckle/Database/BIMElementDatabase.cpp b/SpeckleLib/Speckle/Database/BIMElementDatabase.cpp index 63d3fa7..9837c54 100644 --- a/SpeckleLib/Speckle/Database/BIMElementDatabase.cpp +++ b/SpeckleLib/Speckle/Database/BIMElementDatabase.cpp @@ -88,6 +88,26 @@ BIMRecordIDList BIMElementDatabase::getTables(std::optional targetTyp } //BIMElementDatabase::getTables +/*-------------------------------------------------------------------- + Get the default dbase table + + return: The default dbase table (nullopt if no table is available) + --------------------------------------------------------------------*/ +std::optional BIMElementDatabase::getDefaultTable() const { + return m_engine->getDefaultTable(); +} //BIMElementDatabase::getDefaultTable + + +/*-------------------------------------------------------------------- + Set the default dbase table + + tableID: The new default dbase table + --------------------------------------------------------------------*/ +void BIMElementDatabase::setDefaultTable(const BIMRecordID& tableID) const { + m_engine->setDefaultTable(tableID); +} //BIMElementDatabase::setDefaultTable + + /*-------------------------------------------------------------------- Bring the view of this database to the front (i.e. so the user sees it) diff --git a/SpeckleLib/Speckle/Database/BIMElementDatabase.h b/SpeckleLib/Speckle/Database/BIMElementDatabase.h index 08a217d..000612e 100644 --- a/SpeckleLib/Speckle/Database/BIMElementDatabase.h +++ b/SpeckleLib/Speckle/Database/BIMElementDatabase.h @@ -43,6 +43,16 @@ namespace speckle::database { @return A set of available tables */ BIMRecordIDList getTables(std::optional targetType) const; + /*! + Get the default dbase table + @return The default dbase table (nullopt if no table is available) + */ + std::optional getDefaultTable() const; + /*! + Set the default dbase table + @param tableID The new default dbase table + */ + void setDefaultTable(const BIMRecordID& tableID) const; /*! Bring the view of this database to the front (i.e. so the user sees it) @param tableID The ID of the table to bring to the front diff --git a/SpeckleLib/Speckle/Database/Storage/ArchicadDBase/Element/ArchicadElementDBaseEngine.cpp b/SpeckleLib/Speckle/Database/Storage/ArchicadDBase/Element/ArchicadElementDBaseEngine.cpp index ba51137..bf7cc25 100644 --- a/SpeckleLib/Speckle/Database/Storage/ArchicadDBase/Element/ArchicadElementDBaseEngine.cpp +++ b/SpeckleLib/Speckle/Database/Storage/ArchicadDBase/Element/ArchicadElementDBaseEngine.cpp @@ -212,6 +212,26 @@ ArchicadElementDBaseEngine::TableIDList ArchicadElementDBaseEngine::getTables(st } //ArchicadElementDBaseEngine::getTables +/*-------------------------------------------------------------------- + Get the default dbase table + + return: The default dbase table (nullopt if no table is available) + --------------------------------------------------------------------*/ +std::optional ArchicadElementDBaseEngine::getDefaultTable() const { + return ArchicadElementDBaseEngine::getActiveTable(); +} //ArchicadElementDBaseEngine::getDefaultTable + + +/*-------------------------------------------------------------------- + Set the default dbase table + + tableID: The new default dbase table + --------------------------------------------------------------------*/ +void ArchicadElementDBaseEngine::setDefaultTable(const BIMRecordID& tableID) const { + setActiveTable(tableID); +} //ArchicadElementDBaseEngine::setDefaultTable + + /*-------------------------------------------------------------------- Find a filtered list of objects diff --git a/SpeckleLib/Speckle/Database/Storage/ArchicadDBase/Element/ArchicadElementDBaseEngine.h b/SpeckleLib/Speckle/Database/Storage/ArchicadDBase/Element/ArchicadElementDBaseEngine.h index de703a8..ef50f8c 100644 --- a/SpeckleLib/Speckle/Database/Storage/ArchicadDBase/Element/ArchicadElementDBaseEngine.h +++ b/SpeckleLib/Speckle/Database/Storage/ArchicadDBase/Element/ArchicadElementDBaseEngine.h @@ -79,6 +79,16 @@ namespace speckle::database { @return A list of available tables */ TableIDList getTables(std::optional targetType) const override; + /*! + Get the default dbase table + @return The default dbase table (nullopt if no table is available) + */ + std::optional getDefaultTable() const; + /*! + Set the default dbase table + @param tableID The new default dbase table + */ + void setDefaultTable(const BIMRecordID& tableID) const; /*! Find a filtered list of objects @param filter The object filter (nullptr = find all objects)