menu.addSeparator();
menu.addAction(gmain->_zoomToBlocAct);
menu.addAction(gmain->_centerOnNodeAct);
+ menu.addAction(gmain->_shrinkExpand);
menu.addAction(gmain->_computeLinkAct);
// menu.addAction(gmain->_toggleAutomaticComputeLinkAct);
// menu.addAction(gmain->_toggleSimplifyLinkAct);
QWidget *widget)
{
//DEBTRACE("SceneComposedNodeItem::paint " << _label.toStdString());
-
- if (!isExpanded()) {
+ // IMN (14/11/2013) below block commented
+ // prevent bad resizing of scene in shrink mode
+ /* if (!isExpanded()) {
_width = 2*Resource::Corner_Margin + 2*Resource::DataPort_Width + Resource::Space_Margin;
_height = getHeaderBottom() + Resource::Corner_Margin;
- };
+ };*/
painter->save();
painter->setPen(getPenColor());
#include "SceneProcItem.hxx"
#include "Menus.hxx"
+#include "SceneLinkItem.hxx"
+#include "QtGuiContext.hxx"
+#include "Scene.hxx"
+#include "Resource.hxx"
//#define _DEVDEBUG_
ProcMenu m;
m.popupMenu(caller, globalPos);
}
+
+void SceneProcItem::reorganizeShrinkExpand() {
+ if (_children.size() == 0)
+ return;
+ bool isExpanding = true;
+ DEBTRACE("SceneProcItem::reorganizeShrinkExpand " << _expanded << " " << _label.toStdString());
+ for (list<AbstractSceneItem*>::const_iterator it=_children.begin(); it!=_children.end(); ++it)
+ {
+ SceneItem* item = dynamic_cast<SceneItem*>(*it);
+ SceneNodeItem *sni = dynamic_cast<SceneNodeItem*>(item);
+ if (sni->isExpanded()) {
+ isExpanding = false;
+ break;
+ }
+ }
+ for (list<AbstractSceneItem*>::const_iterator it=_children.begin(); it!=_children.end(); ++it)
+ {
+ SceneItem* item = dynamic_cast<SceneItem*>(*it);
+ SceneNodeItem *sni = dynamic_cast<SceneNodeItem*>(item);
+ if (!isExpanding && sni->isExpanded()) {
+ sni->setExpanded(false);
+ item->shrinkExpandRecursive(false, true);
+ DEBTRACE("------------------------------- Hide " << item->getLabel().toStdString());
+ }
+ if (isExpanding && !sni->isExpanded()) {
+ sni->setExpanded(true);
+ item->shrinkExpandRecursive(true, false);
+ DEBTRACE("------------------------------- Show " << item->getLabel().toStdString());
+ }
+ item->shrinkExpandLink(isExpanding);
+ }
+ _ancestorShrinked = !isExpanding;
+ _width = _expandedWidth;
+ _height = _expandedHeight;
+ _shownState = expandShown;
+ adjustHeader();
+}
+