-// Copyright (C) 2014-20xx CEA/DEN, EDF R&D
-
-// File: ModuleBase_Preferences.cpp
-// Created: 07 Aug 2014
-// Author: Vitaly SMETANNIKOV
+// Copyright (C) 2014-2019 CEA/DEN, EDF R&D
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+//
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+//
#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 <TopAbs_ShapeEnum.hxx>
+
#include <SUIT_ResourceMgr.h>
#include <SUIT_PreferenceMgr.h>
#include <Qtx.h>
SUIT_ResourceMgr* ModuleBase_Preferences::resourceMgr()
{
if (!myResourceMgr) {
- myResourceMgr = new SUIT_ResourceMgr("NewGeom");
+ myResourceMgr = new SUIT_ResourceMgr("SHAPER");
myResourceMgr->setCurrentFormat("xml");
}
return myResourceMgr;
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)
{
if(aProp->type() == Config_Prop::Directory) {
thePref->setItemProperty("path_type", Qtx::PT_Directory, anId);
}
+ if (aPrefType == SUIT_PreferenceMgr::DblSpin) {
+ if (aProp->min() != "") {
+ double aMin = QString(aProp->min().c_str()).toDouble();
+ thePref->setItemProperty("min", aMin, anId);
+ }
+ if (aProp->max() != "") {
+ double aMax = QString(aProp->max().c_str()).toDouble();
+ thePref->setItemProperty("max", aMax, anId);
+ }
+ }
}
}
}
/// \param theMgr a preferences manager
ModuleBase_PrefMgr(ModuleBase_PreferencesMgr* theMgr):myMgr(theMgr) {}
- virtual int addPreference(const QString& theLbl, int pId,
+ virtual int addPreference(const QString& theLbl, int pId,
SUIT_PreferenceMgr::PrefItemType theType,
const QString& theSection, const QString& theName )
{
//**********************************************************
//**********************************************************
//**********************************************************
-ModuleBase_PreferencesDlg::ModuleBase_PreferencesDlg(SUIT_ResourceMgr* theResurces, QWidget* theParent)
+ModuleBase_PreferencesDlg::ModuleBase_PreferencesDlg(SUIT_ResourceMgr* theResurces,
+ QWidget* theParent)
: QDialog(theParent),
myIsChanged(false)
{
createEditors();
myPreferences->retrieve();
- setMinimumSize(800, 200);
+ setMinimumSize(800, 240);
}
ModuleBase_PreferencesDlg::~ModuleBase_PreferencesDlg()
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());
+ // 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::DblSpin,
+ ModuleBase_Preferences::VIEWER_SECTION, "point-selection-sensitivity");
+ myPreferences->addItem(tr("Edge"), sensitivityGroup, SUIT_PreferenceMgr::DblSpin,
+ ModuleBase_Preferences::VIEWER_SECTION, "edge-selection-sensitivity");
}
void ModuleBase_PreferencesDlg::createMenuPage(int thePageId)
myPreferences->setItemProperty("columns", 1, aSizeGroup);
int aRowsNb = myPreferences->addItem(tr("Number of rows"), aSizeGroup,
- SUIT_PreferenceMgr::IntSpin, ModuleBase_Preferences::MENU_SECTION,
+ SUIT_PreferenceMgr::IntSpin,
+ ModuleBase_Preferences::MENU_SECTION,
"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()
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);
}
//**********************************************************