insilmaril@726: #include "vymview.h" insilmaril@726: insilmaril@727: #include insilmaril@727: insilmaril@726: #include "mapeditor.h" insilmaril@726: insilmaril@726: VymView::VymView(VymModel *model) insilmaril@726: { insilmaril@726: // Create TreeView insilmaril@727: treeview=new QTreeView; insilmaril@726: treeview->setModel ((QAbstractItemModel*)model); insilmaril@726: treeview->setMinimumWidth (350); insilmaril@726: treeview->setColumnWidth (0,350); insilmaril@726: insilmaril@727: selModel=treeview->selectionModel(); insilmaril@728: model->setSelectionModel (selModel); insilmaril@727: connect ( insilmaril@727: selModel, SIGNAL (selectionChanged(const QItemSelection &, const QItemSelection &)), insilmaril@727: this,SLOT (changeSelection(const QItemSelection &,const QItemSelection &))); insilmaril@727: insilmaril@726: // Create good old MapEditor insilmaril@726: MapEditor* me=model->getMapEditor(); insilmaril@726: if (!me) me=new MapEditor (model); insilmaril@728: connect ( insilmaril@728: selModel, SIGNAL (selectionChanged(const QItemSelection &, const QItemSelection &)), insilmaril@728: me,SLOT (updateSelection(const QItemSelection &,const QItemSelection &))); insilmaril@729: connect ( insilmaril@729: selModel, SIGNAL (currentChanged(const QModelIndex &, const QModelIndex &)), insilmaril@729: me,SLOT (updateCurrent(const QModelIndex &,const QModelIndex &))); insilmaril@726: insilmaril@728: // VymModel may want to update selection, e.g. during animation insilmaril@729: /* insilmaril@728: connect ( insilmaril@728: model, SIGNAL (selectionChanged(const QItemSelection &, const QItemSelection &)), insilmaril@728: me,SLOT (updateSelection(const QItemSelection &,const QItemSelection &))); insilmaril@729: */ insilmaril@726: insilmaril@726: //me->viewport()->setFocus(); insilmaril@726: //FIXME me->setAntiAlias (actionViewToggleAntiAlias->isOn()); insilmaril@726: //FIXME me->setSmoothPixmap(actionViewToggleSmoothPixmapTransform->isOn()); insilmaril@726: insilmaril@726: addWidget (treeview); insilmaril@726: addWidget (me); insilmaril@726: insilmaril@726: // Set geometry insilmaril@726: QList sizes; insilmaril@726: sizes.append (150); insilmaril@726: sizes.append (600); insilmaril@726: setSizes (sizes); insilmaril@726: } insilmaril@726: insilmaril@726: QItemSelectionModel* VymView::selectionModel() insilmaril@726: { insilmaril@728: if (treeview) insilmaril@728: return selModel; insilmaril@728: else insilmaril@728: std::cout <<"VymView::selectionModel: hey, no treeview so far???\n"; insilmaril@726: return NULL; insilmaril@726: } insilmaril@726: insilmaril@726: insilmaril@727: void VymView::changeSelection (const QItemSelection &newSel, const QItemSelection &delSel) insilmaril@727: { insilmaril@727: // FIXME Currently this works only from treeview->ME insilmaril@727: treeview->expandAll(); //FIXME only for testing insilmaril@727: insilmaril@727: ((VymModel*)treeview->model())->select (); insilmaril@727: } insilmaril@727: