From 5a173de1e022b0cbd9f348b33eb26201fbeaef09 Mon Sep 17 00:00:00 2001
From: Riccardo Musso <riccardo.musso@skywarder.eu>
Date: Thu, 21 Jul 2022 11:35:14 +0200
Subject: [PATCH] CommandPad now saves selected message type on the xml
 configuration

---
 Modules/CommandPad/commandpad.cpp | 12 +++++++++---
 Modules/CommandPad/commandpad.h   |  2 ++
 2 files changed, 11 insertions(+), 3 deletions(-)

diff --git a/Modules/CommandPad/commandpad.cpp b/Modules/CommandPad/commandpad.cpp
index 5b7fadd1..9e1402ae 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 a179cfc0..44bb73ef 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
-- 
GitLab