X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FModuleBase%2FModuleBase_IModule.h;h=3817abcb7bf4bf247df66385bb58a2239456bd08;hb=2e60d80d7d0b998fded953311cc8d2931ef5bb4b;hp=11a32c888e23b37930f0c333e2081eb6e8aa1045;hpb=42394362cfec9b39f7def70c83e99c77a48fdfe5;p=modules%2Fshaper.git diff --git a/src/ModuleBase/ModuleBase_IModule.h b/src/ModuleBase/ModuleBase_IModule.h index 11a32c888..3817abcb7 100755 --- a/src/ModuleBase/ModuleBase_IModule.h +++ b/src/ModuleBase/ModuleBase_IModule.h @@ -1,3 +1,23 @@ +// Copyright (C) 2014-2017 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 +// + // Copyright (C) 2014-20xx CEA/DEN, EDF R&D #ifndef ModuleBase_IModule_H @@ -12,6 +32,8 @@ #include #include +#include + #include #include #include @@ -26,11 +48,13 @@ class QMouseEvent; class QKeyEvent; class QMenu; class Config_WidgetAPI; + class ModuleBase_ModelWidget; class ModuleBase_Operation; class ModuleBase_ViewerPrs; - +class ModuleBase_ITreeNode; class ModuleBase_IWorkshop; + class ModelAPI_Result; class Events_Message; @@ -57,12 +81,6 @@ class MODULEBASE_EXPORT ModuleBase_IModule : public QObject virtual ~ModuleBase_IModule() {} - /// Add default selection filters of the module to the current viewer - virtual void activateSelectionFilters() {} - - /// Remove default selection filters of the module from the current viewer - virtual void deactivateSelectionFilters() {} - /// Stores the current selection virtual void storeSelection() {} @@ -183,6 +201,14 @@ class MODULEBASE_EXPORT ModuleBase_IModule : public QObject /// \param theObject a model object virtual bool canDisplayObject(const ObjectPtr& theObject) const; + /// Returns whether the started operation may use preselection of the previous one + /// Cases are: previous operation is null, edit operation, previuos and started operations + /// kinds are the same + /// \param thePreviousOperationKind a kind of previous operation + /// \param theStartedOperationKind a kind of a started operation + virtual bool canUsePreselection(const QString& thePreviousOperationKind, + const QString& theStartedOperationKind); + /// Make some functionality after the objects are hidden in viewer /// \param theObjects a list of hidden objects //virtual void processHiddenObject(const std::list& theObjects) {}; @@ -207,8 +233,24 @@ class MODULEBASE_EXPORT ModuleBase_IModule : public QObject virtual void activeSelectionModes(QIntList& theModes) {} /// Appends specific selection modes for the module to the list of types - /// \param theTypes a selection modes to be extended - virtual void customSubShapesSelectionModes(QIntList& theTypes) {} + /// \param theModesType combination of available selection filters + /// \param theModes a selection modes to be extended + virtual void moduleSelectionModes(int theModesType, QIntList& theModes) = 0; + + /// Appends into container of filters module filters corresponded to the modes type + /// \param theFilterTypes container of available selection filters + /// \param theSelectionFilters [out] container to be extend by elements + virtual void moduleSelectionFilters(const QIntList& theFilterTypes, + SelectMgr_ListOfFilter& theSelectionFilters) = 0; + + /// Returns types of registered module selection filters + /// \param theSelectionFilters [out] container of type value + virtual QIntList selectionFilters() { return QIntList(); } + + /// Returns selection filter + /// \param theType selection filter type + /// \param theFilter instance of filter + virtual Handle(SelectMgr_Filter) selectionFilter(const int theType) = 0; /// Return true if the custom presentation is activated /// \param theFlag a flag of level of customization, which means that only part of sub-elements @@ -337,10 +379,10 @@ class MODULEBASE_EXPORT ModuleBase_IModule : public QObject void getXMLRepresentation(const std::string& theFeatureId, std::string& theXmlCfg, std::string& theDescription); -signals: - /// Signal which is emitted when operation is launched - void operationLaunched(); + /// Returns root tree node which represents a data model + virtual ModuleBase_ITreeNode* rootNode() const = 0; +signals: /// Segnal emitted when an operation is resumed /// \param theOp a resumed operation void resumed(ModuleBase_Operation* theOp);