---
name: "tlp_MainController"
section: "3tulip"
platform: "linux"
package: "tulip-doc"
version: "3.1.2-2.3"
release: "Debian 6.0 (Squeeze)"
platforms: ["linux"]
url: "https://new.carta.tech/tlp_MainController"
---

# tlp\_MainController(3tulip)

Default controller of Tulip.

## NAME

tlp::MainController -

Default controller of Tulip.

## SYNOPSIS

`#include <MainController.h>`

Inherits **tlp::Controller**.

### Public Slots

void **editCut** ()\
 void **editCopy** ()\
 void **editPaste** ()\
 void **editFind** ()\
 void **editCreateGroup** ()\
 void **editCreateSubgraph** ()\
 void **editDelSelection** ()\
 void **editReverseSelection** ()\
 void **editSelectAll** ()\
 void **editDeselectAll** ()\

### Public Member Functions

**MainController** ()\
 virtual **~MainController** ()\
 void **attachMainWindow** (**MainWindowFacade** facade)\
 void **setData** (Graph \*graph=0, DataSet dataSet=DataSet())\
 void **getData** (Graph \*\*graph, DataSet \*dataSet)\
 Graph \* **getGraph** ()\
 **View** \* **getView** (QWidget \*)\

### Protected Types

typedef std::set\< tlp::Observable \* \>::iterator **ObserverIterator**\

### Protected Slots

void **changeGraph** (Graph \*graph)\
 void **graphAboutToBeRemove** (Graph \*graph)\
 void **windowActivated** (QWidget \*w)\
 void **changeInteractor** (QAction \*action)\
 void **addView** (QAction \*action)\
 void **showElementProperties** (unsigned int eltId, bool isNode)\
 void **viewRequestChangeGraph** (**View** \*view, Graph \*graph)\
 void **widgetWillBeClosed** (QObject \*object)\
 void **isAcyclic** ()\
 void **isSimple** ()\
 void **isConnected** ()\
 void **isBiconnected** ()\
 void **isTriconnected** ()\
 void **isTree** ()\
 void **isFreeTree** ()\
 void **isPlanar** ()\
 void **isOuterPlanar** ()\
 void **makeAcyclic** ()\
 void **makeBiconnected** ()\
 void **makeSimple** ()\
 void **makeConnected** ()\
 void **makeDirected** ()\
 void **reverseSelectedEdgeDirection** ()\
 void **changeMetric** (QAction \*)\
 void **changeString** (QAction \*)\
 void **changeSizes** (QAction \*)\
 void **changeColors** (QAction \*)\
 void **changeInt** (QAction \*)\
 void **changeSelection** (QAction \*)\
 void **changeLayout** (QAction \*)\
 void **applyAlgorithm** (QAction \*)\
 void **updateUndoRedoInfos** ()\
 void **undo** ()\
 void **redo** ()\

### Protected Member Functions

void **initializeGraph** (Graph \*graph)\
 void **loadGUI** ()\
 void **buildMenu** ()\
 **View** \* **initMainView** (DataSet dataSet)\
 **View** \* **createView** (const std::string &name, Graph \*graph, DataSet dataSet, const QRect &rect=QRect(0, 0, 0, 0))\
 void **installInteractors** (**View** \*view)\
 void **redrawViews** (bool init=false)\
 void **observableDestroyed** (Observable \*)\
 void **update** (**ObserverIterator** begin, **ObserverIterator** end)\
 void **initObservers** ()\
 void **clearObservers** ()\
 void **addSubGraph** (Graph \*, Graph \*)\
 void **delSubGraph** (Graph \*, Graph \*)\
 void **addNode** (Graph \*graph, const node)\
 void **addEdge** (Graph \*graph, const edge)\
 void **delNode** (Graph \*graph, const node)\
 void **delEdge** (Graph \*graph, const edge)\
 void **addLocalProperty** (Graph \*, const std::string &)\
 void **delLocalProperty** (Graph \*, const std::string &)\
 void **updateCurrentGraphInfos** ()\
 template\<typename PROPERTY \> bool **changeProperty** (std::string, std::string, bool=true, bool=false, bool=true)\

