insilmaril@769: #include "treeeditor.h" insilmaril@769: insilmaril@769: #include insilmaril@788: #include insilmaril@788: insilmaril@769: #include "vymmodel.h" insilmaril@769: insilmaril@769: /////////////////////////////////////////////////////////////////////// insilmaril@769: /////////////////////////////////////////////////////////////////////// insilmaril@769: TreeEditor::TreeEditor(VymModel *m) insilmaril@769: { insilmaril@769: model=m; insilmaril@769: insilmaril@825: // FIXME-3 use proxmodel insilmaril@804: //proxyModel = new MySortFilterProxyModel(this); insilmaril@804: //setModel(proxyModel); insilmaril@804: setModel(m); insilmaril@804: //proxyModel->setSourceModel(model); insilmaril@788: insilmaril@769: QAction *a; insilmaril@769: // Shortcuts for navigating with cursor: insilmaril@769: a = new QAction(tr( "Select upper object","Tree Editor" ), this); insilmaril@769: a->setStatusTip ( tr( "Select upper object" )); insilmaril@769: a->setShortcut (Qt::Key_Up ); insilmaril@769: a->setShortcutContext (Qt::WidgetShortcut); insilmaril@769: addAction (a); insilmaril@769: connect( a, SIGNAL( triggered() ), this, SLOT( cursorUp() ) ); insilmaril@769: insilmaril@769: a = new QAction( tr( "Select lower object","Tree Editor" ),this); insilmaril@769: a->setStatusTip (tr( "Select lower object" )); insilmaril@769: a->setShortcut ( Qt::Key_Down ); insilmaril@769: a->setShortcutContext (Qt::WidgetShortcut); insilmaril@769: addAction (a); insilmaril@769: connect( a, SIGNAL( triggered() ), this, SLOT( cursorDown() ) ); insilmaril@769: } insilmaril@769: insilmaril@769: TreeEditor::~TreeEditor() insilmaril@769: { insilmaril@769: //cout <<"Destructor TreeEditor for "<getMapName().toStdString()<selectedIndexes(); insilmaril@804: if (list.isEmpty() ) insilmaril@804: return QModelIndex(); insilmaril@804: else insilmaril@804: return list.first(); insilmaril@804: } insilmaril@804: insilmaril@804: insilmaril@800: void TreeEditor::setSortFilter(QString s) insilmaril@800: { insilmaril@800: proxyModel->setFilterRegExp(QRegExp(s, Qt::CaseInsensitive)); insilmaril@800: proxyModel->setFilterKeyColumn(0); insilmaril@800: proxyModel->setDynamicSortFilter (true); insilmaril@800: } insilmaril@800: insilmaril@769: void TreeEditor::cursorUp() insilmaril@769: { insilmaril@804: QModelIndex ix=getSelectedIndex(); insilmaril@822: // FIXME-3 useproxymodel ix=proxyModel->mapToSource (indexAbove(ix)); insilmaril@804: ix=indexAbove (ix); insilmaril@804: if (ix.isValid()) insilmaril@804: model->select (ix ); insilmaril@769: } insilmaril@769: insilmaril@769: void TreeEditor::cursorDown() insilmaril@769: { insilmaril@804: QModelIndex ix=getSelectedIndex(); insilmaril@822: //FIXME-3 useProxymodel ix=proxyModel->mapToSource (indexBelow(ix)); insilmaril@804: ix=indexBelow (ix); insilmaril@804: if (ix.isValid()) insilmaril@804: model->select (ix ); insilmaril@769: } insilmaril@769: