Salome HOME
added the "Bring To Front" command for Groups
[modules/shaper.git] / src / ModuleBase / ModuleBase_IModule.h
index a2c250dbf1d380f00668db7510b3f3390ac8c074..3c12c31ea8ad9583b2e3987a08591dc6f0307a06 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2014-2019  CEA/DEN, EDF R&D
+// Copyright (C) 2014-2022  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
 #include <vector>
 #include <map>
 
+#ifdef _MSC_VER
+#pragma warning(disable: 4100)
+#endif
+
 class QAction;
 class QMouseEvent;
 class QKeyEvent;
@@ -169,10 +173,11 @@ class MODULEBASE_EXPORT ModuleBase_IModule : public QObject
 
   /// Have an opportunity to create widgets for the current operation
   /// instead of standard creation in workshop
-  /// \param theOperation a started operation
+  /// \param theFeature a feature of the started operation
+  /// \param theXmlRepr an XML representation of the operation
   /// \param theWidgets a list of created widgets
   /// \return boolean result, false by default
-  virtual bool createWidgets(ModuleBase_Operation* theOperation,
+  virtual bool createWidgets(const FeaturePtr& theFeature, const QString& theXmlRepr,
                              QList<ModuleBase_ModelWidget*>& theWidgets) const { return false; }
 
   //! Returns True if there are available Undos and there is not an active operation
@@ -420,6 +425,10 @@ public slots:
   /// \param theAIS a presentation object
   virtual void onBeforeObjectErase(ObjectPtr theObject, AISObjectPtr theAIS) {}
 
+  /// Called on transformation in current viewer
+  /// \param theTrsfType type of tranformation
+  virtual void onViewTransformed(int theTrsfType = 2) {}
+
 protected slots:
   /// Called on selection changed event
   virtual void onSelectionChanged() {}
@@ -434,12 +443,24 @@ protected:
   /// Returns new instance of operation object (used in createOperation for customization)
   virtual ModuleBase_Operation* getNewOperation(const std::string& theFeatureId);
 
+  /// Load plugins required license
+  void loadProprietaryPlugins();
+
+  /// Collect features, which have valid license
+  void processProprietaryFeatures();
+
 protected:
   /// Reference to workshop
   ModuleBase_IWorkshop* myWorkshop;
 
   /// Map of features in XML
   std::map<std::string, std::string> myFeaturesInFiles;
+  /// Map of features in XML, which require license but not confirmed yet
+  std::map<std::string, std::string> myProprietaryFeatures;
+  /// Proprietary plugins
+  std::set<std::string> myProprietaryPlugins;
+  /// Features, which have valid license
+  std::set<std::string> myFeaturesValidLicense;
 
   std::map<ModuleBase_SelectionFilterType, Handle(SelectMgr_Filter)> mySelectionFilters;