-
Notifications
You must be signed in to change notification settings - Fork 0
/
enginemanager.cpp
93 lines (84 loc) · 2.78 KB
/
enginemanager.cpp
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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
#include "enginemanager.h"
#include "ui_enginemanager.h"
EngineManager::EngineManager(QWidget *parent) : QDialog(parent), ui(new Ui::EngineManager)
{
ui->setupUi(this);
ComboBoxItemDelegate* cbid = new ComboBoxItemDelegate(ui->engineTable);
ui->engineTable->setItemDelegate(cbid);
ui->engineTable->horizontalHeader()->setSectionResizeMode(QHeaderView::ResizeToContents);
}
EngineManager::~EngineManager()
{
delete ui;
}
QTableWidget * EngineManager::GetEngineTable()
{
return ui->engineTable;
}
void EngineManager::on_toolButton_clicked()
{
AddEngineDialog *addEngineDialog = new AddEngineDialog(this);
addEngineDialog->exec();
if (addEngineDialog->result() == QDialog::Accepted)
{
QString engineName = addEngineDialog->GetEngineName()->text();
QString engineProtocol = addEngineDialog->GetEngineProtocol()->currentText();
QString enginePath = addEngineDialog->GetEnginePath()->text();
if (engineName != "" && enginePath != "")
{
ui->engineTable->insertRow(ui->engineTable->rowCount());
int currentRow = ui->engineTable->rowCount() - 1;
ui->engineTable->setItem(currentRow, 0, new QTableWidgetItem(engineName));
ui->engineTable->setItem(currentRow, 1, new QTableWidgetItem(engineProtocol));
ui->engineTable->setItem(currentRow, 2, new QTableWidgetItem(enginePath));
}
}
}
void EngineManager::on_toolButton_2_clicked()
{
int currentRow = ui->engineTable->currentRow();
if (currentRow == -1) return;
AddEngineDialog *addEngineDialog = new AddEngineDialog(this);
addEngineDialog->exec();
if (addEngineDialog->result() == QDialog::Accepted)
{
QString engineName = addEngineDialog->GetEngineName()->text();
QString engineProtocol = addEngineDialog->GetEngineProtocol()->currentText();
QString enginePath = addEngineDialog->GetEnginePath()->text();
if (engineName != "" && enginePath != "")
{
ui->engineTable->setItem(currentRow, 0, new QTableWidgetItem(engineName));
ui->engineTable->setItem(currentRow, 1, new QTableWidgetItem(engineProtocol));
ui->engineTable->setItem(currentRow, 2, new QTableWidgetItem(enginePath));
}
}
}
void EngineManager::on_toolButton_3_clicked()
{
QItemSelectionModel *select = ui->engineTable->selectionModel();
if (select->hasSelection())
{
QModelIndexList selectedRows = select->selectedRows();
QMessageBox mb("Remove warning", "Do you want to remove this entry?",
QMessageBox::Question,
QMessageBox::Ok | QMessageBox::Default,
QMessageBox::Cancel | QMessageBox::Escape,
QMessageBox::NoButton, this);
int response = mb.exec();
if (response == QMessageBox::Ok)
{
for (int index = 0; index < selectedRows.size(); index++)
{
ui->engineTable->removeRow(selectedRows[index].row());
}
}
}
}
void EngineManager::on_buttonBox_accepted()
{
accept();
}
void EngineManager::on_buttonBox_rejected()
{
reject();
}