]> SALOME platform Git repositories - modules/shaper.git/commitdiff
Salome HOME
Correction for the "Default" button. Incorrect cases are:
authornds <nds@opencascade.com>
Tue, 6 Oct 2015 09:02:50 +0000 (12:02 +0300)
committernds <nds@opencascade.com>
Tue, 6 Oct 2015 09:03:34 +0000 (12:03 +0300)
1. GeomApp: Change the viewer background in Preferences. Click "Default" button, nothing happens.
2. SUITApp: Change the viewer background in Preferences: Click "Default" button, nothing happens.
During correction, the issues #98 and #128 are checked.

src/ModuleBase/ModuleBase_Preferences.cpp
src/ModuleBase/ModuleBase_Preferences.h
src/NewGeom/NewGeom_Module.cpp

index 616e659e06c6a9c69bc0fbdb8ff39ea3470c54b0..1cd5e702f07e0c517ccde10f55606aa749fa74e3 100644 (file)
@@ -103,6 +103,37 @@ void ModuleBase_Preferences::createEditContent(ModuleBase_IPrefMgr* thePref, int
   createCustomPage(thePref, thePage);
 }
 
+void ModuleBase_Preferences::resetResourcePreferences(SUIT_PreferenceMgr* thePref)
+{
+  if (!thePref)
+    return;
+
+  QtxResourceMgr::WorkingMode aPrev =
+    thePref->resourceMgr()->setWorkingMode(QtxResourceMgr::IgnoreUserValues);
+  thePref->retrieve();
+  thePref->resourceMgr()->setWorkingMode(aPrev);
+}
+
+void ModuleBase_Preferences::resetConfigPropPreferences(SUIT_PreferenceMgr* thePref)
+{
+  resetConfig();
+  updateResourcesByConfig();
+
+  // retrieve the reset resource values to the preferences items
+  Config_Properties aProps = Config_PropManager::getProperties();
+  Config_Properties::iterator aIt;
+  QStringList aValues;
+  QStringList aSections;
+  for (aIt = aProps.begin(); aIt != aProps.end(); ++aIt) {
+    Config_Prop* aProp = (*aIt);
+    aValues.append(QString(aProp->name().c_str()));
+    if (!aSections.contains(aProp->section().c_str()))
+      aSections.append(aProp->section().c_str());
+    QtxPreferenceItem* anItem = thePref->findItem(QString(aProp->title().c_str()), true);
+    if (anItem)
+      anItem->retrieve();
+  }
+}
 
 void ModuleBase_Preferences::createCustomPage(ModuleBase_IPrefMgr* thePref, int thePageId)
 {
@@ -289,18 +320,17 @@ void ModuleBase_PreferencesDlg::modified(ModuleBase_Prefs& theModified) const
 
 void ModuleBase_PreferencesDlg::onDefault()
 {
-  // reset main resources
-//#ifdef SALOME_750 // until SALOME 7.5.0 is released
-  QtxResourceMgr::WorkingMode aPrev =
-      myPreferences->resourceMgr()->setWorkingMode(QtxResourceMgr::IgnoreUserValues);
-  myPreferences->retrieve();
-  myPreferences->resourceMgr()->setWorkingMode(aPrev);
-//#endif
-  // reset plugin's resources
-  ModuleBase_Preferences::resetConfig();
-  ModuleBase_Preferences::updateResourcesByConfig();
-
-  myPreferences->retrieve();
+  // reset main resources. It throwns all resource manager items to the
+  // initial/default state. If there is no a default state of the item,
+  // it will be filled with an empty value. It concernerned to plugin
+  // config items, like visualization color. The main xml do not contains
+  // default values for them. So, it is important to reset the config
+  // properties after reseting the resources preferences.
+  ModuleBase_Preferences::resetResourcePreferences(myPreferences);
+  // reset plugin's resources. It fills the config resources with the default
+  // values, stores result in the resource manager and retrieve the preferences
+  // items with these values.
+  ModuleBase_Preferences::resetConfigPropPreferences(myPreferences);
 }
 
 //**********************************************************
index d2f6cb9bdfe44bf92bba55413a692f52ac0ff518..47d47206c76978573951536fd2350187bd8475ad 100644 (file)
@@ -49,12 +49,6 @@ class MODULEBASE_EXPORT ModuleBase_Preferences
   /// Updates Config_PropManager properties by module from SUIT_ResourceMgr
   static void updateConfigByResources();
 
-  /// Updates SUIT_ResourceMgr values by Config_PropManager properties
-  static void updateResourcesByConfig();
-
-  /// Set default values to the Config_PropManager properties
-  static void resetConfig();
-
   /// Loads properties defined by module to Config_PropManager
   static void loadCustomProps();
 
@@ -63,7 +57,18 @@ class MODULEBASE_EXPORT ModuleBase_Preferences
   /// \param thePage an id of a page
   static void createEditContent(ModuleBase_IPrefMgr* thePref, int thePage);
 
+  /// Retrieve preferences of resource manage to default state
+  static void resetResourcePreferences(SUIT_PreferenceMgr* thePref);
+
+  static void resetConfigPropPreferences(SUIT_PreferenceMgr* thePref);
+
 private:
+  /// Updates SUIT_ResourceMgr values by Config_PropManager properties
+  static void updateResourcesByConfig();
+
+  /// Set default values to the Config_PropManager properties
+  static void resetConfig();
+
   /// Creates content of preferences editing widget
   static void createCustomPage(ModuleBase_IPrefMgr* thePref, int thePageId);
 
index 75f33a64f9a32f8bb840b259b24d1f4e52427f3b..dae941444f6cfcc2cdb6605bf5ada871b75fe17a 100644 (file)
@@ -312,12 +312,10 @@ QtxPopupMgr* NewGeom_Module::popupMgr()
 //******************************************************
 void NewGeom_Module::onDefaultPreferences()
 {
-  ModuleBase_Preferences::resetConfig();
-  ModuleBase_Preferences::updateResourcesByConfig();
-
-  LightApp_Preferences* pref = preferences();
-  if (pref)
-    pref->retrieve();
+  // reset main resources
+  ModuleBase_Preferences::resetResourcePreferences(preferences());
+  // reset plugin's resources
+  ModuleBase_Preferences::resetConfigPropPreferences(preferences());
 
   myWorkshop->displayer()->redisplayObjects();
 }