### Protected Attributes

Graph \* **currentGraph**\
 **View** \* **currentView**\
 Graph \* **copyCutPasteGraph**\
 std::map\< **View** \*, std::string \> **viewNames**\
 std::map\< QWidget \*, **View** \* \> **viewWidget**\
 std::map\< **View** \*, QAction \* \> **lastInteractorOnView**\
 std::map\< **View** \*, Graph \* \> **viewGraph**\
 unsigned int **currentGraphNbNodes**\
 unsigned int **currentGraphNbEdges**\
 Graph \* **graphToReload**\
 Morphing \* **morph**\
 QDockWidget \* **tabWidgetDock**\
 **SGHierarchyWidget** \* **clusterTreeWidget**\
 **PropertyDialog** \* **propertiesWidget**\
 **ElementPropertiesWidget** \* **eltProperties**\
 QMenu \* **editMenu**\
 QMenu \* **algorithmMenu**\
 QMenu \* **viewMenu**\
 QMenu \* **optionsMenu**\
 QMenu \* **graphMenu**\
 QAction \* **forceRatioAction**\
 QAction \* **mapMetricAction**\
 QAction \* **morphingAction**\
 QAction \* **undoAction**\
 QAction \* **redoAction**\
 QAction \* **editUndoAction**\
 QAction \* **editRedoAction**\
 QMenu \* **intMenu**\
 QMenu \* **stringMenu**\
 QMenu \* **sizesMenu**\
 QMenu \* **colorsMenu**\
 QMenu \* **layoutMenu**\
 QMenu \* **metricMenu**\
 QMenu \* **selectMenu**\
 QMenu \* **generalMenu**\

## Detailed Description

Default controller of Tulip.

This **Controller** create a GUI like the old Tulip On left : Property, and hierarchical view In view menu you have access to all view plugins

## Member Typedef Documentation

### typedef std::set\< tlp::Observable \* \>::iterator tlp::MainController::ObserverIterator` [protected]`

## Constructor & Destructor Documentation

### tlp::MainController::MainController () Default constructor

### virtual tlp::MainController::~MainController ()` [virtual]` Default destructor

## Member Function Documentation

### void tlp::MainController::addEdge (Graph \* graph, const edge)` [protected]` Call when an edge is add

### void tlp::MainController::addLocalProperty (Graph \*, const std::string &)` [protected]` Call when a local property is add

### void tlp::MainController::addNode (Graph \* graph, const node)` [protected]` Call when a node is add

### void tlp::MainController::addSubGraph (Graph \*, Graph \*)` [protected]` Call when a subgraph is add

### void tlp::MainController::addView (QAction \* action)` [protected, slot]` Add a new view to the controller

### void tlp::MainController::applyAlgorithm (QAction \*)` [protected, slot]`

### void tlp::MainController::attachMainWindow (MainWindowFacade facade)` [virtual]` Attach the QMainWindow to the controller

Reimplemented from **tlp::Controller**.

### void tlp::MainController::buildMenu ()` [protected]` Construct main menu

### void tlp::MainController::changeColors (QAction \*)` [protected, slot]`

### void tlp::MainController::changeGraph (Graph \* graph)` [protected, slot]`

### void tlp::MainController::changeInt (QAction \*)` [protected, slot]`

### void tlp::MainController::changeInteractor (QAction \* action)` [protected, slot]` Load the interactor (referenced by the given QAction) in current View

### void tlp::MainController::changeLayout (QAction \*)` [protected, slot]`

### void tlp::MainController::changeMetric (QAction \*)` [protected, slot]`

### template\<typename PROPERTY \> bool tlp::MainController::changeProperty (std::string, std::string, bool = `true`, bool = `false`, bool = `true`)` [inline, protected]` Change a property

