GCC Code Coverage Report
Directory: ./ Exec Total Coverage
File: include/gepetto/gui/bodytreewidget.hh Lines: 0 4 0.0 %
Date: 2023-03-14 11:04:37 Branches: 0 2 0.0 %

Line Branch Exec Source
1
// Copyright (c) 2015-2018, LAAS-CNRS
2
// Authors: Joseph Mirabel (joseph.mirabel@laas.fr)
3
//
4
// This file is part of gepetto-viewer.
5
// gepetto-viewer is free software: you can redistribute it
6
// and/or modify it under the terms of the GNU Lesser General Public
7
// License as published by the Free Software Foundation, either version
8
// 3 of the License, or (at your option) any later version.
9
//
10
// gepetto-viewer is distributed in the hope that it will be
11
// useful, but WITHOUT ANY WARRANTY; without even the implied warranty
12
// of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13
// General Lesser Public License for more details. You should have
14
// received a copy of the GNU Lesser General Public License along with
15
// gepetto-viewer. If not, see <http://www.gnu.org/licenses/>.
16
17
#ifndef GEPETTO_GUI_BODYTREEWIDGET_HH
18
#define GEPETTO_GUI_BODYTREEWIDGET_HH
19
20
#include <gepetto/gui/fwd.hh>
21
// This include must be include before any other Qt include for GLDEBUGPROC
22
#include <QStandardItemModel>
23
#include <QToolBox>
24
#include <QTreeView>
25
#include <QVector3D>
26
#include <QWidget>
27
28
namespace gepetto {
29
namespace gui {
30
/// Contains the list of all the bodies in the scene.
31
class BodyTreeWidget : public QWidget {
32
  Q_OBJECT
33
34
 public:
35
  explicit BodyTreeWidget(QWidget* parent = NULL) : QWidget(parent) {}
36
37
  /// Init the widget.
38
  /// \param view tree view to display.
39
  /// \param propertyArea menu in the window
40
  void init(QTreeView* view, QWidget* propertyArea);
41
42
  virtual ~BodyTreeWidget() {}
43
44
  /// Get the body tree view.
45
  QTreeView* view();
46
47
  QStandardItemModel* model() { return model_; }
48
49
  void emitBodySelected(SelectionEvent* event);
50
51
 signals:
52
  void bodySelected(SelectionEvent* event);
53
54
 public slots:
55
  /// \ingroup plugin_python
56
  /// \{
57
58
  /// Triggered when an item is selected in the body tree view.
59
  /// \param bodyName name of the body
60
  void selectBodyByName(const QString bodyName);
61
62
  /// Triggered when an item is selected in the body tree view.
63
  /// \param bodyName name of the body
64
  void selectBodyByName(const std::string& bodyName);
65
66
  /// Get selected bodies
67
  QList<BodyTreeItem*> selectedBodies() const;
68
69
  /// \}
70
71
 protected slots:
72
  /// Display the context menu for one item.
73
  /// \param pos position of the item
74
  void customContextMenu(const QPoint& pos);
75
76
  void currentChanged(const QModelIndex& current, const QModelIndex& previous);
77
78
 private:
79
  /// Handle a selection event
80
  ///
81
  /// Does not re-emit a selection event when the body tree selection
82
  /// is updated.
83
  void handleSelectionEvent(const SelectionEvent* event);
84
85
  void updatePropertyArea(BodyTreeItem* item);
86
87
  QTreeView* view_;
88
  QStandardItemModel* model_;
89
  WindowsManagerPtr_t osg_;
90
  QWidget* propertyArea_;
91
};
92
}  // namespace gui
93
}  // namespace gepetto
94
95
#endif  // GEPETTO_GUI_BODYTREEWIDGET_HH