X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FXGUI%2FXGUI_ObjectsBrowser.h;h=09f9dc220764d1bede32452e75d40cd26c81eccb;hb=8a3aaa8971528932753e86f7e9721ca086cd3104;hp=9e7f901d75224c3d9782242cde3c288a30233b1a;hpb=17796c2c2b379ae176a3b81cc867f0da7f894707;p=modules%2Fshaper.git diff --git a/src/XGUI/XGUI_ObjectsBrowser.h b/src/XGUI/XGUI_ObjectsBrowser.h index 9e7f901d7..09f9dc220 100644 --- a/src/XGUI/XGUI_ObjectsBrowser.h +++ b/src/XGUI/XGUI_ObjectsBrowser.h @@ -1,3 +1,5 @@ +// Copyright (C) 2014-20xx CEA/DEN, EDF R&D --> + #ifndef XGUI_ObjectsBrowser_H #define XGUI_ObjectsBrowser_H @@ -10,49 +12,48 @@ #include #include -class XGUI_DocumentDataModel; +class ModuleBase_IDocumentDataModel; class QLineEdit; +/** +* \ingroup GUI +* Implementation of Data Tree object for Object Browser +*/ class XGUI_DataTree : public QTreeView { Q_OBJECT public: + /// Constructor + /// \param theParent a parent widget XGUI_DataTree(QWidget* theParent); - virtual ~XGUI_DataTree(); - //! Returns list of currently selected objects - QList selectedObjects() const - { - return mySelectedData; - } + virtual ~XGUI_DataTree(); - XGUI_DocumentDataModel* dataModel() const; + /// Returns current data model + ModuleBase_IDocumentDataModel* dataModel() const; signals: - //! Emited when selection is changed - void selectionChanged(); - void activePartChanged(ObjectPtr thePart); - //! Emited on context menu request void contextMenuRequested(QContextMenuEvent* theEvent); public slots: + /// Clear content of data tree virtual void clear(); protected slots: + /// Commit modified data (used for renaming of objects) virtual void commitData(QWidget* theEditor); + /// Returns true if theObject can be renamed in theName + bool canRename(const ObjectPtr& theObject, const QString& theName); + protected: - virtual void mouseDoubleClickEvent(QMouseEvent* theEvent); + /// Redefinition of virtual method virtual void contextMenuEvent(QContextMenuEvent* theEvent); - private slots: - //! Called when selection in Data Tree is changed - void onSelectionChanged(const QItemSelection& theSelected, const QItemSelection& theDeselected); + /// Redefinition of virtual method + virtual void resizeEvent(QResizeEvent* theEvent); - private: - //! List of currently selected data - QList mySelectedData; }; /**\class XGUI_ObjectsBrowser @@ -63,22 +64,24 @@ class XGUI_EXPORT XGUI_ObjectsBrowser : public QWidget { Q_OBJECT public: + /// Constructor + /// \param theParent a parent widget XGUI_ObjectsBrowser(QWidget* theParent); virtual ~XGUI_ObjectsBrowser(); //! Returns Model which provides access to data objects - XGUI_DocumentDataModel* dataModel() const + ModuleBase_IDocumentDataModel* dataModel() const { return myDocModel; } //! Returns list of currently selected objects - QList selectedObjects() const - { - return myObjectsList; - } + //! \param theIndexes - output list of corresponded indexes (can be NULL) + QObjectPtrList selectedObjects(QModelIndexList* theIndexes = 0) const; - void setObjectsSelected(const QList& theObjects); + /// Set selected list of objects + /// \param theObjects list of objects to select + void setObjectsSelected(const QObjectPtrList& theObjects); //! Returns currently selected indexes QModelIndexList selectedIndexes() const @@ -92,49 +95,55 @@ Q_OBJECT return myTreeView; } - //! Activates currently selected part. Signal activePartChanged will not be sent - void activatePart(const ResultPartPtr& thePart); + /// Returns active doc label object + QLineEdit* activeDocLabel() const { return myActiveDocLbl; } + /// Rebuild data tree void rebuildDataTree(); - void processEvent(const boost::shared_ptr& theMessage); - - // Resets the object browser into initial state + /// Resets the object browser into initial state void clearContent(); + /// Set Data Model for the Object Browser + void setDataModel(ModuleBase_IDocumentDataModel* theModel); + signals: //! Emited when selection is changed void selectionChanged(); - //! Emited when current active document is changed - void activePartChanged(ObjectPtr thePart); - //! Emited on context menu request void contextMenuRequested(QContextMenuEvent* theEvent); + //! Segnal is emitted when user cliks by mouse in header label of object browser + void headerMouseDblClicked(const QModelIndex&); + protected: + /// Redefinition of virtual method virtual bool eventFilter(QObject* obj, QEvent* theEvent); private slots: - void onActivePartChanged(ObjectPtr thePart); + /// Show context menu + /// \param theEvent a context menu event void onContextMenuRequested(QContextMenuEvent* theEvent); + + /// Show context menu on upper label + /// \param thePnt a position of context menu void onLabelContextMenuRequested(const QPoint& thePnt); //! Called on Edit command request void onEditItem(); - void onSelectionChanged(); + //! Called when selection in Data Tree is changed + void onSelectionChanged(const QItemSelection& theSelected, const QItemSelection& theDeselected); private: void closeDocNameEditing(bool toSave); //! Internal model - XGUI_DocumentDataModel* myDocModel; + ModuleBase_IDocumentDataModel* myDocModel; QLineEdit* myActiveDocLbl; XGUI_DataTree* myTreeView; - - QList myObjectsList; }; #endif