Nix (Dev) 3.5.10
dev - 3.5.10 - 1af9301
Loading...
Searching...
No Matches
CPanelLogicsDrawingArea Class Reference

#include <CPanelLogicsDrawingArea.hpp>

Collaboration diagram for CPanelLogicsDrawingArea:
[legend]

Public Member Functions

 CPanelLogicsDrawingArea (const std::weak_ptr< CLogicsDrawingAreaModel > &logicsDrawingAreaModel, CPanelLogicsEditor *panelLogicsEditor)
 
 CPanelLogicsDrawingArea ()=delete
 
 ~CPanelLogicsDrawingArea ()=default
 
 CPanelLogicsDrawingArea (const CPanelLogicsDrawingArea &other)=delete
 
 CPanelLogicsDrawingArea (CPanelLogicsDrawingArea &&other)=delete
 
CPanelLogicsDrawingAreaoperator= (const CPanelLogicsDrawingArea &other)=delete
 
CPanelLogicsDrawingAreaoperator= (CPanelLogicsDrawingArea &&other)=delete
 
const std::shared_ptr< CLogicsDrawingAreaModel > & drawingAreaModel () const
 
std::shared_ptr< CLogicsDrawingAreaModeldrawingAreaModel ()
 
AbstractComponentGUIbuildPanel ()
 
void grabFocus () const
 
void redraw () const
 
void updateLogicsElements () const
 
void setStandOutModeLogicsElement (AbstractCanvasItem::TId id, AbstractCanvasItem::EStandOutMode mode) const
 
void selectLogicsElement (AbstractCanvasItem::TId id)
 
void unselectLogicsElement (AbstractCanvasItem::TId id)
 
void unselectAllElements ()
 
const std::set< AbstractCanvasItem::TId > & getSelectedLogicElements () const
 
void addNewConnection ()
 
void resetConnectionToCreate ()
 
void deleteLogicsElement (AbstractCanvasItem::TId id) const
 
void deleteSelectedElements ()
 
void setCopyingSelectedElements ()
 
void keyShortcutPaste ()
 
void keyShortcutMove (bool isUp, bool isDown, bool isLeft, bool isRight)
 
void runContextMenuAction (CLogicsDrawingAreaModel::EActionOnLogicsComponent action, AbstractCanvasItem::TId itemId, const std::optional< iv::math::geometry::Point2d > &clickedPoint2d)
 
void showContextMenu (CMenuContext *menuContext) const
 
void setGrabbed (bool grab)
 
void setGrabGlobalOrigin (const AbstractCanvasItem::TPosition2d &globalPosition)
 
void setGrabLocalOrigin (const AbstractCanvasItem::TPosition2d &localPosition)
 
void setDragging (bool dragging)
 
void setDraggedLocalDistance (const AbstractCanvasItem::TPosition2d &localDistance)
 
void setStartDragging (bool start)
 
bool getGrabbed () const
 
const AbstractCanvasItem::TPosition2dgetGrabbedGlobalOrigin () const
 
const AbstractCanvasItem::TPosition2dgetGrabbedLocalOrigin () const
 
bool getDragging () const
 
const AbstractCanvasItem::TPosition2dgetDraggedLocalDistance () const
 
bool getStartDragging () const
 
CLogicsConnection::TConnPointsRefsgetConnectionToCreate ()
 
bool isSelected (AbstractCanvasItem::TId id) const
 
void generateLogicsGenerationParams (const iv::logic::LogicGenerationParams &generationParams)
 

Static Public Member Functions

static bool * getCopyModeFlag ()
 
static CLogicsAllowed::TMapDBBlockParamNStr getBlockParams (const std::shared_ptr< CLogicsComponentExec > &lCExec)
 
static CLogicsAllowed::TMapDBBlockParamNStr getBlockValues (const std::shared_ptr< CLogicsComponentExec > &lCExec)
 
static CLogicsAllowed::TMapDBBlockParamNStr getBlockExternalDesc (const std::shared_ptr< CLogicsComponentExec > &lCExec)
 
