X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FPartSet%2FPartSet_SketcherReentrantMgr.h;h=275b59457c88b7a2a5c8d41f03719247df446e4c;hb=4a056c17b0d629e17c0825c38014255dedec5c3c;hp=b430c2389479bcef9a2c1a283dc38d60e28b405c;hpb=a2ab2dc339b560c7309540e1f10b6ad60e5ed0af;p=modules%2Fshaper.git diff --git a/src/PartSet/PartSet_SketcherReentrantMgr.h b/src/PartSet/PartSet_SketcherReentrantMgr.h index b430c2389..275b59457 100644 --- a/src/PartSet/PartSet_SketcherReentrantMgr.h +++ b/src/PartSet/PartSet_SketcherReentrantMgr.h @@ -1,4 +1,22 @@ -// Copyright (C) 2014-20xx CEA/DEN, EDF R&D +// 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 +// #ifndef PartSet_SketcherReentrantMgr_H #define PartSet_SketcherReentrantMgr_H @@ -8,6 +26,7 @@ #include #include +#include #include @@ -22,6 +41,10 @@ class QMouseEvent; class XGUI_Workshop; class PartSet_Module; +class ModuleBase_ViewerPrs; +class Events_Message; +class ModelAPI_Attribute; +class GeomAPI_Pnt2d; /// \ingroup PartSet_SketcherReentrantMgr /// It provides reentrant create operations in sketch, that is when all inputs are valid, @@ -51,10 +74,6 @@ public: virtual ~PartSet_SketcherReentrantMgr(); public: - /// Returns a first widget of the current opeation if the internal edit operation is active - /// or return null. If the current widget of the operation is a viewer selector, it returns null. - ModuleBase_ModelWidget* internalActiveWidget() const; - /// Return true if the current edit operation is an internal bool isInternalEditActive() const; @@ -101,14 +120,22 @@ public: /// Returns false if the reentrant mode of the operation is not empty. bool canBeCommittedByPreselection(); - /// returns true if an internal edit operation is started - /// \return boolean value - bool isInternalEditStarted() const; + /// Fills reentrant message during restarting operation + /// \param theMessage reentrant message + void setReentrantMessage(const std::shared_ptr& theMessage) + { myReentrantMessage = theMessage; } + + /// Returnss reentrant message + std::shared_ptr reentrantMessage() const { return myReentrantMessage; } + + /// Put current selection into reentrant message + /// \param theMessage a message of reentrant operation + void setReentrantPreSelection(const std::shared_ptr& theMessage); private slots: /// SLOT, that is called by a widget activating in the property panel /// If the 'internal' edit operation is started, it activates the first widget selection - void onWidgetActivated(); + //void onWidgetActivated(); /// SLOT, that is called by no more widget signal emitted by property panel /// Start an internal edit operation or, if the internal flag is forbided, commits @@ -183,19 +210,24 @@ private: /// Returns the workshop module PartSet_Module* module() const; + void setInternalActiveWidget(ModuleBase_ModelWidget* theWidget); + private: ModuleBase_IWorkshop* myWorkshop; /// the workshop RestartingMode myRestartingMode; /// automatical restarting mode flag bool myIsFlagsBlocked; /// true when reset of flags should not be perfromed bool myIsInternalEditOperation; /// true when the 'internal' edit is started - bool myIsValueChangedBlocked; /// blocked flag to avoid circling by value changed FeaturePtr myPreviousFeature; /// feature of the previous operation, which is restarted FeaturePtr myInternalFeature; QWidget* myInternalWidget; - ModuleBase_ModelWidget* myInternalActiveWidget; std::string myNoMoreWidgetsAttribute; + + std::shared_ptr myReentrantMessage; /// message obtained by operation restart + ObjectPtr mySelectedObject; /// cashed selected object + std::shared_ptr mySelectedAttribute; /// cashed selected attribute + std::shared_ptr myClickedSketchPoint; /// cashed clicked point }; #endif