Using JsonParser to generate JSON document to pass in the addItems signal & using roles instead of their names (compiler will complain if a role is not existent anymore).

This commit is contained in:
2025-12-31 10:47:28 +01:00
parent 12e5596b34
commit bcba8f8452
2 changed files with 10 additions and 17 deletions

View File

@ -6,8 +6,8 @@
#include <QLabel> #include <QLabel>
#include <QLineEdit> #include <QLineEdit>
#include <QSpinBox> #include <QSpinBox>
#include "formats/jsonparser.h"
#include <model/tablemodel.h> #include "model/metadata.h"
NewItemDialog::NewItemDialog(QWidget* parent) NewItemDialog::NewItemDialog(QWidget* parent)
: AbstractDialog(parent) {} : AbstractDialog(parent) {}
@ -62,18 +62,15 @@ void NewItemDialog::createContent() {
} }
void NewItemDialog::accept() { void NewItemDialog::accept() {
QJsonObject itemObject; QHash<int, QVariant> itemValues;
itemObject.insert("Name", m_nameEdit->text()); itemValues.insert(NameRole, m_nameEdit->text());
itemObject.insert("Description", m_descriptionEdit->text()); itemValues.insert(DescriptionRole, m_descriptionEdit->text());
itemObject.insert("Info", m_infoEdit->text()); itemValues.insert(InfoRole, m_infoEdit->text());
itemObject.insert("Amount", m_amountBox->value()); itemValues.insert(AmountRole, m_amountBox->value());
itemObject.insert("Factor", m_factorBox->value()); itemValues.insert(FactorRole, m_factorBox->value());
QJsonDocument jsonDoc; const QByteArray jsonDoc = JsonParser::itemValuesListToJson({itemValues}, ITEM_KEY_STRING);
QJsonArray itemArray; emit addItems(jsonDoc);
itemArray.append(itemObject);
jsonDoc.setArray(itemArray);
emit addItems(jsonDoc.toJson(QJsonDocument::Compact));
// resetContent(); // resetContent();
AbstractDialog::accept(); AbstractDialog::accept();

View File

@ -329,10 +329,6 @@ void MainWindow::createUndoActions() {
// connect(m_showUndoViewAction, &QAction::toggled, this, &MainWindow::onShowUndoViewToggled); // connect(m_showUndoViewAction, &QAction::toggled, this, &MainWindow::onShowUndoViewToggled);
connect(m_showModelUndoViewAct.get(), &QAction::triggered, this, connect(m_showModelUndoViewAct.get(), &QAction::triggered, this,
&MainWindow::onShowUndoViewToggled); &MainWindow::onShowUndoViewToggled);
// TODO ? add a keyboard short cut?
// m_showUndoViewAction->setShortcuts(QKeySequence::Copy);
ui->menu_View->addAction(m_showModelUndoViewAct.get()); ui->menu_View->addAction(m_showModelUndoViewAct.get());
} }