27 #include <ArmarXGui/gui-plugins/ScenarioManager/gui/ui_scenariolistview.h>
37 using namespace Data_Structure;
44 startButtonDelegate(this),
45 stopButtonDelegate(this),
46 restartButtonDelegate(this),
47 removeAction(
"Remove", &contextMenu)
51 ui->treeView->setModel(model.get());
52 ui->treeView->setSortingEnabled(
true);
53 ui->treeView->setItemDelegateForColumn(1, &startButtonDelegate);
54 ui->treeView->setItemDelegateForColumn(2, &stopButtonDelegate);
55 ui->treeView->setItemDelegateForColumn(3, &restartButtonDelegate);
58 contextMenu.setParent(ui->treeView);
59 ui->treeView->setContextMenuPolicy(Qt::CustomContextMenu);
60 QObject::connect(ui->treeView, SIGNAL(customContextMenuRequested(
const QPoint&)),
this, SLOT(onCustomContextMenu(
const QPoint&)));
62 ui->treeView->addAction(&removeAction);
64 ui->treeView->setDragEnabled(
true);
65 ui->treeView->setDefaultDropAction(Qt::CopyAction);
66 ui->treeView->setAcceptDrops(
true);
67 ui->treeView->setDropIndicatorShown(
true);
69 QObject::connect(&removeAction, SIGNAL(triggered()),
70 this, SLOT(removeItemTriggered()));
72 QObject::connect(&startButtonDelegate, SIGNAL(comboBoxButtonClicked(
int,
int, QModelIndex, QString)),
73 this, SLOT(startComboBoxClicked(
int,
int, QModelIndex, QString)));
74 QObject::connect(&startButtonDelegate, SIGNAL(
buttonClicked(
int,
int, QModelIndex)),
75 this, SLOT(startButtonClicked(
int,
int, QModelIndex)));
78 QObject::connect(&stopButtonDelegate, SIGNAL(
buttonClicked(
int,
int, QModelIndex)),
79 this, SLOT(stopButtonClicked(
int,
int, QModelIndex)));
81 QObject::connect(&restartButtonDelegate, SIGNAL(
buttonClicked(
int,
int, QModelIndex)),
82 this, SLOT(restartButtonClicked(
int,
int, QModelIndex)));
93 ui->treeView->setModel(model.get());
94 QObject::connect(this->model.get(), SIGNAL(dataChanged(QModelIndex, QModelIndex)),
this, SLOT(onModelDataChange(QModelIndex, QModelIndex)));
96 ui->treeView->setColumnWidth(0, 200);
97 ui->treeView->setColumnWidth(1, 90);
98 ui->treeView->setColumnWidth(2, 50);
99 ui->treeView->setColumnWidth(3, 60);
103 void ScenarioListView::on_searchBar_textEdited(
const QString& text)
105 model->setFilterRegExp(QRegExp(text, Qt::CaseInsensitive, QRegExp::FixedString));
106 ui->treeView->expandAll();
109 void ScenarioListView::startComboBoxClicked(
int row,
int column, QModelIndex parent, QString text)
114 void ScenarioListView::startButtonClicked(
int row,
int column, QModelIndex parent)
119 void ScenarioListView::stopButtonClicked(
int row,
int column, QModelIndex parent)
124 void ScenarioListView::restartButtonClicked(
int row,
int column, QModelIndex parent)
129 void ScenarioListView::on_newButton_clicked()
134 void ScenarioListView::on_openButton_clicked()
139 void ScenarioListView::updateScenarioIndices()
141 for (
int i = 0; i < this->model->rowCount(); ++i)
143 auto index = this->model->index(i, 1);
144 ui->treeView->openPersistentEditor(
index);
154 void ScenarioListView::removeItemTriggered()
156 QModelIndex
index = ui->treeView->currentIndex();
158 updateScenarioIndices();
162 void ScenarioListView::on_treeView_clicked(
const QModelIndex&
index)
167 void ScenarioListView::onCustomContextMenu(
const QPoint& point)
169 QModelIndex
index = ui->treeView->currentIndex();
171 removeAction.setText(
"Remove " +
index.data().toString());
173 QList<QAction*> actions;
174 actions.append(&removeAction);
176 QMenu::exec(actions, ui->treeView->mapToGlobal(point));
179 void ScenarioListView::onModelDataChange(QModelIndex start, QModelIndex end)
181 updateScenarioIndices();