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)
{
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);
}
//**********************************************************
/// 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();
/// \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);
//******************************************************
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();
}