]> SALOME platform Git repositories - modules/shaper.git/commitdiff
Salome HOME
Initial implementation
authorvsv <vsv@opencascade.com>
Mon, 19 Aug 2019 13:24:23 +0000 (16:24 +0300)
committervsv <vsv@opencascade.com>
Mon, 19 Aug 2019 13:24:23 +0000 (16:24 +0300)
src/Config/Config_Keywords.h
src/ModuleBase/CMakeLists.txt
src/ModuleBase/ModuleBase_WidgetFactory.cpp
src/ModuleBase/ModuleBase_WidgetTreeDataSelect.cpp [new file with mode: 0644]
src/ModuleBase/ModuleBase_WidgetTreeDataSelect.h [new file with mode: 0644]

index 0a8f4aba4f06bbc7a154385ca958a818146a6951..0f2c7370bf8fea11e79bcb8abcba2d7745f91901 100644 (file)
@@ -53,6 +53,7 @@ const static char* WDG_PLACE_HOLDER = "placeholder";
 const static char* WDG_ACTION = "action";
 const static char* WDG_POINT_INPUT = "point_input";
 const static char* WDG_SELECTION_FILTERS = "selection_filters";
+const static char* WDG_TREE_DATA_SELECTOR = "tree_data_selector";
 
 // Containers
 const static char* WDG_GROUP = "groupbox";
index f8a1ff2c4d66fb68cb814c3c6e1a9296db2ba35a..9f681554c51a77f47f347f7f66e743877477d977 100644 (file)
@@ -105,6 +105,7 @@ SET(PROJECT_HEADERS
   ModuleBase_ITreeNode.h
   ModuleBase_WidgetSelectionFilter.h
   ModuleBase_IStepPrs.h
+  ModuleBase_WidgetTreeDataSelect.h
 )
 
 SET(PROJECT_MOC_HEADERS
@@ -155,6 +156,7 @@ SET(PROJECT_MOC_HEADERS
   ModuleBase_WidgetRadiobox.h
   ModuleBase_WidgetPointInput.h
   ModuleBase_WidgetSelectionFilter.h
+  ModuleBase_WidgetTreeDataSelect.h
 )
 
 SET(PROJECT_SOURCES
@@ -225,6 +227,7 @@ SET(PROJECT_SOURCES
   ModuleBase_WidgetPointInput.cpp
   ModuleBase_WidgetSelectionFilter.cpp
   ModuleBase_IStepPrs.cpp
+  ModuleBase_WidgetTreeDataSelect.cpp
 )
 
 SET(PROJECT_LIBRARIES
index 23728c5696ed0be83a2054d8285c930db7659681..5e9fd7e652b15b51de040385fa3e496d3ead6f74 100644 (file)
@@ -51,6 +51,7 @@
 #include <ModuleBase_WidgetAction.h>
 #include <ModuleBase_WidgetPointInput.h>
 #include <ModuleBase_WidgetSelectionFilter.h>
+#include <ModuleBase_WidgetTreeDataSelect.h>
 
 #include <ModelAPI_Validator.h>
 #include <ModelAPI_Session.h>
@@ -347,6 +348,8 @@ ModuleBase_ModelWidget* ModuleBase_WidgetFactory::createWidgetByType(const std::
     result = new ModuleBase_WidgetPointInput(theParent, myWorkshop, myWidgetApi);
   } else if (theType == WDG_SELECTION_FILTERS) {
     result = new ModuleBase_WidgetSelectionFilter(theParent, myWorkshop, myWidgetApi);
+  } else if (theType == WDG_TREE_DATA_SELECTOR) {
+    result = new ModuleBase_WidgetTreeDataSelect(theParent, myWorkshop, myWidgetApi);
   } else {
     result = myWorkshop->module()->createWidgetByType(theType, theParent, myWidgetApi);
     if (!result)
diff --git a/src/ModuleBase/ModuleBase_WidgetTreeDataSelect.cpp b/src/ModuleBase/ModuleBase_WidgetTreeDataSelect.cpp
new file mode 100644 (file)
index 0000000..7539f1a
--- /dev/null
@@ -0,0 +1,57 @@
+// 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_WidgetTreeDataSelect.h>
+
+#include <QVBoxLayout>
+#include <QTreeView>
+
+ModuleBase_WidgetTreeDataSelect::ModuleBase_WidgetTreeDataSelect(QWidget* theParent,
+  ModuleBase_IWorkshop* theWorkshop,
+  const Config_WidgetAPI* theData)
+  :ModuleBase_ModelWidget(theParent, theData), myWorkshop(theWorkshop)
+{
+  QVBoxLayout* aLayout = new QVBoxLayout(this);
+
+  myTreeView = new QTreeView(this);
+  aLayout->addWidget(myTreeView);
+}
+
+ModuleBase_WidgetTreeDataSelect::~ModuleBase_WidgetTreeDataSelect()
+{
+}
+
+
+QList<QWidget*> ModuleBase_WidgetTreeDataSelect::getControls() const
+{
+  QList<QWidget*> aList;
+  aList << myTreeView;
+  return aList;
+}
+
+bool ModuleBase_WidgetTreeDataSelect::storeValueCustom()
+{
+  return true;
+}
+
+bool ModuleBase_WidgetTreeDataSelect::restoreValueCustom()
+{
+  return true;
+}
diff --git a/src/ModuleBase/ModuleBase_WidgetTreeDataSelect.h b/src/ModuleBase/ModuleBase_WidgetTreeDataSelect.h
new file mode 100644 (file)
index 0000000..8f4c8c3
--- /dev/null
@@ -0,0 +1,63 @@
+// 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
+//
+
+#ifndef MODULEBASE_WIDGETTREEDATASELECT_H_
+#define MODULEBASE_WIDGETTREEDATASELECT_H_
+
+#include <ModuleBase.h>
+#include <ModuleBase_ModelWidget.h>
+
+class QTreeView;
+
+/**
+* \ingroup GUI
+* Implementation of a widget for tree data selection
+*/
+class MODULEBASE_EXPORT ModuleBase_WidgetTreeDataSelect : public ModuleBase_ModelWidget
+{
+  Q_OBJECT
+public:
+  /// Constructor
+  /// \param theParent the parent object
+  /// \param theWorkshop a reference to workshop
+  /// \param theData the widget configuation. The attribute of the model widget is obtained from
+  ModuleBase_WidgetTreeDataSelect(QWidget* theParent, ModuleBase_IWorkshop* theWorkshop,
+    const Config_WidgetAPI* theData);
+
+  virtual ~ModuleBase_WidgetTreeDataSelect();
+
+  /// Returns list of widget controls
+  /// \return a control list
+  virtual QList<QWidget*> getControls() const;
+
+  /// Saves the internal parameters to the given feature
+  /// \return True in success
+  virtual bool storeValueCustom();
+
+  /// Restore value from attribute data to the widget's control
+  virtual bool restoreValueCustom();
+
+protected:
+  ModuleBase_IWorkshop* myWorkshop; ///< the active workshop
+
+private:
+  QTreeView* myTreeView;
+};
+
+#endif
\ No newline at end of file