### void tlp::MainController::changeSelection (QAction \*)` [protected, slot]`

### void tlp::MainController::changeSizes (QAction \*)` [protected, slot]`

### void tlp::MainController::changeString (QAction \*)` [protected, slot]`

### void tlp::MainController::clearObservers ()` [protected]` Clear all observers

### View\* tlp::MainController::createView (const std::string & name, Graph \* graph, DataSet dataSet, const QRect & rect = `QRect(0, 0, 0, 0)`)` [protected]` Create a view with name : name

### void tlp::MainController::delEdge (Graph \* graph, const edge)` [protected]` Call when an edge is delete

### void tlp::MainController::delLocalProperty (Graph \*, const std::string &)` [protected]` Call when a local property is delete

### void tlp::MainController::delNode (Graph \* graph, const node)` [protected]` Call when a node is delete

### void tlp::MainController::delSubGraph (Graph \*, Graph \*)` [protected]` Call when a subgraph is remove

### void tlp::MainController::editCopy ()` [slot]`

### void tlp::MainController::editCreateGroup ()` [slot]`

### void tlp::MainController::editCreateSubgraph ()` [slot]`

### void tlp::MainController::editCut ()` [slot]`

### void tlp::MainController::editDelSelection ()` [slot]`

### void tlp::MainController::editDeselectAll ()` [slot]`

### void tlp::MainController::editFind ()` [slot]`

### void tlp::MainController::editPaste ()` [slot]`

### void tlp::MainController::editReverseSelection ()` [slot]`

### void tlp::MainController::editSelectAll ()` [slot]`

### void tlp::MainController::getData (Graph \*\* graph, DataSet \* dataSet)` [virtual]` Return the graph and the dataSet of the controller

Implements **tlp::Controller**.

### Graph\* tlp::MainController::getGraph ()` [virtual]` Return the Graph visualized by the controller

Implements **tlp::Controller**.

### View\* tlp::MainController::getView (QWidget \*)

### void tlp::MainController::graphAboutToBeRemove (Graph \* graph)` [protected, slot]`

### void tlp::MainController::initializeGraph (Graph \* graph)` [protected]` Set the default initialization of the graph

### View\* tlp::MainController::initMainView (DataSet dataSet)` [protected]` Create and init the main view (NodeLinkDiagramComponent)

### void tlp::MainController::initObservers ()` [protected]` Init all observers (graph and properties)

### void tlp::MainController::installInteractors (View \* view)` [protected]` Put interactors of the given view in graphToolBar

### void tlp::MainController::isAcyclic ()` [protected, slot]`

### void tlp::MainController::isBiconnected ()` [protected, slot]`

### void tlp::MainController::isConnected ()` [protected, slot]`

### void tlp::MainController::isFreeTree ()` [protected, slot]`

### void tlp::MainController::isOuterPlanar ()` [protected, slot]`

### void tlp::MainController::isPlanar ()` [protected, slot]`

### void tlp::MainController::isSimple ()` [protected, slot]`

### void tlp::MainController::isTree ()` [protected, slot]`

### void tlp::MainController::isTriconnected ()` [protected, slot]`

### void tlp::MainController::loadGUI ()` [protected]` Load the GUI

### void tlp::MainController::makeAcyclic ()` [protected, slot]`

### void tlp::MainController::makeBiconnected ()` [protected, slot]`

### void tlp::MainController::makeConnected ()` [protected, slot]`

### void tlp::MainController::makeDirected ()` [protected, slot]`

### void tlp::MainController::makeSimple ()` [protected, slot]`

### void tlp::MainController::observableDestroyed (Observable \*)` [protected]` This function is call when an observable is destroyed

### void tlp::MainController::redo ()` [protected, slot]`

### void tlp::MainController::redrawViews (bool init = `false`)` [protected]` Redraw all views