static AbstractCanvasItem::TId prvCreateCopyLogicsComponent (AbstractCanvasItem::TId componentToCopy, SPrvLogicComponentRefs &sLCR, double moveVertical=0, double moveHorizontal=0)
 
static void prvMoveLogicComponent (AbstractCanvasItem::TId componentToMove, const SPrvLogicComponentRefs &sLCR, double moveVertical, double moveHorizontal)
 
static std::shared_ptr< CLogicsComponentprvCreateLogicsComponent (const iv::types::logic::ComponentType &componentTypeTuple, const std::string &lCName, const CLogicsAllowed::TMapDBBlockParamNStr &mapBlockParamsDesc, const SPrvLogicComponentRefs &sLCR)
 
static std::shared_ptr< AbstractLogicsElementprvCreateLogicsElement (const iv::types::logic::ComponentType &componentTypeTuple, const std::string &lCName, const SPrvLogicComponentRefs &sLCR)
 
static AbstractCanvasItem::TId prvAddNewLogicsElement (const std::shared_ptr< AbstractLogicsElement > &newLC, const CLogicsAllowed::TMapDBBlockParamNStr &mapBlockParamsDesc, const AbstractCanvasItem::TPosition2d &position, SPrvLogicComponentRefs &sLCR)
 

Private Member Functions

void prvAddCanvasListeners ()
 
void prvAddElementsFromModel ()
 
void prvAddNewBackgroundItem ()
 
void prvEditConstantState (AbstractCanvasItem::TId itemId) const
 
void prvEditOrderOfExecution (AbstractCanvasItem::TId itemId) const
 
void prvEditLoadLibrary (AbstractCanvasItem::TId itemId) const
 
void prvEditProperties (AbstractCanvasItem::TId itemId) const
 
void prvEditPropertiesText (AbstractCanvasItem::TId itemId) const
 
void prvEditPropertiesRectangle (AbstractCanvasItem::TId itemId) const
 
void prvEditPropertiesBasicBlock (AbstractCanvasItem::TId itemId) const
 
void prvEditPropertiesLibrary (AbstractCanvasItem::TId itemId) const
 
void prvEditPropertiesLabel (AbstractCanvasItem::TId itemId) const
 
void prvEditPropertiesLibraryIOBlock (AbstractCanvasItem::TId itemId) const
 
void prvEditSelectedChannel (AbstractCanvasItem::TId itemId) const
 
void prvSelectInsideBlocks (AbstractCanvasItem::TId itemId, const std::optional< iv::math::geometry::Point2d > &clickedPoint2d)
 
void prvSelectConnections (AbstractCanvasItem::TId itemId)
 
void prvEditSelectedBroadCastChannel (AbstractCanvasItem::TId itemId) const
 
void prvSetComponentExecBlockParams (AbstractCanvasItem::TId itemId) const
 
bool prvVerifyEditionOnLabel (const std::string &oldLabelName, const std::string &newLabelName, CLogicsComponentLabel::ELabelIOType labelIOType, std::string &msgError) const
 
void prvRecursiveSelectConnections (AbstractCanvasItem::TId itemId)
 
void prvUpdateLibraryBlockParamsOnline (const CLogicsAllowed::TMapDBBlockParamNStr &mapBlockParamsExternalDescPrevious, const iv::types::logic::libraryTagName &libBlockTagnamePrevious, const std::shared_ptr< CLogicsComponentLibrary > &libraryLogicBlock) const
 

Private Attributes

CPanelLogicsEditorm_panelLogicsEditorRef
 
std::shared_ptr< CLogicsDrawingAreaModelm_logicsDrawingAreaModelRef
 
CGooCanvasm_canvas
 
std::set< AbstractCanvasItem::TIdm_copyingElementsIds
 
std::set< AbstractCanvasItem::TIdm_selectedElementsIds
 
bool m_grabbed
 
AbstractCanvasItem::TPosition2d m_grabbedLocalOrigin
 
