X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2FXGUI%2FXGUI_ObjectsBrowser.h;h=f3e335eefd4cedeb448d075fdce4def7167cd6e4;hb=1035d41ad342fb22f5ea2552a8fc135aed95f3b8;hp=fd522c61a8dd253aaafc940fec2aadac2b942018;hpb=08f1aef6629e6a63cc4671d271ded4de6e826948;p=modules%2Fshaper.git diff --git a/src/XGUI/XGUI_ObjectsBrowser.h b/src/XGUI/XGUI_ObjectsBrowser.h index fd522c61a..f3e335eef 100644 --- a/src/XGUI/XGUI_ObjectsBrowser.h +++ b/src/XGUI/XGUI_ObjectsBrowser.h @@ -1,4 +1,4 @@ -// Copyright (C) 2014-2017 CEA/DEN, EDF R&D +// Copyright (C) 2014-2019 CEA/DEN, 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 @@ -12,10 +12,9 @@ // // You should have received a copy of the GNU Lesser General Public // License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // -// See http://www.salome-platform.org/ or -// email : webmaster.salome@opencascade.com +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // #ifndef XGUI_ObjectsBrowser_H @@ -26,15 +25,18 @@ #include #include #include +#include #include #include #include +#include class ModuleBase_IDocumentDataModel; class XGUI_DataModel; class Config_DataModelReader; class XGUI_Workshop; +class ModuleBase_ITreeNode; //#define DEBUG_INDXES @@ -87,7 +89,7 @@ private: * \ingroup GUI * Implementation of Data Tree object for Object Browser */ -class XGUI_DataTree : public QTreeView +class XGUI_EXPORT XGUI_DataTree : public QTreeView { Q_OBJECT public: @@ -166,10 +168,17 @@ Q_OBJECT /// \param theObjects list of objects to select void setObjectsSelected(const QObjectPtrList& theObjects); + //! Scroll TreeView to make given object visible + //! \param theObject object to make it visible + void ensureVisible(const ObjectPtr theObject); + //! Returns currently selected indexes QModelIndexList selectedIndexes() const { - return myTreeView->selectionModel()->selectedIndexes(); + if (myTreeView->selectionModel()) + return myTreeView->selectionModel()->selectedIndexes(); + else + return QModelIndexList(); } //! Returns TreeView widget @@ -187,9 +196,8 @@ Q_OBJECT /// Resets the object browser into initial state void clearContent(); - /// Set XML reader object for data model - /// \param theReader the reader object - void setXMLReader(Config_DataModelReader* theReader); + /// Initialize the Object browser + void initialize(ModuleBase_ITreeNode* theRoot); /// Returns list of folders opened state for the given document /// \param theDoc the document @@ -206,6 +214,14 @@ Q_OBJECT void onSelectionChanged(); + /// Updates all items of object browser + /// \param theColumn - column of items + /// \param theParent - a parent item (by default from root) + void updateAllIndexes(int theColumn = 0, const QModelIndex& theParent = QModelIndex()); + + QMap getFoldersState(DocumentPtr theDoc) const; + + void setFoldersState(const QMap& theStates); public slots: //! Called on Edit command request @@ -221,6 +237,15 @@ signals: //! Segnal is emitted when user cliks by mouse in header label of object browser void headerMouseDblClicked(const QModelIndex&); + //! An signal emitted on resize of the Object Browser + void sizeChanged(); + + +protected: + //! redefinition of a virtual method + void resizeEvent(QResizeEvent* theEvent); + + private slots: /// Show context menu /// \param theEvent a context menu event @@ -238,7 +263,7 @@ signals: void onAfterModelReset(); private: - QModelIndexList expandedItems(const QModelIndex& theParent = QModelIndex()) const; + QList expandedItems(const QModelIndex& theParent = QModelIndex()) const; //! Internal model XGUI_DataModel* myDocModel; @@ -247,7 +272,8 @@ signals: XGUI_Workshop* myWorkshop; /// A field to store expanded items before model reset - QModelIndexList myExpandedItems; + //QModelIndexList myExpandedItems; + QList myExpandedItems; }; #endif