-// 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
// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
//
+
#ifndef HYDROGUI_DATAOBJECT_H
#define HYDROGUI_DATAOBJECT_H
#include <HYDROData_Entity.h>
-#include <LightApp_DataObject.h>
+#ifdef WIN32
+ #pragma warning( disable: 4250 )
+ #pragma warning( disable: 4251 )
+#endif
+#include <LightApp_DataObject.h>
#include <QString>
#include <QMap>
#include <QPixmap>
#include <QColor>
+#ifdef WIN32
+ #pragma warning( default: 4250 )
+ #pragma warning( default: 4251 )
+#endif
+
/**
* \class HYDROGUI_DataObject
* \brief Module data object, used for object browser tree creation.
//! Column id
enum {
RefObjectId = RefEntryId + 1, //!< Ref.Object column
- BathymetryId //!< Bathymetry column
+ AltitudeObjId //!< Altitude column
+ };
+
+ //! Role
+ enum {
+ IsInOperationRole = Qtx::AppropriateRole + 100 //!< Filter value role
};
/**
* \param theParent parent data object
* \param theData reference to the corresponding object from data structure
* \param theParentEntry entry of the parent data object (for reference objects)
+ * \param theIsInOperation if true then the tree is used for a browser within an operation, it is false by default
*/
- HYDROGUI_DataObject( SUIT_DataObject* theParent,
+ HYDROGUI_DataObject( SUIT_DataObject* theParent,
Handle(HYDROData_Entity) theData,
- const QString& theParentEntry );
+ const QString& theParentEntry,
+ const bool theIsInOperation = false );
/**
* Returns the unique object identifier string.
*/
virtual QColor color( const ColorRole, const int = NameId ) const;
+ /**
+ * Returns the object icon.
+ */
+ virtual QPixmap icon( const int = NameId ) const;
+
+ /**
+ * Returns true if renaming is allowed for the object.
+ */
+ virtual bool renameAllowed( const int = NameId ) const;
+
/**
* Returns the model data object.
*/
/**
* Returns the validity flag: is object valid or not
- * \returns false if object is not valid
+ * \return false if object is not valid
*/
bool isValid() const;
+ /**
+ * Returns the usage within active operation flag:
+ * is the object is used in the local tree of an active operation dialog or not.
+ * \return false if the object is used in the main object browser tree
+ */
+ bool isInOperation() const { return myIsInOperation; }
+
+ void updateBy( SUIT_DataObject* );
+
protected:
Handle(HYDROData_Entity) myData; ///< object from data model
QString myParentEntry;
bool myIsValid; ///< indicates if the object is valid
+ bool myIsInOperation; ///< indicates if the object is used within an active operation
+ QPixmap myIcon;
};
/**
* Constructor.
* \param theParent parent data object
* \param theName displayed name
+ * \param theIsInOperation if true then the tree is used for a browser within an operation, it is false by default
*/
HYDROGUI_NamedObject( SUIT_DataObject* theParent,
- const QString& theName,
- const QString& theParentEntry );
+ const QString& theName,
+ const QString& theParentEntry,
+ const bool theIsInOperation = false );
/**
* Returns the unique object identifier string.
*/
virtual QString name() const;
+ /**
+ * Returns the font of displayed object name.
+ */
+ virtual QFont font( const int = SUIT_DataObject::NameId ) const;
+
+ /**
+ * Returns the object icon.
+ */
+ virtual QPixmap icon( const int = NameId ) const;
+
+ /**
+ * Returns the usage within active operation flag:
+ * is the object is used in the local tree of an active operation dialog or not.
+ * \return false if the object is used in the main object browser tree
+ */
+ bool isInOperation() const { return myIsInOperation; }
+
+ void updateBy( SUIT_DataObject* );
+
private:
QString myName; ///< name in the OB
QString myParentEntry;
+ QPixmap myIcon;
+ bool myIsInOperation; ///< indicates if the object is used within an active operation
};
/**
* Constructor.
* \param theParent parent data object
* \param theName displayed name
+ * \param theIsInOperation if true then the tree is used for a browser within an operation, it is false by default
*/
HYDROGUI_DropTargetObject( SUIT_DataObject* theParent,
- const QString& theName,
- const QString& theParentEntry );
+ const QString& theName,
+ const QString& theParentEntry,
+ const bool theIsInOperation = false );
bool isDropAccepted() const { return true; }
};