diff --git a/src/shared/Modules/CompactCommandPad/CommandSelector.cpp b/src/shared/Modules/CompactCommandPad/CommandSelector.cpp index 24497f54ce7717ee724948c67d748ac13a866861..ec153cbfb6aef8ec75aabd4ee4782d16f42a2edf 100644 --- a/src/shared/Modules/CompactCommandPad/CommandSelector.cpp +++ b/src/shared/Modules/CompactCommandPad/CommandSelector.cpp @@ -22,16 +22,13 @@ #include <QDebug> -CommandSelector::CommandSelector(Module* parent) : QDialog(), parent(parent) +CommandSelector::CommandSelector(std::shared_ptr<Module> parent) + : QDialog(), parent(std::move(parent)) { setupUi(); } -CommandSelector::~CommandSelector() -{ - for (auto key : formElements.keys()) - delete formElements[key]; -} +CommandSelector::~CommandSelector() {} XmlObject CommandSelector::toXmlObject(XmlObject& obj) { @@ -91,41 +88,41 @@ bool CommandSelector::getSelection(QString& label, Message& message, void CommandSelector::setupUi() { - outerLayout = new QVBoxLayout; + outerLayout = std::make_unique<QVBoxLayout>(); outerLayout->setSizeConstraint(QLayout::SetFixedSize); - lineEdit = new QLineEdit; + lineEdit = std::make_unique<QLineEdit>(); lineEdit->setPlaceholderText("Write the button label"); - outerLayout->addWidget(lineEdit); + outerLayout->addWidget(lineEdit.get()); - continuosCheck = new QCheckBox; + continuosCheck = std::make_unique<QCheckBox>(); continuosCheck->setText("Continuos Send"); - outerLayout->addWidget(continuosCheck); + outerLayout->addWidget(continuosCheck.get()); QObject::connect( - continuosCheck, &QCheckBox::stateChanged, + continuosCheck.get(), &QCheckBox::stateChanged, [this]() { continuosTimeoutEdit->setHidden(!continuosCheck->isChecked()); }); - continuosTimeoutEdit = new QLineEdit(); + continuosTimeoutEdit = std::make_unique<QLineEdit>(); continuosTimeoutEdit->setPlaceholderText("Choose resend timeout in ms"); continuosTimeoutEdit->setHidden(true); - outerLayout->addWidget(continuosTimeoutEdit); + outerLayout->addWidget(continuosTimeoutEdit.get()); - messagesListComboBox = new QComboBox; + messagesListComboBox = std::make_unique<QComboBox>(); messagesListComboBox->setSizePolicy( QSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed)); messagesListComboBox->addItems(MessagesList::messagesList); - outerLayout->addWidget(messagesListComboBox); + outerLayout->addWidget(messagesListComboBox.get()); - formGridLayout = new QGridLayout; - outerLayout->addLayout(formGridLayout); + formGridLayout = std::make_unique<QGridLayout>(); + outerLayout->addLayout(formGridLayout.get()); outerLayout->addStretch(); - sendButton = new QPushButton("Select"); - outerLayout->addWidget(sendButton); + sendButton = std::make_unique<QPushButton>("Select"); + outerLayout->addWidget(sendButton.get()); - setLayout(outerLayout); + setLayout(outerLayout.get()); MessagesList::fillMessagesMap(formElements); @@ -133,19 +130,19 @@ void CommandSelector::setupUi() currentMessage = "PING_TC"; messagesListComboBox->setCurrentText(currentMessage); - connect(messagesListComboBox, &QComboBox::currentTextChanged, this, + connect(messagesListComboBox.get(), &QComboBox::currentTextChanged, this, [=](QString key) { if (formElements.contains(key)) { formElements[currentMessage]->removeFromGridLayout( - formGridLayout); - formElements[key]->applyToGridLayout(formGridLayout); + formGridLayout.get()); + formElements[key]->applyToGridLayout(formGridLayout.get()); currentMessage = key; } }); - connect(sendButton, &QPushButton::clicked, + connect(sendButton.get(), &QPushButton::clicked, [=]() { if (continuosCheck->isChecked()) diff --git a/src/shared/Modules/CompactCommandPad/CommandSelector.h b/src/shared/Modules/CompactCommandPad/CommandSelector.h index e15477adac652db3cba13565a9b4b260cfe245c2..b21ba186779b54fbb18e5a260a40aae215be5496 100644 --- a/src/shared/Modules/CompactCommandPad/CommandSelector.h +++ b/src/shared/Modules/CompactCommandPad/CommandSelector.h @@ -37,7 +37,7 @@ class CommandSelector : public QDialog Q_OBJECT public: - explicit CommandSelector(Module* parent); + explicit CommandSelector(std::shared_ptr<Module> parent); ~CommandSelector(); XmlObject toXmlObject(XmlObject& obj); @@ -50,17 +50,17 @@ private: void setupUi(); QString currentMessage; - QVBoxLayout* outerLayout; - QLineEdit *lineEdit, *continuosTimeoutEdit; - QComboBox* messagesListComboBox; - QMap<QString, MessageFormElement*> formElements; - QGridLayout* formGridLayout; - QPushButton* sendButton; - QCheckBox* continuosCheck; + std::unique_ptr<QVBoxLayout> outerLayout; + std::unique_ptr<QLineEdit> lineEdit, continuosTimeoutEdit; + std::unique_ptr<QComboBox> messagesListComboBox; + QMap<QString, std::unique_ptr<MessageFormElement>> formElements; + std::unique_ptr<QGridLayout> formGridLayout; + std::unique_ptr<QPushButton> sendButton; + std::unique_ptr<QCheckBox> continuosCheck; bool selected = false; QString selectedLabel; Message selectedMessage; - Module* parent; + std::shared_ptr<Module> parent; };