Galaxis Codebase  1.0.0
Team Galaxis software stack for the Carolo Cup 2023 - ROS2 based software
addnodedlg.cpp
Go to the documentation of this file.
1 #include "addnodedlg.h"
2 #include "ui_addnodedlg.h"
3 #include <QMessageBox>
4 
5 AddNodeDlg::AddNodeDlg(QWidget *parent) :
6  QDialog(parent),
7  ui(new Ui::AddNodeDlg)
8 {
9  ui->setupUi(this);
10  connect(ui->buttonBox, SIGNAL(accepted()), this, SLOT(okButton()));
11  connect(ui->nodeType, SIGNAL(currentIndexChanged(QString)), this, SLOT(onCurrentIndexChanged(QString)));
12 
13  QStringList typeItems;
14  typeItems.append(QString(tr("array")));
15  typeItems.append(QString(tr("object")));
16  typeItems.append(QString(tr("boolean")));
17  typeItems.append(QString(tr("null")));
18  typeItems.append(QString(tr("int")));
19  typeItems.append(QString(tr("double")));
20  typeItems.append(QString(tr("string")));
21  ui->nodeType->addItems(typeItems);
22 }
23 
25 {
26  delete ui;
27 }
28 
29 void AddNodeDlg::changeEvent(QEvent *e)
30 {
31  QDialog::changeEvent(e);
32  switch (e->type()) {
33  case QEvent::LanguageChange:
34  ui->retranslateUi(this);
35  break;
36  default:
37  break;
38  }
39 }
40 
42 {
43  return m_value;
44 }
45 
47 {
48  return m_name;
49 }
50 
52 {
53  return m_type;
54 }
55 
57 {
58  m_type = ui->nodeType->currentText();
59  m_value = ui->nodeType->isEnabled() == true ? ui->nodeValue->text() : QString("");
60  m_name = ui->nodeTitle->text();
61 }
62 
63 void AddNodeDlg::onCurrentIndexChanged(QString currentText)
64 {
65  if (currentText == tr("array")
66  || currentText == tr("object")
67  || currentText == tr("null"))
68  {
69  ui->nodeValue->setEnabled(false);
70  }
71  else
72  {
73  ui->nodeValue->setEnabled(true);
74  }
75 }
76 
77 void AddNodeDlg::hideEvent(QHideEvent *e)
78 {
79  if (ui->nodeTitle->text().length() == 0)
80  {
81  QMessageBox::information(this, tr("Tip"), tr("Node name must be filled"));
82  return;
83  }
84 
85  if (ui->nodeType->currentText() == tr("boolean"))
86  if (ui->nodeValue->text().toLower().compare(tr("true")) != 0
87  && ui->nodeValue->text().toLower().compare(tr("false")) != 0)
88  {
89  QMessageBox::information(this, tr("Tip"), tr("Boolean values must be true or false"));
90  return;
91  }
92 
93  QDialog::hideEvent(e);
94 }
AddNodeDlg::getType
QString getType()
Definition: addnodedlg.cpp:51
AddNodeDlg::getName
QString getName()
Definition: addnodedlg.cpp:46
AddNodeDlg::AddNodeDlg
AddNodeDlg(QWidget *parent=0)
Definition: addnodedlg.cpp:5
AddNodeDlg::getValue
QString getValue()
Definition: addnodedlg.cpp:41
AddNodeDlg::m_value
QString m_value
Definition: addnodedlg.h:25
AddNodeDlg::m_name
QString m_name
Definition: addnodedlg.h:25
Ui
Definition: addnodedlg.h:6
AddNodeDlg::~AddNodeDlg
~AddNodeDlg()
Definition: addnodedlg.cpp:24
AddNodeDlg::onCurrentIndexChanged
void onCurrentIndexChanged(QString currentText)
Definition: addnodedlg.cpp:63
AddNodeDlg::changeEvent
void changeEvent(QEvent *e)
Definition: addnodedlg.cpp:29
AddNodeDlg
Definition: addnodedlg.h:10
AddNodeDlg::ui
Ui::AddNodeDlg * ui
Definition: addnodedlg.h:24
addnodedlg.h
AddNodeDlg::m_type
QString m_type
Definition: addnodedlg.h:25
AddNodeDlg::okButton
void okButton()
Definition: addnodedlg.cpp:56
AddNodeDlg::hideEvent
void hideEvent(QHideEvent *e)
Definition: addnodedlg.cpp:77