fixed some evidence-related crashes
This commit is contained in:
parent
3070db4aef
commit
fa95600f2d
33
evidence.cpp
33
evidence.cpp
@ -84,7 +84,7 @@ void Courtroom::set_evidence_page()
|
|||||||
|
|
||||||
QString evi_string = char_list.at(m_cid).evidence_string;
|
QString evi_string = char_list.at(m_cid).evidence_string;
|
||||||
|
|
||||||
QStringList evi_numbers = evi_string.split(",");
|
QStringList evi_numbers = evi_string.split(",", QString::SkipEmptyParts);
|
||||||
|
|
||||||
for (QString i_evi : evi_numbers)
|
for (QString i_evi : evi_numbers)
|
||||||
{
|
{
|
||||||
@ -109,17 +109,17 @@ void Courtroom::set_evidence_page()
|
|||||||
if (total_evidence == 0)
|
if (total_evidence == 0)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
int total_pages = evidence_list.size() / max_evidence_on_page;
|
int total_pages = total_evidence / max_evidence_on_page;
|
||||||
int evidence_on_page = 0;
|
int evidence_on_page = 0;
|
||||||
|
|
||||||
if ((evidence_list.size() % max_evidence_on_page) != 0)
|
if ((total_evidence % max_evidence_on_page) != 0)
|
||||||
{
|
{
|
||||||
++total_pages;
|
++total_pages;
|
||||||
//i. e. not on the last page
|
//i. e. not on the last page
|
||||||
if (total_pages > current_evidence_page + 1)
|
if (total_pages > current_evidence_page + 1)
|
||||||
evidence_on_page = max_evidence_on_page;
|
evidence_on_page = max_evidence_on_page;
|
||||||
else
|
else
|
||||||
evidence_on_page = evidence_list.size() % max_evidence_on_page;
|
evidence_on_page = total_evidence % max_evidence_on_page;
|
||||||
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -131,14 +131,21 @@ void Courtroom::set_evidence_page()
|
|||||||
if (current_evidence_page > 0)
|
if (current_evidence_page > 0)
|
||||||
ui_evidence_left->show();
|
ui_evidence_left->show();
|
||||||
|
|
||||||
for (int n_evidence = 0 ; n_evidence < evidence_on_page ; ++n_evidence)
|
qDebug() << "evidence_on_page: " << evidence_on_page;
|
||||||
|
|
||||||
|
for (int n_evidence_button = 0 ; n_evidence_button < evidence_on_page ; ++n_evidence_button)
|
||||||
{
|
{
|
||||||
int n_real_evidence = n_evidence + current_evidence_page * max_evidence_on_page;
|
qDebug() << "n_evidence_button " << n_evidence_button;
|
||||||
AOEvidenceButton *f_evidence = ui_evidence_list.at(n_evidence);
|
|
||||||
|
|
||||||
f_evidence->set_image(evidence_list.at(n_real_evidence).image);
|
int n_real_evidence = n_evidence_button + current_evidence_page * max_evidence_on_page;
|
||||||
|
AOEvidenceButton *f_evidence_button = ui_evidence_list.at(n_evidence_button);
|
||||||
|
|
||||||
f_evidence->show();
|
if (n_real_evidence < total_evidence)
|
||||||
|
f_evidence_button->set_image(local_evidence_list.at(n_real_evidence).image);
|
||||||
|
else
|
||||||
|
f_evidence_button->set_image("");
|
||||||
|
|
||||||
|
f_evidence_button->show();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -165,8 +172,12 @@ void Courtroom::on_evidence_clicked(int p_id)
|
|||||||
|
|
||||||
void Courtroom::on_evidence_hover(int p_id, bool p_state)
|
void Courtroom::on_evidence_hover(int p_id, bool p_state)
|
||||||
{
|
{
|
||||||
if (p_state)
|
int final_id = p_id + max_evidence_on_page * current_evidence_page;
|
||||||
ui_evidence_name->setText(local_evidence_list.at(p_id + max_evidence_on_page * current_evidence_page).name);
|
|
||||||
|
if (p_state && final_id < local_evidence_list.size())
|
||||||
|
{
|
||||||
|
ui_evidence_name->setText(local_evidence_list.at(final_id).name);
|
||||||
|
}
|
||||||
else
|
else
|
||||||
ui_evidence_name->setText("");
|
ui_evidence_name->setText("");
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user