X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FHYDROGUI%2FHYDROGUI_Operation.h;h=b3b3d7bc486a04de6d1fc39bf35781ac5d759b97;hb=a53349567d67f4df0ef737798a25c24d9dc8f08e;hp=2afd8dac5c75aa3701a1ee36a9dd7041e8def830;hpb=d74afc6389ed4e656c9451ac01b4065470746fd8;p=modules%2Fhydro.git diff --git a/src/HYDROGUI/HYDROGUI_Operation.h b/src/HYDROGUI/HYDROGUI_Operation.h index 2afd8dac..b3b3d7bc 100644 --- a/src/HYDROGUI/HYDROGUI_Operation.h +++ b/src/HYDROGUI/HYDROGUI_Operation.h @@ -1,12 +1,8 @@ -// Copyright (C) 2007-2013 CEA/DEN, EDF R&D, OPEN CASCADE -// -// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, -// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS -// +// Copyright (C) 2014-2015 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. +// 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 @@ -25,9 +21,15 @@ #include +#include + class HYDROGUI_Module; class HYDROGUI_InputPanel; +class HYDROGUI_Shape; + class SUIT_SelectionMgr; +class OCCViewer_ViewManager; + class Handle_HYDROData_Document; class Handle_HYDROData_Object; @@ -36,30 +38,111 @@ class HYDROGUI_Operation : public LightApp_Operation Q_OBJECT public: + HYDROGUI_Operation( HYDROGUI_Module* theModule ); virtual ~HYDROGUI_Operation(); - HYDROGUI_InputPanel* inputPanel() const; - SUIT_SelectionMgr* selectionMgr() const; - HYDROGUI_Module* module() const; +public: + + void setName( const QString& theName ); + const QString& getName() const; + + HYDROGUI_InputPanel* inputPanel() const; + SUIT_SelectionMgr* selectionMgr() const; + HYDROGUI_Module* module() const; + + int getPreviewZLayer() const; + virtual void updatePreviewZLayer( int theLayer ); + +signals: + void helpContextModule( const QString&, + const QString&, + const QString& ); protected: - virtual void startOperation(); - virtual void abortOperation(); - virtual void commitOperation(); + virtual void startOperation(); + virtual void abortOperation(); + virtual void commitOperation(); + virtual void stopOperation(); + virtual void setDialogActive( const bool ); + + virtual HYDROGUI_InputPanel* createInputPanel() const; + virtual void closeInputPanel(); + + virtual bool processApply( int& theUpdateFlags, QString& theErrorMsg, + QStringList& theBrowseObjectsEntries ); + virtual void processCancel(); + + void startDocOperation(); + void abortDocOperation(); + void commitDocOperation(); - virtual HYDROGUI_InputPanel* createInputPanel() const = 0; + Handle_HYDROData_Document doc() const; - Handle_HYDROData_Document doc() const; - Handle_HYDROData_Object FindObjectByName( const QString& theName, int theKind ) const; + virtual bool isToAbortOnApply() const { return true; } + + void printErrorMessage( const QString& theErrorMsg ); + void setPrintErrorMessage( const bool theIsPrint ); + + void browseObjects( const QStringList& theBrowseObjectsEntries, + const bool theIsApplyAndClose = true ); protected slots: - virtual void OnApply(); - virtual void OnCancel(); + + virtual void onApplyAndClose(); + virtual void onApply(); + virtual void onCancel(); + virtual void onHelp(); + +protected: + + QString getHelpComponent() const; + QString getHelpFile() const; + QString getHelpContext() const; + + virtual void setPreviewZLayer( int theLayer ); + virtual HYDROGUI_Shape* getPreviewShape() const; + OCCViewer_ViewManager* getPreviewManager(); + void setPreviewManager( OCCViewer_ViewManager* theManager ); + + /** + * Set specific cursor chosen in preferences for edition operations. + */ + virtual void setCursor(); + /** + * Restore the default cursor. + */ + virtual void restoreCursor(); + + /** + * Set flag indicating, if 'Apply and Close' button is clicked on input panel. + * @param theFlag a flag value to be set + */ + virtual void setIsApplyAndClose( const bool theFlag ); + /** + * Get flag indicating, if 'Apply and Close' button is clicked on input panel. + * \return a flag value + */ + virtual bool isApplyAndClose() const; + + /** + * Apply changes done by this operation. + */ + virtual void apply(); private: - HYDROGUI_Module* myModule; - HYDROGUI_InputPanel* myPanel; + + HYDROGUI_Module* myModule; + HYDROGUI_InputPanel* myPanel; + OCCViewer_ViewManager* myPreviewManager; + QString myName; + bool myIsPrintErrorMessage; + bool myIsTransactionOpened; + int myPreviewZLayer; + + QCursor myCursor; + + bool myIsApplyAndClose; }; #endif