]> SALOME platform Git repositories - modules/gui.git/commitdiff
Salome HOME
Phase 17 notebook imp: show Notebook item with own popup in the object browser
authorvsr <vsr@opencascade.com>
Mon, 14 Dec 2009 16:53:51 +0000 (16:53 +0000)
committervsr <vsr@opencascade.com>
Mon, 14 Dec 2009 16:53:51 +0000 (16:53 +0000)
src/LightApp/LightApp_Module.cxx
src/LightApp/LightApp_Module.h
src/SalomeApp/SalomeApp_Application.cxx
src/SalomeApp/resources/SalomeApp_msg_en.ts

index 5ebe69044270a7ad18912c01d50616b73ad5a204..c2d5b0121963255baddf37ff0ce0eb7c25c5fae7 100644 (file)
@@ -200,6 +200,16 @@ bool LightApp_Module::isSelectionCompatible()
   return isCompatible;
 }
 
+QList<QAction*> LightApp_Module::displayActions() const
+{
+  QList<QAction*> res;
+  if ( action( myDisplay ) )     res << action( myDisplay );
+  if ( action( myErase ) )       res << action( myErase );
+  if ( action( myDisplayOnly ) ) res << action( myDisplayOnly );
+  if ( action( myEraseAll ) )    res << action( myEraseAll );
+  return res;
+}
+
 /*!Activate module.*/
 bool LightApp_Module::activateModule( SUIT_Study* study )
 {
index 88ed1b44e119006c037ef546a8049677cc2415c9..6aec9065329e222817135e07556f238456972552 100644 (file)
@@ -30,6 +30,8 @@
 #include "LightApp_Preferences.h"
 #include <CAM_Module.h>
 
+#include <QList>
+
 class LightApp_Application;
 class LightApp_Selection;
 class LightApp_Operation;
@@ -45,6 +47,7 @@ class CAM_Application;
 
 class QtxPopupMgr;
 
+class QAction;
 class QString;
 class QVariant;
 
@@ -91,6 +94,8 @@ public:
 
   virtual LightApp_Displayer*         displayer();
   virtual LightApp_Selection*         createSelection() const;
+  
+  QList<QAction*>                     displayActions() const;
 
 public slots:
   virtual bool                        activateModule( SUIT_Study* );
index 71f9c3fd910e16cf1218899d4f7b11986124cf02..c43f37ea4b30b15977a7107c685518191bca46c3 100644 (file)
@@ -48,6 +48,7 @@
 #include <LightApp_SelectionMgr.h>
 #include <LightApp_NameDlg.h>
 #include <LightApp_DataOwner.h>
+#include <LightApp_Module.h>
 
 #include <CAM_Module.h>
 
@@ -1181,14 +1182,34 @@ void SalomeApp_Application::contextMenuPopup( const QString& type, QMenu* thePop
   // "Activate module" item should appear only if it's necessary
   if (aList.Extent() != 1)
     return;
+
   Handle(SALOME_InteractiveObject) aIObj = aList.First();
+
   // check if item is a "GUI state" item (also a first level object)
   QString entry( aIObj->getEntry() );
   if ( entry.startsWith( tr( "SAVE_POINT_DEF_NAME" ) ) )
     return;
+
   QString aModuleName(aIObj->getComponentDataType());
   QString aModuleTitle = moduleTitle(aModuleName);
   CAM_Module* currentModule = activeModule();
+
+  // check if it a "Notebook" item
+  if ( aModuleName == "NOTEBOOK" ) {
+    if ( currentModule ) {
+      LightApp_Module* lightModule = dynamic_cast<LightApp_Module*>( currentModule );
+      if ( lightModule ) {
+       QList<QAction*> displayActions = lightModule->displayActions();
+       QAction* a;
+       foreach( a, displayActions ) thePopup->removeAction( a );
+      }
+    }
+    thePopup->insertSeparator( thePopup->actions()[0] );
+    QAction* nbAction = new QAction( tr( "MEN_SHOW_NOTEBOOK" ), thePopup );
+    connect( nbAction, SIGNAL( activated() ), this, SLOT( onNoteBook() ) );
+    thePopup->insertAction( thePopup->actions()[0], nbAction );
+  }
+
   if (currentModule && currentModule->moduleName() == aModuleTitle)
     return;
   if ( !aModuleTitle.isEmpty() )
@@ -1350,6 +1371,8 @@ void SalomeApp_Application::onStudyCreated( SUIT_Study* study )
 {
   LightApp_Application::onStudyCreated( study );
 
+  updateObjectBrowser( true );
+
   objectBrowserColumnsVisibility();
 }
 
@@ -1370,6 +1393,8 @@ void SalomeApp_Application::onStudyOpened( SUIT_Study* study )
 {
   LightApp_Application::onStudyOpened( study );
 
+  updateObjectBrowser( true );
+
   objectBrowserColumnsVisibility();
 
   // temporary commented
index 1971b2a3b84d116bade237f3f499cd1bef412443..27da359bbf16c584b8be6fb7ed580d104e57dcfa 100644 (file)
@@ -118,6 +118,10 @@ Do you want to define them by the notebook?</translation>
         <source>APPCLOSE_CLOSE</source>
         <translation>&amp;Close w/o saving</translation>
     </message>
+    <message>
+        <source>MEN_SHOW_NOTEBOOK</source>
+        <translation>Edit variables</translation>
+    </message>
     <message>
         <source>MEN_WINDOWS_NEW</source>
         <translation>New Window</translation>