AbstractCanvasItem::TPosition2d m_grabbedGlobalOrigin
 
bool m_dragging
 
bool m_startDragging
 
AbstractCanvasItem::TPosition2d m_draggedLocalDistance
 
CLogicsConnection::TConnPointsRefs m_connectionToCreate
 

Static Private Attributes

static bool m_copyMode = false
 

Detailed Description

Class managing the drawing area for the logics editor.

Constructor & Destructor Documentation

◆ CPanelLogicsDrawingArea() [1/4]

CPanelLogicsDrawingArea::CPanelLogicsDrawingArea ( const std::weak_ptr< CLogicsDrawingAreaModel > & logicsDrawingAreaModel,
CPanelLogicsEditor * panelLogicsEditor )

◆ CPanelLogicsDrawingArea() [2/4]

CPanelLogicsDrawingArea::CPanelLogicsDrawingArea ( )
delete

◆ ~CPanelLogicsDrawingArea()

CPanelLogicsDrawingArea::~CPanelLogicsDrawingArea ( )
default

◆ CPanelLogicsDrawingArea() [3/4]

CPanelLogicsDrawingArea::CPanelLogicsDrawingArea ( const CPanelLogicsDrawingArea & other)
delete

◆ CPanelLogicsDrawingArea() [4/4]

CPanelLogicsDrawingArea::CPanelLogicsDrawingArea ( CPanelLogicsDrawingArea && other)
delete

Member Function Documentation

◆ addNewConnection()

void CPanelLogicsDrawingArea::addNewConnection ( )

◆ buildPanel()

AbstractComponentGUI * CPanelLogicsDrawingArea::buildPanel ( )

◆ deleteLogicsElement()

void CPanelLogicsDrawingArea::deleteLogicsElement ( AbstractCanvasItem::TId id) const

CPanelLogicsDrawingArea::deleteLogicsElement

Deletes a canvas element.

It actually marks the canvas element to be deleted on next redraw.

◆ deleteSelectedElements()

void CPanelLogicsDrawingArea::deleteSelectedElements ( )

◆ drawingAreaModel() [1/2]

std::shared_ptr< CLogicsDrawingAreaModel > CPanelLogicsDrawingArea::drawingAreaModel ( )

◆ drawingAreaModel() [2/2]

const std::shared_ptr< CLogicsDrawingAreaModel > & CPanelLogicsDrawingArea::drawingAreaModel ( ) const
nodiscard

◆ generateLogicsGenerationParams()

void CPanelLogicsDrawingArea::generateLogicsGenerationParams ( const iv::logic::LogicGenerationParams & generationParams)

◆ getBlockExternalDesc()

CLogicsAllowed::TMapDBBlockParamNStr CPanelLogicsDrawingArea::getBlockExternalDesc ( const std::shared_ptr< CLogicsComponentExec > & lCExec)
static

◆ getBlockParams()

CLogicsAllowed::TMapDBBlockParamNStr CPanelLogicsDrawingArea::getBlockParams ( const std::shared_ptr< CLogicsComponentExec > & lCExec)
static

◆ getBlockValues()

CLogicsAllowed::TMapDBBlockParamNStr CPanelLogicsDrawingArea::getBlockValues ( const std::shared_ptr< CLogicsComponentExec > & lCExec)
static

◆ getConnectionToCreate()

CLogicsConnection::TConnPointsRefs & CPanelLogicsDrawingArea::getConnectionToCreate ( )

◆ getCopyModeFlag()

bool * CPanelLogicsDrawingArea::getCopyModeFlag ( )
static

◆ getDraggedLocalDistance()

const AbstractCanvasItem::TPosition2d & CPanelLogicsDrawingArea::getDraggedLocalDistance ( ) const
nodiscard

◆ getDragging()

bool CPanelLogicsDrawingArea::getDragging ( ) const
nodiscard

◆ getGrabbed()

bool CPanelLogicsDrawingArea::getGrabbed ( ) const
nodiscard

◆ getGrabbedGlobalOrigin()

