Generated on Thu Mar 22 10:39:54 2012 for Gecode by doxygen 1.6.3

Gecode::Gist::TreeCanvas Class Reference

A canvas that displays the search tree. More...

#include <treecanvas.hh>

List of all members.

Public Slots

void scaleTree (int scale0, int zoomx=-1, int zoomy=-1)
 Set scale factor to scale0.
void searchAll (void)
 Explore complete subtree of selected node.
void searchOne (void)
 Find next solution below selected node.
void toggleHidden (void)
 Toggle hidden state of selected node.
void hideFailed (void)
 Hide failed subtrees of selected node.
void unhideAll (void)
 Unhide all nodes below selected node.
void toggleStop (void)
 Do not stop at selected stop node.
void unstopAll (void)
 Do not stop at any stop node.
void exportPDF (void)
 Export pdf of the current subtree.
void exportWholeTreePDF (void)
 Export pdf of the whole tree.
void print (void)
 Print the tree.
void zoomToFit (void)
 Zoom the canvas so that the whole tree fits.
void centerCurrentNode (void)
 Center the view on the currently selected node.
void inspectCurrentNode (bool fix=true, int inspectorNo=-1)
 Call the double click inspector for the currently selected node.
void inspectBeforeFP (void)
 Calls inspectCurrentNode(false).
void stopSearch (void)
 Stop current search.
void reset (void)
 Reset.
void navUp (void)
 Move selection to the parent of the selected node.
void navDown (void)
 Move selection to the first child of the selected node.
void navLeft (void)
 Move selection to the left sibling of the selected node.
void navRight (void)
 Move selection to the right sibling of the selected node.
void navRoot (void)
 Move selection to the root node.
void navNextSol (bool back=false)
 Move selection to next solution (in DFS order).
void navPrevSol (void)
 Move selection to previous solution (in DFS order).
void bookmarkNode (void)
 Bookmark current node.
void setPath (void)
 Set the current node to be the head of the path.
void inspectPath (void)
 Call the double click inspector for all nodes on the path from root to head of the path.
void startCompareNodes (void)
 Wait for click on node to compare with current node.
void startCompareNodesBeforeFP (void)
 Wait for click on node to compare with current node before fixpoint.
void emitStatusChanged (void)
 Re-emit status change information for current node.
void setRecompDistances (int c_d, int a_d)
 Set recomputation distances.
void setAutoHideFailed (bool b)
 Set preference whether to automatically hide failed subtrees.
void setAutoZoom (bool b)
 Set preference whether to automatically zoom to fit.
bool getAutoHideFailed (void)
 Return preference whether to automatically hide failed subtrees.
bool getAutoZoom (void)
 Return preference whether to automatically zoom to fit.
void setShowCopies (bool b)
 Set preference whether to show copies in the tree.
bool getShowCopies (void)
 Return preference whether to show copies in the tree.
void setRefresh (int i)
 Set refresh rate.
void setRefreshPause (int i)
 Set refresh pause in msec.
bool getSmoothScrollAndZoom (void)
 Return preference whether to use smooth scrolling and zooming.
void setSmoothScrollAndZoom (bool b)
 Set preference whether to use smooth scrolling and zooming.
void resizeToOuter (void)
 Resize to the outer widget size if auto zoom is enabled.
bool finish (void)
 Stop search and wait for it to finish.
void update (void)
 Update display.
void scroll (void)
 React to scroll events.
void layoutDone (int w, int h, int scale0)
 Layout done.

Signals

void scaleChanged (int)
 The scale factor has changed.
void autoZoomChanged (bool)
 The auto-zoom state was changed.
void contextMenu (QContextMenuEvent *)
 Context menu triggered.
void statusChanged (VisualNode *, const Statistics &, bool)
 Status bar update.
void solution (const Space *)
 Signals that a solution has been found.
void searchFinished (void)
 Signals that Gist is finished.
void addedBookmark (const QString &id)
 Signals that a bookmark has been added.
void removedBookmark (int idx)
 Signals that a bookmark has been removed.

Public Member Functions

 TreeCanvas (Space *rootSpace, bool bab, QWidget *parent, const Options &opt)
 Constructor.
 ~TreeCanvas (void)
 Destructor.
