diff --git a/Modules/CommandPad/commandpad.cpp b/Modules/CommandPad/commandpad.cpp index 5b7fadd13b64522528524928f4f2ed3cce17567b..9e1402ae0ab05ec61b968f3939298c95d18a71c8 100644 --- a/Modules/CommandPad/commandpad.cpp +++ b/Modules/CommandPad/commandpad.cpp @@ -72,11 +72,17 @@ QWidget* CommandPad::toWidget() { } XmlObject CommandPad::toXmlObject() { - return XmlObject(getName(ModuleId::COMMANDPAD)); + XmlObject obj(getName(ModuleId::COMMANDPAD)); + obj.addAttribute("selected", commandComboBox->currentText()); + return obj; } void CommandPad::fromXmlObject(const XmlObject& xmlObject) { - Q_UNUSED(xmlObject); + QString curr = xmlObject.getAttribute("selected"); + int idx = commandComboBox->findText(curr); + if(idx != -1) { + commandComboBox->setCurrentIndex(idx); + } } #define _CMD(id, strName) \ @@ -128,7 +134,7 @@ void CommandPad::fromXmlObject(const XmlObject& xmlObject) { void CommandPad::setupUi() { QStackedWidget* stacked = new QStackedWidget; - QComboBox* commandComboBox = new QComboBox; + commandComboBox = new QComboBox; commandComboBox->setSizePolicy(QSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed)); connect(commandComboBox, QOverload<int>::of(&QComboBox::currentIndexChanged), this, [ = ](int idx) { diff --git a/Modules/CommandPad/commandpad.h b/Modules/CommandPad/commandpad.h index a179cfc0a59de74bd74cf7fe0e55e8f4d0f20353..44bb73ef8f88130789c817bd18bca72e7a1ade4c 100644 --- a/Modules/CommandPad/commandpad.h +++ b/Modules/CommandPad/commandpad.h @@ -22,6 +22,8 @@ class CommandPad : public DefaultModule { private: void setupUi(); + + QComboBox* commandComboBox; }; #endif // COMMANDPAD_H