1#ifndef LIBS_PANELS_CPANELLOGICSEDITOR_HPP_
2#define LIBS_PANELS_CPANELLOGICSEDITOR_HPP_
52 bool loadLibrary(
const std::string &libraryFile, std::string &libraryName, std::string &resultMsg);
69 [[nodiscard]] std::string
70 getLibraryName(std::optional<iv::types::logic::customBlockId> libraryId = std::nullopt)
const;
71 [[nodiscard]] std::string
72 getLibraryFileName(std::optional<iv::types::logic::customBlockId> libraryId = std::nullopt)
const;
167 m_panelDrawingArea = std::make_unique<CPanelLogicsDrawingArea>(drawingAreaModel, panelLogicsEditor);
197 bool prvAddLibrary(uint16_t idLibrary,
const std::string &name,
const std::string &file);
259 std::map<CDrawLogicsElements::TTupleElementType, CLogicsDrawingAreaModel::EActionOnLogicsComponent>
EContextMenu
Definition CPanelsLogicsLibraries.hpp:8
uint32_t TId
Definition AbstractCanvasItem.hpp:47
Definition AbstractComponentGUI.hpp:30
Definition AbstractViewPanelEditor.hpp:12
Definition CComboBox.hpp:48
Definition CDialog.hpp:21
std::tuple< iv::logic::eLogicsElementType, iv::logic::eGeneralType, iv::types::logic::componentType > TTupleElementType
Definition CDrawLogicsElements.hpp:59
Definition CLogicsAllowed.hpp:22
std::map< iv::logic::ParamId, std::string > TMapDBBlockParamNStr
Definition CLogicsAllowed.hpp:25
EActionOnLogicsComponent
Definition CLogicsDrawingAreaModel.hpp:40
Definition CPanelLogicsDrawingArea.hpp:24
Definition CPanelLogicsEditor.hpp:37
AbstractComponentGUI * prvPanelInfoLogic()
Definition CPanelLogicsEditor.cpp:2749
static bool hasLogicLibrary(iv::units::eUnitType unitType)
Definition CPanelLogicsEditor.cpp:2254
static bool updateVariableOnlineLibraryTagName(std::optional< iv::types::unitId > logicId, const iv::types::logic::libraryTagName &oldTagLibraryBlock, const iv::types::logic::libraryTagName &newTagLibraryBlock)
Definition CPanelLogicsEditor.cpp:994
void prvBuildContextMenuBasicBlock()
Definition CPanelLogicsEditor.cpp:1981
static AbstractComponentGUI * panelEditLibraryName(std::string *libraryName, bool requiresChangeName=false)
Definition CPanelLogicsEditor.cpp:1611
void runDoubleClickAction(const CDrawLogicsElements::TTupleElementType &elementType)
Definition CPanelLogicsEditor.cpp:1217
void prvPopulateAllModulesComboBox()
Definition CPanelLogicsEditor.cpp:1517
void prvBuildDoubleClickAction()
Definition CPanelLogicsEditor.cpp:2166
AbstractComponentGUI * prvBuildDrawingArea(std::optional< iv::types::unitId > logicId)
Definition CPanelLogicsEditor.cpp:1737
std::shared_ptr< CLogicsDrawingAreaModel > getActiveDrawingAreaModel() const
Definition CPanelLogicsEditor.cpp:1172
std::optional< iv::math::geometry::Point2d > m_pointForCurrentContextMenu
Definition CPanelLogicsEditor.hpp:257
CPaned * m_panedRef
Definition CPanelLogicsEditor.hpp:253
AbstractComponentGUI * prvPanelChangeLogicOrder()
Definition CPanelLogicsEditor.cpp:3493
void prvBuildContextMenuLogicText()
Definition CPanelLogicsEditor.cpp:1942
void prvDeleteLibrariesOfDeletedLibraries()
Definition CPanelLogicsEditor.cpp:1402
void setActiveLogicId(std::optional< iv::types::unitId > logicId)
Definition CPanelLogicsEditor.cpp:705
AbstractComponentGUI * prvPanelLibraryButtons()
Definition CPanelLogicsEditor.cpp:3448
bool prvAddLibrary(uint16_t idLibrary, const std::string &name, const std::string &file)
Definition CPanelLogicsEditor.cpp:2302
bool saveFileActiveLibrary(const std::string &fileName, std::string &resultMsg) const
Definition CPanelLogicsEditor.cpp:3574
std::map< CDrawLogicsElements::TTupleElementType, CLogicsDrawingAreaModel::EActionOnLogicsComponent > m_doubleClickActions
Definition CPanelLogicsEditor.hpp:260
void prvBuildContextMenus()
Definition CPanelLogicsEditor.cpp:1882
void prvUpdateLogicComboBoxModules()
Definition CPanelLogicsEditor.cpp:1589
void setActiveLOMType(std::optional< iv::units::eUnitType > lomType)
Definition CPanelLogicsEditor.cpp:837
std::unique_ptr< SPrvDrawingArea > m_startingEmptyDrawingArea
Definition CPanelLogicsEditor.hpp:251
void prvUpdateLogicComboBoxUnits()
Definition CPanelLogicsEditor.cpp:1538
~CPanelLogicsEditor() override
Definition CPanelLogicsEditor.cpp:596
CLogicsAllowed::TMapDBBlockParamNStr getLibraryParametersDesc(iv::types::logic::customBlockId libraryId) const
Definition CPanelLogicsEditor.cpp:843
void update() override
Definition CPanelLogicsEditor.cpp:679
void setPointClickedForCurrentContextMenu(iv::math::geometry::Point2d pointClicked)
Definition CPanelLogicsEditor.cpp:1231
AbstractComponentGUI * prvBuildToolBox()
Definition CPanelLogicsEditor.cpp:1639
AbstractComponentGUI * prvBuildDrawingAreaLibrary(std::optional< iv::types::unitId > logicId)
Definition CPanelLogicsEditor.cpp:1785
bool renameLibrary(const std::string &name)
iv::types::logic::componentType getSelectedComponentTType() const
Definition CPanelLogicsEditor.cpp:1266
std::optional< iv::types::unitId > m_activeLogicId
Definition CPanelLogicsEditor.hpp:241
iv::types::logic::componentFinalType getSelectedComponentTFinalType() const
Definition CPanelLogicsEditor.cpp:1271
void generateLogicsGenerationParams(const iv::logic::LogicGenerationParams &generationParams)
Generates the logic generation parameters for the given generationParams.
Definition CPanelLogicsEditor.cpp:3665
bool isLibrary() const
Definition CPanelLogicsEditor.cpp:957
SLogicsToolBox * m_toolBox
Definition CPanelLogicsEditor.hpp:246
std::string getLibraryName(std::optional< iv::types::logic::customBlockId > libraryId=std::nullopt) const
Definition CPanelLogicsEditor.cpp:891
std::optional< iv::units::eUnitType > getActiveLomType() const
Definition CPanelLogicsEditor.cpp:873
CPanelLogicsEditor(const CPanelLogicsEditor &other)=delete
void prvUpdateLogicComboBoxLibraries()
Definition CPanelLogicsEditor.cpp:1569
CLogicsAllowed::TMapDBBlockParamNStr getLibraryExternalParametersValues(iv::types::logic::customBlockId libraryId) const
Definition CPanelLogicsEditor.cpp:854
void prvBuildContextMenuBackground()
Definition CPanelLogicsEditor.cpp:1902
void prvBuildContextMenuLabel()
Definition CPanelLogicsEditor.cpp:2090
std::string m_libraryNameToSelectOpt
Definition CPanelLogicsEditor.hpp:262
void setFunctionalBarSelectedLogicId(std::optional< iv::types::unitId > logicId) const
Definition CPanelLogicsEditor.cpp:962
iv::types::logic::customBlockId getFirstFreeIdLibrary()
Definition CPanelLogicsEditor.cpp:878
std::string getLibraryFileName(std::optional< iv::types::logic::customBlockId > libraryId=std::nullopt) const
Definition CPanelLogicsEditor.cpp:913
CPanelLogicsEditor & operator=(const CPanelLogicsEditor &other)=delete
CPanelLogicsEditor(CPanelLogicsEditor &&other)=delete
CPanelLogicsEditor()=delete
bool isSelectedLCALeaf() const
Definition CPanelLogicsEditor.cpp:1276
void grabFocusCanvas(std::optional< iv::types::unitId > logicId)
Definition CPanelLogicsEditor.cpp:1182
void prvPopulateAllLibrariesComboBox()
Definition CPanelLogicsEditor.cpp:1475
void setActiveUnitId(std::optional< iv::types::unitId > logicId)
Definition CPanelLogicsEditor.cpp:717
void setActiveLibraryById(std::optional< iv::types::unitId > idLibrary)
Definition CPanelLogicsEditor.cpp:783
bool m_searchTagsAndLabelsRepeatFlag
Definition CPanelLogicsEditor.hpp:244
void setAllowedLogics(const CLogicsAllowed &allowedLogics)
Definition CPanelLogicsEditor.cpp:1708
AbstractComponentGUI * prvBuildFunctionalLayout()
Definition CPanelLogicsEditor.cpp:1281
static uint32_t getIDTypeLOMInDataBase(iv::units::eUnitType unitType)
Definition CPanelLogicsEditor.cpp:2225
void prvComboBoxLogicIdAddNoSelected() const
Definition CPanelLogicsEditor.cpp:1510
void prvUpdateLogicsElements()
Definition CPanelLogicsEditor.cpp:1603
void setElementIdForCurrentContextMenu(AbstractCanvasItem::TId id)
Definition CPanelLogicsEditor.cpp:1226
std::map< EContextMenu, std::unique_ptr< CMenuContext > > m_contextMenus
Definition CPanelLogicsEditor.hpp:255
CLogicsAllowed & m_logicsAllowed
Definition CPanelLogicsEditor.hpp:238
bool deleteCurrentLibrary()
Definition CPanelLogicsEditor.cpp:3528
AbstractComponentGUI * prvPanelCopyLogic()
Definition CPanelLogicsEditor.cpp:3503
void prvBuildContextMenuChannel()
Definition CPanelLogicsEditor.cpp:2008
void prvBuildContextMenuLogicRectangle()
Definition CPanelLogicsEditor.cpp:1959
void showContextMenu(EContextMenu contextMenuType)
Definition CPanelLogicsEditor.cpp:1236
static bool updateLibraryVariablesOnlinesValues(std::optional< iv::types::unitId > logicUnitId, const iv::types::logic::libraryTagName &libraryTagName)
Definition CPanelLogicsEditor.cpp:1065
SPrvLogicsFunctionalBar m_functionalBar
Definition CPanelLogicsEditor.hpp:243
bool cloneLibrary(const std::string &name)
void updateCurrentLibraryFilePath(const std::string &file) const
Definition CPanelLogicsEditor.cpp:3516
AbstractCanvasItem::TId m_elementIdForCurrentContextMenu
Definition CPanelLogicsEditor.hpp:256
AbstractComponentGUI * prvBuildPanedLayout()
Definition CPanelLogicsEditor.cpp:1847
void rebuildToolBox()
Definition CPanelLogicsEditor.cpp:1701
static std::optional< iv::units::eUnitType > getLomTypeFromIdTypeInDataBase(uint32_t idLomType)
Definition CPanelLogicsEditor.cpp:2238
void prvBuildContextMenuConnection()
Definition CPanelLogicsEditor.cpp:2030
LogicLibraryInfo getLibraryInfo(iv::types::logic::customBlockId libraryId, const CLogicsAllowed::TMapDBBlockParamNStr &mapBlockParamsDesc) const
Definition CPanelLogicsEditor.cpp:865
void setFunctionalBarSelectedLOM(std::optional< iv::types::unitId > lomId) const
Definition CPanelLogicsEditor.cpp:972
iv::logic::eGeneralType getSelectedComponentGeneralType() const
Definition CPanelLogicsEditor.cpp:1261
AbstractComponentGUI * prvPanelSortLibraryIOButtons()
Definition CPanelLogicsEditor.cpp:3423
std::optional< iv::types::unitId > getActiveLogicId() const
Definition CPanelLogicsEditor.cpp:1251
void prvBuildContextMenuConst()
Definition CPanelLogicsEditor.cpp:2046
AbstractComponentGUI * buildPanel(CDialog *dialogFather) override
Definition CPanelLogicsEditor.cpp:602
void setSearchTagsAndLabelsRepeatFlag(bool changed)
Definition CPanelLogicsEditor.cpp:982
bool m_isLibrary
Definition CPanelLogicsEditor.hpp:248
std::optional< iv::units::eUnitType > m_activeLomType
Definition CPanelLogicsEditor.hpp:242
void prvPopulateAllUnitsComboBox()
Definition CPanelLogicsEditor.cpp:1437
iv::types::logic::customBlockId getLibraryId(const std::string &libraryName) const
Definition CPanelLogicsEditor.cpp:938
static const int32_t kMinimumWidthToolBox
Definition CPanelLogicsEditor.hpp:39
CLogicsAllowed * getAllowedLogics()
Definition CPanelLogicsEditor.cpp:1713
iv::types::logic::customBlockId m_firstFreeIdLibrary
Definition CPanelLogicsEditor.hpp:240
const iv::types::logic::ComponentType & getSelectedComponentType() const
Definition CPanelLogicsEditor.cpp:1256
bool addLibrary(iv::types::logic::customBlockId idLibrary, const std::string &name, const std::string &file)
Definition CPanelLogicsEditor.cpp:2296
void logicProcessLibLoad()
Definition CPanelLogicsEditor.cpp:655
void prvDeleteLogicsOfDeletedUnits()
Definition CPanelLogicsEditor.cpp:1374
void resetToolBoxSelection()
Definition CPanelLogicsEditor.cpp:1128
void runContextMenuAction(CLogicsDrawingAreaModel::EActionOnLogicsComponent action)
Definition CPanelLogicsEditor.cpp:1199
bool loadLibrary(const std::string &libraryFile, std::string &libraryName, std::string &resultMsg)
Definition CPanelLogicsEditor.cpp:2277
std::map< uint16_t, std::unique_ptr< SPrvDrawingArea > > m_drawingAreas
Definition CPanelLogicsEditor.hpp:250
static bool updateVariableOnlineTag(std::optional< iv::types::unitId > logicUnitId, const iv::types::logic::libraryTagName &libraryTagName, const iv::types::logic::parameterOnlineTag &oldTag, const iv::types::logic::parameterOnlineTag &newTag)
Definition CPanelLogicsEditor.cpp:1045
void prvBuildContextMenuBroadCastChannel()
Definition CPanelLogicsEditor.cpp:2068
void filterAllowedLogicsByLomType(CLogicsAllowed *allowedLogics, std::optional< iv::units::eUnitType > lomType)
Definition CPanelLogicsEditor.cpp:1718
bool getSearchTagsAndLabelsRepeatFlag() const
Definition CPanelLogicsEditor.cpp:1123
void changeToolBox()
Definition CPanelLogicsEditor.cpp:1688
void prvBuildContextMenuLibraryIOBlock()
Definition CPanelLogicsEditor.cpp:2112
static bool removeVariableOnline(std::optional< iv::types::unitId > logicUnitId, const iv::types::logic::libraryTagName &libraryTagName, const iv::types::logic::parameterOnlineTag &tag)
Definition CPanelLogicsEditor.cpp:1100
void prvBuildContextMenuLibrary()
Definition CPanelLogicsEditor.cpp:2134
CPanelLogicsEditor & operator=(CPanelLogicsEditor &&other)=delete
CPanelLogicsDrawingArea * getActiveDrawingArea()
Definition CPanelLogicsEditor.cpp:1162
static bool addVariableOnline(std::optional< iv::types::unitId > logicUnitId, const iv::types::logic::libraryTagName &libraryTagName, const iv::types::logic::parameterOnlineTag &tag)
Definition CPanelLogicsEditor.cpp:1013
Definition LogicLibraryInfo.hpp:95
eGeneralType
Definition enums.hpp:19
uint16_t customBlockId
Definition types.hpp:130
uint32_t componentType
Definition types.hpp:11
std::string libraryTagName
Definition types.hpp:131
uint32_t componentFinalType
Definition types.hpp:12
std::string parameterOnlineTag
Definition types.hpp:132
eUnitType
Definition enums.hpp:8
Definition CPanelLogicsEditor.hpp:163
bool m_isPaned
Definition CPanelLogicsEditor.hpp:194
void setPaned(bool isPaned)
Definition CPanelLogicsEditor.hpp:187
std::unique_ptr< CPanelLogicsDrawingArea > m_panelDrawingArea
Definition CPanelLogicsEditor.hpp:192
SPrvDrawingArea & operator=(SPrvDrawingArea &&other)=delete
SPrvDrawingArea(SPrvDrawingArea &&other)=delete
SPrvDrawingArea(const SPrvDrawingArea &other)=delete
SPrvDrawingArea & operator=(const SPrvDrawingArea &other)=delete
AbstractComponentGUI * m_componentBuiltRef
Definition CPanelLogicsEditor.hpp:193
~SPrvDrawingArea()
Definition CPanelLogicsEditor.hpp:172
SPrvDrawingArea(const std::weak_ptr< CLogicsDrawingAreaModel > &drawingAreaModel, CPanelLogicsEditor *panelLogicsEditor)
Definition CPanelLogicsEditor.hpp:164
Definition CPanelLogicsEditor.hpp:141
CComboBox * m_cmbSelectedLOM
Definition CPanelLogicsEditor.hpp:159
CButton * m_buttonSaveLibrary
Definition CPanelLogicsEditor.hpp:158
CButton * m_buttonLoadLibrary
Definition CPanelLogicsEditor.hpp:154
AbstractComponentGUI * m_panelChangeLibraryIOOrder
Definition CPanelLogicsEditor.hpp:148
CButton * m_buttonChangeLibraryInputOrder
Definition CPanelLogicsEditor.hpp:149
AbstractComponentGUI * m_panelLibraryButtons
Definition CPanelLogicsEditor.hpp:145
CButton * m_buttonChangeLibraryOutputOrder
Definition CPanelLogicsEditor.hpp:150
CComboBox * m_comboBoxSelectedLogicIdRef
Definition CPanelLogicsEditor.hpp:142
CButton * m_buttonDeleteLibrary
Definition CPanelLogicsEditor.hpp:155
AbstractComponentGUI * m_panelCopyLogic
Definition CPanelLogicsEditor.hpp:146
AbstractComponentGUI * m_panelChangeLogicOrder
Definition CPanelLogicsEditor.hpp:144
CButton * m_buttonCloneLibrary
Definition CPanelLogicsEditor.hpp:156
CPanelLogicsSearchTagsAndLabels * m_panelSearch
Definition CPanelLogicsEditor.hpp:152
AbstractComponentGUI * m_panelInfoLogic
Definition CPanelLogicsEditor.hpp:143
CButton * m_buttonAddLibrary
Definition CPanelLogicsEditor.hpp:153
Definition LogicsGenerationParams.hpp:59
Definition structs.hpp:16
Tuple containing the type of logic component (logic blocks, library blocks & others blocks).
Definition types.hpp:22