void addDoubleClickInspector (Inspector *i)
 Add inspector i.
void activateDoubleClickInspector (int i, bool active)
 Set active inspector.
void addSolutionInspector (Inspector *i)
 Add inspector i.
void activateSolutionInspector (int i, bool active)
 Set active inspector.
void addMoveInspector (Inspector *i)
 Add inspector i.
void activateMoveInspector (int i, bool active)
 Set active inspector.
void addComparator (Comparator *c)
 Add comparator c.
void activateComparator (int i, bool active)
 Set active comparator.

Protected Member Functions

VisualNodeeventNode (QEvent *event)
 Return the node corresponding to the event position.
bool event (QEvent *event)
 General event handler, used for displaying tool tips.
void paintEvent (QPaintEvent *event)
 Paint the tree.
void mousePressEvent (QMouseEvent *event)
 Handle mouse press event.
void mouseDoubleClickEvent (QMouseEvent *event)
 Handle mouse double click event.
void contextMenuEvent (QContextMenuEvent *event)
 Handle context menu event.
void resizeEvent (QResizeEvent *event)
 Handle resize event.
void wheelEvent (QWheelEvent *event)
 Handle mouse wheel events.
void setCurrentNode (VisualNode *n, bool update=true)
 Set the selected node to n.
virtual void timerEvent (QTimerEvent *e)
 Timer invoked for smooth zooming and scrolling.

Protected Attributes

QMutex mutex
 Mutex for synchronizing acccess to the tree.
QMutex layoutMutex
 Mutex for synchronizing layout and drawing.
SearcherThread searcher
 Search engine thread.
bool stopSearchFlag
 Flag signalling the search to stop.
bool finishedFlag
 Flag signalling that Gist is ready to be closed.
Node::NodeAllocatorna
 Allocator for nodes.
VisualNoderoot
 The root node of the tree.
BestNodecurBest
 The currently best solution (for branch-and-bound).
VisualNodecurrentNode
 The currently selected node.
VisualNodepathHead
 The head of the currently selected path.
QVector< QPair< Inspector
*, bool > > 
doubleClickInspectors
 The registered click inspectors, and whether they are active.
QVector< QPair< Inspector
*, bool > > 
solutionInspectors
 The registered solution inspectors, and whether they are active.
QVector< QPair< Inspector
*, bool > > 
moveInspectors
 The registered move inspectors, and whether they are active.
QVector< QPair< Comparator
*, bool > > 
comparators
 The registered comparators, and whether they are active.
QVector< VisualNode * > bookmarks
 The bookmarks map.
bool compareNodes
 Whether node comparison action is running.
bool compareNodesBeforeFP
 Whether node comparison action computes fixpoint.
QSlider * scaleBar
 The scale bar.
Statistics stats
 Statistics about the search tree.
double scale
 Current scale factor.
int xtrans
 Offset on the x axis so that the tree is centered.
bool autoHideFailed
 Whether to hide failed subtrees automatically.
bool autoZoom
 Whether to zoom automatically.
bool showCopies
 Whether to show copies in the tree.
int refresh
 Refresh rate.
int refreshPause
 Time (in msec) to pause after each refresh.
bool smoothScrollAndZoom
 Whether to use smooth scrolling and zooming.
int c_d
 The recomputation distance.
int a_d
 The adaptive recomputation distance.
QTimeLine zoomTimeLine
 Timer for smooth zooming.
QTimeLine scrollTimeLine
 Timer for smooth scrolling.
int targetX
 Target x coordinate after smooth scrolling.
int sourceX
 Source x coordinate after smooth scrolling.
int targetY
 Target y coordinate after smooth scrolling.
int sourceY
 Target y coordinate after smooth scrolling.
int targetW
 Target width after layout.
int targetH
 Target height after layout.
int targetScale
 Target scale after layout.
int layoutDoneTimerId
 Timer id for delaying the update.

Detailed Description

A canvas that displays the search tree.

Definition at line 87 of file treecanvas.hh.


Constructor & Destructor Documentation

Gecode::Gist::TreeCanvas::TreeCanvas ( Space rootSpace,
bool  bab,
QWidget *  parent,
const Options opt 
)

Constructor.

Definition at line 53 of file treecanvas.cpp.

Gecode::Gist::TreeCanvas::~TreeCanvas ( void   ) 

