Skip to content
Snippets Groups Projects
Verified Commit 340a11ce authored by Peter Albrecht's avatar Peter Albrecht :monkey:
Browse files

change: new button to reload lost params

parent f2ce4e1b
No related branches found
No related tags found
1 merge request!512Skill-Gui Stability and QOL
Pipeline #22585 failed
......@@ -245,24 +245,24 @@ namespace armarx::skills::gui
std::vector<Parameters> SkillManagerWrapper::getParameterHistoryForSkill(const skills::SkillID& sid)
{
if (not this->skillParameterHistory.contains(sid))
if (not this->skillParameterExecutionHistory.contains(sid))
{
return {};
}
return this->skillParameterHistory[sid];
return this->skillParameterExecutionHistory[sid];
}
void SkillManagerWrapper::addParametersToHistory(const skills::SkillID& sid, const Parameters& params)
{
if (not this->skillParameterHistory.contains(sid))
if (not this->skillParameterExecutionHistory.contains(sid))
{
// no history exists for this skill. Assign new
this->skillParameterHistory.insert({sid, {params}});
this->skillParameterExecutionHistory.insert({sid, {params}});
}
else
{
// history already exists. Append to list
this->skillParameterHistory[sid].emplace_back(params);
this->skillParameterExecutionHistory[sid].emplace_back(params);
}
}
......@@ -426,9 +426,6 @@ namespace armarx::skills::gui
ARMARX_CHECK(skillId.isFullySpecified()); // sanity check
this->addParametersToHistory(skillId, params);
ARMARX_INFO << "Saved skill parameters to history...";
ARMARX_IMPORTANT << "Executing skill from GUI: " << skillId << ".";
try
......
......@@ -132,7 +132,8 @@ namespace armarx::skills::gui
std::string currentSkillSearch = "";
// Store a list of all execution parameters for each skill
SkillParameterMap skillParameterHistory;
SkillParameterMap skillParameterExecutionHistory;
SkillParameterMap lostParameterHistory;
Snapshot snapshot;
......
......@@ -3,6 +3,7 @@
#include <QHBoxLayout>
#include <QLabel>
#include <QVBoxLayout>
#include <qboxlayout.h>
namespace armarx::skills::gui
{
......@@ -24,14 +25,19 @@ namespace armarx::skills::gui
resetArgsToProfile = new QPushButton();
//profileSelector = new QComboBox();
historySelector = new QPushButton();
changesSelector = new QPushButton();
// layouting
QVBoxLayout* mainLayout = new QVBoxLayout();
QHBoxLayout* topLayout = new QHBoxLayout();
QHBoxLayout* bottomLayout = new QHBoxLayout();
mainLayout->addLayout(topLayout);
//mainLayout->addWidget(profileSelector);
mainLayout->addWidget(historySelector);
mainLayout->addLayout(bottomLayout);
bottomLayout->addWidget(historySelector);
bottomLayout->addWidget(changesSelector);
topLayout->addWidget(setArgsFromClipboard);
topLayout->addWidget(copyArgsToClipboard);
......@@ -52,13 +58,13 @@ namespace armarx::skills::gui
//profileSelector->setDisabled(true);
//profileSelector->setToolTip(QString::fromStdString(PROFILE_NOT_IMPLEMENTED));
historySelector->setText(QString::fromStdString(HIST_BUTTON_TEXT));
historySelector->setDisabled(true);
changesSelector->setText(QString::fromStdString(CNGS_BUTTON_TEXT));
}
void ProfileMenuWidget::updateHistorySelector(skills::SkillID shownSkill)
void ProfileMenuWidget::updateChangesSelector(skills::SkillID shownSkill)
{
auto params = memory->getLatestParametersForSkill(shownSkill);
historySelector->setDisabled(not params.has_value());
changesSelector->setDisabled(not params.has_value());
}
......
......@@ -22,6 +22,7 @@ namespace armarx::skills::gui
static const constexpr char* PROFILE_NOT_IMPLEMENTED =
"Profiles other than the root profile are currently not supported.";
static const constexpr char* HIST_BUTTON_TEXT = "Load Parameters from Last Execution";
static const constexpr char* CNGS_BUTTON_TEXT = "Reload lost Parameters";
// contents are public, as this class is just a convenience wrapper
QPushButton* setArgsFromClipboard = nullptr;
......@@ -30,6 +31,7 @@ namespace armarx::skills::gui
QPushButton* resetArgsToProfile = nullptr;
QComboBox* profileSelector = nullptr;
QPushButton* historySelector = nullptr;
QPushButton* changesSelector = nullptr;
ProfileMenuWidget(std::shared_ptr<SkillManagerWrapper> _memory, QWidget* parent = nullptr) :
QWidget(parent), MemoryCommunicatorBase(_memory)
......@@ -39,7 +41,7 @@ namespace armarx::skills::gui
public slots:
void updateHistorySelector(const skills::SkillID shownSkill);
void updateChangesSelector(const skills::SkillID shownSkill);
private:
void setupUi();
......
......@@ -81,9 +81,6 @@ namespace armarx::skills::gui
if (skillId.has_value())
{
memory->startExecutionWithParams(skillId.value(), data);
// update the history selector, since it definitely has an entry now.
emit executed(skillId.value());
}
}
......@@ -165,18 +162,14 @@ namespace armarx::skills::gui
&QPushButton::clicked,
skillDetailsTreeWidget,
&SkillDetailsTreeWidget::resetCurrentConfig);
connect(profileMenuWidget->historySelector,
connect(profileMenuWidget->changesSelector,
&QPushButton::pressed,
skillDetailsTreeWidget,
&SkillDetailsTreeWidget::reloadLastParameters);
connect(skillDetailsTreeWidget,
&SkillDetailsTreeWidget::updated,
profileMenuWidget,
&ProfileMenuWidget::updateHistorySelector);
connect(this,
&SkillDetailGroupBox::executed,
profileMenuWidget,
&ProfileMenuWidget::updateHistorySelector);
&ProfileMenuWidget::updateChangesSelector);
}
......
......@@ -187,7 +187,7 @@ namespace armarx::skills::gui
bool modified = *defaults.get() != *params.get();
if (modified)
{
ARMARX_INFO << "The parameters have been modified. Asking the user to save.";
ARMARX_DEBUG << "The parameters have been modified.";
}
return modified;
}
......@@ -311,11 +311,13 @@ namespace armarx::skills::gui
void
SkillDetailsTreeWidget::resetWidget()
{
if (askUserToSaveParameters && checkIfParametersAreModified())
if (checkIfParametersAreModified())
{
if (showWidgetResetConfirmation_ && not askUserToConfirmWidgetReset())
if (shownSkill.has_value())
{
return;
ARMARX_IMPORTANT << "A skill parametrization has been lost in the GUI. It can now be reloaded.";
memory->addParametersToHistory(shownSkill->skillId, aronTreeWidgetController->convertToAron());
emit updated(shownSkill->skillId);
}
}
this->clear();
......
......@@ -52,7 +52,6 @@ namespace armarx::skills::gui
// The size, which we assume the last column to be.
// If the last column has too little space, increase this value.
const int typeWidth = 200;
const bool askUserToSaveParameters = false;
AronTreeWidgetControllerPtr aronTreeWidgetController = nullptr;
void setupUi();
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment