27 #include "../../../common/Translator.h"
28 #include "../Exception.h"
31 #include "ui_ParameterDialogForm.h"
32 #include "ui_ParameterTableWidgetForm.h"
39 m_ui(new
Ui::ParameterTableWidgetForm)
43 m_ui->m_addItemToolButton->setIcon(QIcon::fromTheme(
"list-add"));
44 m_ui->m_removeItemToolButton->setIcon(QIcon::fromTheme(
"list-remove"));
45 m_ui->m_editItemToolButton->setIcon(QIcon::fromTheme(
"preferences-system"));
63 int newrow = m_ui->m_paramTableWidget->rowCount();
66 for(
int i = 0; i < newrow; ++i)
68 QTableWidgetItem* itemName = m_ui->m_paramTableWidget->item(i, 0);
70 if(itemName->text().toStdString() == name)
72 QTableWidgetItem* itemValue =
new QTableWidgetItem(QString::fromStdString(value));
73 m_ui->m_paramTableWidget->setItem(i, 1, itemValue);
80 m_ui->m_paramTableWidget->insertRow(newrow);
82 QTableWidgetItem* itemName =
new QTableWidgetItem(QString::fromStdString(name));
83 m_ui->m_paramTableWidget->setItem(newrow, 0, itemName);
85 QTableWidgetItem* itemValue =
new QTableWidgetItem(QString::fromStdString(value));
86 m_ui->m_paramTableWidget->setItem(newrow, 1, itemValue);
88 m_ui->m_paramTableWidget->resizeRowsToContents();
89 m_ui->m_paramTableWidget->resizeColumnToContents(0);
94 std::map<std::string, std::string> kvpairs;
96 if(m_ui->m_paramTableWidget->columnCount() < 2)
97 throw Exception(
TE_TR(
"Can not get key-value pairs from a table with less than 2 columns!"));
99 int nrows = m_ui->m_paramTableWidget->rowCount();
101 for(
int i = 0; i < nrows; ++i)
103 QTableWidgetItem* itemName = m_ui->m_paramTableWidget->item(i, 0);
105 QTableWidgetItem* itemValue = m_ui->m_paramTableWidget->item(i, 1);
107 kvpairs[itemName->text().toStdString()] = itemValue->text().toStdString();
117 pdialog->setWindowTitle(tr(
"Add new parameter"));
119 int retval = pdialog->exec();
121 if(retval == QDialog::Rejected)
124 int newrow = m_ui->m_paramTableWidget->rowCount();
126 m_ui->m_paramTableWidget->insertRow(newrow);
128 QTableWidgetItem* itemName =
new QTableWidgetItem(pdialog->getName());
129 m_ui->m_paramTableWidget->setItem(newrow, 0, itemName);
131 QTableWidgetItem* itemValue =
new QTableWidgetItem(pdialog->getValue());
132 m_ui->m_paramTableWidget->setItem(newrow, 1, itemValue);
134 m_ui->m_paramTableWidget->resizeRowsToContents();
135 m_ui->m_paramTableWidget->resizeColumnToContents(0);
140 int row = m_ui->m_paramTableWidget->currentRow();
143 m_ui->m_paramTableWidget->removeRow(row);
145 m_ui->m_paramTableWidget->resizeRowsToContents();
146 m_ui->m_paramTableWidget->resizeColumnToContents(0);
151 int row = m_ui->m_paramTableWidget->currentRow();
158 pdialog->setWindowTitle(tr(
"Edit parameter"));
160 QTableWidgetItem* itemName = m_ui->m_paramTableWidget->item(row, 0);
163 pdialog->setName(itemName->text());
165 QTableWidgetItem* itemValue = m_ui->m_paramTableWidget->item(row, 1);
168 pdialog->setValue(itemValue->text());
170 int retval = pdialog->exec();
172 if(retval == QDialog::Rejected)
175 itemName->setText(pdialog->getName());
176 itemValue->setText(pdialog->getValue());
178 m_ui->m_paramTableWidget->update();
180 m_ui->m_paramTableWidget->resizeRowsToContents();
181 m_ui->m_paramTableWidget->resizeColumnToContents(0);
#define TE_TR(message)
It marks a string in order to get translated.
A dialog to be used as input of key/value pairs.