X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FXGUI%2FXGUI_ObjectsBrowser.h;h=d92788abecde6f02730041ba7202c3690b3c1b5b;hb=64fc7e4fdd63997ec7a502b233ef5f88186d5bbb;hp=93cc131be4f458eb27428306fca6400e2696549f;hpb=67a7fe404a60e872f2012cfd0e9a621b99d9883a;p=modules%2Fshaper.git diff --git a/src/XGUI/XGUI_ObjectsBrowser.h b/src/XGUI/XGUI_ObjectsBrowser.h index 93cc131be..d92788abe 100644 --- a/src/XGUI/XGUI_ObjectsBrowser.h +++ b/src/XGUI/XGUI_ObjectsBrowser.h @@ -12,8 +12,11 @@ #include #include -class XGUI_DocumentDataModel; +class ModuleBase_IDocumentDataModel; class QLineEdit; +class XGUI_DataModel; + +//#define ModuleDataModel /** * \ingroup GUI @@ -26,24 +29,13 @@ Q_OBJECT /// Constructor /// \param theParent a parent widget XGUI_DataTree(QWidget* theParent); - virtual ~XGUI_DataTree(); - //! Returns list of currently selected objects - QObjectPtrList selectedObjects() const - { - return mySelectedData; - } + virtual ~XGUI_DataTree(); /// Returns current data model - XGUI_DocumentDataModel* dataModel() const; + ModuleBase_IDocumentDataModel* dataModel() const; signals: - //! Emited when selection is changed - void selectionChanged(); - - //! Emited when active part changed - void activePartChanged(ObjectPtr thePart); - //! Emited on context menu request void contextMenuRequested(QContextMenuEvent* theEvent); @@ -52,23 +44,18 @@ public slots: virtual void clear(); protected slots: - /// Commit modified data (used for renaming of objects) + /// Commit modified data (used for renaming of objects) virtual void commitData(QWidget* theEditor); - protected: - /// Redefinition of virtual method - virtual void mouseDoubleClickEvent(QMouseEvent* theEvent); + void onDoubleClick(const QModelIndex&); + protected: /// 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 - QObjectPtrList mySelectedData; }; /**\class XGUI_ObjectsBrowser @@ -85,16 +72,21 @@ Q_OBJECT virtual ~XGUI_ObjectsBrowser(); //! Returns Model which provides access to data objects - XGUI_DocumentDataModel* dataModel() const +#ifdef ModuleDataModel + ModuleBase_IDocumentDataModel* dataModel() const { return myDocModel; } - - //! Returns list of currently selected objects - QObjectPtrList selectedObjects() const +#else + XGUI_DataModel* dataModel() const { - return myObjectsList; + return myDocModel; } +#endif + + //! Returns list of currently selected objects + //! \param theIndexes - output list of corresponded indexes (can be NULL) + QObjectPtrList selectedObjects(QModelIndexList* theIndexes = 0) const; /// Set selected list of objects /// \param theObjects list of objects to select @@ -112,38 +104,39 @@ 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(); - /// Process application event - /// \param theMessage an event message - void processEvent(const std::shared_ptr& theMessage); - /// Resets the object browser into initial state void clearContent(); + /// Set Data Model for the Object Browser +#ifdef ModuleDataModel + void setDataModel(ModuleBase_IDocumentDataModel* theModel); +#endif + +public slots: + //! Called on Edit command request + void onEditItem(); + 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: - /// Activate part - /// \param thePart a part to activate - void onActivePartChanged(ObjectPtr thePart); - /// Show context menu /// \param theEvent a context menu event void onContextMenuRequested(QContextMenuEvent* theEvent); @@ -152,22 +145,20 @@ signals: /// \param thePnt a position of context menu void onLabelContextMenuRequested(const QPoint& thePnt); - //! Called on Edit command request - void onEditItem(); - - /// Process selection changed event - 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; - +#ifdef ModuleDataModel + ModuleBase_IDocumentDataModel* myDocModel; +#else + XGUI_DataModel* myDocModel; +#endif QLineEdit* myActiveDocLbl; XGUI_DataTree* myTreeView; - - QObjectPtrList myObjectsList; }; #endif