const AbstractCanvasItem::TPosition2d & CPanelLogicsDrawingArea::getGrabbedGlobalOrigin ( ) const
nodiscard

◆ getGrabbedLocalOrigin()

const AbstractCanvasItem::TPosition2d & CPanelLogicsDrawingArea::getGrabbedLocalOrigin ( ) const
nodiscard

◆ getSelectedLogicElements()

const std::set< AbstractCanvasItem::TId > & CPanelLogicsDrawingArea::getSelectedLogicElements ( ) const
nodiscard

◆ getStartDragging()

bool CPanelLogicsDrawingArea::getStartDragging ( ) const
nodiscard

◆ grabFocus()

void CPanelLogicsDrawingArea::grabFocus ( ) const

CPanelLogicsDrawingArea::grabFocus

Makes the canvas grab keyboard focus.

◆ isSelected()

bool CPanelLogicsDrawingArea::isSelected ( AbstractCanvasItem::TId id) const
nodiscard

◆ keyShortcutMove()

void CPanelLogicsDrawingArea::keyShortcutMove ( bool isUp,
bool isDown,
bool isLeft,
bool isRight )

◆ keyShortcutPaste()

void CPanelLogicsDrawingArea::keyShortcutPaste ( )

◆ operator=() [1/2]

CPanelLogicsDrawingArea & CPanelLogicsDrawingArea::operator= ( const CPanelLogicsDrawingArea & other)
delete

◆ operator=() [2/2]

CPanelLogicsDrawingArea & CPanelLogicsDrawingArea::operator= ( CPanelLogicsDrawingArea && other)
delete

◆ prvAddCanvasListeners()

void CPanelLogicsDrawingArea::prvAddCanvasListeners ( )
private

◆ prvAddElementsFromModel()

void CPanelLogicsDrawingArea::prvAddElementsFromModel ( )
private

◆ prvAddNewBackgroundItem()

void CPanelLogicsDrawingArea::prvAddNewBackgroundItem ( )
private

◆ prvAddNewLogicsElement()

AbstractCanvasItem::TId CPanelLogicsDrawingArea::prvAddNewLogicsElement ( const std::shared_ptr< AbstractLogicsElement > & newLC,
const CLogicsAllowed::TMapDBBlockParamNStr & mapBlockParamsDesc,
const AbstractCanvasItem::TPosition2d & position,
SPrvLogicComponentRefs & sLCR )
static

◆ prvCreateCopyLogicsComponent()

AbstractCanvasItem::TId CPanelLogicsDrawingArea::prvCreateCopyLogicsComponent ( AbstractCanvasItem::TId componentToCopy,
SPrvLogicComponentRefs & sLCR,
double moveVertical = 0,
double moveHorizontal = 0 )
static

◆ prvCreateLogicsComponent()

std::shared_ptr< CLogicsComponent > CPanelLogicsDrawingArea::prvCreateLogicsComponent ( const iv::types::logic::ComponentType & componentTypeTuple,
const std::string & lCName,
const CLogicsAllowed::TMapDBBlockParamNStr & mapBlockParamsDesc,
const SPrvLogicComponentRefs & sLCR )
static

◆ prvCreateLogicsElement()

std::shared_ptr< AbstractLogicsElement > CPanelLogicsDrawingArea::prvCreateLogicsElement ( const iv::types::logic::ComponentType & componentTypeTuple,
const std::string & lCName,
const SPrvLogicComponentRefs & sLCR )
static

◆ prvEditConstantState()

void CPanelLogicsDrawingArea::prvEditConstantState ( AbstractCanvasItem::TId itemId) const
private

◆ prvEditLoadLibrary()

void CPanelLogicsDrawingArea::prvEditLoadLibrary ( AbstractCanvasItem::TId itemId) const
private

◆ prvEditOrderOfExecution()

void CPanelLogicsDrawingArea::prvEditOrderOfExecution ( AbstractCanvasItem::TId itemId) const
private

◆ prvEditProperties()

