diff --git a/visualization/motion_planning_tasks/task_list_model.cpp b/visualization/motion_planning_tasks/task_list_model.cpp index c4c22617..9c602546 100644 --- a/visualization/motion_planning_tasks/task_list_model.cpp +++ b/visualization/motion_planning_tasks/task_list_model.cpp @@ -41,6 +41,7 @@ #include #include +#include namespace moveit_rviz_plugin { @@ -524,6 +525,21 @@ void TaskListModelPrivate::_q_sourceDataChanged(const QModelIndex &topLeft, cons q_ptr->dataChanged(mapFromSource(topLeft), mapFromSource(bottomRight), roles); } + +TaskListView::TaskListView(QWidget *parent) + : QTreeView(parent) +{ +} + +// dropping onto an item, should expand this item +void TaskListView::dropEvent(QDropEvent *event) +{ + QModelIndex index = indexAt(event->pos()); + QTreeView::dropEvent(event); + if (event->isAccepted()) + expand(index); +} + } #include "moc_task_list_model.cpp" diff --git a/visualization/motion_planning_tasks/task_list_model.h b/visualization/motion_planning_tasks/task_list_model.h index 08dda639..3b266245 100644 --- a/visualization/motion_planning_tasks/task_list_model.h +++ b/visualization/motion_planning_tasks/task_list_model.h @@ -44,12 +44,14 @@ #include #include +#include #include namespace moveit_rviz_plugin { /** Base class to represent a single local or remote Task as a Qt model. */ class BaseTaskModel : public QAbstractItemModel { + Q_OBJECT protected: unsigned int flags_ = 0; @@ -140,4 +142,13 @@ private: MOVEIT_CLASS_FORWARD(TaskListModel) typedef std::weak_ptr TaskListModelWeakPtr; + +class TaskListView : public QTreeView { + Q_OBJECT +public: + TaskListView(QWidget *parent = nullptr); + + void dropEvent(QDropEvent *event) override; +}; + } diff --git a/visualization/motion_planning_tasks/task_panel.ui b/visualization/motion_planning_tasks/task_panel.ui index d1b79bad..0032a9e4 100644 --- a/visualization/motion_planning_tasks/task_panel.ui +++ b/visualization/motion_planning_tasks/task_panel.ui @@ -49,7 +49,7 @@ - + Qt::ActionsContextMenu @@ -92,6 +92,11 @@ QTreeView
rviz/properties/property_tree_widget.h
+ + moveit_rviz_plugin::TaskListView + QTreeView +
task_list_model.h
+