Salome HOME
Exlude the user input during process events by application (Bug #325).
[modules/hydro.git] / src / HYDROGUI / HYDROGUI_DataObject.h
index ea9fb38c00edada61d75d32e37f9c25f085d0888..6ffeaa1eed17ecf1a0e33710bbba4258d8174289 100644 (file)
@@ -47,7 +47,12 @@ public:
   //! Column id
   enum { 
     RefObjectId = RefEntryId + 1,    //!< Ref.Object column
-    BathymetryId                     //!< Bathymetry column
+    AltitudeObjId                    //!< Altitude column
+  };
+
+  //! Role
+  enum {
+    IsInOperationRole = Qtx::AppropriateRole + 100 //!< Filter value role
   };
 
   /**
@@ -55,10 +60,12 @@ public:
    * \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.
@@ -90,6 +97,11 @@ public:
    */
   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.
    */
@@ -118,14 +130,22 @@ public:
 
   /**
    * 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; }
+
 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;
 };
 
@@ -145,10 +165,12 @@ public:
    * 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.
@@ -160,15 +182,28 @@ public:
    */
   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; }
+
 private:
   QString myName; ///< name in the OB
   QString myParentEntry;
   QPixmap myIcon;
+  bool myIsInOperation; ///< indicates if the object is used within an active operation
 };
 
 /**
@@ -183,10 +218,12 @@ public:
    * 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; }
 };