void CPanelLogicsDrawingArea::prvEditProperties ( AbstractCanvasItem::TId itemId) const
private

◆ prvEditPropertiesBasicBlock()

void CPanelLogicsDrawingArea::prvEditPropertiesBasicBlock ( AbstractCanvasItem::TId itemId) const
private

◆ prvEditPropertiesLabel()

void CPanelLogicsDrawingArea::prvEditPropertiesLabel ( AbstractCanvasItem::TId itemId) const
private

◆ prvEditPropertiesLibrary()

void CPanelLogicsDrawingArea::prvEditPropertiesLibrary ( AbstractCanvasItem::TId itemId) const
private

◆ prvEditPropertiesLibraryIOBlock()

void CPanelLogicsDrawingArea::prvEditPropertiesLibraryIOBlock ( AbstractCanvasItem::TId itemId) const
private

◆ prvEditPropertiesRectangle()

void CPanelLogicsDrawingArea::prvEditPropertiesRectangle ( AbstractCanvasItem::TId itemId) const
private

◆ prvEditPropertiesText()

void CPanelLogicsDrawingArea::prvEditPropertiesText ( AbstractCanvasItem::TId itemId) const
private

◆ prvEditSelectedBroadCastChannel()

void CPanelLogicsDrawingArea::prvEditSelectedBroadCastChannel ( AbstractCanvasItem::TId itemId) const
private

◆ prvEditSelectedChannel()

void CPanelLogicsDrawingArea::prvEditSelectedChannel ( AbstractCanvasItem::TId itemId) const
private

◆ prvMoveLogicComponent()

void CPanelLogicsDrawingArea::prvMoveLogicComponent ( AbstractCanvasItem::TId componentToMove,
const SPrvLogicComponentRefs & sLCR,
double moveVertical,
double moveHorizontal )
static

◆ prvRecursiveSelectConnections()

void CPanelLogicsDrawingArea::prvRecursiveSelectConnections ( AbstractCanvasItem::TId itemId)
private

◆ prvSelectConnections()

void CPanelLogicsDrawingArea::prvSelectConnections ( AbstractCanvasItem::TId itemId)
private

◆ prvSelectInsideBlocks()

void CPanelLogicsDrawingArea::prvSelectInsideBlocks ( AbstractCanvasItem::TId itemId,
const std::optional< iv::math::geometry::Point2d > & clickedPoint2d )
private

◆ prvSetComponentExecBlockParams()

void CPanelLogicsDrawingArea::prvSetComponentExecBlockParams ( AbstractCanvasItem::TId itemId) const
private

◆ prvUpdateLibraryBlockParamsOnline()

void CPanelLogicsDrawingArea::prvUpdateLibraryBlockParamsOnline ( const CLogicsAllowed::TMapDBBlockParamNStr & mapBlockParamsExternalDescPrevious,
const iv::types::logic::libraryTagName & libBlockTagnamePrevious,
const std::shared_ptr< CLogicsComponentLibrary > & libraryLogicBlock ) const
private

◆ prvVerifyEditionOnLabel()

bool CPanelLogicsDrawingArea::prvVerifyEditionOnLabel ( const std::string & oldLabelName,
const std::string & newLabelName,
CLogicsComponentLabel::ELabelIOType labelIOType,
std::string & msgError ) const
private

◆ redraw()

void CPanelLogicsDrawingArea::redraw ( ) const

CPanelLogicsDrawingArea::redraw

Redraws the elements of the canvas.

◆ resetConnectionToCreate()

void CPanelLogicsDrawingArea::resetConnectionToCreate ( )

◆ runContextMenuAction()

void CPanelLogicsDrawingArea::runContextMenuAction ( CLogicsDrawingAreaModel::EActionOnLogicsComponent action,
AbstractCanvasItem::TId itemId,
const std::optional< iv::math::geometry::Point2d > & clickedPoint2d )

◆ selectLogicsElement()

void CPanelLogicsDrawingArea::selectLogicsElement ( AbstractCanvasItem::TId id)

