Skip to content

Commit fa95600

Browse files
committed
fixed some evidence-related crashes
1 parent 3070db4 commit fa95600

1 file changed

Lines changed: 22 additions & 11 deletions

File tree

evidence.cpp

Lines changed: 22 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ void Courtroom::set_evidence_page()
8484

8585
QString evi_string = char_list.at(m_cid).evidence_string;
8686

87-
QStringList evi_numbers = evi_string.split(",");
87+
QStringList evi_numbers = evi_string.split(",", QString::SkipEmptyParts);
8888

8989
for (QString i_evi : evi_numbers)
9090
{
@@ -109,17 +109,17 @@ void Courtroom::set_evidence_page()
109109
if (total_evidence == 0)
110110
return;
111111

112-
int total_pages = evidence_list.size() / max_evidence_on_page;
112+
int total_pages = total_evidence / max_evidence_on_page;
113113
int evidence_on_page = 0;
114114

115-
if ((evidence_list.size() % max_evidence_on_page) != 0)
115+
if ((total_evidence % max_evidence_on_page) != 0)
116116
{
117117
++total_pages;
118118
//i. e. not on the last page
119119
if (total_pages > current_evidence_page + 1)
120120
evidence_on_page = max_evidence_on_page;
121121
else
122-
evidence_on_page = evidence_list.size() % max_evidence_on_page;
122+
evidence_on_page = total_evidence % max_evidence_on_page;
123123

124124
}
125125
else
@@ -131,14 +131,21 @@ void Courtroom::set_evidence_page()
131131
if (current_evidence_page > 0)
132132
ui_evidence_left->show();
133133

134-
for (int n_evidence = 0 ; n_evidence < evidence_on_page ; ++n_evidence)
134+
qDebug() << "evidence_on_page: " << evidence_on_page;
135+
136+
for (int n_evidence_button = 0 ; n_evidence_button < evidence_on_page ; ++n_evidence_button)
135137
{
136-
int n_real_evidence = n_evidence + current_evidence_page * max_evidence_on_page;
137-
AOEvidenceButton *f_evidence = ui_evidence_list.at(n_evidence);
138+
qDebug() << "n_evidence_button " << n_evidence_button;
139+
140+
int n_real_evidence = n_evidence_button + current_evidence_page * max_evidence_on_page;
141+
AOEvidenceButton *f_evidence_button = ui_evidence_list.at(n_evidence_button);
138142

139-
f_evidence->set_image(evidence_list.at(n_real_evidence).image);
143+
if (n_real_evidence < total_evidence)
144+
f_evidence_button->set_image(local_evidence_list.at(n_real_evidence).image);
145+
else
146+
f_evidence_button->set_image("");
140147

141-
f_evidence->show();
148+
f_evidence_button->show();
142149
}
143150

144151

@@ -165,8 +172,12 @@ void Courtroom::on_evidence_clicked(int p_id)
165172

166173
void Courtroom::on_evidence_hover(int p_id, bool p_state)
167174
{
168-
if (p_state)
169-
ui_evidence_name->setText(local_evidence_list.at(p_id + max_evidence_on_page * current_evidence_page).name);
175+
int final_id = p_id + max_evidence_on_page * current_evidence_page;
176+
177+
if (p_state && final_id < local_evidence_list.size())
178+
{
179+
ui_evidence_name->setText(local_evidence_list.at(final_id).name);
180+
}
170181
else
171182
ui_evidence_name->setText("");
172183
}

0 commit comments

Comments
 (0)