]> SALOME platform Git repositories - modules/gui.git/commitdiff
Salome HOME
Fix 13730
authorabd <abd@opencascade.com>
Fri, 3 Nov 2006 15:18:53 +0000 (15:18 +0000)
committerabd <abd@opencascade.com>
Fri, 3 Nov 2006 15:18:53 +0000 (15:18 +0000)
Saving of togle button state

src/LightApp/LightApp_Dialog.cxx
src/LightApp/LightApp_Dialog.h

index 27219f5f1d8f7a7c7159c3e1d183e47640428986..14d674a107c9e1c19148f6dd25c115a003ac6b81 100644 (file)
@@ -807,6 +807,39 @@ void LightApp_Dialog::deactivateAll()
   }
 }
 
+
+//! Return toggle buttons on/off state
+LightApp_SimpleGuiStateMap LightApp_Dialog::getActiveState() const {
+
+    LightApp_SimpleGuiStateMap state;
+       ObjectMap::const_iterator anIt = myObjects.begin(),
+                                               aLast = myObjects.end();
+       for( ; anIt!=aLast; anIt++ )
+       {
+               QToolButton* btn = ( QToolButton* )anIt.data().myBtn;
+               const bool isOn = btn->isOn();
+               const int id = anIt.key();
+               state[id] = isOn;
+       }
+
+    return state;
+}
+
+/*! Restores the state of toggle buttons - 
+to activate the buttons, deactivated by deactivateAll()
+*/
+void LightApp_Dialog::restoreState(const LightApp_SimpleGuiStateMap& stateMap) {
+       LightApp_SimpleGuiStateMap::const_iterator it = stateMap.begin(),
+               aLast = stateMap.end();
+       for (; it != aLast; it++) {
+               int btnId = it.key();
+               bool btnOn = (bool) it.data();
+           if (btnOn) activateObject(btnId);
+       }
+}
+
+
+
 /*!
   Passes to widget name, type and id of selected object
   \param id - identificator of object selection widget
index 970e6b8604a98fa2d09eecc71bbd856ba835d292..22cfa718874448337db09e475b8c5154acbca9ca 100644 (file)
@@ -39,6 +39,10 @@ class SUIT_ResourceMgr;
 #pragma warning ( disable:4251 )
 #endif
 
+
+
+  typedef QMap<int, int>         LightApp_SimpleGuiStateMap;
+
 /*!
   \class LightApp_Dialog
   Base class for all LightApp dialogs.
@@ -54,7 +58,8 @@ class LIGHTAPP_EXPORT LightApp_Dialog : public QtxDialog
 public:
   typedef QValueList<int>        TypesList;
   typedef QMap<int,QStringList>  SelectedObjects;
-  
+
+
   enum ObjectWg
   {
     Label   = 0x00000001,
@@ -153,6 +158,15 @@ public:
 
   //! Set all object selection buttons to inactive state
   void deactivateAll();
+
+  
+
+  //! Return toggle buttons on/off state
+  LightApp_SimpleGuiStateMap getActiveState() const;
+
+  //! Restores the state of toggle buttons - 
+  // to activate the buttons, deactivated by deactivateAll()
+  void restoreState(const LightApp_SimpleGuiStateMap&);
   
 signals:
   //! selection in certain widget is changed
@@ -285,6 +299,7 @@ private:
   
 private:
   ObjectMap           myObjects;
+  
   QMap<int,QString>   myTypeNames;
   bool                myIsExclusive, myIsBusy;
   QPixmap             myPixmap;