]> SALOME platform Git repositories - modules/gui.git/commitdiff
Salome HOME
Now operation has method "selected", which allows to receive list of names, types...
authorasl <asl@opencascade.com>
Fri, 1 Jul 2005 11:55:23 +0000 (11:55 +0000)
committerasl <asl@opencascade.com>
Fri, 1 Jul 2005 11:55:23 +0000 (11:55 +0000)
src/SalomeApp/SalomeApp_Operation.cxx
src/SalomeApp/SalomeApp_Operation.h

index d5ca2fea777432b8f3d68da5f0c05d15baf93173..add111a67e41d068bd8bae552f437f6492cc16ae 100755 (executable)
@@ -8,15 +8,14 @@
 //  Author : Sergey LITONIN
 //  Module : SALOME
 
-#include "SalomeApp_Operation.h"
-
-#include "SalomeApp_Module.h"
-#include "SalomeApp_Application.h"
-#include "SalomeApp_Operation.h"
+#include <SalomeApp_Operation.h>
+#include <SalomeApp_Module.h>
+#include <SalomeApp_Application.h>
+#include <SalomeApp_Operation.h>
+#include <SalomeApp_DataOwner.h>
+#include <SalomeApp_SelectionMgr.h>
 
-#include <SalomeApp_Dialog.h>
 #include <SUIT_Desktop.h>
-#include <SalomeApp_SelectionMgr.h>
 
 
 /*
@@ -208,6 +207,36 @@ bool SalomeApp_Operation::eventFilter( QObject* obj, QEvent* e )
   return SUIT_Operation::eventFilter( obj, e );
 }
 
+//=======================================================================
+// name    : type
+// Purpose : Find type by entry
+//=======================================================================
+int SalomeApp_Operation::type( const QString& ) const
+{
+  return -1;
+}
+
+//=======================================================================
+// name    : selected
+// Purpose : Get names, types and entries of selected objects
+//=======================================================================
+void SalomeApp_Operation::selected( QStringList& names, SalomeApp_Dialog::TypesList& types, QStringList& entries ) const
+{
+  SUIT_DataOwnerPtrList list; selectionMgr()->selected( list );
+  SUIT_DataOwnerPtrList::const_iterator anIt = list.begin(),
+                                        aLast = list.end();
+  for( ; anIt!=aLast; anIt++ )
+  {
+    SalomeApp_DataOwner* owner = dynamic_cast<SalomeApp_DataOwner*>( (*anIt).operator->() );
+    if( owner )
+    {
+      QString entry = owner->entry();
+      entries.append( entry );
+      types.append( type( entry ) );
+      names.append( owner->IO()->getName() );
+    }
+  }
+}
 //=======================================================================
 // name    : eventFilter
 // Purpose : Block mouse and key events if operator is not active one
@@ -217,20 +246,3 @@ void SalomeApp_Operation::update( const int flags )
   if ( myModule != 0 )
     myModule->update( flags );
 }
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
index c6c1875b7f79ffb1cc84b8ff306a5068d2f724e7..fbc2e74564c510cfb908cb7fe7bf81aa9ee879cb 100755 (executable)
 #ifndef SalomeApp_Operation_H
 #define SalomeApp_Operation_H
 
-#include "SUIT_Operation.h"
+#include <SUIT_Operation.h>
+#include <SalomeApp_Dialog.h>
 
 class SalomeApp_Module;
 class SalomeApp_Application;
 class SalomeApp_Operation;
 class SalomeApp_SelectionMgr;
-class SalomeApp_Dialog;
 class SUIT_Desktop;
 
 /*
@@ -91,7 +91,17 @@ protected:
 
   void                      update( const int );
   // Call update() method of module ( see SalomeApp_Module for description )
+  
 
+  
+  virtual void              selected( QStringList&, SalomeApp_Dialog::TypesList&, QStringList& ) const;
+  // Get names, types and entries of selected objects
+
+  virtual int               type( const QString& ) const;
+  // Find type by entry: default implementation is to return -1
+  // Please redefine it if you want function "selected" to work correctly
+    
 private slots:
 
   virtual void              onSelectionDone();
@@ -101,7 +111,7 @@ private:
 
   bool                      eventFilter( QObject*, QEvent* );
   // Block mouse and key events if operator is not active one
-  
 private:
 
   SalomeApp_Module*         myModule;