Destructor.

Definition at line 126 of file treecanvas.cpp.


Member Function Documentation

void Gecode::Gist::TreeCanvas::addDoubleClickInspector ( Inspector i  ) 

Add inspector i.

Definition at line 135 of file treecanvas.cpp.

void Gecode::Gist::TreeCanvas::activateDoubleClickInspector ( int  i,
bool  active 
)

Set active inspector.

Definition at line 140 of file treecanvas.cpp.

void Gecode::Gist::TreeCanvas::addSolutionInspector ( Inspector i  ) 

Add inspector i.

Definition at line 146 of file treecanvas.cpp.

void Gecode::Gist::TreeCanvas::activateSolutionInspector ( int  i,
bool  active 
)

Set active inspector.

Definition at line 151 of file treecanvas.cpp.

void Gecode::Gist::TreeCanvas::addMoveInspector ( Inspector i  ) 

Add inspector i.

Definition at line 157 of file treecanvas.cpp.

void Gecode::Gist::TreeCanvas::activateMoveInspector ( int  i,
bool  active 
)

Set active inspector.

Definition at line 162 of file treecanvas.cpp.

void Gecode::Gist::TreeCanvas::addComparator ( Comparator c  ) 

Add comparator c.

Definition at line 168 of file treecanvas.cpp.

void Gecode::Gist::TreeCanvas::activateComparator ( int  i,
bool  active 
)

Set active comparator.

Definition at line 173 of file treecanvas.cpp.

void Gecode::Gist::TreeCanvas::scaleTree ( int  scale0,
int  zoomx = -1,
int  zoomy = -1 
) [slot]

Set scale factor to scale0.

Definition at line 179 of file treecanvas.cpp.

void Gecode::Gist::TreeCanvas::searchAll ( void   )  [slot]

Explore complete subtree of selected node.

Definition at line 446 of file treecanvas.cpp.

void Gecode::Gist::TreeCanvas::searchOne ( void   )  [slot]

Find next solution below selected node.

Definition at line 452 of file treecanvas.cpp.

void Gecode::Gist::TreeCanvas::toggleHidden ( void   )  [slot]

Toggle hidden state of selected node.

Definition at line 458 of file treecanvas.cpp.

void Gecode::Gist::TreeCanvas::hideFailed ( void   )  [slot]

Hide failed subtrees of selected node.

Definition at line 467 of file treecanvas.cpp.

void Gecode::Gist::TreeCanvas::unhideAll ( void   )  [slot]

Unhide all nodes below selected node.

Definition at line 476 of file treecanvas.cpp.

void Gecode::Gist::TreeCanvas::toggleStop ( void   )  [slot]

Do not stop at selected stop node.

Definition at line 486 of file treecanvas.cpp.

void Gecode::Gist::TreeCanvas::unstopAll ( void   )  [slot]

Do not stop at any stop node.

Definition at line 495 of file treecanvas.cpp.

void Gecode::Gist::TreeCanvas::exportPDF ( void   )  [slot]

Export pdf of the current subtree.

Definition at line 1050 of file treecanvas.cpp.

void Gecode::Gist::TreeCanvas::exportWholeTreePDF ( void   )  [slot]

Export pdf of the whole tree.

Definition at line 1043 of file treecanvas.cpp.

void Gecode::Gist::TreeCanvas::print ( void   )  [slot]

Print the tree.

Definition at line 1057 of file treecanvas.cpp.

void Gecode::Gist::TreeCanvas::zoomToFit ( void   )  [slot]

Zoom the canvas so that the whole tree fits.

Definition at line 525 of file treecanvas.cpp.

void Gecode::Gist::TreeCanvas::centerCurrentNode ( void   )  [slot]

Center the view on the currently selected node.

Definition at line 561 of file treecanvas.cpp.

void Gecode::Gist::TreeCanvas::inspectCurrentNode ( bool  fix = true,
int  inspectorNo = -1 
) [slot]

Call the double click inspector for the currently selected node.

If fix is true, then the node is inspected after fixpoint computation, otherwise its status after branching but before fixpoint computation is inspected.

Definition at line 615 of file treecanvas.cpp.

void Gecode::Gist::TreeCanvas::inspectBeforeFP ( void   )  [slot]

