X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2FXGUI%2FXGUI_ObjectsBrowser.cpp;h=21530908eadd40b545986b574b114e2f6d780ade;hb=d7f39bb5064d81ef383a672d5f38718369a13899;hp=5b6547c638ff2eb7d47e3d22cd481e245ac7cbf0;hpb=c5a608bb7f2f754085388cd0fa4e3971239f95c5;p=modules%2Fshaper.git diff --git a/src/XGUI/XGUI_ObjectsBrowser.cpp b/src/XGUI/XGUI_ObjectsBrowser.cpp index 5b6547c63..21530908e 100644 --- a/src/XGUI/XGUI_ObjectsBrowser.cpp +++ b/src/XGUI/XGUI_ObjectsBrowser.cpp @@ -1,23 +1,15 @@ #include "XGUI_ObjectsBrowser.h" #include "XGUI_DocumentDataModel.h" -//#include "XGUI_PartDataModel.h" - -//#include -//#include -//#include -//#include -//#include -//#include XGUI_ObjectsBrowser::XGUI_ObjectsBrowser(QWidget* theParent) : QTreeView(theParent) { setHeaderHidden(true); - XGUI_DocumentDataModel* aDocModel = new XGUI_DocumentDataModel(this); - //std::shared_ptr aMgr = ModelAPI_PluginManager::get(); - //std::shared_ptr aDocument = aMgr->currentDocument(); - //aDocModel->setDocument(aDocument, 0); - setModel(aDocModel); + myDocModel = new XGUI_DocumentDataModel(this); + setModel(myDocModel); + + connect(selectionModel(), SIGNAL(selectionChanged(const QItemSelection&, const QItemSelection&)), + this, SLOT(onSelectionChanged(const QItemSelection&, const QItemSelection&))); } @@ -25,3 +17,33 @@ XGUI_ObjectsBrowser::~XGUI_ObjectsBrowser() { } + + +void XGUI_ObjectsBrowser::onSelectionChanged(const QItemSelection& theSelected, + const QItemSelection& theDeselected) +{ + mySelectedData.clear(); + QModelIndexList aIndexes = selectionModel()->selectedIndexes(); + QModelIndexList::const_iterator aIt; + for (aIt = aIndexes.constBegin(); aIt != aIndexes.constEnd(); ++aIt) { + FeaturePtr aFeature = myDocModel->feature(*aIt); + if (aFeature) + mySelectedData.append(aFeature); + } + emit selectionChanged(); +} + +void XGUI_ObjectsBrowser::mouseDoubleClickEvent(QMouseEvent* theEvent) +{ + QModelIndex aIndex = currentIndex(); + bool isChanged = myDocModel->activatedIndex(aIndex); + QTreeView::mouseDoubleClickEvent(theEvent); + if (isChanged) { + emit activePartChanged(myDocModel->activePart()); + } +} + +void XGUI_ObjectsBrowser::contextMenuEvent(QContextMenuEvent* theEvent) +{ + emit contextMenuRequested(theEvent); +} \ No newline at end of file