34#include <ArmarXGui/gui-plugins/ScenarioManager/gui/ui_scenariolistview.h>
46 startButtonDelegate(this),
47 stopButtonDelegate(this),
48 restartButtonDelegate(this),
49 removeAction(
"Remove", &contextMenu),
50 expandAction(
"Expand", &contextMenu),
51 collapseAction(
"Collapse", &contextMenu)
55 ui->treeView->setModel(model.get());
56 ui->treeView->setSortingEnabled(
true);
57 ui->treeView->setItemDelegateForColumn(1, &startButtonDelegate);
58 ui->treeView->setItemDelegateForColumn(2, &stopButtonDelegate);
59 ui->treeView->setItemDelegateForColumn(3, &restartButtonDelegate);
62 contextMenu.setParent(ui->treeView);
63 ui->treeView->setContextMenuPolicy(Qt::CustomContextMenu);
64 QObject::connect(ui->treeView,
65 SIGNAL(customContextMenuRequested(
const QPoint&)),
67 SLOT(onCustomContextMenu(
const QPoint&)));
69 ui->treeView->addAction(&removeAction);
71 ui->treeView->setDragEnabled(
true);
72 ui->treeView->setDefaultDropAction(Qt::CopyAction);
73 ui->treeView->setAcceptDrops(
true);
74 ui->treeView->setDropIndicatorShown(
true);
76 QObject::connect(&removeAction, SIGNAL(triggered()),
this, SLOT(removeItemTriggered()));
77 QObject::connect(&expandAction, SIGNAL(triggered()),
this, SLOT(expandItemTriggered()));
78 QObject::connect(&collapseAction, SIGNAL(triggered()),
this, SLOT(collapseItemTriggered()));
80 QObject::connect(&startButtonDelegate,
83 SLOT(startButtonClicked(
int,
int, QModelIndex)));
86 QObject::connect(&stopButtonDelegate,
89 SLOT(stopButtonClicked(
int,
int, QModelIndex)));
91 QObject::connect(&restartButtonDelegate,
94 SLOT(restartButtonClicked(
int,
int, QModelIndex)));
105 this->model = treeModel;
106 ui->treeView->setModel(model.get());
108 QHeaderView* header = ui->treeView->header();
109 header->setStretchLastSection(
false);
110 header->setSectionResizeMode(0, QHeaderView::Stretch);
111 header->setSectionResizeMode(1, QHeaderView::Fixed);
112 header->setSectionResizeMode(2, QHeaderView::Fixed);
113 header->setSectionResizeMode(3, QHeaderView::Fixed);
114 header->setSectionResizeMode(4, QHeaderView::ResizeToContents);
115 const int buttonWidth = 60;
116 header->resizeSection(1, buttonWidth);
117 header->resizeSection(2, buttonWidth);
118 header->resizeSection(3, buttonWidth);
122ScenarioListView::on_searchBar_textEdited(
const QString& text)
124 model->setFilterRegExp(QRegExp(text, Qt::CaseInsensitive, QRegExp::FixedString));
125 ui->treeView->expandAll();
129ScenarioListView::startButtonClicked(
int row,
int column, QModelIndex parent)
135ScenarioListView::stopButtonClicked(
int row,
int column, QModelIndex parent)
141ScenarioListView::restartButtonClicked(
int row,
int column, QModelIndex parent)
147ScenarioListView::on_newButton_clicked()
153ScenarioListView::on_openButton_clicked()
159ScenarioListView::on_expandAllButton_clicked()
161 ui->treeView->expandAll();
165ScenarioListView::on_collapseAllButton_clicked()
167 ui->treeView->collapseAll();
171ScenarioListView::removeItemTriggered()
173 QModelIndex
index = ui->treeView->currentIndex();
178ScenarioListView::on_treeView_clicked(
const QModelIndex&
index)
184ScenarioListView::onCustomContextMenu(
const QPoint& point)
186 QModelIndex
index = ui->treeView->currentIndex();
188 QList<QAction*> actions;
189 actions.append(&expandAction);
190 actions.append(&collapseAction);
192 separator.setSeparator(
true);
193 actions.append(&separator);
194 actions.append(&removeAction);
196 QMenu::exec(actions, ui->treeView->mapToGlobal(point));
203 if (!
index.isValid())
210 const QAbstractItemModel* model =
index.model();
211 int rows = model->rowCount(
index);
212 int cols = model->columnCount(
index);
214 for (
int r = 0; r < rows; ++r)
216 for (
int c = 0;
c < cols; ++
c)
218 QModelIndex child = model->index(r,
c,
index);
228ScenarioListView::expandItemTriggered()
230 QModelIndex
index = ui->treeView->currentIndex();
233 #if QT_VERSION >= QT_VERSION_CHECK(5, 15, 0)
234 ui->treeView->expandRecursively(
index);
241ScenarioListView::collapseItemTriggered()
243 QModelIndex
index = ui->treeView->currentIndex();
244 ui->treeView->collapse(
index);
~ScenarioListView() override
Destructor.
void itemClicked(const QModelIndex &index)
ScenarioListView(QWidget *parent=0)
Constructor that sets up the ui and behaviour of this view.
void stopApplication(int row, int column, QModelIndex parent)
void setModel(FilterableTreeModelSortFilterProxyModelPtr model)
Sets the model of this view.
void restartApplication(int row, int column, QModelIndex parent)
void startApplication(int row, int column, QModelIndex parent)
void removeItem(QModelIndex index)
std::shared_ptr< FilterableTreeModelSortFilterProxyModel > FilterableTreeModelSortFilterProxyModelPtr
bool buttonClicked(RemoteGui::ValueMap const &newValues, RemoteGui::ValueMap const &oldValues, std::string const &name)
This file offers overloads of toIce() and fromIce() functions for STL container types.
void expandRecursively(QTreeView *view, const QModelIndex &index)