CPanelLogicsDrawingArea::selectLogicsElement

Adds a canvas element id to the list of selected elements.

◆ setCopyingSelectedElements()

void CPanelLogicsDrawingArea::setCopyingSelectedElements ( )

◆ setDraggedLocalDistance()

void CPanelLogicsDrawingArea::setDraggedLocalDistance ( const AbstractCanvasItem::TPosition2d & localDistance)

◆ setDragging()

void CPanelLogicsDrawingArea::setDragging ( bool dragging)

◆ setGrabbed()

void CPanelLogicsDrawingArea::setGrabbed ( bool grab)

◆ setGrabGlobalOrigin()

void CPanelLogicsDrawingArea::setGrabGlobalOrigin ( const AbstractCanvasItem::TPosition2d & globalPosition)

◆ setGrabLocalOrigin()

void CPanelLogicsDrawingArea::setGrabLocalOrigin ( const AbstractCanvasItem::TPosition2d & localPosition)

◆ setStandOutModeLogicsElement()

void CPanelLogicsDrawingArea::setStandOutModeLogicsElement ( AbstractCanvasItem::TId id,
AbstractCanvasItem::EStandOutMode mode ) const

CPanelLogicsDrawingArea::setStandOutModeLogicsElement

Sets the stand out mode of a canvas element.

◆ setStartDragging()

void CPanelLogicsDrawingArea::setStartDragging ( bool start)

◆ showContextMenu()

void CPanelLogicsDrawingArea::showContextMenu ( CMenuContext * menuContext) const

◆ unselectAllElements()

void CPanelLogicsDrawingArea::unselectAllElements ( )

CPanelLogicsDrawingArea::unselectAllElements

Removes all canvas element ids from the list of selected elements.

◆ unselectLogicsElement()

void CPanelLogicsDrawingArea::unselectLogicsElement ( AbstractCanvasItem::TId id)

CPanelLogicsDrawingArea::unselectLogicsElement

Removes a canvas element id from the list of selected elements.

◆ updateLogicsElements()

void CPanelLogicsDrawingArea::updateLogicsElements ( ) const

CPanelLogicsDrawingArea::updateElements

Updates all elements in the canvas that might have been changed in other panels.

Member Data Documentation

◆ m_canvas

CGooCanvas* CPanelLogicsDrawingArea::m_canvas
private

◆ m_connectionToCreate

CLogicsConnection::TConnPointsRefs CPanelLogicsDrawingArea::m_connectionToCreate
private

◆ m_copyingElementsIds

std::set<AbstractCanvasItem::TId> CPanelLogicsDrawingArea::m_copyingElementsIds
private

◆ m_copyMode

bool CPanelLogicsDrawingArea::m_copyMode = false
staticprivate

◆ m_draggedLocalDistance

AbstractCanvasItem::TPosition2d CPanelLogicsDrawingArea::m_draggedLocalDistance
private

◆ m_dragging

bool CPanelLogicsDrawingArea::m_dragging
private

◆ m_grabbed

bool CPanelLogicsDrawingArea::m_grabbed
private

◆ m_grabbedGlobalOrigin

AbstractCanvasItem::TPosition2d CPanelLogicsDrawingArea::m_grabbedGlobalOrigin
private

◆ m_grabbedLocalOrigin

AbstractCanvasItem::TPosition2d CPanelLogicsDrawingArea::m_grabbedLocalOrigin
private

◆ m_logicsDrawingAreaModelRef

std::shared_ptr<CLogicsDrawingAreaModel> CPanelLogicsDrawingArea::m_logicsDrawingAreaModelRef
private

◆ m_panelLogicsEditorRef

CPanelLogicsEditor* CPanelLogicsDrawingArea::m_panelLogicsEditorRef
private

◆ m_selectedElementsIds

std::set<AbstractCanvasItem::TId> CPanelLogicsDrawingArea::m_selectedElementsIds
private

◆ m_startDragging

bool CPanelLogicsDrawingArea::m_startDragging
private

The documentation for this class was generated from the following files: