Salome HOME
Merge branch 'master' of newgeom:newgeom
[modules/shaper.git] / src / XGUI / XGUI_ObjectsBrowser.cpp
1 #include "XGUI_ObjectsBrowser.h"
2 #include "XGUI_DocumentDataModel.h"
3
4 XGUI_ObjectsBrowser::XGUI_ObjectsBrowser(QWidget* theParent)
5   : QTreeView(theParent)
6 {
7   setHeaderHidden(true);
8   myDocModel = new XGUI_DocumentDataModel(this);
9   setModel(myDocModel);
10
11   connect(selectionModel(), SIGNAL(selectionChanged(const QItemSelection&, const QItemSelection&)), 
12     this, SLOT(onSelectionChanged(const QItemSelection&, const QItemSelection&)));
13 }
14
15
16 XGUI_ObjectsBrowser::~XGUI_ObjectsBrowser()
17 {
18 }
19
20
21
22 void XGUI_ObjectsBrowser::onSelectionChanged(const QItemSelection& theSelected, 
23                                              const QItemSelection& theDeselected)
24 {
25   mySelectedData.clear();
26   QModelIndexList aIndexes = selectionModel()->selectedIndexes();
27   QModelIndexList::const_iterator aIt;
28   for (aIt = aIndexes.constBegin(); aIt != aIndexes.constEnd(); ++aIt) {
29     FeaturePtr aFeature = myDocModel->feature(*aIt);
30     if (aFeature)
31       mySelectedData.append(aFeature);
32   }
33   emit selectionChanged();
34 }
35
36 void XGUI_ObjectsBrowser::mouseDoubleClickEvent(QMouseEvent* theEvent)
37 {
38   QModelIndex aIndex = currentIndex();
39   bool isChanged = myDocModel->activatedIndex(aIndex);
40   QTreeView::mouseDoubleClickEvent(theEvent);
41   if (isChanged) {
42     setExpanded(aIndex.parent(), true);
43     setExpanded(aIndex, myDocModel->hasChildren(aIndex));
44     emit activePartChanged(myDocModel->activePart());
45   }
46 }