-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathparamdialog.cpp
More file actions
73 lines (61 loc) · 1.74 KB
/
paramdialog.cpp
File metadata and controls
73 lines (61 loc) · 1.74 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
#include "paramdialog.h"
#include "ui_paramdialog.h"
ParamDialog::ParamDialog(QWidget *parent) :
QDialog(parent),
ui(new Ui::ParamDialog)
{
ui->setupUi(this);
this->setWindowTitle(tr("Add/modify laboratory parameter"));
}
ParamDialog::~ParamDialog()
{
delete ui;
}
ParamDialogResult ParamDialog::getResult()
{
return result;
}
void ParamDialog::setData(QString name, QStringList codes)
{
ui->paramNameEdit->setText(name);
ui->codesListWidget->addItems(codes);
}
void ParamDialog::on_codeEdit_returnPressed()
{
}
void ParamDialog::on_okButton_clicked()
{
qDebug() << "ParamDialog: paramname is " << ui->paramNameEdit->text()
<< " codes list length is " << ui->codesListWidget->count();
QStringList codesList;
for(int i = 0; i < ui->codesListWidget->count(); i++) {
QListWidgetItem* item = ui->codesListWidget->item(i);
codesList.append(item->text());
}
result.name = ui->paramNameEdit->text();
result.codes = codesList;
accept();
}
void ParamDialog::on_cancelButton_clicked()
{
reject();
}
void ParamDialog::on_addCodeButton_clicked()
{
if(ui->codeEdit->text().isEmpty())
return;
ui->codesListWidget->addItem(ui->codeEdit->text());
ui->codeEdit->clear();
}
void ParamDialog::on_codesListWidget_customContextMenuRequested(const QPoint &pos)
{
QListWidgetItem* item = ui->codesListWidget->itemAt(pos);
QMenu *menu = new QMenu(this);
QAction *removeItem = new QAction(tr("Delete laboratory code"),this);
removeItem->setStatusTip(tr("Deletes the entry"));
connect(removeItem, &QAction::triggered, this, [=]() {
delete item;
});
menu->addAction(removeItem);
menu->popup(ui->codesListWidget->viewport()->mapToGlobal(pos));
}