mirror of
https://github.com/moveit/moveit_task_constructor.git
synced 2025-11-04 14:49:57 +08:00
save panel settings
This commit is contained in:
parent
3d07e34522
commit
2451d0c4d5
@ -146,6 +146,16 @@ void TaskDisplay::reset()
|
|||||||
trajectory_visual_->reset();
|
trajectory_visual_->reset();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void TaskDisplay::save(rviz::Config config) const
|
||||||
|
{
|
||||||
|
Display::save(config);
|
||||||
|
}
|
||||||
|
|
||||||
|
void TaskDisplay::load(const rviz::Config &config)
|
||||||
|
{
|
||||||
|
Display::load(config);
|
||||||
|
}
|
||||||
|
|
||||||
void TaskDisplay::onEnable()
|
void TaskDisplay::onEnable()
|
||||||
{
|
{
|
||||||
Display::onEnable();
|
Display::onEnable();
|
||||||
|
|||||||
@ -77,8 +77,10 @@ public:
|
|||||||
|
|
||||||
void loadRobotModel();
|
void loadRobotModel();
|
||||||
|
|
||||||
virtual void update(float wall_dt, float ros_dt);
|
void update(float wall_dt, float ros_dt) override;
|
||||||
virtual void reset();
|
void reset() override;
|
||||||
|
void save(rviz::Config config) const;
|
||||||
|
void load(const rviz::Config &config);
|
||||||
|
|
||||||
// overrides from Display
|
// overrides from Display
|
||||||
virtual void onInitialize();
|
virtual void onInitialize();
|
||||||
|
|||||||
@ -142,11 +142,13 @@ void TaskPanel::onInitialize()
|
|||||||
void TaskPanel::save(rviz::Config config) const
|
void TaskPanel::save(rviz::Config config) const
|
||||||
{
|
{
|
||||||
rviz::Panel::save(config);
|
rviz::Panel::save(config);
|
||||||
|
d_ptr->tasks_widget->save(config.mapMakeChild("tasks_view"));
|
||||||
}
|
}
|
||||||
|
|
||||||
void TaskPanel::load(const rviz::Config& config)
|
void TaskPanel::load(const rviz::Config& config)
|
||||||
{
|
{
|
||||||
rviz::Panel::load(config);
|
rviz::Panel::load(config);
|
||||||
|
d_ptr->tasks_widget->load(config.mapGetChild("tasks_view"));
|
||||||
}
|
}
|
||||||
|
|
||||||
void TaskPanel::showStageDockWidget()
|
void TaskPanel::showStageDockWidget()
|
||||||
@ -247,6 +249,57 @@ TaskView::TaskView(QWidget *parent)
|
|||||||
onCurrentStageChanged(d->tasks_view->currentIndex(), QModelIndex());
|
onCurrentStageChanged(d->tasks_view->currentIndex(), QModelIndex());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void TaskView::save(rviz::Config config)
|
||||||
|
{
|
||||||
|
auto writeSplitterSizes = [&config](QSplitter* splitter, const QString& key) {
|
||||||
|
rviz::Config group = config.mapMakeChild(key);
|
||||||
|
for (int s : splitter->sizes()) {
|
||||||
|
rviz::Config item = group.listAppendNew();
|
||||||
|
item.setValue(s);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
writeSplitterSizes(d_ptr->tasks_property_splitter, "property_splitter");
|
||||||
|
writeSplitterSizes(d_ptr->tasks_solutions_splitter, "solutions_splitter");
|
||||||
|
|
||||||
|
auto writeColumnSizes = [&config](QTreeView* view, const QString& key) {
|
||||||
|
rviz::Config group = config.mapMakeChild(key);
|
||||||
|
for (int c = 0, end = view->header()->count(); c != end; ++c) {
|
||||||
|
rviz::Config item = group.listAppendNew();
|
||||||
|
item.setValue(view->columnWidth(c));
|
||||||
|
}
|
||||||
|
};
|
||||||
|
writeColumnSizes(d_ptr->tasks_view, "tasks_view_columns");
|
||||||
|
writeColumnSizes(d_ptr->solutions_view, "solutions_view_columns");
|
||||||
|
}
|
||||||
|
|
||||||
|
void TaskView::load(const rviz::Config &config)
|
||||||
|
{
|
||||||
|
if (!config.isValid()) return;
|
||||||
|
|
||||||
|
auto readSizes = [&config](const QString& key) {
|
||||||
|
rviz::Config group = config.mapGetChild(key);
|
||||||
|
QList<int> sizes, empty;
|
||||||
|
for (int i = 0; i < group.listLength(); ++i) {
|
||||||
|
rviz::Config item = group.listChildAt(i);
|
||||||
|
if (item.getType() != rviz::Config::Value) return empty;
|
||||||
|
QVariant value = item.getValue();
|
||||||
|
bool ok = false;
|
||||||
|
int int_value = value.toInt(&ok);
|
||||||
|
if (!ok) return empty;
|
||||||
|
sizes << int_value;
|
||||||
|
}
|
||||||
|
return sizes;
|
||||||
|
};
|
||||||
|
d_ptr->tasks_property_splitter->setSizes(readSizes("property_splitter"));
|
||||||
|
d_ptr->tasks_solutions_splitter->setSizes(readSizes("solutions_splitter"));
|
||||||
|
|
||||||
|
int column = 0;
|
||||||
|
for (int w : readSizes("tasks_view_columns"))
|
||||||
|
d_ptr->tasks_view->setColumnWidth(++column, w);
|
||||||
|
for (int w : readSizes("solutions_view_columns"))
|
||||||
|
d_ptr->tasks_view->setColumnWidth(++column, w);
|
||||||
|
}
|
||||||
|
|
||||||
void TaskView::addTask()
|
void TaskView::addTask()
|
||||||
{
|
{
|
||||||
QModelIndex current = d_ptr->tasks_view->currentIndex();
|
QModelIndex current = d_ptr->tasks_view->currentIndex();
|
||||||
|
|||||||
@ -97,6 +97,9 @@ class TaskView : public QWidget {
|
|||||||
public:
|
public:
|
||||||
TaskView(QWidget* parent = 0);
|
TaskView(QWidget* parent = 0);
|
||||||
|
|
||||||
|
void save(rviz::Config config);
|
||||||
|
void load(const rviz::Config& config);
|
||||||
|
|
||||||
public Q_SLOTS:
|
public Q_SLOTS:
|
||||||
void addTask();
|
void addTask();
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user