]> SALOME platform Git repositories - modules/shaper.git/commitdiff
Salome HOME
Error label is added to solver
authorvsv <vitaly.smetannikov@opencascade.com>
Tue, 8 Sep 2015 09:00:00 +0000 (12:00 +0300)
committervsv <vitaly.smetannikov@opencascade.com>
Tue, 8 Sep 2015 09:00:16 +0000 (12:00 +0300)
src/Config/Config_Keywords.h
src/ModuleBase/CMakeLists.txt
src/ModuleBase/ModuleBase_WidgetErrorLabel.cpp [new file with mode: 0644]
src/ModuleBase/ModuleBase_WidgetErrorLabel.h [new file with mode: 0644]
src/ModuleBase/ModuleBase_WidgetFactory.cpp
src/ModuleBase/ModuleBase_WidgetLabel.h
src/SketchPlugin/plugin-Sketch.xml

index bf10876bfd683e146769e149120e0d802de4cc84..0fdc9050fd3a60542d7063663519f6b296b86d52 100644 (file)
@@ -23,6 +23,7 @@ const static char* NODE_XMLPARENT = "libxml_parent";
 
 // Widgets
 const static char* WDG_INFO = "label";
+const static char* WDG_ERRORINFO = "error_label";
 const static char* WDG_DOUBLEVALUE = "doublevalue";
 const static char* WDG_INTEGERVALUE = "integervalue";
 const static char* WDG_BOOLVALUE = "boolvalue";
