]> SALOME platform Git repositories - modules/gui.git/commitdiff
Salome HOME
Add virtual function to allow the module to abort active operations on document loadi... V7_7_0a1 V7_7_0b1
authorasl <asl@opencascade.com>
Tue, 1 Sep 2015 06:37:00 +0000 (09:37 +0300)
committervsr <vsr@opencascade.com>
Mon, 7 Sep 2015 12:00:05 +0000 (15:00 +0300)
src/CAM/CAM_Application.cxx
src/CAM/CAM_Application.h
src/CAM/CAM_Module.cxx
src/CAM/CAM_Module.h
src/STD/STD_Application.cxx
src/STD/STD_Application.h

index e45d4a8cdf24950d56b0d38690062d21b45dd272..ed7260417bc28d8b2a32ca98edd2caf7828c4d61 100755 (executable)
@@ -863,3 +863,20 @@ CAM_Application::ModuleShortInfoList CAM_Application::getVersionInfo()
   }  
   return info;
 }
+
+/*!
+  \brief Abort active operations if there are any
+  Iterates through all modules and asks each of them if there are pending operations that cannot be aborted.
+  \return \c false if some operation cannot be aborted
+*/
+bool CAM_Application::abortAllOperations()
+{
+  bool aborted = true;
+  for ( QList<CAM_Module*>::const_iterator it = myModules.begin(); it != myModules.end() && aborted; ++it )
+  {
+    aborted = (*it)->abortAllOperations();
+  }
+  return aborted;
+}
index d25f4d4c25bec30afcbcc1d523bcec5244297b77..5944e55d34b8adf0a90d5448e6bbf25bd6caab12 100755 (executable)
@@ -93,6 +93,8 @@ protected:
 
   static QString      moduleLibrary( const QString&, const bool = true );
 
+  virtual bool        abortAllOperations();
+
 private:
   void                readModuleList();
 
index 5d7d569de4a9ea0170d0079bd71e953f3a454d77..d3a0ddaf156e4187b7c48dad63da1e799466bab5 100755 (executable)
@@ -1134,3 +1134,9 @@ void CAM_Module::connectToStudy( CAM_Study* camStudy )
   \fn void CAM_Module::updateCommandsStatus();
   \brief Update menu/toolbar actions.
 */
+
+
+bool CAM_Module::abortAllOperations()
+{
+  return true;
+}
index 74a2b6e75cfcc2ba1fbb26d6ed853a6ccad89746..952f1857142b39a25ea4e5af3773eb34cf5e2908 100755 (executable)
@@ -145,6 +145,8 @@ protected:
   // after activate/deactivate modules
   QMap<QPair<int, QAction*>, QKeySequence> myActionShortcutMap; //!< copy actions shortcut map
 
+  virtual bool           abortAllOperations();
+
 private:
   CAM_Application*       myApp;             //!< parent application object
   QString                myName;            //!< module title (user name)
index 557371ac0b7cddb44354fc0b06445f6c3bba2d81..47b3a045956daed27f92358db6175835498ac50f 100755 (executable)
@@ -324,6 +324,9 @@ void STD_Application::onOpenDoc()
 /*! \retval true, if document was opened successful, else false.*/
 bool STD_Application::onOpenDoc( const QString& aName )
 {
+  if ( !abortAllOperations() )
+    return false;
+
   QApplication::setOverrideCursor( Qt::WaitCursor );
 
   bool res = openAction( openChoice( aName ), aName );
@@ -564,6 +567,9 @@ void STD_Application::onSaveDoc()
   if ( !activeStudy() )
     return;
 
+  if ( !abortAllOperations() )
+    return;
+
   bool isOk = false;
   if ( activeStudy()->isSaved() )
   {
@@ -599,6 +605,9 @@ bool STD_Application::onSaveAsDoc()
   if ( !study )
     return false;
 
+  if ( !abortAllOperations() )
+    return false;
+
   bool isOk = false;
   while ( !isOk )
   {
@@ -1013,3 +1022,11 @@ int STD_Application::viewManagerId( const SUIT_ViewManager* theManager) const
   return myViewMgrs.indexOf(const_cast<SUIT_ViewManager*>(theManager));
 }
 
+/*!
+  \brief Abort active operations if there are any
+  \return \c false if some operation cannot be aborted
+*/
+bool STD_Application::abortAllOperations()
+{
+  return true;
+}
index ed3f6fed5ba9e29d527e37c3a93cfa7043237ec4..2b1f4653ca08fde49c86d20fa3c6555293052a90 100755 (executable)
@@ -170,6 +170,8 @@ protected:
   virtual bool          closeDoc( bool ask = true );
   virtual bool          closeActiveDoc( bool permanently = true );
 
+  virtual bool          abortAllOperations();
+
 private:
   ViewManagerList       myViewMgrs;
   SUIT_ViewManager*     myActiveViewMgr;