tuchulcha  0.10.1
Graphical Workflow Configuration Editor
NodeHandler Class Reference

QGraphicsScene that handles all drag&drop, node move and connect events. More...

#include <NodeHandler.h>

Inheritance diagram for NodeHandler:

Public Slots

void loadFromModel ()
 loads the scene from the set GraphModel
 
void saveFlowchart ()
 save flowchart to file More...
 
void selectNode (QString name)
 select some node
 
void updateTooltip (QString comment)
 update tooltip of selected node
 

Signals

void nodeTypeSelected (QString type) const
 Send type of currently selected node. More...
 
void statusMessage (QString msg) const
 message to display on status bar
 

Public Member Functions

 NodeHandler (GraphModel *model, QObject *parent=0)
 default constructor More...
 
virtual ~NodeHandler ()
 default destructor
 
void connectNodes (QString node0, QString prop0, QString node1, QString prop1)
 connects two node with its slots: node0.prop0 to node1.prop1 More...
 
bool load (QString fname)
 load the GraphModel from the given filename and calls loadFromModel to fill the scene More...
 
GraphModelmodel ()
 get the current GraphModel
 

Protected Member Functions

virtual void contextMenuEvent (QGraphicsSceneContextMenuEvent *event)
 context menu More...
 
virtual void keyPressEvent (QKeyEvent *keyEvent)
 handles key press events More...
 
virtual void mouseMoveEvent (QGraphicsSceneMouseEvent *event)
 handles mouse movement
 
virtual void mousePressEvent (QGraphicsSceneMouseEvent *event)
 handles mouse press events
 
virtual void mouseReleaseEvent (QGraphicsSceneMouseEvent *event)
 handles all mousebutton release events
 
drag/drop handling

Accepts drag events with mime data as they are set by standard item models.

This way it is possible to use arbitrary standard item views as drag sources. Checks if the contained data represent a class name.

virtual void dragEnterEvent (QGraphicsSceneDragDropEvent *event)
 
virtual void dragMoveEvent (QGraphicsSceneDragDropEvent *event)
 
virtual void dropEvent (QGraphicsSceneDragDropEvent *event)
 

Private Member Functions

void _deselectAllNodes ()
 deselects all nodes
 
void setNodeActive ()
 sets the nodes active or inactive
 

Private Attributes

bool _addLine
 state of slot connection mode
 
ConnectionLine_cline
 buffered connection line for slot connection drawing
 
GraphModel_model
 current set GraphModel
 
QMap< QString, Node * > _nodeMap
 map for node lookup
 
Node_selectedNode
 pointer to currently selected node (zero if none selected)
 
NodeProperty_startProp
 buffer that stores the slot connection start property
 

Detailed Description

Definition at line 36 of file NodeHandler.h.

Constructor & Destructor Documentation

NodeHandler::NodeHandler ( GraphModel model,
QObject *  parent = 0 
)
Parameters
parentparent QObject
modelmodel to be used within this node handler

Definition at line 43 of file NodeHandler.cpp.

References _model, loadFromModel(), and selectNode().

Member Function Documentation

void NodeHandler::connectNodes ( QString  node0,
QString  prop0,
QString  node1,
QString  prop1 
)
Parameters
node0name of the first node
node1name of the second node
prop0name of the first nodes property
prop1name of the second nodes property

Definition at line 255 of file NodeHandler.cpp.

References _nodeMap, NodeProperty::addConnection(), Node::getProperty(), NodeProperty::moveBy(), and ConnectionLine::setStartEndProp().

void NodeHandler::contextMenuEvent ( QGraphicsSceneContextMenuEvent *  event)
protectedvirtual

This provides a context menu for slots. Currently it contains an option to disconnect this slot.

Parameters
eventcontext menu event

Definition at line 392 of file NodeHandler.cpp.

References _model, GraphModel::deleteNode(), GraphModel::disconnectAllSlots(), GraphModel::disconnectSlot(), NodeProperty::getFullName(), ParameterFileModel::getInputs(), Node::getInstanceName(), ParameterFileModel::getOutputs(), and GraphModel::renameNode().

void NodeHandler::keyPressEvent ( QKeyEvent *  keyEvent)
protectedvirtual

provided key actions:

  • node navigation via the left/right arrow keys
  • renaming via F2 key
  • delete node via DEL key
  • deselect node via ESC key
    Parameters
    keyEventkey event

Definition at line 317 of file NodeHandler.cpp.

References _model, GraphModel::deleteNode(), ParameterFileModel::prefix(), ParameterFileModel::prefixValid(), GraphModel::renameNode(), GraphModel::selectNext(), and ParameterFileModel::setPrefix().

bool NodeHandler::load ( QString  fname)
Parameters
fnameworkflow parameter file name
Return values
truefile has successfully been loaded

Definition at line 168 of file NodeHandler.cpp.

References _model, and ParameterFileModel::load().

void NodeHandler::nodeTypeSelected ( QString  type) const
signal
Parameters
typetype
void NodeHandler::saveFlowchart ( )
slot

shows file open dialog

Definition at line 285 of file NodeHandler.cpp.


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