20
20
#include < QtWidgets>
21
21
22
22
LiftTable::LiftTable ()
23
- : TableList()
23
+ : TableList(3 )
24
24
{
25
- const QStringList labels = { " Name" , " " };
25
+ const QStringList labels = { " Name" , " " , " " };
26
26
setHorizontalHeaderLabels (labels);
27
27
}
28
28
@@ -45,6 +45,9 @@ void LiftTable::update(Building& building)
45
45
QPushButton* edit_button = new QPushButton (" Edit..." , this );
46
46
setCellWidget (i, 1 , edit_button);
47
47
48
+ QPushButton* delete_button = new QPushButton (" Delete" , this );
49
+ setCellWidget (i, 2 , delete_button);
50
+
48
51
connect (
49
52
edit_button,
50
53
&QAbstractButton::clicked,
@@ -65,18 +68,41 @@ void LiftTable::update(Building& building)
65
68
&LiftDialog::redraw,
66
69
[this ]() { emit redraw (); });
67
70
});
71
+
72
+ connect (
73
+ delete_button,
74
+ &QAbstractButton::clicked,
75
+ [this , &building, i]()
76
+ {
77
+ for (size_t j = 0 ; j < building.lifts .size (); j++)
78
+ {
79
+ if (j == i)
80
+ {
81
+ auto lift_name = building.lifts [j].name ;
82
+ for (auto & level : building.levels )
83
+ {
84
+ level.delete_lift_vertex (lift_name);
85
+ }
86
+ building.lifts .erase (building.lifts .begin () + i);
87
+ break ;
88
+ }
89
+ }
90
+ update (building);
91
+ emit redraw ();
92
+ });
68
93
}
69
94
70
95
// we'll use the last row for the "Add" button
71
96
const int last_row_idx = static_cast <int >(building.lifts .size ());
72
97
setCellWidget (last_row_idx, 0 , nullptr );
98
+ setCellWidget (last_row_idx, 1 , nullptr );
73
99
setItem (
74
100
last_row_idx,
75
101
0 ,
76
102
new QTableWidgetItem (
77
103
QString::fromStdString (" " )));
78
104
QPushButton* add_button = new QPushButton (" Add..." , this );
79
- setCellWidget (last_row_idx, 1 , add_button);
105
+ setCellWidget (last_row_idx, 2 , add_button);
80
106
connect (
81
107
add_button, &QAbstractButton::clicked,
82
108
[this , &building]()
0 commit comments