aboutsummaryrefslogtreecommitdiff
path: root/src/evidence.cpp
diff options
context:
space:
mode:
authorTrickyLeifa <date.epoch@gmail.com>2024-05-15 00:00:17 +0200
committerTrickyLeifa <date.epoch@gmail.com>2024-05-15 00:04:16 +0200
commitc9f52b7223685d2e7fca925594171f94dd8c6e3b (patch)
tree740bb32a40da98a4d52836432f59a16b31333900 /src/evidence.cpp
parent951766666621fa77e257e6b5616fe4ab1eb2a52f (diff)
Ported to CMake, ...
* Ported the project to CMake * Android and Mac support dropped for the time being. * Tests, BASS and Discord-RPC are now options * Restructured and reformated the project. * Merged `include` and `src` * Renamed `resource` to `data` * Renamed various files * External libraries headers are no longer included in `src` * Replaced header guards with #pragma once * Multiple refactors (keywords, headers) * Added Qt6 compatibility * Removed various unused functions and headers * Reworked AOPacket * When content is passed to AOPacket, it should be ensured that the content is already decoded. * Encoding/decoding are now static methods. * Fixed various memory leaks * Removed animation code for AOImage * AOImage is always using static images * Simplified ChatLogPiece
Diffstat (limited to 'src/evidence.cpp')
-rw-r--r--src/evidence.cpp403
1 files changed, 233 insertions, 170 deletions
diff --git a/src/evidence.cpp b/src/evidence.cpp
index 752ca47d..4377b257 100644
--- a/src/evidence.cpp
+++ b/src/evidence.cpp
@@ -3,7 +3,7 @@
void Courtroom::initialize_evidence()
{
- ui_evidence = new AOImage(this, ao_app);
+ ui_evidence = new AOImage(ao_app, this);
ui_evidence->setObjectName("ui_evidence");
// ui_evidence_name = new QLabel(ui_evidence);
@@ -18,90 +18,72 @@ void Courtroom::initialize_evidence()
ui_evidence_buttons = new QWidget(ui_evidence);
ui_evidence_buttons->setObjectName("ui_evidence_buttons");
- ui_evidence_left = new AOButton(ui_evidence, ao_app);
+ ui_evidence_left = new AOButton(ao_app, ui_evidence);
ui_evidence_left->setObjectName("ui_evidence_left");
- ui_evidence_right = new AOButton(ui_evidence, ao_app);
+ ui_evidence_right = new AOButton(ao_app, ui_evidence);
ui_evidence_right->setObjectName("ui_evidence_right");
- ui_evidence_present = new AOButton(ui_evidence, ao_app);
+ ui_evidence_present = new AOButton(ao_app, ui_evidence);
ui_evidence_present->setToolTip(tr("Present this piece of evidence to "
"everyone on your next spoken message"));
ui_evidence_present->setObjectName("ui_evidence_present");
- ui_evidence_switch = new AOButton(ui_evidence, ao_app);
+ ui_evidence_switch = new AOButton(ao_app, ui_evidence);
ui_evidence_switch->setObjectName("ui_evidence_switch");
- ui_evidence_transfer = new AOButton(ui_evidence, ao_app);
+ ui_evidence_transfer = new AOButton(ao_app, ui_evidence);
ui_evidence_transfer->setObjectName("ui_evidence_transfer");
- ui_evidence_save = new AOButton(ui_evidence, ao_app);
+ ui_evidence_save = new AOButton(ao_app, ui_evidence);
ui_evidence_save->setToolTip(tr("Save evidence to an .ini file."));
ui_evidence_save->setObjectName("ui_evidence_save");
- ui_evidence_load = new AOButton(ui_evidence, ao_app);
+ ui_evidence_load = new AOButton(ao_app, ui_evidence);
ui_evidence_load->setToolTip(tr("Load evidence from an .ini file."));
ui_evidence_load->setObjectName("ui_evidence_load");
- ui_evidence_overlay = new AOImage(ui_evidence, ao_app);
+ ui_evidence_overlay = new AOImage(ao_app, ui_evidence);
ui_evidence_overlay->setObjectName("ui_evidence_overlay");
- ui_evidence_delete = new AOButton(ui_evidence_overlay, ao_app);
+ ui_evidence_delete = new AOButton(ao_app, ui_evidence_overlay);
ui_evidence_delete->setToolTip(tr("Destroy this piece of evidence"));
ui_evidence_delete->setObjectName("ui_evidence_delete");
ui_evidence_image_name = new QLineEdit(ui_evidence_overlay);
ui_evidence_image_name_filter = new AOLineEditFilter();
ui_evidence_image_name->installEventFilter(ui_evidence_image_name_filter);
ui_evidence_image_name->setObjectName("ui_evidence_image_name");
- ui_evidence_image_button = new AOButton(ui_evidence_overlay, ao_app);
+ ui_evidence_image_button = new AOButton(ao_app, ui_evidence_overlay);
ui_evidence_image_button->setText(tr("Choose.."));
ui_evidence_image_button->setObjectName("ui_evidence_image_button");
- ui_evidence_x = new AOButton(ui_evidence_overlay, ao_app);
- ui_evidence_x->setToolTip(
- tr("Close the evidence display/editing overlay.\n"
- "You will be prompted if there's any unsaved changes."));
+ ui_evidence_x = new AOButton(ao_app, ui_evidence_overlay);
+ ui_evidence_x->setToolTip(tr("Close the evidence display/editing overlay.\n"
+ "You will be prompted if there's any unsaved changes."));
ui_evidence_x->setObjectName("ui_evidence_x");
- ui_evidence_ok = new AOButton(ui_evidence_overlay, ao_app);
+ ui_evidence_ok = new AOButton(ao_app, ui_evidence_overlay);
ui_evidence_ok->setToolTip(tr("Save any changes made to this piece of "
"evidence and send them to server."));
ui_evidence_ok->setObjectName("ui_evidence_ok");
ui_evidence_description = new QPlainTextEdit(ui_evidence_overlay);
ui_evidence_description->setFrameStyle(QFrame::NoFrame);
- ui_evidence_description->setToolTip(
- tr("Click to edit. Press [X] to update your changes."));
+ ui_evidence_description->setToolTip(tr("Click to edit. Press [X] to update your changes."));
ui_evidence_description->setObjectName("ui_evidence_description");
- connect(ui_evidence_name, &QLineEdit::returnPressed, this,
- &Courtroom::on_evidence_name_edited);
- connect(ui_evidence_left, &AOButton::clicked, this,
- &Courtroom::on_evidence_left_clicked);
- connect(ui_evidence_right, &AOButton::clicked, this,
- &Courtroom::on_evidence_right_clicked);
- connect(ui_evidence_present, &AOButton::clicked, this,
- &Courtroom::on_evidence_present_clicked);
- connect(ui_evidence_switch, &AOButton::clicked, this,
- &Courtroom::on_evidence_switch_clicked);
- connect(ui_evidence_transfer, &AOButton::clicked, this,
- &Courtroom::on_evidence_transfer_clicked);
- connect(ui_evidence_save, &AOButton::clicked, this,
- &Courtroom::on_evidence_save_clicked);
- connect(ui_evidence_load, &AOButton::clicked, this,
- &Courtroom::on_evidence_load_clicked);
-
- connect(ui_evidence_delete, &AOButton::clicked, this,
- &Courtroom::on_evidence_delete_clicked);
- connect(ui_evidence_image_name, &QLineEdit::returnPressed, this,
- &Courtroom::on_evidence_image_name_edited);
- connect(ui_evidence_image_button, &AOButton::clicked, this,
- &Courtroom::on_evidence_image_button_clicked);
- connect(ui_evidence_x, &AOButton::clicked, this,
- &Courtroom::on_evidence_x_clicked);
- connect(ui_evidence_ok, &AOButton::clicked, this,
- &Courtroom::on_evidence_ok_clicked);
-
- connect(ui_evidence_name, &QLineEdit::textChanged, this,
- &Courtroom::on_evidence_edited);
- connect(ui_evidence_image_name, &QLineEdit::textChanged, this,
- &Courtroom::on_evidence_edited);
- connect(ui_evidence_description, &QPlainTextEdit::textChanged, this,
- &Courtroom::on_evidence_edited);
+ connect(ui_evidence_name, &QLineEdit::returnPressed, this, &Courtroom::on_evidence_name_edited);
+ connect(ui_evidence_left, &AOButton::clicked, this, &Courtroom::on_evidence_left_clicked);
+ connect(ui_evidence_right, &AOButton::clicked, this, &Courtroom::on_evidence_right_clicked);
+ connect(ui_evidence_present, &AOButton::clicked, this, &Courtroom::on_evidence_present_clicked);
+ connect(ui_evidence_switch, &AOButton::clicked, this, &Courtroom::on_evidence_switch_clicked);
+ connect(ui_evidence_transfer, &AOButton::clicked, this, &Courtroom::on_evidence_transfer_clicked);
+ connect(ui_evidence_save, &AOButton::clicked, this, &Courtroom::on_evidence_save_clicked);
+ connect(ui_evidence_load, &AOButton::clicked, this, &Courtroom::on_evidence_load_clicked);
+
+ connect(ui_evidence_delete, &AOButton::clicked, this, &Courtroom::on_evidence_delete_clicked);
+ connect(ui_evidence_image_name, &QLineEdit::returnPressed, this, &Courtroom::on_evidence_image_name_edited);
+ connect(ui_evidence_image_button, &AOButton::clicked, this, &Courtroom::on_evidence_image_button_clicked);
+ connect(ui_evidence_x, &AOButton::clicked, this, &Courtroom::on_evidence_x_clicked);
+ connect(ui_evidence_ok, &AOButton::clicked, this, &Courtroom::on_evidence_ok_clicked);
+
+ connect(ui_evidence_name, &QLineEdit::textChanged, this, &Courtroom::on_evidence_edited);
+ connect(ui_evidence_image_name, &QLineEdit::textChanged, this, &Courtroom::on_evidence_edited);
+ connect(ui_evidence_description, &QPlainTextEdit::textChanged, this, &Courtroom::on_evidence_edited);
ui_evidence->hide();
evidence_load("inventories/autosave.ini");
@@ -123,9 +105,13 @@ void Courtroom::refresh_evidence()
set_size_and_pos(ui_evidence, "evidence_background");
if (current_evidence_global)
+ {
ui_evidence->set_image("evidence_background");
+ }
else
+ {
ui_evidence->set_image("evidence_background_private");
+ }
set_size_and_pos(ui_evidence_name, "evidence_name");
@@ -142,9 +128,13 @@ void Courtroom::refresh_evidence()
set_size_and_pos(ui_evidence_overlay, "evidence_overlay");
if (current_evidence_global)
+ {
ui_evidence_overlay->set_image("evidence_overlay");
+ }
else
+ {
ui_evidence_overlay->set_image("evidence_overlay_private");
+ }
set_size_and_pos(ui_evidence_delete, "evidence_delete");
ui_evidence_delete->set_image("evidence_delete");
@@ -160,47 +150,55 @@ void Courtroom::refresh_evidence()
ui_evidence_ok->set_image("evidence_ok");
set_size_and_pos(ui_evidence_switch, "evidence_switch");
- if (current_evidence_global) {
+ if (current_evidence_global)
+ {
ui_evidence_switch->set_image("evidence_global");
ui_evidence_switch->setToolTip(tr("Switch evidence to private inventory."));
}
- else {
+ else
+ {
ui_evidence_switch->set_image("evidence_private");
ui_evidence_switch->setToolTip(tr("Switch evidence to global inventory."));
}
set_size_and_pos(ui_evidence_transfer, "evidence_transfer");
- if (current_evidence_global) {
+ if (current_evidence_global)
+ {
ui_evidence_transfer->set_image("evidence_transfer");
- ui_evidence_transfer->setToolTip(
- tr("Transfer evidence to private inventory."));
+ ui_evidence_transfer->setToolTip(tr("Transfer evidence to private inventory."));
}
- else {
+ else
+ {
ui_evidence_transfer->set_image("evidence_transfer_private");
- ui_evidence_transfer->setToolTip(
- tr("Transfer evidence to global inventory."));
+ ui_evidence_transfer->setToolTip(tr("Transfer evidence to global inventory."));
}
set_size_and_pos(ui_evidence_save, "evidence_save");
ui_evidence_save->set_image("evidence_save");
if (current_evidence_global)
+ {
ui_evidence_save->hide();
+ }
else
+ {
ui_evidence_save->show();
+ }
set_size_and_pos(ui_evidence_load, "evidence_load");
ui_evidence_load->set_image("evidence_load");
if (current_evidence_global)
+ {
ui_evidence_load->hide();
+ }
else
+ {
ui_evidence_load->show();
+ }
set_size_and_pos(ui_evidence_description, "evidence_description");
- QPoint f_spacing = ao_app->get_button_spacing("evidence_button_spacing",
- "courtroom_design.ini");
- QPoint p_point = ao_app->get_button_spacing("evidence_button_size",
- "courtroom_design.ini");
+ QPoint f_spacing = ao_app->get_button_spacing("evidence_button_spacing", "courtroom_design.ini");
+ QPoint p_point = ao_app->get_button_spacing("evidence_button_size", "courtroom_design.ini");
const int button_width = p_point.x();
int x_spacing = f_spacing.x();
@@ -210,36 +208,30 @@ void Courtroom::refresh_evidence()
int y_spacing = f_spacing.y();
int y_mod_count = 0;
- evidence_columns = ((ui_evidence_buttons->width() - button_width) /
- (x_spacing + button_width)) +
- 1;
- evidence_rows = ((ui_evidence_buttons->height() - button_height) /
- (y_spacing + button_height)) +
- 1;
+ evidence_columns = ((ui_evidence_buttons->width() - button_width) / qMax(1, x_spacing + button_width)) + 1;
+ evidence_rows = ((ui_evidence_buttons->height() - button_height) / qMax(1, y_spacing + button_height)) + 1;
max_evidence_on_page = evidence_columns * evidence_rows;
- for (int n = 0; n < max_evidence_on_page; ++n) {
+ for (int n = 0; n < max_evidence_on_page; ++n)
+ {
int x_pos = (button_width + x_spacing) * x_mod_count;
int y_pos = (button_height + y_spacing) * y_mod_count;
- AOEvidenceButton *f_evidence = new AOEvidenceButton(
- ui_evidence_buttons, ao_app, x_pos, y_pos, button_width, button_height);
+ AOEvidenceButton *f_evidence = new AOEvidenceButton(ao_app, x_pos, y_pos, button_width, button_height, ui_evidence_buttons);
ui_evidence_list.append(f_evidence);
f_evidence->set_id(n);
- connect(f_evidence, &AOEvidenceButton::evidence_clicked, this,
- &Courtroom::on_evidence_clicked);
- connect(f_evidence, &AOEvidenceButton::evidence_double_clicked, this,
- &Courtroom::on_evidence_double_clicked);
- connect(f_evidence, &AOEvidenceButton::on_hover, this,
- &Courtroom::on_evidence_hover);
+ connect(f_evidence, &AOEvidenceButton::evidence_clicked, this, &Courtroom::on_evidence_clicked);
+ connect(f_evidence, &AOEvidenceButton::evidence_double_clicked, this, &Courtroom::on_evidence_double_clicked);
+ connect(f_evidence, &AOEvidenceButton::on_hover, this, &Courtroom::on_evidence_hover);
++x_mod_count;
- if (x_mod_count == evidence_columns) {
+ if (x_mod_count == evidence_columns)
+ {
++y_mod_count;
x_mod_count = 0;
}
@@ -250,8 +242,10 @@ void Courtroom::set_evidence_list(QVector<evi_type> &p_evi_list)
{
global_evidence_list = p_evi_list;
if (!current_evidence_global)
+ {
return; // We're on private evidence editing, wait for user to do their
// thing
+ }
QVector<evi_type> old_list = local_evidence_list;
local_evidence_list.clear();
@@ -259,11 +253,11 @@ void Courtroom::set_evidence_list(QVector<evi_type> &p_evi_list)
set_evidence_page();
- if (ui_evidence_overlay
- ->isVisible()) // Update the currently edited evidence for this user
+ if (ui_evidence_overlay->isVisible()) // Update the currently edited evidence for this user
{
int p_id = current_evidence - (max_evidence_on_page * current_evidence_page);
- if (current_evidence >= local_evidence_list.size()) {
+ if (current_evidence >= local_evidence_list.size())
+ {
evidence_close();
ui_evidence_name->setText("");
}
@@ -273,27 +267,23 @@ void Courtroom::set_evidence_list(QVector<evi_type> &p_evi_list)
}
// Todo: make a function that compares two pieces of evidence for any
// differences
- else if (compare_evidence_changed(
- old_list.at(current_evidence),
- local_evidence_list.at(current_evidence))) {
+ else if (compare_evidence_changed(old_list.at(current_evidence), local_evidence_list.at(current_evidence)))
+ {
QMessageBox *msgBox = new QMessageBox;
msgBox->setAttribute(Qt::WA_DeleteOnClose);
msgBox->setText(tr("The piece of evidence you've been editing has changed."));
msgBox->setInformativeText(tr("Do you wish to keep your changes?"));
- msgBox->setDetailedText(tr(
- "Name: %1\n"
- "Image: %2\n"
- "Description:\n%3").arg(
- local_evidence_list.at(current_evidence).name,
- local_evidence_list.at(current_evidence).image,
- local_evidence_list.at(current_evidence).description)
- );
+ msgBox->setDetailedText(tr("Name: %1\n"
+ "Image: %2\n"
+ "Description:\n%3")
+ .arg(local_evidence_list.at(current_evidence).name, local_evidence_list.at(current_evidence).image, local_evidence_list.at(current_evidence).description));
msgBox->setStandardButtons(QMessageBox::Yes | QMessageBox::No);
msgBox->setDefaultButton(QMessageBox::LastButton);
// msgBox->setWindowModality(Qt::NonModal);
int ret = msgBox->exec();
- switch (ret) {
+ switch (ret)
+ {
case QMessageBox::Yes:
// "Keep changes"
ui_evidence_ok->hide();
@@ -317,7 +307,8 @@ void Courtroom::set_evidence_page()
ui_evidence_left->hide();
ui_evidence_right->hide();
- for (AOEvidenceButton *i_button : qAsConst(ui_evidence_list)) {
+ for (AOEvidenceButton *i_button : qAsConst(ui_evidence_list))
+ {
i_button->hide();
}
@@ -327,48 +318,60 @@ void Courtroom::set_evidence_page()
int total_pages = total_evidence / max_evidence_on_page;
int evidence_on_page = 0;
- if ((total_evidence % max_evidence_on_page) != 0) {
+ if ((total_evidence % max_evidence_on_page) != 0)
+ {
++total_pages;
// i. e. not on the last page
if (total_pages > current_evidence_page + 1)
+ {
evidence_on_page = max_evidence_on_page;
+ }
else
+ {
evidence_on_page = total_evidence % max_evidence_on_page;
+ }
}
else
+ {
evidence_on_page = max_evidence_on_page;
+ }
if (total_pages > current_evidence_page + 1)
+ {
ui_evidence_right->show();
+ }
if (current_evidence_page > 0)
+ {
ui_evidence_left->show();
+ }
- for (int n_evidence_button = 0; n_evidence_button < evidence_on_page;
- ++n_evidence_button) {
- 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);
+ for (int n_evidence_button = 0; n_evidence_button < evidence_on_page; ++n_evidence_button)
+ {
+ 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_button->set_selected(false);
f_evidence_button->setToolTip("");
- if (n_real_evidence == (total_evidence - 1)) {
+ if (n_real_evidence == (total_evidence - 1))
+ {
f_evidence_button->set_theme_image("addevidence.png");
}
- else if (n_real_evidence < (total_evidence - 1)) {
- f_evidence_button->set_image(
- local_evidence_list.at(n_real_evidence).image);
+ else if (n_real_evidence < (total_evidence - 1))
+ {
+ f_evidence_button->set_image(local_evidence_list.at(n_real_evidence).image);
if (n_real_evidence == current_evidence)
+ {
f_evidence_button->set_selected(true);
+ }
- f_evidence_button->setToolTip(
- QString::number(n_real_evidence + 1) + ": " +
- local_evidence_list.at(n_real_evidence).name);
+ f_evidence_button->setToolTip(QString::number(n_real_evidence + 1) + ": " + local_evidence_list.at(n_real_evidence).name);
}
else
+ {
f_evidence_button->set_image("");
+ }
f_evidence_button->show();
}
@@ -386,17 +389,20 @@ void Courtroom::show_evidence(int f_real_id)
on_evidence_double_clicked(p_id);
}
-
void Courtroom::on_evidence_name_edited()
{
if (current_evidence >= local_evidence_list.size())
+ {
return;
+ }
}
void Courtroom::on_evidence_image_name_edited()
{
if (current_evidence >= local_evidence_list.size())
+ {
return;
+ }
}
void Courtroom::on_evidence_image_button_clicked()
@@ -411,17 +417,23 @@ void Courtroom::on_evidence_image_button_clicked()
QStringList filenames;
if (dialog.exec())
+ {
filenames = dialog.selectedFiles();
+ }
if (filenames.size() != 1)
+ {
return;
+ }
QString filename = filenames.at(0);
QStringList bases = Options::getInstance().mountPaths();
bases.prepend(get_base_path());
- for (const QString &base : bases) {
+ for (const QString &base : bases)
+ {
QDir baseDir(base);
- if (filename.startsWith(baseDir.absolutePath() + "/")) {
+ if (filename.startsWith(baseDir.absolutePath() + "/"))
+ {
dir.setPath(baseDir.absolutePath() + "/evidence");
break;
}
@@ -435,11 +447,14 @@ void Courtroom::on_evidence_clicked(int p_id)
{
int f_real_id = p_id + max_evidence_on_page * current_evidence_page;
- if (f_real_id == local_evidence_list.size()) {
+ if (f_real_id == local_evidence_list.size())
+ {
if (current_evidence_global)
- ao_app->send_server_packet(
- new AOPacket("PE", {"<name>", "<description>", "empty.png"}));
- else {
+ {
+ ao_app->send_server_packet(AOPacket("PE", {"<name>", "<description>", "empty.png"}));
+ }
+ else
+ {
evi_type f_evi;
f_evi.name = "<name>";
f_evi.description = "<description>";
@@ -452,20 +467,26 @@ void Courtroom::on_evidence_clicked(int p_id)
return;
}
else if (f_real_id > local_evidence_list.size())
+ {
return;
-
- if (!Options::getInstance().evidenceDoubleClickEdit()){
+ }
+
+ if (!Options::getInstance().evidenceDoubleClickEdit())
+ {
on_evidence_double_clicked(p_id);
return;
}
- if (ui_evidence_overlay->isVisible()) {
+ if (ui_evidence_overlay->isVisible())
+ {
return;
}
ui_evidence_name->setText(local_evidence_list.at(f_real_id).name);
for (AOEvidenceButton *i_button : qAsConst(ui_evidence_list))
+ {
i_button->set_selected(false);
+ }
ui_evidence_list.at(p_id)->set_selected(true);
current_evidence = f_real_id;
@@ -476,21 +497,28 @@ void Courtroom::on_evidence_double_clicked(int p_id)
int f_real_id = p_id + max_evidence_on_page * current_evidence_page;
if (f_real_id >= local_evidence_list.size())
+ {
return;
+ }
- if (ui_evidence_overlay->isVisible()) {
- if (!on_evidence_x_clicked()) {
+ if (ui_evidence_overlay->isVisible())
+ {
+ if (!on_evidence_x_clicked())
+ {
// We're told not to switch over to the other evidence ("cancel" clicked)
return;
}
}
for (AOEvidenceButton *i_button : qAsConst(ui_evidence_list))
+ {
i_button->set_selected(false);
+ }
// We have to check if the ID is on the currently displayed page.
// This is because SOMEONE allowed the switching of pages while evidence is still being edited.
- if (p_id < ui_evidence_list.count()) {
+ if (p_id < ui_evidence_list.count())
+ {
ui_evidence_list.at(p_id)->set_selected(true);
}
current_evidence = f_real_id;
@@ -518,23 +546,33 @@ void Courtroom::on_evidence_double_clicked(int p_id)
void Courtroom::on_evidence_hover(int p_id, bool p_state)
{
- if (ui_evidence_overlay->isVisible()) {
+ if (ui_evidence_overlay->isVisible())
+ {
// Ignore hovering behavior if we're in the process of viewing a piece of evidence
return;
}
int final_id = p_id + max_evidence_on_page * current_evidence_page;
- if (p_state) {
+ if (p_state)
+ {
if (final_id == local_evidence_list.size())
+ {
ui_evidence_name->setText(tr("Add new evidence..."));
+ }
else if (final_id < local_evidence_list.size())
+ {
ui_evidence_name->setText(local_evidence_list.at(final_id).name);
+ }
}
else if (current_evidence < local_evidence_list.size())
+ {
ui_evidence_name->setText(local_evidence_list.at(current_evidence).name);
+ }
else
+ {
ui_evidence_name->setText("");
+ }
}
void Courtroom::on_evidence_left_clicked()
@@ -553,15 +591,20 @@ void Courtroom::on_evidence_right_clicked()
void Courtroom::on_evidence_present_clicked()
{
- if (!current_evidence_global) {
+ if (!current_evidence_global)
+ {
ui_evidence_present->hide();
is_presenting_evidence = false;
return; // otherwise we get force-disconnected
}
if (is_presenting_evidence)
+ {
ui_evidence_present->set_image("present");
+ }
else
+ {
ui_evidence_present->set_image("present_disabled");
+ }
is_presenting_evidence = !is_presenting_evidence;
@@ -572,9 +615,11 @@ void Courtroom::on_evidence_delete_clicked()
{
evidence_close();
if (current_evidence_global)
- ao_app->send_server_packet(
- new AOPacket("DE", {QString::number(current_evidence)}));
- else {
+ {
+ ao_app->send_server_packet(AOPacket("DE", {QString::number(current_evidence)}));
+ }
+ else
+ {
local_evidence_list.remove(current_evidence);
private_evidence_list = local_evidence_list;
set_evidence_page();
@@ -588,11 +633,13 @@ void Courtroom::on_evidence_delete_clicked()
bool Courtroom::on_evidence_x_clicked()
{
- if (current_evidence >=
- local_evidence_list.size()) // Should never happen but you never know.
+ if (current_evidence >= local_evidence_list.size()) // Should never happen but you never know.
+ {
return true;
+ }
- if (ui_evidence_ok->isHidden()) {
+ if (ui_evidence_ok->isHidden())
+ {
// Nothing was modified
evidence_close();
return true;
@@ -601,11 +648,11 @@ bool Courtroom::on_evidence_x_clicked()
msgBox->setAttribute(Qt::WA_DeleteOnClose);
msgBox->setText(tr("Evidence has been modified."));
msgBox->setInformativeText(tr("Do you want to save your changes?"));
- msgBox->setStandardButtons(QMessageBox::Save | QMessageBox::Discard |
- QMessageBox::Cancel);
+ msgBox->setStandardButtons(QMessageBox::Save | QMessageBox::Discard | QMessageBox::Cancel);
msgBox->setDefaultButton(QMessageBox::Save);
int ret = msgBox->exec();
- switch (ret) {
+ switch (ret)
+ {
case QMessageBox::Save:
evidence_close();
on_evidence_ok_clicked();
@@ -623,18 +670,21 @@ bool Courtroom::on_evidence_x_clicked()
void Courtroom::on_evidence_ok_clicked()
{
ui_evidence_ok->hide();
- if (current_evidence < local_evidence_list.size()) {
+ if (current_evidence < local_evidence_list.size())
+ {
evi_type f_evi = local_evidence_list.at(current_evidence);
- if (current_evidence_global) {
+ if (current_evidence_global)
+ {
QStringList f_contents;
f_contents.append(QString::number(current_evidence));
f_contents.append(ui_evidence_name->text());
f_contents.append(ui_evidence_description->toPlainText());
f_contents.append(ui_evidence_image_name->text());
- ao_app->send_server_packet(new AOPacket("EE", f_contents));
+ ao_app->send_server_packet(AOPacket("EE", f_contents));
}
- else {
+ else
+ {
f_evi.name = ui_evidence_name->text();
f_evi.description = ui_evidence_description->toPlainText();
f_evi.image = ui_evidence_image_name->text();
@@ -646,7 +696,8 @@ void Courtroom::on_evidence_ok_clicked()
}
// Autosave private evidence
- if (!current_evidence_global) {
+ if (!current_evidence_global)
+ {
evidence_save("inventories/autosave.ini");
}
}
@@ -659,7 +710,9 @@ void Courtroom::on_evidence_switch_clicked()
void Courtroom::on_evidence_transfer_clicked()
{
if (current_evidence >= local_evidence_list.size())
+ {
return;
+ }
QString name;
if (!current_evidence_global) // Transfer private evidence to global
@@ -672,7 +725,7 @@ void Courtroom::on_evidence_transfer_clicked()
f_contents.append(f_evi.image);
name = f_evi.name;
- ao_app->send_server_packet(new AOPacket("PE", f_contents));
+ ao_app->send_server_packet(AOPacket("PE", f_contents));
}
else // Transfer global evidence to private
{
@@ -694,18 +747,22 @@ void Courtroom::on_evidence_transfer_clicked()
void Courtroom::on_evidence_edited()
{
- if (current_evidence >=
- local_evidence_list.size()) // Should never happen but you never know.
+ if (current_evidence >= local_evidence_list.size()) // Should never happen but you never know.
+ {
return;
+ }
evi_type fake_evidence;
fake_evidence.name = ui_evidence_name->text();
fake_evidence.description = ui_evidence_description->toPlainText();
fake_evidence.image = ui_evidence_image_name->text();
- if (compare_evidence_changed(fake_evidence,
- local_evidence_list.at(current_evidence)))
+ if (compare_evidence_changed(fake_evidence, local_evidence_list.at(current_evidence)))
+ {
ui_evidence_ok->show();
+ }
else
+ {
ui_evidence_ok->hide();
+ }
}
void Courtroom::evidence_close()
@@ -723,7 +780,8 @@ void Courtroom::evidence_switch(bool global)
is_presenting_evidence = false;
ui_evidence_present->set_image("present");
local_evidence_list.clear();
- if (current_evidence_global) {
+ if (current_evidence_global)
+ {
local_evidence_list = global_evidence_list;
ui_evidence_present->show();
ui_evidence_save->hide();
@@ -732,12 +790,11 @@ void Courtroom::evidence_switch(bool global)
ui_evidence->set_image("evidence_background");
ui_evidence_overlay->set_image("evidence_overlay");
ui_evidence_transfer->set_image("evidence_transfer");
- ui_evidence_transfer->setToolTip(
- tr("Transfer evidence to private inventory."));
- ui_evidence_switch->setToolTip(
- tr("Current evidence is global. Click to switch to private."));
+ ui_evidence_transfer->setToolTip(tr("Transfer evidence to private inventory."));
+ ui_evidence_switch->setToolTip(tr("Current evidence is global. Click to switch to private."));
}
- else {
+ else
+ {
local_evidence_list = private_evidence_list;
ui_evidence_present->hide();
ui_evidence_save->show();
@@ -746,10 +803,8 @@ void Courtroom::evidence_switch(bool global)
ui_evidence->set_image("evidence_background_private");
ui_evidence_overlay->set_image("evidence_overlay_private");
ui_evidence_transfer->set_image("evidence_transfer_private");
- ui_evidence_transfer->setToolTip(
- tr("Transfer evidence to global inventory."));
- ui_evidence_switch->setToolTip(
- tr("Current evidence is private. Click to switch to global."));
+ ui_evidence_transfer->setToolTip(tr("Transfer evidence to global inventory."));
+ ui_evidence_switch->setToolTip(tr("Current evidence is private. Click to switch to global."));
}
current_evidence_page = 0;
set_evidence_page();
@@ -758,17 +813,19 @@ void Courtroom::evidence_switch(bool global)
void Courtroom::on_evidence_save_clicked()
{
if (current_evidence_global)
+ {
return; // Don't allow saving/loading operations when in global inventory
// mode for now
+ }
// "Inventories" dir keeps our private evidence data
- if (!dir_exists("inventories")) {
+ if (!dir_exists("inventories"))
+ {
// Create one if it doesn't yet exist
QDir("inventories").mkdir("inventories");
}
- QString p_path = QFileDialog::getSaveFileName(
- this, tr("Save Inventory"), "inventories/", tr("Ini Files (*.ini)"));
+ QString p_path = QFileDialog::getSaveFileName(this, tr("Save Inventory"), "inventories/", tr("Ini Files (*.ini)"));
evidence_close();
ui_evidence_name->setText("");
@@ -779,13 +836,16 @@ void Courtroom::on_evidence_save_clicked()
void Courtroom::on_evidence_load_clicked()
{
if (current_evidence_global)
+ {
return; // Don't allow saving/loading operations when in global inventory
// mode for now
+ }
- QString p_path = QFileDialog::getOpenFileName(
- this, tr("Open Inventory"), "inventories/", tr("Ini Files (*.ini)"));
+ QString p_path = QFileDialog::getOpenFileName(this, tr("Open Inventory"), "inventories/", tr("Ini Files (*.ini)"));
if (p_path.isEmpty())
+ {
return;
+ }
evidence_close();
ui_evidence_name->setText("");
@@ -796,7 +856,8 @@ void Courtroom::on_evidence_load_clicked()
void Courtroom::evidence_load(QString filename)
{
- if (!file_exists(filename)) {
+ if (!file_exists(filename))
+ {
qWarning() << "Trying to load a non-existant evidence save file:" << filename;
return;
}
@@ -805,16 +866,17 @@ void Courtroom::evidence_load(QString filename)
inventory.setIniCodec("UTF-8");
#endif
private_evidence_list.clear();
- foreach (QString evi, inventory.childGroups()) {
+ foreach (QString evi, inventory.childGroups())
+ {
if (evi == "General")
+ {
continue;
+ }
evi_type f_evi;
f_evi.name = inventory.value(evi + "/name", "<name>").value<QString>();
- f_evi.description =
- inventory.value(evi + "/description", "<description>").value<QString>();
- f_evi.image =
- inventory.value(evi + "/image", "empty.png").value<QString>();
+ f_evi.description = inventory.value(evi + "/description", "<description>").value<QString>();
+ f_evi.image = inventory.value(evi + "/image", "empty.png").value<QString>();
private_evidence_list.append(f_evi);
}
}
@@ -822,7 +884,8 @@ void Courtroom::evidence_load(QString filename)
void Courtroom::evidence_save(QString filename)
{
// "Inventories" dir keeps our private evidence data
- if (!dir_exists("inventories")) {
+ if (!dir_exists("inventories"))
+ {
// Create one if it doesn't yet exist
QDir("inventories").mkdir("inventories");
}
@@ -832,7 +895,8 @@ void Courtroom::evidence_save(QString filename)
inventory.setIniCodec("UTF-8");
#endif
inventory.clear();
- for (int i = 0; i < private_evidence_list.size(); i++) {
+ for (int i = 0; i < private_evidence_list.size(); i++)
+ {
inventory.beginGroup(QString::number(i));
inventory.setValue("name", private_evidence_list[i].name);
inventory.setValue("description", private_evidence_list[i].description);
@@ -844,6 +908,5 @@ void Courtroom::evidence_save(QString filename)
bool Courtroom::compare_evidence_changed(evi_type evi_a, evi_type evi_b)
{
- return evi_a.name != evi_b.name || evi_a.image != evi_b.image ||
- evi_a.description != evi_b.description;
+ return evi_a.name != evi_b.name || evi_a.image != evi_b.image || evi_a.description != evi_b.description;
}