X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FModuleBase%2FModuleBase_Preferences.cpp;h=641a1bc5952dcf716842fa34baa95ce154bffe79;hb=c040abb8ae7ecff3c1b7d0dd97a9bf88972df93c;hp=50d95a7a0ad90b87c6e5270c567e72b187bbb8e9;hpb=760a7a289b307a496b822d89ec04c60e0654af71;p=modules%2Fshaper.git diff --git a/src/ModuleBase/ModuleBase_Preferences.cpp b/src/ModuleBase/ModuleBase_Preferences.cpp index 50d95a7a0..641a1bc59 100644 --- a/src/ModuleBase/ModuleBase_Preferences.cpp +++ b/src/ModuleBase/ModuleBase_Preferences.cpp @@ -9,6 +9,8 @@ #include +#include + #include #include #include @@ -26,7 +28,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; @@ -103,6 +105,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) { @@ -146,12 +179,14 @@ void ModuleBase_Preferences::createCustomPage(ModuleBase_IPrefMgr* thePref, int } } -//********************************************************** -//********************************************************** -//********************************************************** +/** +* Implementation of preferences manager interface +*/ class ModuleBase_PrefMgr: public ModuleBase_IPrefMgr { public: + /// Constructor + /// \param theMgr a preferences manager ModuleBase_PrefMgr(ModuleBase_PreferencesMgr* theMgr):myMgr(theMgr) {} virtual int addPreference(const QString& theLbl, int pId, @@ -204,7 +239,7 @@ ModuleBase_PreferencesDlg::ModuleBase_PreferencesDlg(SUIT_ResourceMgr* theResurc createEditors(); myPreferences->retrieve(); - setMinimumSize(800, 200); + setMinimumSize(800, 240); } ModuleBase_PreferencesDlg::~ModuleBase_PreferencesDlg() @@ -254,6 +289,26 @@ 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); + + // Create other parameters group in viewer tab + int selectionGroup = myPreferences->addItem(tr("Default selection"), viewTab); + myPreferences->setItemProperty("columns", 3, selectionGroup); + myPreferences->addItem(tr("Faces"), selectionGroup, + SUIT_PreferenceMgr::Bool, + ModuleBase_Preferences::VIEWER_SECTION, "face-selection"); + myPreferences->addItem(tr("Edges"), selectionGroup, + SUIT_PreferenceMgr::Bool, + ModuleBase_Preferences::VIEWER_SECTION, "edge-selection"); + myPreferences->addItem(tr("Vertices"), selectionGroup, + SUIT_PreferenceMgr::Bool, + ModuleBase_Preferences::VIEWER_SECTION, "vertex-selection"); + + int sensitivityGroup = myPreferences->addItem(tr("Selection sensitivity"), viewTab); + myPreferences->setItemProperty("columns", 2, sensitivityGroup); + myPreferences->addItem(tr("Vertex"), sensitivityGroup, SUIT_PreferenceMgr::Double, + ModuleBase_Preferences::VIEWER_SECTION, "point-selection-sensitivity"); + myPreferences->addItem(tr("Edge"), sensitivityGroup, SUIT_PreferenceMgr::Double, + ModuleBase_Preferences::VIEWER_SECTION, "edge-selection-sensitivity"); } void ModuleBase_PreferencesDlg::createMenuPage(int thePageId) @@ -268,6 +323,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() @@ -287,18 +346,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); } //**********************************************************