Salome HOME
Issue #1351: partition is not done
[modules/shaper.git] / src / ModuleBase / ModuleBase_Preferences.cpp
index f97a9ed7f4cbabe15350fc9165530511dd40a6f8..03aec786b07bbbb57d7f2efa1c44308e45803801 100644 (file)
@@ -7,10 +7,6 @@
 #include "ModuleBase_Preferences.h"
 //#include "ModuleBase_Constants.h"
 
-#include <Model_ResultBody.h>
-#include <Model_ResultGroup.h>
-#include <Model_ResultConstruction.h>
-
 #include <Config_PropManager.h>
 
 #include <SUIT_ResourceMgr.h>
@@ -30,7 +26,7 @@ SUIT_ResourceMgr* ModuleBase_Preferences::myResourceMgr = 0;
 SUIT_ResourceMgr* ModuleBase_Preferences::resourceMgr()
 {
   if (!myResourceMgr) {
-    myResourceMgr = new SUIT_ResourceMgr("NewGeom");
+    myResourceMgr = new SUIT_ResourceMgr("SHAPER");
     myResourceMgr->setCurrentFormat("xml");
   }
   return myResourceMgr;
@@ -107,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)
 {
@@ -260,16 +287,6 @@ void ModuleBase_PreferencesDlg::createViewerPage(int thePageId)
   myPreferences->setItemProperty("texture_stretch_enabled", true, bgId);
   myPreferences->setItemProperty("custom_enabled", false, bgId);
   myPreferences->setItemProperty("image_formats", aImgFiles, bgId);
-
-  //Config_PropManager::registerProp("Visualization", "object_default_color", "Object color",
-  //                                 Config_Prop::Color, "#ffffff");
-
-  Config_PropManager::registerProp("Visualization", "result_body_color", "Body color",
-                                   Config_Prop::Color, Model_ResultBody::DEFAULT_COLOR());
-  Config_PropManager::registerProp("Visualization", "result_group_color", "Group color",
-                                   Config_Prop::Color, Model_ResultGroup::DEFAULT_COLOR());
-  Config_PropManager::registerProp("Visualization", "result_construction_color", "Construction color",
-                                   Config_Prop::Color, Model_ResultConstruction::DEFAULT_COLOR());
 }
 
 void ModuleBase_PreferencesDlg::createMenuPage(int thePageId)
@@ -284,6 +301,10 @@ void ModuleBase_PreferencesDlg::createMenuPage(int thePageId)
                                        "rows_number");
   myPreferences->setItemProperty("min", 1, aRowsNb);
   myPreferences->setItemProperty("max", 6, aRowsNb);
+
+  myPreferences->addItem(tr("Show Status Bar"), aSizeGroup,
+                         SUIT_PreferenceMgr::Bool, ModuleBase_Preferences::MENU_SECTION,
+                         "status_bar");
 }
 
 void ModuleBase_PreferencesDlg::accept()
@@ -303,18 +324,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);
 }
 
 //**********************************************************