Calls inspectCurrentNode(false).

Definition at line 754 of file treecanvas.cpp.

void Gecode::Gist::TreeCanvas::stopSearch ( void   )  [slot]

Stop current search.

Definition at line 796 of file treecanvas.cpp.

void Gecode::Gist::TreeCanvas::reset ( void   )  [slot]

Reset.

Definition at line 802 of file treecanvas.cpp.

void Gecode::Gist::TreeCanvas::navUp ( void   )  [slot]

Move selection to the parent of the selected node.

Definition at line 911 of file treecanvas.cpp.

void Gecode::Gist::TreeCanvas::navDown ( void   )  [slot]

Move selection to the first child of the selected node.

Definition at line 924 of file treecanvas.cpp.

void Gecode::Gist::TreeCanvas::navLeft ( void   )  [slot]

Move selection to the left sibling of the selected node.

Definition at line 947 of file treecanvas.cpp.

void Gecode::Gist::TreeCanvas::navRight ( void   )  [slot]

Move selection to the right sibling of the selected node.

Definition at line 961 of file treecanvas.cpp.

void Gecode::Gist::TreeCanvas::navRoot ( void   )  [slot]

Move selection to the root node.

Definition at line 975 of file treecanvas.cpp.

void Gecode::Gist::TreeCanvas::navNextSol ( bool  back = false  )  [slot]

Move selection to next solution (in DFS order).

Definition at line 982 of file treecanvas.cpp.

void Gecode::Gist::TreeCanvas::navPrevSol ( void   )  [slot]

Move selection to previous solution (in DFS order).

Definition at line 995 of file treecanvas.cpp.

void Gecode::Gist::TreeCanvas::bookmarkNode ( void   )  [slot]

Bookmark current node.

Definition at line 835 of file treecanvas.cpp.

void Gecode::Gist::TreeCanvas::setPath ( void   )  [slot]

Set the current node to be the head of the path.

Definition at line 860 of file treecanvas.cpp.

void Gecode::Gist::TreeCanvas::inspectPath ( void   )  [slot]

Call the double click inspector for all nodes on the path from root to head of the path.

Definition at line 874 of file treecanvas.cpp.

void Gecode::Gist::TreeCanvas::startCompareNodes ( void   )  [slot]

Wait for click on node to compare with current node.

Definition at line 890 of file treecanvas.cpp.

void Gecode::Gist::TreeCanvas::startCompareNodesBeforeFP ( void   )  [slot]

Wait for click on node to compare with current node before fixpoint.

Definition at line 898 of file treecanvas.cpp.

void Gecode::Gist::TreeCanvas::emitStatusChanged ( void   )  [slot]

Re-emit status change information for current node.

Definition at line 906 of file treecanvas.cpp.

void Gecode::Gist::TreeCanvas::setRecompDistances ( int  c_d,
int  a_d 
) [slot]

Set recomputation distances.

Definition at line 1367 of file treecanvas.cpp.

void Gecode::Gist::TreeCanvas::setAutoHideFailed ( bool  b  )  [slot]

Set preference whether to automatically hide failed subtrees.

Definition at line 1372 of file treecanvas.cpp.

void Gecode::Gist::TreeCanvas::setAutoZoom ( bool  b  )  [slot]

Set preference whether to automatically zoom to fit.

Definition at line 1377 of file treecanvas.cpp.

bool Gecode::Gist::TreeCanvas::getAutoHideFailed ( void   )  [slot]

Return preference whether to automatically hide failed subtrees.

Definition at line 1396 of file treecanvas.cpp.

bool Gecode::Gist::TreeCanvas::getAutoZoom ( void   )  [slot]

Return preference whether to automatically zoom to fit.

Definition at line 1401 of file treecanvas.cpp.

void Gecode::Gist::TreeCanvas::setShowCopies ( bool  b  )  [slot]

Set preference whether to show copies in the tree.

Definition at line 1387 of file treecanvas.cpp.

bool Gecode::Gist::TreeCanvas::getShowCopies ( void   )  [slot]

Return preference whether to show copies in the tree.

Definition at line 1391 of file treecanvas.cpp.

void Gecode::Gist::TreeCanvas::setRefresh ( int  i  )  [slot]

Set refresh rate.

