]> SALOME platform Git repositories - modules/gui.git/commitdiff
Salome HOME
implementation of copy/paste mechanism allowing the active module to use own copy...
authorasl <asl@opencascade.com>
Thu, 18 Mar 2010 10:26:35 +0000 (10:26 +0000)
committerasl <asl@opencascade.com>
Thu, 18 Mar 2010 10:26:35 +0000 (10:26 +0000)
src/LightApp/LightApp_Application.cxx
src/LightApp/LightApp_Application.h
src/LightApp/LightApp_Module.cxx
src/LightApp/LightApp_Module.h

index 13075b4083b4c723ed641f10c7e4c81500c10c72..e66cf34c3a2c9c980d3f721c5cac4a53fb12501e 100644 (file)
 // E.A. : On windows with python 2.6, there is a conflict
 // E.A. : between pymath.h and Standard_math.h which define
 // E.A. : some same symbols : acosh, asinh, ...
-#include <Standard_math.hxx>
-#include <pymath.h>
+  #include <Standard_math.hxx>
+  #ifndef DISABLE_PYCONSOLE
+    #include <pymath.h>
+  #endif
 #endif
 
 #ifndef DISABLE_PYCONSOLE
+  
   #include "LightApp_PyInterp.h" // WARNING! This include must be the first!
   #include <PyConsole_Console.h>
 #endif
@@ -1015,6 +1018,12 @@ void LightApp_Application::onHelpContextModule( const QString& theComponentName,
 */
 void LightApp_Application::onSelectionChanged()
 {
+  LightApp_Module* m = dynamic_cast<LightApp_Module*>( activeModule() );
+  bool canCopy  = m ? m->canCopy() : false;
+  bool canPaste = m ? m->canPaste() : false;
+
+  action( EditCopyId )->setEnabled(canCopy);
+  action( EditPasteId )->setEnabled(canPaste);
 }
 
 /*!
@@ -3250,3 +3259,23 @@ void LightApp_Application::clearKnownViewManagers()
       removeViewManager(aMgr);
   }
 }
+
+/*!
+  Copy of current selection 
+ */
+void LightApp_Application::onCopy()
+{
+  LightApp_Module* m = dynamic_cast<LightApp_Module*>( activeModule() );
+  if( m )
+    m->copy();
+}
+
+/*!
+  Paste of current data in clipboard
+ */
+void LightApp_Application::onPaste()
+{
+  LightApp_Module* m = dynamic_cast<LightApp_Module*>( activeModule() );
+  if( m )
+    m->paste();
+}
index 27d0852afb498397de19554f759a6e3907330a40..8a6911a2dd18ce8a2f45819618326fde2f5a38c4 100644 (file)
@@ -167,6 +167,9 @@ public slots:
   virtual void                        onOpenDoc();
   virtual void                        onHelpAbout();
   virtual bool                        onOpenDoc( const QString& );
+  virtual void                        onCopy();
+  virtual void                        onPaste();
+  virtual void                        onSelectionChanged();
 
 protected:
   virtual void                        createActions();
@@ -181,7 +184,6 @@ protected:
 
   virtual void                        setActiveStudy( SUIT_Study* );
   virtual void                        updateCommandsStatus();
-  virtual void                        onSelectionChanged();
 
   virtual void                        beforeCloseDoc( SUIT_Study* );
   virtual void                        afterCloseDoc();
index 22823451343b98bb13f4184e075f96c5c384f49a..46d4b48dafaf9d87946318c669a5a0f37848a4d5 100644 (file)
@@ -649,3 +649,37 @@ bool LightApp_Module::reusableOperation( const int id )
 {
  return true;
 } 
+
+/*!
+  virtual method
+  \return true if module can copy the current selection
+*/
+bool LightApp_Module::canCopy() const
+{
+  return false;
+}
+
+/*!
+  virtual method
+  \return true if module can paste previously copied data
+*/
+bool LightApp_Module::canPaste() const
+{
+  return false;
+}
+
+/*!
+  virtual method
+  \brief Copies the current selection into clipboard
+*/
+void LightApp_Module::copy()
+{
+}
+
+/*!
+  virtual method
+  \brief Pastes the current data in the clipboard
+*/
+void LightApp_Module::paste()
+{
+}
index c608497e52197b151afc0b15a2b386256a865fc9..971586ad2ecbbf5b36e806fc5fa44965e0225799 100644 (file)
@@ -92,6 +92,11 @@ public:
   virtual LightApp_Displayer*         displayer();
   virtual LightApp_Selection*         createSelection() const;
 
+  virtual bool                        canCopy() const;
+  virtual bool                        canPaste() const;
+  virtual void                        copy();
+  virtual void                        paste();
+
 public slots:
   virtual bool                        activateModule( SUIT_Study* );
   virtual bool                        deactivateModule( SUIT_Study* );