Salome HOME
Implementation of 0022615: [CEA 1014] Fold/unfold all the nodes of a block.
authorakl <akl@opencascade.com>
Mon, 18 Aug 2014 10:09:01 +0000 (14:09 +0400)
committerakl <akl@opencascade.com>
Mon, 18 Aug 2014 10:09:01 +0000 (14:09 +0400)
17 files changed:
src/genericgui/GenericGui.cxx
src/genericgui/GenericGui.hxx
src/genericgui/GuiEditor.cxx
src/genericgui/GuiEditor.hxx
src/genericgui/Menus.cxx
src/genericgui/SceneComposedNodeItem.cxx
src/genericgui/SceneComposedNodeItem.hxx
src/genericgui/SceneElementaryNodeItem.cxx
src/genericgui/SceneElementaryNodeItem.hxx
src/genericgui/SceneItem.cxx
src/genericgui/SceneItem.hxx
src/genericgui/SceneNodeItem.cxx
src/genericgui/SceneNodeItem.hxx
src/genericgui/SceneProcItem.cxx
src/genericgui/SceneProcItem.hxx
src/salomegui/resources/YACS_msg_fr.ts
src/salomegui/resources/YACS_msg_ja.ts

index 2677874d90253e85ab7ca41f0ed634f253cb2494..e6086cef77c7ee74e822e5e42c37c6cb7d21a0f5 100644 (file)
@@ -460,6 +460,14 @@ void GenericGui::createActions()
                                             tr("shrink/expand"), tr("shrink or expand the selected node"),
                                             0, _parent, false, this,  SLOT(onShrinkExpand()));
 
+  _shrinkExpandChildren = _wrapper->createAction(getMenuId(), tr("shrink or expand direct children of the selected node"), QIcon("icons:shrinkExpand.png"),
+                                            tr("shrink/expand children"), tr("shrink or expand direct children of the selected node"),
+                                            0, _parent, false, this,  SLOT(onShrinkExpandChildren()));
+
+  _shrinkExpandElementaryRecursively = _wrapper->createAction(getMenuId(), tr("shrink or expand elementary nodes of the selected node recursively"), QIcon("icons:shrinkExpand.png"),
+                                            tr("shrink/expand elementary"), tr("shrink or expand elementary nodes of the selected node recursively"),
+                                            0, _parent, false, this,  SLOT(onShrinkExpandElementaryRecursively()));
+
   _toggleStraightLinksAct = _wrapper->createAction(getMenuId(), tr("draw straight or orthogonal links"), QIcon("icons:straightLink.png"),
                                                    tr("straight/orthogonal"), tr("draw straight or orthogonal links"),
                                                    0, _parent, true, this,  SLOT(onToggleStraightLinks(bool)));
@@ -2182,6 +2190,16 @@ void GenericGui::onShrinkExpand() {
   _guiEditor->shrinkExpand();
 }
 