### void tlp::MainController::reverseSelectedEdgeDirection ()` [protected, slot]`

### void tlp::MainController::setData (Graph \* graph = `0`, DataSet dataSet = `DataSet()`)` [virtual]` Set graph and dataSet to the controller

Implements **tlp::Controller**.

### void tlp::MainController::showElementProperties (unsigned int eltId, bool isNode)` [protected, slot]` This slot is call when a view emit elementSelected Show the element in left part of the GUI

### void tlp::MainController::undo ()` [protected, slot]`

### void tlp::MainController::update (ObserverIterator begin, ObserverIterator end)` [protected]` This function is call when an observable is update

### void tlp::MainController::updateCurrentGraphInfos ()` [protected]` Call to update number of nodes/edges

### void tlp::MainController::updateUndoRedoInfos ()` [protected, slot]`

### void tlp::MainController::viewRequestChangeGraph (View \* view, Graph \* graph)` [protected, slot]` This slot is call when a view want to change its graph

### void tlp::MainController::widgetWillBeClosed (QObject \* object)` [protected, slot]` This slot is call went a view will be closed

### void tlp::MainController::windowActivated (QWidget \* w)` [protected, slot]` Change GUI when a QWidget is activated

## Member Data Documentation

### QMenu\* tlp::MainController::algorithmMenu` [protected]`

### SGHierarchyWidget\* tlp::MainController::clusterTreeWidget` [protected]`

### QMenu\* tlp::MainController::colorsMenu` [protected]`

### Graph\* tlp::MainController::copyCutPasteGraph` [protected]`

### Graph\* tlp::MainController::currentGraph` [protected]`

### unsigned int tlp::MainController::currentGraphNbEdges` [protected]`

### unsigned int tlp::MainController::currentGraphNbNodes` [protected]`

### View\* tlp::MainController::currentView` [protected]`

### QMenu\* tlp::MainController::editMenu` [protected]`

### QAction\* tlp::MainController::editRedoAction` [protected]`

### QAction\* tlp::MainController::editUndoAction` [protected]`

### ElementPropertiesWidget\* tlp::MainController::eltProperties` [protected]`

### QAction\* tlp::MainController::forceRatioAction` [protected]`

### QMenu\* tlp::MainController::generalMenu` [protected]`

### QMenu\* tlp::MainController::graphMenu` [protected]`

### Graph\* tlp::MainController::graphToReload` [protected]`

### QMenu\* tlp::MainController::intMenu` [protected]`

### std::map\<View \*, QAction \*\> tlp::MainController::lastInteractorOnView` [protected]`

### QMenu\* tlp::MainController::layoutMenu` [protected]`

### QAction\* tlp::MainController::mapMetricAction` [protected]`

### QMenu\* tlp::MainController::metricMenu` [protected]`

### Morphing\* tlp::MainController::morph` [protected]`

### QAction\* tlp::MainController::morphingAction` [protected]`

### QMenu\* tlp::MainController::optionsMenu` [protected]`

### PropertyDialog\* tlp::MainController::propertiesWidget` [protected]`

### QAction\* tlp::MainController::redoAction` [protected]`

### QMenu\* tlp::MainController::selectMenu` [protected]`

### QMenu\* tlp::MainController::sizesMenu` [protected]`

### QMenu\* tlp::MainController::stringMenu` [protected]`

### QDockWidget\* tlp::MainController::tabWidgetDock` [protected]`

### QAction\* tlp::MainController::undoAction` [protected]`

### std::map\<View \*,Graph\* \> tlp::MainController::viewGraph` [protected]`

### QMenu\* tlp::MainController::viewMenu` [protected]`

### std::map\<View \*,std::string\> tlp::MainController::viewNames` [protected]`

### std::map\<QWidget \*,View\*\> tlp::MainController::viewWidget` [protected]`

## Author

Generated automatically by Doxygen for Tulip QT Library from the source code.
