11 #include <SUIT_DataObject.h>
12 #include <SUIT_DataObjectKey.h>
13 #include <SUIT_PopupClient.h>
16 #pragma warning( disable:4251 )
23 class OB_EXPORT OB_Browser : public QFrame, public SUIT_PopupClient
30 OB_Browser( QWidget* = 0, SUIT_DataObject* theRoot = 0 );
31 virtual ~OB_Browser();
33 virtual QString popupClientType() const { return QString( "ObjectBrowser" ); }
35 SUIT_DataObject* getRootObject() const;
36 virtual void setRootObject( SUIT_DataObject* theRoot = 0 );
38 int numberOfSelected() const;
40 DataObjectList getSelected() const;
41 void getSelected( DataObjectList& ) const;
43 virtual void setSelected( const SUIT_DataObject* theObject, const bool = false );
44 virtual void setSelected( const DataObjectList& theObjLst, const bool = false );
46 bool isOpen( SUIT_DataObject* theObject ) const;
47 virtual void setOpen( SUIT_DataObject* theObject, const bool theOpen = true );
49 bool isAutoUpdate() const;
50 virtual void setAutoUpdate( const bool );
52 bool isAutoDeleteObjects() const;
53 virtual void setAutoDeleteObjects( const bool );
55 virtual void updateTree( SUIT_DataObject* = 0 );
56 virtual void replaceTree( SUIT_DataObject*, SUIT_DataObject* );
58 bool isShowToolTips();
59 void setShowToolTips( const bool theDisplay );
63 SUIT_DataObject* dataObjectAt( const QPoint& ) const;
65 OB_Filter* filter() const;
66 void setFilter( OB_Filter* );
68 bool rootIsDecorated() const;
69 void setRootIsDecorated( const bool );
71 int autoOpenLevel() const;
72 void setAutoOpenLevel( const int );
74 virtual int addColumn( const QString&, const int id = -1, const int width = -1 );
75 virtual int addColumn( const QIconSet&, const QString&, const int id = -1, const int width = -1 );
76 virtual void removeColumn( const int id );
78 void setNameTitle( const QString& );
79 virtual void setNameTitle( const QIconSet&, const QString& );
80 void setColumnTitle( const int id, const QString& );
81 virtual void setColumnTitle( const int id, const QIconSet&, const QString& );
83 QString nameTitle() const;
84 QString columnTitle( const int ) const;
86 bool isColumnVisible( const int ) const;
87 virtual void setColumnShown( const int, const bool );
89 virtual void setWidthMode( QListView::WidthMode );
91 QValueList<int> columns() const;
93 bool appropriateColumn( const int ) const;
94 virtual void setAppropriateColumn( const int, const bool );
96 virtual bool eventFilter(QObject* watched, QEvent* e);
98 QListView* listView() const;
100 virtual void contextMenuPopup( QPopupMenu* );
103 void selectionChanged();
104 void dropped( DataObjectList, SUIT_DataObject*, int );
108 void onColumnVisible( int );
109 void onDestroyed( SUIT_DataObject* );
110 void onDropped( QPtrList<QListViewItem>, QListViewItem*, int );
113 void adjustWidth( QListViewItem* );
114 virtual void updateView( const SUIT_DataObject* theStartObj = 0 );
115 virtual void updateText();
117 virtual void keyPressEvent( QKeyEvent* );
119 SUIT_DataObject* dataObject( const QListViewItem* ) const;
120 QListViewItem* listViewItem( const SUIT_DataObject* ) const;
123 typedef QMap<SUIT_DataObject*, QListViewItem*> ItemMap;
124 typedef SUIT_DataObjectKeyHandle DataObjectKey;
125 typedef QMap<SUIT_DataObject*, int> DataObjectMap;
126 typedef QMap<DataObjectKey, int> DataObjectKeyMap;
129 void expand( QListViewItem* );
130 bool hasClosed( QListViewItem* ) const;
132 void autoOpenBranches();
133 void openBranch( QListViewItem*, const int );
135 void removeReferences( QListViewItem* );
136 void removeConnections( SUIT_DataObject* );
137 void createConnections( SUIT_DataObject* );
138 void removeObject( SUIT_DataObject*, const bool = true );
140 void updateText( QListViewItem* );
142 DataObjectKey objectKey( QListViewItem* ) const;
143 DataObjectKey objectKey( SUIT_DataObject* ) const;
145 QListViewItem* createTree( const SUIT_DataObject*, QListViewItem*, QListViewItem* = 0 );
146 QListViewItem* createItem( const SUIT_DataObject*, QListViewItem*, QListViewItem* = 0 );
148 SUIT_DataObject* storeState( DataObjectMap&, DataObjectMap&,
149 DataObjectKeyMap&, DataObjectKeyMap&, DataObjectKey& ) const;
150 void restoreState( const DataObjectMap&, const DataObjectMap&, const SUIT_DataObject*,
151 const DataObjectKeyMap&, const DataObjectKeyMap&, const DataObjectKey& );
155 SUIT_DataObject* myRoot;
158 QMap<int, int> myColumnIds;
162 bool myRootDecorated;
165 friend class OB_Browser::ToolTip;