]> SALOME platform Git repositories - modules/shaper.git/commitdiff
Salome HOME
Issue #2412: Use remembering last choice only for widget toolbox
authorvsv <vsv@opencascade.com>
Wed, 24 Jan 2018 11:22:25 +0000 (14:22 +0300)
committervsv <vsv@opencascade.com>
Wed, 24 Jan 2018 11:22:25 +0000 (14:22 +0300)
src/ModuleBase/ModuleBase_PagedContainer.cpp
src/ModuleBase/ModuleBase_PagedContainer.h
src/ModuleBase/ModuleBase_WidgetSwitch.cpp

index 8ba5a314ea7f35d8a129f2ea36473cee22a0ed98..2cb2fddde8ec676553ea7af8cd07c151a0ebfdd6 100644 (file)
@@ -35,7 +35,7 @@ static QMap<std::string, std::string> defaultValues;
 ModuleBase_PagedContainer::ModuleBase_PagedContainer(QWidget* theParent,
                                                      const Config_WidgetAPI* theData)
 : ModuleBase_ModelWidget(theParent, theData),
-  myIsFocusOnCurrentPage(false), myIsFirst(true)
+  myIsFocusOnCurrentPage(false), myIsFirst(true), myRemeberChoice(true)
 {
   // it is not obligatory to be ignored when property panel tries to activate next active widget
   // but if focus is moved to this control, it can accept it.
@@ -95,10 +95,13 @@ bool ModuleBase_PagedContainer::restoreValueCustom()
   // A rare case when plugin was not loaded.
   if(!myFeature)
     return false;
+
+  std::string aDefVal = myRemeberChoice? myDefValue : "";
+
   DataPtr aData = myFeature->data();
   AttributeStringPtr aStringAttr = aData->string(attributeID());
-  QString aCaseId = QString::fromStdString(myDefValue.empty()?
-                                           aStringAttr->value() : myDefValue);
+  QString aCaseId = QString::fromStdString(aDefVal.empty()?
+                                           aStringAttr->value() : aDefVal);
   myIsFirst = false;
   int idx = myCaseIds.indexOf(aCaseId);
   if (idx == -1)
@@ -150,6 +153,7 @@ void ModuleBase_PagedContainer::onPageChanged()
 
 void ModuleBase_PagedContainer::onFeatureAccepted()
 {
-  defaultValues[myFeatureId + attributeID()] = myDefValue;
+  if (myRemeberChoice)
+    defaultValues[myFeatureId + attributeID()] = myDefValue;
 }
 
index cd525cdbae742e9ed63a48fdcf3f1d604482737c..265b3474f1af9cbdfa49a3f77e6323788ad2123e 100644 (file)
@@ -81,6 +81,9 @@ class MODULEBASE_EXPORT ModuleBase_PagedContainer : public ModuleBase_ModelWidge
   /// Redefinition of virtual function
   virtual bool restoreValueCustom();
 
+  // A flag which let to remeber last user choice and restore it on next launch
+  bool myRemeberChoice;
+
  protected slots:
    /// A slot called on page change
   void onPageChanged();
index a762432f06d1ee1a39ac79540b37ea644f47696a..bf1b2974927d7595a073afdb930786db1534e4ff 100644 (file)
@@ -33,6 +33,7 @@ ModuleBase_WidgetSwitch::ModuleBase_WidgetSwitch(QWidget* theParent,
   const Config_WidgetAPI* theData)
 : ModuleBase_PagedContainer(theParent, theData)
 {
+  myRemeberChoice = false;
   QVBoxLayout*  aMainLay = new QVBoxLayout(this);
   //aMainLay->setContentsMargins(2, 4, 2, 2);
   ModuleBase_Tools::adjustMargins(aMainLay);