index 935f742e84e0b40f8191d3bdd0bef9018ac20c4a..119a717bd5a80f1cc42fb16e8afa64ad02aa47a0 100644 (file)
@@ -54,6 +54,7 @@ SET(PROJECT_HEADERS
   ModuleBase_WidgetToolbox.h
   ModuleBase_WidgetValidated.h
   ModuleBase_IconFactory.h
+  ModuleBase_WidgetErrorLabel.h
 )
 
 SET(PROJECT_SOURCES
@@ -105,6 +106,7 @@ SET(PROJECT_SOURCES
   ModuleBase_WidgetToolbox.cpp
   ModuleBase_WidgetValidated.cpp
   ModuleBase_IconFactory.cpp
+  ModuleBase_WidgetErrorLabel.cpp
 )
 
 SET(PROJECT_LIBRARIES
diff --git a/src/ModuleBase/ModuleBase_WidgetErrorLabel.cpp b/src/ModuleBase/ModuleBase_WidgetErrorLabel.cpp
new file mode 100644 (file)
index 0000000..2f8260c
--- /dev/null
@@ -0,0 +1,43 @@
+// Copyright (C) 2014-20xx CEA/DEN, EDF R&D
+
+// File:        ModuleBase_WidgetErrorLabel.cpp
+// Created:     03 Dec 2014
+// Author:      Vitaly SMETANNIKOV
+
+#include "ModuleBase_WidgetErrorLabel.h"
+
+#include <Config_WidgetAPI.h>
+#include <ModuleBase_Tools.h>
+#include <ModelAPI_AttributeString.h>
+
+#include <QLabel>
+
+ModuleBase_WidgetErrorLabel::ModuleBase_WidgetErrorLabel(QWidget* theParent,
+                                               const Config_WidgetAPI* theData,
+                                               const std::string& theParentId)
+    : ModuleBase_WidgetLabel(theParent, theData, theParentId)
+{
+  myDefaultStyle = myLabel->styleSheet();
+}
+
+ModuleBase_WidgetErrorLabel::~ModuleBase_WidgetErrorLabel()
+{
+}
+
+bool ModuleBase_WidgetErrorLabel::restoreValueCustom()
+{
+  DataPtr aData = myFeature->data();
+  AttributeStringPtr aStrAttr = aData->string(attributeID());
+  std::string aMsg;
+  if (aStrAttr.get()) {
+    aMsg = aStrAttr->value();
+  }
+  if (aMsg.empty()) {
+    myLabel->setText("");
+    myLabel->setStyleSheet(myDefaultStyle);
+  } else {
+    myLabel->setText(aMsg.c_str());
+    myLabel->setStyleSheet("QLabel { background-color : red; color : white; }");
+  }
+  return true;
+}
diff --git a/src/ModuleBase/ModuleBase_WidgetErrorLabel.h b/src/ModuleBase/ModuleBase_WidgetErrorLabel.h
new file mode 100644 (file)
index 0000000..882fe13
--- /dev/null
@@ -0,0 +1,38 @@
+// Copyright (C) 2014-20xx CEA/DEN, EDF R&D
+
+// File:        ModuleBase_WidgetErrorLabel.h
+// Created:     03 Dec 2014
+// Author:      Vitaly SMETANNIKOV
+
+#ifndef ModuleBase_WidgetErrorLabel_H
+#define ModuleBase_WidgetErrorLabel_H
+
+#include "ModuleBase.h"
+#include "ModuleBase_WidgetLabel.h"
+
+class QLabel;
+
+/**
+* \ingroup GUI
+* Implementation of model widget for a label with error message
+*/
+class MODULEBASE_EXPORT ModuleBase_WidgetErrorLabel : public ModuleBase_WidgetLabel
+{
+Q_OBJECT
+ public:
+  /// Constructor
+  /// \param theParent the parent object
+  /// \param theData the widget configuation. The attribute of the model widget is obtained from
+  /// \param theParentId is Id of a parent of the current attribute
+  ModuleBase_WidgetErrorLabel(QWidget* theParent, const Config_WidgetAPI* theData,
+                            const std::string& theParentId);
+
+  virtual ~ModuleBase_WidgetErrorLabel();
+
+  virtual bool restoreValueCustom();
+
+private:
+  QString myDefaultStyle;
+};
+
+#endif
index 24c3165b4e18a5bc1e2bdeff3d6f4da9a35bc3e8..40a6c5a41b197c2faa3746c9f3e96b437ee9965b 100644 (file)
@@ -25,6 +25,7 @@
 #include <ModuleBase_WidgetLineEdit.h>
 #include <ModuleBase_WidgetMultiSelector.h>
 #include <ModuleBase_WidgetLabel.h>
+#include <ModuleBase_WidgetErrorLabel.h>
 #include <ModuleBase_WidgetToolbox.h>
 #include <ModuleBase_PageBase.h>
 #include <ModuleBase_PageGroupBox.h>
@@ -124,6 +125,8 @@ ModuleBase_ModelWidget* ModuleBase_WidgetFactory::createWidgetByType(const std::
 
   if (theType == WDG_INFO) {
     result = new ModuleBase_WidgetLabel(theParent, myWidgetApi, myParentId);
+  } else if (theType == WDG_ERRORINFO) {
+    result = new ModuleBase_WidgetErrorLabel(theParent, myWidgetApi, myParentId);
   } else if (theType == WDG_DOUBLEVALUE) {
     result = new ModuleBase_WidgetDoubleValue(theParent, myWidgetApi, myParentId);
   } else if (theType == WDG_INTEGERVALUE) {
index 9f74e614bd06f877ed10c9a29d66907d953b7c4e..9fb8ddd76f2caad71ddfa3e8308ebf3d3eccb630 100644 (file)
@@ -51,7 +51,6 @@ protected:
     return true;
   }
 
-private:
   /// A label control
   QLabel* myLabel;
 };
index c27d599b7c4a3e3f88a2fb9a74d83db1a0589720..9276c75b508ccaca58c9c45f9780b463a923d4b7 100644 (file)
@@ -13,6 +13,7 @@
         <sketch-start-label id="External" title="Select a plane on which to create a sketch" tooltip="Select a plane on which to create a sketch">
           <validator id="GeomValidators_Face" parameters="plane"/>
         </sketch-start-label>
+        <error_label id="SolverError"/>
         <validator id="SketchPlugin_SolverErrorValidator"/>
       <!--icon=":pictures/x_point.png"-->
       </feature>