Definition at line 1406 of file treecanvas.cpp.

void Gecode::Gist::TreeCanvas::setRefreshPause ( int  i  )  [slot]

Set refresh pause in msec.

Definition at line 1411 of file treecanvas.cpp.

bool Gecode::Gist::TreeCanvas::getSmoothScrollAndZoom ( void   )  [slot]

Return preference whether to use smooth scrolling and zooming.

Definition at line 1418 of file treecanvas.cpp.

void Gecode::Gist::TreeCanvas::setSmoothScrollAndZoom ( bool  b  )  [slot]

Set preference whether to use smooth scrolling and zooming.

Definition at line 1423 of file treecanvas.cpp.

void Gecode::Gist::TreeCanvas::resizeToOuter ( void   )  [slot]

Resize to the outer widget size if auto zoom is enabled.

Definition at line 1158 of file treecanvas.cpp.

bool Gecode::Gist::TreeCanvas::finish ( void   )  [slot]

Stop search and wait for it to finish.

Definition at line 1262 of file treecanvas.cpp.

void Gecode::Gist::TreeCanvas::scaleChanged ( int   )  [signal]

The scale factor has changed.

void Gecode::Gist::TreeCanvas::autoZoomChanged ( bool   )  [signal]

The auto-zoom state was changed.

void Gecode::Gist::TreeCanvas::contextMenu ( QContextMenuEvent *   )  [signal]

Context menu triggered.

void Gecode::Gist::TreeCanvas::statusChanged ( VisualNode ,
const Statistics ,
bool   
) [signal]

Status bar update.

void Gecode::Gist::TreeCanvas::solution ( const Space  )  [signal]

Signals that a solution has been found.

void Gecode::Gist::TreeCanvas::searchFinished ( void   )  [signal]

Signals that Gist is finished.

void Gecode::Gist::TreeCanvas::addedBookmark ( const QString &  id  )  [signal]

Signals that a bookmark has been added.

void Gecode::Gist::TreeCanvas::removedBookmark ( int  idx  )  [signal]

Signals that a bookmark has been removed.

VisualNode * Gecode::Gist::TreeCanvas::eventNode ( QEvent *  event  )  [protected]

Return the node corresponding to the event position.

Definition at line 1089 of file treecanvas.cpp.

bool Gecode::Gist::TreeCanvas::event ( QEvent *  event  )  [protected]

General event handler, used for displaying tool tips.

Definition at line 1139 of file treecanvas.cpp.

void Gecode::Gist::TreeCanvas::paintEvent ( QPaintEvent *  event  )  [protected]

Paint the tree.

Definition at line 1164 of file treecanvas.cpp.

void Gecode::Gist::TreeCanvas::mousePressEvent ( QMouseEvent *  event  )  [protected]

Handle mouse press event.

Definition at line 1313 of file treecanvas.cpp.

void Gecode::Gist::TreeCanvas::mouseDoubleClickEvent ( QMouseEvent *  event  )  [protected]

Handle mouse double click event.

Definition at line 1203 of file treecanvas.cpp.

void Gecode::Gist::TreeCanvas::contextMenuEvent ( QContextMenuEvent *  event  )  [protected]

Handle context menu event.

Definition at line 1220 of file treecanvas.cpp.

void Gecode::Gist::TreeCanvas::resizeEvent ( QResizeEvent *  event  )  [protected]

Handle resize event.

Definition at line 1236 of file treecanvas.cpp.

void Gecode::Gist::TreeCanvas::wheelEvent ( QWheelEvent *  event  )  [protected]

Handle mouse wheel events.

Definition at line 1250 of file treecanvas.cpp.

void Gecode::Gist::TreeCanvas::setCurrentNode ( VisualNode n,
bool  update = true 
) [protected]

Set the selected node to n.

Definition at line 1279 of file treecanvas.cpp.

void Gecode::Gist::TreeCanvas::timerEvent ( QTimerEvent *  e  )  [protected, virtual]

Timer invoked for smooth zooming and scrolling.

Definition at line 505 of file treecanvas.cpp.

void Gecode::Gist::TreeCanvas::update ( void   )  [slot]

Update display.

Definition at line 223 of file treecanvas.cpp.

void Gecode::Gist::TreeCanvas::scroll ( void   )  [slot]