+void GenericGui::onShrinkExpandChildren() {
+  DEBTRACE("GenericGui::onShrinkExpandChildren");
+  _guiEditor->shrinkExpand(Qt::ControlModifier|Qt::ShiftModifier);
+}
+
+void GenericGui::onShrinkExpandElementaryRecursively() {
+  DEBTRACE("GenericGui::onShrinkExpandElementaryRecursively");
+  _guiEditor->shrinkExpand(Qt::ControlModifier);
+}
+
 void GenericGui::onToggleStraightLinks(bool checked)
 {
   Scene::_straightLinks = checked;
index b3c9db94acc3310ea59ae5afc29631f2b3688b6c..92767e1c24c3526db6d2f890f37e2f3bc6cc317a 100644 (file)
@@ -161,6 +161,8 @@ namespace YACS
       QAction *_zoomToBlocAct;
       QAction *_centerOnNodeAct;
       QAction *_shrinkExpand;
+      QAction *_shrinkExpandChildren;
+      QAction *_shrinkExpandElementaryRecursively;
 
       QAction *_toggleStraightLinksAct;
       QAction *_toggleAutomaticComputeLinkAct;
@@ -300,6 +302,8 @@ namespace YACS
       void onZoomToBloc();
       void onCenterOnNode();
       void onShrinkExpand();
+      void onShrinkExpandChildren();
+      void onShrinkExpandElementaryRecursively();
       void onToggleStraightLinks(bool checked);
       void onToggleAutomaticComputeLinks(bool checked);
       void onToggleSimplifyLinks(bool checked);
index 45dc0e33b13bfe305a1d17a7fd5a40f000ebfb43..c50a41dda7e654fa9519e829a813650acd5e2086 100644 (file)
@@ -372,7 +372,7 @@ SubjectDataPort*  GuiEditor::CreateOutputPort(SubjectElementaryNode* seNode,
 /*!
  * Subject shrink or expand, command from popup menu: needs a valid selection
  */
-void GuiEditor::shrinkExpand() {
+void GuiEditor::shrinkExpand(Qt::KeyboardModifiers kbModifiers) {
   DEBTRACE("GuiEditor::shrinkExpand");
 
   Subject* sub = QtGuiContext::getQtCurrent()->getSelectedSubject();
@@ -393,12 +393,14 @@ void GuiEditor::shrinkExpand() {
     return;
   };
 
-  if (sni->isExpanded()) {
-    sni->setExpanded(false);
-  } else {
-    sni->setExpanded(true);
-  };
-  sni->reorganizeShrinkExpand();
+  ShrinkMode aShrinkMode = CurrentNode;
+  if (kbModifiers == Qt::ControlModifier) {
+    aShrinkMode = ElementaryNodes;
+  } else if (kbModifiers == (Qt::ShiftModifier|Qt::ControlModifier)) {
+    aShrinkMode = ChildrenNodes;
+  }
+
+  sni->reorganizeShrinkExpand(aShrinkMode);
   sni->showOutScopeLinks();
   sni->updateLinks();
 }
index 627993b8165654a90e38244f9c0fa1de2b55a1cc..7940b744320c491ebc22abc17d45a7f4d87908df 100644 (file)
@@ -82,7 +82,7 @@ namespace YACS
       void PutSubjectInBloc();
       std::string PutGraphInBloc();
       void PutGraphInNode(std::string typeNode);
-      void shrinkExpand();
+      void shrinkExpand(Qt::KeyboardModifiers kbModifiers = Qt::NoModifier);
       void rebuildLinks();
       void arrangeNodes(bool isRecursive);
       void arrangeProc();
index 49c996f05bfaadb53d7f19d474ead490fd14f4fa..8cbc6bc0d19fea60eb14787f096515dbb49b6e22 100644 (file)
@@ -170,6 +170,8 @@ void ComposedNodeMenu::popupMenu(QWidget *caller, const QPoint &globalPos, const
   menu.addAction(gmain->_zoomToBlocAct);
   menu.addAction(gmain->_centerOnNodeAct);
   menu.addAction(gmain->_shrinkExpand);
+  menu.addAction(gmain->_shrinkExpandChildren);
+  menu.addAction(gmain->_shrinkExpandElementaryRecursively);
   menu.addAction(gmain->_computeLinkAct);
 //   menu.addAction(gmain->_toggleAutomaticComputeLinkAct);
 //   menu.addAction(gmain->_toggleSimplifyLinkAct);
@@ -272,6 +274,8 @@ void ProcMenu::popupMenu(QWidget *caller, const QPoint &globalPos, const QString
   menu.addAction(gmain->_zoomToBlocAct);
   menu.addAction(gmain->_centerOnNodeAct);
   menu.addAction(gmain->_shrinkExpand);
+  menu.addAction(gmain->_shrinkExpandChildren);
+  menu.addAction(gmain->_shrinkExpandElementaryRecursively);
   menu.addAction(gmain->_computeLinkAct);
 //   menu.addAction(gmain->_toggleAutomaticComputeLinkAct);
 //   menu.addAction(gmain->_toggleSimplifyLinkAct);
index ddd78059592241b8441ff0e709d0b39d84f918f1..6c18f9fe4f6f0e1861cc8935d38a1b3353758bcc 100644 (file)
@@ -391,12 +391,10 @@ void SceneComposedNodeItem::removeChildFromList(AbstractSceneItem* child)
   _children.remove(child);
 }
 
-void SceneComposedNodeItem::reorganizeShrinkExpand() {
-  DEBTRACE("SceneComposedNodeItem::reorganizeShrinkExpand " << _expanded << " " << _label.toStdString());
-  bool isExpanding = isExpanded();
-
+void SceneComposedNodeItem::updateControlLinks(bool toExpand)
+{
   //update control links
-  std::list<SubjectControlLink*> lscl=dynamic_cast<SubjectNode*>(_subject)->getSubjectControlLinks();
+  std::list<SubjectControlLink*> lscl=dynamic_cast<SubjectNode*>(getSubject())->getSubjectControlLinks();
   for (std::list<SubjectControlLink*>::const_iterator it = lscl.begin(); it != lscl.end(); ++it) {
     SceneLinkItem* lk = dynamic_cast<SceneLinkItem*>(QtGuiContext::getQtCurrent()->_mapOfSceneItem[*it]);
 
@@ -419,15 +417,44 @@ void SceneComposedNodeItem::reorganizeShrinkExpand() {
     };
 
     if (b1 && b2) {
-      if (isExpanding) {
+      if (toExpand) {
         lk->show();
       } else {
         lk->hide();
       };
     };
   };
+}
+
+void SceneComposedNodeItem::reorganizeShrinkExpand(ShrinkMode theShrinkMode) {
+  DEBTRACE("SceneComposedNodeItem::reorganizeShrinkExpand " << _expanded << " " << _label.toStdString());
+
+  bool toExpand = true;
+  if (theShrinkMode == CurrentNode) {
+    // shrink/expand current node only
+    toExpand = !isExpanded();
+
+    updateControlLinks(toExpand);
+    shrinkExpandRecursive(toExpand, true, theShrinkMode);
+
+  } else {
+    if (!isExpanded())
+      return;
+    // shrink/expand child nodes
+    toExpand = !hasExpandedChildren(theShrinkMode == ElementaryNodes);
+    for (list<AbstractSceneItem*>::const_iterator it=_children.begin(); it!=_children.end(); ++it) {
+      SceneItem* item = dynamic_cast<SceneItem*>(*it);
+      SceneNodeItem *sni = dynamic_cast<SceneNodeItem*>(item);
+      item->shrinkExpandRecursive(toExpand, true, theShrinkMode);
+    }
+    _ancestorShrinked = !toExpand;
+    _width = _expandedWidth;
+    _height = _expandedHeight;
+    _shownState = expandShown;
+    adjustHeader();
+    rebuildLinks();
+  }
 
-  shrinkExpandRecursive(isExpanding, true);
   if (Scene::_autoComputeLinks)
     {
       SubjectProc* subproc = QtGuiContext::getQtCurrent()->getSubjectProc();
@@ -437,70 +464,116 @@ void SceneComposedNodeItem::reorganizeShrinkExpand() {
     }
 }
 
-void SceneComposedNodeItem::shrinkExpandRecursive(bool isExpanding, bool fromHere)
+bool SceneComposedNodeItem::hasExpandedChildren(bool recursively)
+{
+  bool res = false;
+  for (list<AbstractSceneItem*>::const_iterator it=_children.begin(); it!=_children.end() && !res; ++it) {
+    SceneItem* item = dynamic_cast<SceneItem*>(*it);
+    SceneNodeItem *sni = dynamic_cast<SceneNodeItem*>(item);
+    if (sni->isExpanded()) {
+      res = true;
+      if (recursively)
+        if (SceneComposedNodeItem *scni = dynamic_cast<SceneComposedNodeItem*>(sni))
+          res = scni->hasExpandedChildren(recursively);
+    }
+  }
+  return res;
+}
+
+void SceneComposedNodeItem::shrinkExpandRecursive(bool toExpand, bool fromHere, ShrinkMode theShrinkMode)
 {
   DEBTRACE("SceneComposedNodeItem::shrinkExpandRecursive " << isExpanding << " " << fromHere << " " << isExpanded() << " " << _label.toStdString());
   
-  if (!isExpanding)
+  bool toChangeShrinkState = false;
+  switch (theShrinkMode) {
+  case CurrentNode:
+    if (fromHere)
+      toChangeShrinkState = true;
+    break;
+  case ChildrenNodes:
+    if (fromHere)
+      toChangeShrinkState = true;
+    break;
+  case ElementaryNodes:
+    toChangeShrinkState = false;
+    break;
+  }
+  if (toChangeShrinkState) {
+    if (toExpand != isExpanded())
+      setExpanded(toExpand);
+  } else if (!isExpanded() && theShrinkMode == ElementaryNodes) {
+    return;
+  }
+
+  updateControlLinks(toExpand);
+
+  if (!toExpand)
     { // ---collapsing: hide first children , then resize
       for (list<AbstractSceneItem*>::const_iterator it=_children.begin(); it!=_children.end(); ++it)
         {
           SceneItem* item = dynamic_cast<SceneItem*>(*it);
-          item->shrinkExpandRecursive(false, false);
-          item->hide();  
-          DEBTRACE("------------------------------- Hide " << item->getLabel().toStdString());
-          item->shrinkExpandLink(false);  
+          item->shrinkExpandRecursive(toExpand, false, theShrinkMode);
+          if (theShrinkMode != ElementaryNodes) {
+            item->hide();  
+            DEBTRACE("------------------------------- Hide " << item->getLabel().toStdString());
+            item->shrinkExpandLink(false);  
+          }
         }
 
-      if (_shownState == expandShown)
-        {
-           _expandedWidth = _width;
-           _expandedHeight = _height;
-        }
+      if (toChangeShrinkState || theShrinkMode != ElementaryNodes) {
+        if (_shownState == expandShown)
+          {
+             _expandedWidth = _width;
+             _expandedHeight = _height;
+          }
 
-      if (fromHere)
-        {
-          _shownState = shrinkShown;
-        }
-      else
-        {
-          _ancestorShrinked = true;
-          _shownState = shrinkHidden;
-        }
+        if (fromHere)
+          {
+            _shownState = shrinkShown;
+          }
+        else
+          {
+            _ancestorShrinked = true;
+            _shownState = shrinkHidden;
+          }
 
-      _width  = 2*Resource::Corner_Margin + 2*Resource::DataPort_Width + Resource::Space_Margin;
-      if (_shownState == shrinkShown)
-        _height = getHeaderBottom() + Resource::Corner_Margin;
-      else
-        _height = Resource::Header_Height + Resource::Corner_Margin;
+        _width  = 2*Resource::Corner_Margin + 2*Resource::DataPort_Width + Resource::Space_Margin;
+        if (_shownState == shrinkShown)
+          _height = getHeaderBottom() + Resource::Corner_Margin;
+        else
+          _height = Resource::Header_Height + Resource::Corner_Margin;
       
-      if (_shownState == shrinkHidden) // shrink of ancestor
-        setPos(0 ,0);
-      else
-        setPos(_expandedPos);
-      adjustHeader();
-      if (_progressItem)
-        _progressItem->adjustGeometry();
+        if (_shownState == shrinkHidden) // shrink of ancestor
+          setPos(0 ,0);
+        else
+          setPos(_expandedPos);
+        adjustHeader();
+        if (_progressItem)
+          _progressItem->adjustGeometry();
+      }
     }
   else
     { // --- expanding: resize, then show children
-      _ancestorShrinked = false;
+      if (toChangeShrinkState)
+        _ancestorShrinked = false;
 
       for (list<AbstractSceneItem*>::const_iterator it=_children.begin(); it!=_children.end(); ++it)
         {
           SceneItem* item = dynamic_cast<SceneItem*>(*it);
-          item->shrinkExpandRecursive(isExpanded(), false); 
-          if (isExpanded())
-            {
-              item->show();  
-              DEBTRACE("------------------------------- Show " << item->getLabel().toStdString());
-            }
-          else
-            {
-              item->hide();  
-              DEBTRACE("------------------------------- Hide " << item->getLabel().toStdString());
-            }
-          item->shrinkExpandLink(fromHere);  
+          item->shrinkExpandRecursive(isExpanded(), false, theShrinkMode); 
+          if (theShrinkMode != ElementaryNodes) {
+            if (isExpanded())
+              {
+                item->show();  
+                DEBTRACE("------------------------------- Show " << item->getLabel().toStdString());
+              }
+            else
+              {
+                item->hide();  
+                DEBTRACE("------------------------------- Hide " << item->getLabel().toStdString());
+              }
+            item->shrinkExpandLink(fromHere);  
+          }
         }
 
       if (isExpanded())
index 37e55d264fa3e534738321291d8a051a6c5bdd86..639cf0c86d65d13d08f28ab2be6f5d9b852799e7 100644 (file)
@@ -45,8 +45,8 @@ namespace YACS
       virtual std::list<AbstractSceneItem*> getChildren();
       virtual void removeChildFromList(AbstractSceneItem* child);
       virtual void reorganize();
-      virtual void reorganizeShrinkExpand();
-      virtual void shrinkExpandRecursive(bool isExpanding, bool fromHere);
+      virtual void reorganizeShrinkExpand(ShrinkMode theShrinkMode);
+      virtual void shrinkExpandRecursive(bool isExpanding, bool fromHere, ShrinkMode theShrinkMode);
       virtual void shrinkExpandLink(bool se);
       virtual void collisionResolv(SceneItem* child, QPointF oldPos);
       virtual void rebuildLinks();
@@ -55,10 +55,12 @@ namespace YACS
       virtual void arrangeChildNodes();
       virtual void adjustColors();
       virtual void setShownState(shownState ss);
+      virtual bool hasExpandedChildren(bool recursively);
     protected:
       void dragEnterEvent(QGraphicsSceneDragDropEvent *event);
       void dragLeaveEvent(QGraphicsSceneDragDropEvent *event);
       void dropEvent(QGraphicsSceneDragDropEvent *event);
+      void updateControlLinks(bool toExpand);
       virtual QColor getPenColor();
       virtual QColor getBrushColor();
 
index 40d4b4d339f1672db1b019c909eb0db04e4cb317..9396fe049b75bca9cf49047b5b8997949fefb85e 100644 (file)
@@ -187,10 +187,12 @@ void SceneElementaryNodeItem::popupMenu(QWidget *caller, const QPoint &globalPos
   m.popupMenu(caller, globalPos);
 }
 
-void SceneElementaryNodeItem::reorganizeShrinkExpand()
+void SceneElementaryNodeItem::reorganizeShrinkExpand(ShrinkMode theShrinkMode)
 {
   DEBTRACE("SceneElementaryNodeItem::reorganizeShrinkExpand " << isExpanded() << " "  << _label.toStdString());
-  shrinkExpandRecursive(isExpanded(), true);
+  if (theShrinkMode != CurrentNode)
+    return;
+  shrinkExpandRecursive(!isExpanded(), true, theShrinkMode);
   if (Scene::_autoComputeLinks)
     {
       SubjectProc* subproc = QtGuiContext::getQtCurrent()->getSubjectProc();
@@ -200,30 +202,48 @@ void SceneElementaryNodeItem::reorganizeShrinkExpand()
     }
 }
 
-void SceneElementaryNodeItem::shrinkExpandRecursive(bool isExpanding, bool fromHere)
+void SceneElementaryNodeItem::shrinkExpandRecursive(bool toExpand, bool fromHere, ShrinkMode theShrinkMode)
 {
-  DEBTRACE("SceneElementaryNodeItem::shrinkExpandRecursive " << isExpanding << " " << fromHere << " "  << isExpanded() << " " << _label.toStdString());
-  if (isExpanding)
-    {
+  DEBTRACE("SceneElementaryNodeItem::shrinkExpandRecursive " << toExpand << " " << fromHere << " "  << isExpanded() << " " << _label.toStdString());
+  
+  bool toChangeShrinkState = false;
+  switch (theShrinkMode) {
+  case CurrentNode:
+    if (fromHere)
+      toChangeShrinkState = true;
+    break;
+  case ChildrenNodes:
+    if (fromHere)
+      toChangeShrinkState = true;
+    break;
+  case ElementaryNodes:
+    toChangeShrinkState = true;
+    break;
+  }
+  if (toChangeShrinkState && toExpand != isExpanded())
+    setExpanded(toExpand);
+
+  if (toExpand) {
+    if (toChangeShrinkState) {
       _ancestorShrinked = false;
+      _shownState = expandShown;
+    } else {
       if (isExpanded())
         _shownState = expandShown;
       else
         _shownState = shrinkShown;
     }
-  else
-    {
-      if (fromHere)
-        _shownState = shrinkShown;
-      else
-        {
-          _ancestorShrinked = true;
-          _shownState = shrinkHidden;
-        }
+  } else {
+    if (fromHere || theShrinkMode==ElementaryNodes) {
+      _shownState = shrinkShown;
+    } else {
+      _ancestorShrinked = true;
+      _shownState = shrinkHidden;
     }
+  }
 
   if (_shownState == shrinkHidden) // shrink of ancestor
-    setPos(0 ,0);
+    setPos(00);
   else
     setPos(_expandedPos);
 
index 66ecbe387225135e72f4aaf33b334dc85cee5cff..fdc2f16ae151014a9941cc2e0b8a778230aa688f 100644 (file)
@@ -42,8 +42,8 @@ namespace YACS
       virtual void popupMenu(QWidget *caller, const QPoint &globalPos);
       virtual void autoPosNewPort(AbstractSceneItem *item, int nbPorts);
       virtual void reorganize();
-      virtual void reorganizeShrinkExpand();
-      virtual void shrinkExpandRecursive(bool isExpanding, bool fromHere);
+      virtual void reorganizeShrinkExpand(ShrinkMode theShrinkMode);
+      virtual void shrinkExpandRecursive(bool isExpanding, bool fromHere, ShrinkMode theShrinkMode);
       virtual void setShownState(shownState ss);
     protected:
       int _maxPorts;
index 35fb5f077f4520e01c61cbedb5cfbb0bcd0704f7..d097bb19b80c62a057d998c2bc8cbd7a7cf99739 100644 (file)
@@ -436,7 +436,7 @@ void SceneItem::shrinkExpandLink(bool se)
 }
 
 
-void SceneItem::shrinkExpandRecursive(bool isExpanding, bool fromHere)
+void SceneItem::shrinkExpandRecursive(bool isExpanding, bool fromHere, ShrinkMode theShrinkMode)
 {
 }
 
index 06cf276a351886d44a6a24b3948d1ce840289511..a04e6dba1eaa3899a0fc3465956042f1c332b64e 100644 (file)
@@ -33,6 +33,13 @@ namespace YACS
 {
   namespace HMI
   {
+    typedef enum
+      {
+        CurrentNode,
+        ChildrenNodes,
+        ElementaryNodes
+      } ShrinkMode;
+    
     class Scene;
 
     class RootSceneItem: public GuiObserver
@@ -131,7 +138,7 @@ namespace YACS
       virtual void updateChildItems();
       virtual void updateLinks();
       virtual void shrinkExpandLink(bool se);
-      virtual void shrinkExpandRecursive(bool isExpanding, bool fromHere);
+      virtual void shrinkExpandRecursive(bool isExpanding, bool fromHere, ShrinkMode theShrinkMode);
       bool isAncestorShrinked() { return _ancestorShrinked; };
       bool _blocX;
       bool _blocY;
index fdff648d0804d06460e83d42bc914ed71ea4db4a..8c7ee43ab177c80850df64de01474eb43679ca36 100644 (file)
@@ -179,7 +179,7 @@ void SceneNodeItem::arrangeChildNodes()
 {
 }
 
-void SceneNodeItem::reorganizeShrinkExpand()
+void SceneNodeItem::reorganizeShrinkExpand(ShrinkMode theShrinkMode)
 {
 }
 
@@ -310,7 +310,7 @@ void SceneNodeItem::mouseMoveEvent(QGraphicsSceneMouseEvent * event)
 void SceneNodeItem::mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event)
 {
   DEBTRACE("SceneNodeItem::mouseDoubleClickEvent");
-  QtGuiContext::getQtCurrent()->getGMain()->_guiEditor->shrinkExpand();
+  QtGuiContext::getQtCurrent()->getGMain()->_guiEditor->shrinkExpand(QApplication::keyboardModifiers());
 }
 
 void SceneNodeItem::setTopLeft(QPointF topLeft)
index 5205a49383a0627377f08009762e28de7ba465cd..292c31d775179494d34eb81d8703cb02f9d988a6 100644 (file)
@@ -72,7 +72,7 @@ namespace YACS
       virtual void updateName();
       virtual void arrangeNodes(bool isRecursive);
       virtual void arrangeChildNodes();
-      virtual void reorganizeShrinkExpand();
+      virtual void reorganizeShrinkExpand(ShrinkMode theShrinkMode);
       virtual void updateChildItems();
       virtual void shrinkExpandLink(bool se);
       virtual void showOutScopeLinks();
index 14ec4befe06571e9f7a043611676e8ea93cbae0c..919d9510d044ee8f22ac57a206e1d832d0733c58 100644 (file)
@@ -52,41 +52,3 @@ void SceneProcItem::popupMenu(QWidget *caller, const QPoint &globalPos)
   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();
-  rebuildLinks();
-}
-
index 8e4ce68f00677753f2ea9a3562aa4a27f4210f8f..725accab3fd56dce23d61563c44874ab631c050b 100644 (file)
@@ -33,7 +33,6 @@ namespace YACS
                     QString label, Subject *subject);
       virtual ~SceneProcItem();
       virtual void popupMenu(QWidget *caller, const QPoint &globalPos);
-      virtual void reorganizeShrinkExpand();
     };
   }
 }
index acc337c8af78c7b39b5012c75ffefc43f0e00b15..ae221267b3e4b1e9cb012fc7b51ae3650c2d052d 100644 (file)
         <source>shrink or expand the selected node</source>
         <translation>contracter ou étendre le noeud choisi</translation>
     </message>
+    <message>
+        <source>shrink or expand direct children of the selected node</source>
+        <translation type="unfinished">contracter ou étendre le noeud choisi</translation>
+    </message>
+    <message>
+        <source>shrink or expand elementary nodes of the selected node recursively</source>
+        <translation type="unfinished">contracter ou étendre le noeud choisi</translation>
+    </message>
     <message>
         <source>shrink/expand</source>
         <translation>contracter/étendre</translation>
     </message>
+    <message>
+        <source>shrink/expand children</source>
+        <translation type="unfinished">contracter/étendre</translation>
+    </message>
+    <message>
+        <source>shrink/expand elementary</source>
+        <translation type="unfinished">contracter/étendre</translation>
+    </message>
     <message>
         <source>draw straight or orthogonal links</source>
         <translation>Créer les liens droits ou orthogonaux</translation>
index f30cce995b9c691f33c59978c35a732230966951..a8508990e3a372a236dd16a603c4394096e328e9 100644 (file)
       <source>shrink or expand the selected node</source>
       <translation>選択中のノードを展開または縮小</translation>
     </message>
+    <message>
+      <source>shrink or expand direct children of the selected node</source>
+      <translation type="unfinished">選択中のノードを展開または縮小</translation>
+    </message>
+    <message>
+      <source>shrink or expand elementary nodes of the selected node recursively</source>
+      <translation type="unfinished">選択中のノードを展開または縮小</translation>
+    </message>
     <message>
       <source>shrink/expand</source>
       <translation>展開/縮小</translation>
     </message>
+    <message>
+      <source>shrink/expand children</source>
+      <translation type="unfinished">展開/縮小</translation>
+    </message>
+    <message>
+      <source>shrink/expand elementary</source>
+      <translation type="unfinished">展開/縮小</translation>
+    </message>
     <message>
       <source>draw straight or orthogonal links</source>
       <translation>直線または直交リンクを描画</translation>