X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FHYDROGUI%2FHYDROGUI_Tool.h;h=fada415c5233880283e5493d286456419e6587d7;hb=d6e19029f8b41f295db878e9aecf451c2edda4af;hp=29bd4de731d59b217ca4db26dee8a50d42a157c5;hpb=d74afc6389ed4e656c9451ac01b4065470746fd8;p=modules%2Fhydro.git diff --git a/src/HYDROGUI/HYDROGUI_Tool.h b/src/HYDROGUI/HYDROGUI_Tool.h index 29bd4de7..fada415c 100644 --- a/src/HYDROGUI/HYDROGUI_Tool.h +++ b/src/HYDROGUI/HYDROGUI_Tool.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 @@ -23,16 +19,32 @@ #ifndef HYDROGUI_TOOL_H #define HYDROGUI_TOOL_H -#include +#include #include +#include + +#include +#include +#include +#include + +#include + +// IDL includes +#include +#include CORBA_SERVER_HEADER(GEOM_Gen) class SUIT_ViewManager; +class OCCViewer_ViewFrame; class HYDROGUI_DataModel; class HYDROGUI_Module; class HYDROGUI_Prs; +class QDockWidget; +class Handle(HYDROData_Document); + /** * \class HYDROGUI_Tool * \brief This class contains several useful methods. @@ -40,6 +52,59 @@ class HYDROGUI_Prs; class HYDROGUI_Tool { public: + /** + * \brief Convert \a TCollection_AsciiString to \a QString + */ + static QString ToQString( const TCollection_AsciiString& ); + + /** + * \brief Convert \a TCollection_ExtendedString to \a QString + */ + static QString ToQString( const TCollection_ExtendedString& ); + + /** + * \brief Convert \a Handle_TCollection_HAsciiString to \a QString + */ + static QString ToQString( const Handle(TCollection_HAsciiString)& ); + + /** + * \brief Convert \a Handle_TCollection_HExtendedString to \a QString + */ + static QString ToQString( const Handle(TCollection_HExtendedString)& ); + + /** + * \brief Convert \a QString to \a TCollection_AsciiString + */ + static TCollection_AsciiString ToAsciiString( const QString& ); + + /** + * \brief Convert \a QString to \a TCollection_ExtendedString + */ + static TCollection_ExtendedString ToExtString( const QString& ); + + /** + * \brief Convert \a QString to \a Handle_TCollection_HAsciiString + */ + static Handle(TCollection_HAsciiString) ToHAsciiString( const QString& ); + + /** + * \brief Convert \a QString to \a Handle_TCollection_HExtendedString + */ + static Handle(TCollection_HExtendedString) ToHExtString( const QString& ); + + /** + * \brief Get the active study id. + * \return active study id + */ + static int GetActiveStudyId(); + + /** + * \brief Get path to the temporary directory. + * \param theToCreate flag used to create a directory if it doesn't exist + * \return path + */ + static QString GetTempDir( const bool theToCreate ); + /** * \brief Set the specified view manager to be active on the desktop. * \param theModule module @@ -49,13 +114,19 @@ public: SUIT_ViewManager* theViewManager ); /** + * \brief Returns TRUE if object can be shown on the viewer. + * \param theObject data model object to check + * \param theViewerType viewer type + */ + static bool IsObjectHasPresentation( const Handle(HYDROData_Entity)& theObject, + const QString& theViewerType = "" ); + +/** * \brief Get sub-objects to build presentations. - * \param theGUIModel data model - * \param theViewerId viewer id + * \param theModule module * \param theSeq sequence of sub-objects */ - static void GetPrsSubObjects( const HYDROGUI_DataModel* theGUIModel, - const int theViewerId, + static void GetPrsSubObjects( HYDROGUI_Module* theModule, HYDROData_SequenceOfObjects& theSeq ); /** @@ -64,8 +135,227 @@ public: * \param theObjects list of existing presentations * \return presentation */ - static HYDROGUI_Prs* GetPresentation( const Handle(HYDROData_Object)& theObj, + static HYDROGUI_Prs* GetPresentation( const Handle(HYDROData_Entity)& theObj, const GraphicsView_ObjectList& theObjects ); + + /** + * \brief Get list of HYDRO presentations from the specified viewport. + * \param theViewPort viewport + * \return list of HYDRO presentations + */ + static GraphicsView_ObjectList GetPrsList( GraphicsView_ViewPort* theViewPort ); + + /** + * \brief Get list of the selected data objects. + * \param theModule module + * \return list of the selected data objects + */ + static HYDROData_SequenceOfObjects GetSelectedObjects( HYDROGUI_Module* theModule ); + + /** + * \brief Get the selected data object (first in the selected list). + * \param theModule module + * \return selected data object + */ + static Handle(HYDROData_Entity) GetSelectedObject( HYDROGUI_Module* theModule ); + + /** + * \brief Get the geometry data objects from document. + * \param theModule module + * \return sequence of data objects + */ + static HYDROData_SequenceOfObjects GetGeometryObjects( HYDROGUI_Module* theModule ); + + /** + * \brief Get the land covers from document. + * \param theModule module + * \return sequence of land covers + */ + static HYDROData_SequenceOfObjects GetLandCovers( HYDROGUI_Module* theModule ); + + /** + * \brief Get kind of objects the selected partition contains. + * \param theModule module + * \return object kind + */ + static ObjectKind GetSelectedPartition( HYDROGUI_Module* theModule ); + + /** + * \brief Get the selected GEOM objects. + * \param theModule module + * \param theTypes the acceptable GEOM object types + * \return list of GEOM objects entries + */ + static QStringList GetSelectedGeomObjects( HYDROGUI_Module* theModule, + QList theTypes ); + + /** + * \brief Find the data object with the specified name. + * \param theModule module + * \param theName name + * \param theObjectKind kind of object + * \return data object + */ + static Handle(HYDROData_Entity) FindObjectByName( HYDROGUI_Module* theModule, + const QString& theName, + const ObjectKind theObjectKind = KIND_UNKNOWN ); + + /** + * \brief Find the data objects with the specified names. + * \param theModule module + * \param theNames list of names + * \param theObjectKind kind of object + * \return list of data objects + */ + static HYDROData_SequenceOfObjects FindObjectsByNames( HYDROGUI_Module* theModule, + const QStringList& theNames, + const ObjectKind theObjectKind = KIND_UNKNOWN ); + + /** + * \brief Generate name for new object. + * \param theModule module + * \param thePrefix name prefix + * \param theUsedNames list of already used names + * \param theIsTryToUsePurePrefix if true - the prefix will be returned if the name equal to the prefix is not busy + * \return generated name + */ + static QString GenerateObjectName( HYDROGUI_Module* theModule, + const QString& thePrefix, + const QStringList& theUsedNames = QStringList(), + const bool theIsTryToUsePurePrefix = false ); + + /** + * \brief Get id of the active view. + * \param theModule module + * \return view id + */ + static size_t GetActiveViewId( HYDROGUI_Module* theModule, + const QString& theViewId = QString() ); + + /** + * \brief Get id of the active GraphicsView view. + * \param theModule module + * \return view id + */ + static size_t GetActiveGraphicsViewId( HYDROGUI_Module* theModule ); + + /** + * \brief Get id of the active OCC view. + * \param theModule module + * \return view id + */ + static size_t GetActiveOCCViewId( HYDROGUI_Module* theModule ); + + /** + * \brief Get list of ids of existing GraphicsView views. + * \param theModule module + * \return list of view ids + */ + static QList GetGraphicsViewIdList( HYDROGUI_Module* theModule ); + + /** + * \brief Get list of ids of existing OCC views. + * \param theModule module + * \return list of view ids + */ + static QList GetOCCViewIdList( HYDROGUI_Module* theModule ); + + + /** + * \brief Change OCC viewer action visibility. + * \param theViewFrame OCC viewer frame + * \param theActionId an action index, which state should be changed + * \param isShown the action visibility state + */ + static void setOCCActionShown( OCCViewer_ViewFrame* theViewFrame, + const int theActionId, + const bool isShown ); + + /** + * \brief Change OCC viewer action visibility for all opened views. + * \param theActionId an action index, which state should be changed + * \param isShown the action visibility state + */ + static void setOCCActionShown( HYDROGUI_Module* theModule, + const int theActionId, + const bool isShown ); + + /** + * \brief Get the list of references (recursively) for the specified data object + * \param theObj data object + * \param theRefObjects list of reference objects + * \param theRefNames list of reference object names + */ + static void GetObjectReferences( const Handle(HYDROData_Entity)& theObj, + HYDROData_SequenceOfObjects& theRefObjects, + QStringList& theRefNames ); + + /** + * \brief Get the list of back-references for the specified object + * \param theModule module + * \param theObj data object + * \return list of back-reference objects + */ + static HYDROData_SequenceOfObjects GetObjectBackReferences( HYDROGUI_Module* theModule, + const Handle(HYDROData_Entity)& theObj ); + + /** + * \brief Get the map of back-references for the specified list of objects + * \param theModule module + * \param theObjectNames names of objects + * \return map of back-reference objects + */ + static QMap GetObjectsBackReferences( HYDROGUI_Module* theModule, + const QStringList& theObjectNames ); + + /** + * \brief Get father dock window for widget + * \param wid widget + * \return dock window + */ + static QDockWidget* WindowDock( QWidget* wid ); + + /** + * \brief Generates the filling color for intersected zone + * \param theModule module + * \param theZoneNames list of intersected zones + * \return result color + */ + static QColor GenerateFillingColor( HYDROGUI_Module* theModule, + const QStringList& theZoneNames ); + + /** + * \brief Generates the filling color for intersected zone + * \param theDoc model document + * \param theZoneNames list of intersected zones + * \return result color + */ + static QColor GenerateFillingColor( const Handle(HYDROData_Document)& theDoc, + const QStringList& theZoneNames ); + + /** + * \brief Find names of existing objects of the given kind. + * \param theDoc model document + * \param theObjectKind kind of object + * \return list of names + */ + static QStringList FindExistingObjectsNames( const Handle(HYDROData_Document)& theDoc, + const ObjectKind theObjectKind, + bool isCheckValidProfile = false ); + + /** + * \brief Converts coordinate value to string. + * \param theNumber coordinate as a number + * \return coordinate as a string + */ + static QString GetCoordinateString( const double theNumber, bool isInLocale ); + + /** + * \brief Converts Qt QImage object to OCCT Image_PixMap object. + * \param theImage QImage object + * \return Image_PixMap object + */ + static Handle(Image_PixMap) Pixmap( const QImage& theImage ); }; #endif