insilmaril@726: #include "vymview.h" insilmaril@726: insilmaril@727: #include insilmaril@742: using namespace std; insilmaril@727: insilmaril@732: #include "mainwindow.h" insilmaril@726: #include "mapeditor.h" insilmaril@726: insilmaril@732: extern Main *mainWindow; insilmaril@732: insilmaril@732: insilmaril@742: VymView::VymView(VymModel *m) insilmaril@726: { insilmaril@742: model=m; insilmaril@742: 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@728: connect ( insilmaril@728: model, SIGNAL (selectionChanged(const QItemSelection &, const QItemSelection &)), insilmaril@728: me,SLOT (updateSelection(const QItemSelection &,const QItemSelection &))); insilmaril@745: connect ( insilmaril@745: model, SIGNAL (newChildObject(QModelIndex) ), insilmaril@745: this,SLOT (updateChilds (QModelIndex) ) ); insilmaril@726: insilmaril@735: //me->viewport()->setFocus(); //FIXME needed? insilmaril@732: me->setAntiAlias (mainWindow->isAliased()); insilmaril@732: me->setSmoothPixmap(mainWindow->hasSmoothPixmapTransform()); insilmaril@726: insilmaril@726: addWidget (treeview); insilmaril@726: addWidget (me); insilmaril@726: insilmaril@726: // Set geometry insilmaril@726: QList sizes; insilmaril@735: sizes.append (120); 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@745: void VymView::updateChilds (QModelIndex ix) insilmaril@745: { insilmaril@745: treeview->setExpanded (ix,true); insilmaril@745: } insilmaril@745: insilmaril@742: void VymView::changeSelection (const QItemSelection &, const QItemSelection &) insilmaril@727: { insilmaril@742: cout << "VymView::changeSelection (newsel,delsel)\n"; insilmaril@742: //treeview->expandAll(); //FIXME only for testing insilmaril@727: insilmaril@742: // Show URL and link in statusbar insilmaril@742: QString status; insilmaril@742: QString s=model->getURL(); insilmaril@742: if (!s.isEmpty() ) status+="URL: "+s+" "; insilmaril@742: s=model->getVymLink(); insilmaril@742: if (!s.isEmpty() ) status+="Link: "+s; insilmaril@742: if (!status.isEmpty() ) mainWindow->statusMessage (status); insilmaril@742: insilmaril@745: // Update Toolbar // FIXME, was so far in BranchObj insilmaril@742: //updateFlagsToolbar(); insilmaril@742: insilmaril@742: // Update actions insilmaril@742: mainWindow->updateActions(); insilmaril@727: } insilmaril@727: