EdgeTableWidget.h
Go to the documentation of this file.
1/*
2 * This file is part of ArmarX.
3 *
4 * ArmarX is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License version 2 as
6 * published by the Free Software Foundation.
7 *
8 * ArmarX is distributed in the hope that it will be useful, but
9 * WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 *
16 * @author Rainer Kartmann ( rainer dot kartmann at kit dot edu )
17 * @date 2021
18 * @copyright http://www.gnu.org/licenses/gpl-2.0.txt
19 * GNU General Public License
20 */
21
22#pragma once
23
24#include <QColor>
25#include <QList>
26#include <QTableWidget>
27#include <qlist.h>
28#include <qobjectdefs.h>
29#include <qpoint.h>
30#include <qtablewidget.h>
31
35
37{
38
39 class EdgeTableWidget : public QTableWidget
40 {
41 Q_OBJECT
42 using This = EdgeTableWidget;
43
44
45 public:
47
48 template <class EdgeT>
49 QTableWidgetItem*
50 addEdge(const EdgeT& edge)
51 {
52 return addEdge(edge.source().attrib(), edge.target().attrib());
53 }
54
55 QTableWidgetItem* addEdge(const core::VertexAttribs& sourceAttrib,
56 const core::VertexAttribs& targetAttrib);
57
58
59 void updateEdge(GuiGraph::Edge edge);
60
61 void removeEdge(GuiGraph::Edge& edge);
62
63 void clearEdges();
64
65
66 QList<QTableWidgetItem*> selectedEdgeItems();
67
68
69 signals:
70
71 void edgeRemovalRequested(QList<QTableWidgetItem*> edgeItems);
72
73
74 public slots:
75
76 void makeContextMenu(QPoint pos);
77
78
79 public:
82 };
83
84} // namespace armarx::navigation::qt_plugins::location_graph_editor
void edgeRemovalRequested(QList< QTableWidgetItem * > edgeItems)