Menu

[efa3d9]: / src / treeeditor.cpp  Maximize  Restore  History

Download this file

128 lines (106 with data), 3.4 kB

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
#include "treeeditor.h"
#include <QAction>
#include <QContextMenuEvent>
#include <QHeaderView>
#include <QMenu>
#include <QRegularExpression>
#include "mainwindow.h"
#include "vymmodel.h"
extern Main *mainWindow;
extern QString editorFocusStyle;
extern QMenu *branchContextMenu;
extern QMenu *canvasContextMenu;
extern QMenu *floatimageContextMenu;
///////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////
TreeEditor::TreeEditor(VymModel *m)
{
model = m;
if (model)
setModel(model);
init();
}
void TreeEditor::init()
{
setSelectionMode(QAbstractItemView::ExtendedSelection);
header()->hide();
QAction *a;
// Shortcuts for navigating with cursor:
a = new QAction(tr("Select upper object", "Tree Editor"), this);
a->setShortcut(Qt::Key_Up);
a->setShortcutContext(Qt::WidgetShortcut);
addAction(a);
connect(a, SIGNAL(triggered()), this, SLOT(cursorUp()));
a = new QAction(tr("Select lower object", "Tree Editor"), this);
a->setShortcut(Qt::Key_Down);
a->setShortcutContext(Qt::WidgetShortcut);
addAction(a);
connect(a, SIGNAL(triggered()), this, SLOT(cursorDown()));
a = new QAction(this);
a->setShortcut(Qt::Key_PageUp);
a->setShortcutContext(Qt::WidgetShortcut);
addAction(a);
connect(a, SIGNAL(triggered()), mainWindow, SLOT(editMoveUp()));
a = new QAction(this);
a->setShortcut(Qt::Key_PageDown);
a->setShortcutContext(Qt::WidgetShortcut);
addAction(a);
connect(a, SIGNAL(triggered()), mainWindow, SLOT(editMoveDown()));
a = new QAction(this);
a->setShortcut(Qt::Key_Return);
a->setShortcutContext(Qt::WidgetShortcut);
addAction(a);
connect(a, SIGNAL(triggered()), this, SLOT(startEdit()));
// Clone actions defined in MainWindow // FIXME-3 PageUp/Down not working in TreeEditor
foreach (QAction *qa, mainWindow->mapEditorActions) {
a = new QAction(this);
a->setShortcut(qa->shortcut());
a->setShortcutContext(qa->shortcutContext());
connect(a, SIGNAL(triggered()), qa, SLOT(trigger()));
addAction(a);
}
setStyleSheet("QTreeView:focus {" + editorFocusStyle + "}");
}
TreeEditor::~TreeEditor()
{
// qDebug()<<"Destructor TreeEditor for "<<model->getMapName();
}
QModelIndex TreeEditor::getSelectedIndex()
{
QModelIndexList list = selectionModel()->selectedIndexes();
if (list.isEmpty())
return QModelIndex();
else
return list.first();
}
void TreeEditor::contextMenuEvent(QContextMenuEvent *e) {
if (model->getSelectedBranch())
branchContextMenu->popup(e->globalPos());
else if (model->getSelectedImage())
floatimageContextMenu->popup(e->globalPos());
else if (model->getSelectedXLink())
model->editXLink();
else
canvasContextMenu->exec(e->globalPos());
e->accept();
}
void TreeEditor::cursorUp()
{
QModelIndex ix = getSelectedIndex();
ix = indexAbove(ix);
if (ix.isValid())
model->select(ix);
}
void TreeEditor::cursorDown()
{
QModelIndex ix = getSelectedIndex();
ix = indexBelow(ix);
if (ix.isValid())
model->select(ix);
}
void TreeEditor::startEdit()
{
QModelIndex ix = getSelectedIndex();
if (ix.isValid())
edit(ix);
}
Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.