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
armarx::navigation::qt_plugins::location_graph_editor::EdgeTableWidget::addEdge
QTableWidgetItem * addEdge(const EdgeT &edge)
Definition: EdgeTableWidget.h:50
armarx::navigation::qt_plugins::location_graph_editor::EdgeTableWidget::removeEdge
void removeEdge(GuiGraph::Edge &edge)
Definition: EdgeTableWidget.cpp:115
armarx::navigation::qt_plugins::location_graph_editor::default_colors::tableBackgroundSelected
const QColor tableBackgroundSelected
Definition: default_colors.cpp:30
armarx::navigation::qt_plugins::location_graph_editor::EdgeTableWidget::updateEdge
void updateEdge(GuiGraph::Edge edge)
Definition: EdgeTableWidget.cpp:93
armarx::navigation::qt_plugins::location_graph_editor::default_colors::tableBackgroundDefault
const QColor tableBackgroundDefault
Definition: default_colors.cpp:29
armarx::navigation::qt_plugins::location_graph_editor::EdgeTableWidget::makeContextMenu
void makeContextMenu(QPoint pos)
Definition: EdgeTableWidget.cpp:133
armarx::navigation::qt_plugins::location_graph_editor::EdgeTableWidget::EdgeTableWidget
EdgeTableWidget()
Definition: EdgeTableWidget.cpp:49
armarx::navigation::qt_plugins::location_graph_editor::EdgeTableWidget::edgeRemovalRequested
void edgeRemovalRequested(QList< QTableWidgetItem * > edgeItems)
armarx::navigation::qt_plugins::location_graph_editor::EdgeTableWidget::bgColorDefault
QColor bgColorDefault
Definition: EdgeTableWidget.h:80
armarx::navigation::qt_plugins::location_graph_editor::EdgeTableWidget::clearEdges
void clearEdges()
armarx::navigation::qt_plugins::location_graph_editor::EdgeTableWidget::bgColorSelected
QColor bgColorSelected
Definition: EdgeTableWidget.h:81
armarx::navigation::qt_plugins::location_graph_editor
Definition: GuiGraph.cpp:34
default_colors.h
Graph.h
armarx::navigation::core::VertexAttribs
Definition: Graph.h:44
GuiGraph.h
armarx::navigation::qt_plugins::location_graph_editor::EdgeTableWidget
Definition: EdgeTableWidget.h:39
armarx::navigation::qt_plugins::location_graph_editor::EdgeTableWidget::selectedEdgeItems
QList< QTableWidgetItem * > selectedEdgeItems()
Definition: EdgeTableWidget.cpp:127