React to scroll events.

Definition at line 253 of file treecanvas.cpp.

void Gecode::Gist::TreeCanvas::layoutDone ( int  w,
int  h,
int  scale0 
) [slot]

Layout done.

Definition at line 258 of file treecanvas.cpp.


Member Data Documentation

QMutex Gecode::Gist::TreeCanvas::mutex [protected]

Mutex for synchronizing acccess to the tree.

Definition at line 238 of file treecanvas.hh.

Mutex for synchronizing layout and drawing.

Definition at line 240 of file treecanvas.hh.

Search engine thread.

Definition at line 242 of file treecanvas.hh.

Flag signalling the search to stop.

Definition at line 244 of file treecanvas.hh.

Flag signalling that Gist is ready to be closed.

Definition at line 246 of file treecanvas.hh.

Allocator for nodes.

Definition at line 248 of file treecanvas.hh.

The root node of the tree.

Definition at line 250 of file treecanvas.hh.

The currently best solution (for branch-and-bound).

Definition at line 252 of file treecanvas.hh.

The currently selected node.

Definition at line 254 of file treecanvas.hh.

The head of the currently selected path.

Definition at line 256 of file treecanvas.hh.

QVector<QPair<Inspector*,bool> > Gecode::Gist::TreeCanvas::doubleClickInspectors [protected]

The registered click inspectors, and whether they are active.

Definition at line 258 of file treecanvas.hh.

QVector<QPair<Inspector*,bool> > Gecode::Gist::TreeCanvas::solutionInspectors [protected]

The registered solution inspectors, and whether they are active.

Definition at line 260 of file treecanvas.hh.

QVector<QPair<Inspector*,bool> > Gecode::Gist::TreeCanvas::moveInspectors [protected]

The registered move inspectors, and whether they are active.

Definition at line 262 of file treecanvas.hh.

QVector<QPair<Comparator*,bool> > Gecode::Gist::TreeCanvas::comparators [protected]

The registered comparators, and whether they are active.

Definition at line 264 of file treecanvas.hh.

The bookmarks map.

Definition at line 267 of file treecanvas.hh.

Whether node comparison action is running.

Definition at line 270 of file treecanvas.hh.

Whether node comparison action computes fixpoint.

Definition at line 272 of file treecanvas.hh.

QSlider* Gecode::Gist::TreeCanvas::scaleBar [protected]

The scale bar.

Definition at line 275 of file treecanvas.hh.

Statistics about the search tree.

Definition at line 278 of file treecanvas.hh.

double Gecode::Gist::TreeCanvas::scale [protected]

Current scale factor.

Definition at line 281 of file treecanvas.hh.

Offset on the x axis so that the tree is centered.

Definition at line 283 of file treecanvas.hh.

Whether to hide failed subtrees automatically.

Definition at line 286 of file treecanvas.hh.

Whether to zoom automatically.

Definition at line 288 of file treecanvas.hh.

Whether to show copies in the tree.

Definition at line 290 of file treecanvas.hh.

Refresh rate.

Definition at line 292 of file treecanvas.hh.

Time (in msec) to pause after each refresh.

Definition at line 294 of file treecanvas.hh.

Whether to use smooth scrolling and zooming.

Definition at line 296 of file treecanvas.hh.

The recomputation distance.

Definition at line 299 of file treecanvas.hh.

The adaptive recomputation distance.

Definition at line 301 of file treecanvas.hh.

Timer for smooth zooming.

Definition at line 323 of file treecanvas.hh.

Timer for smooth scrolling.

Definition at line 325 of file treecanvas.hh.

Target x coordinate after smooth scrolling.

Definition at line 327 of file treecanvas.hh.

Source x coordinate after smooth scrolling.

Definition at line 329 of file treecanvas.hh.

Target y coordinate after smooth scrolling.

Definition at line 331 of file treecanvas.hh.

Target y coordinate after smooth scrolling.

Definition at line 333 of file treecanvas.hh.

Target width after layout.

Definition at line 336 of file treecanvas.hh.

Target height after layout.

Definition at line 338 of file treecanvas.hh.

Target scale after layout.

Definition at line 340 of file treecanvas.hh.

Timer id for delaying the update.

Definition at line 342 of file treecanvas.hh.


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