diff options
| author | Salanto <62221668+Salanto@users.noreply.github.com> | 2024-05-18 03:33:43 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-05-18 03:33:43 +0200 |
| commit | 51338e30e046f1a62c84049b34577f0f3b5db6e3 (patch) | |
| tree | 283c95f8f776ed852d03a816388695afd65c0f73 /src/evidence.cpp | |
| parent | 469e293a1885e49f1d5994d41ac7cfc9f4666952 (diff) | |
| parent | f9c7205210fb9f768f583065971ece09e6b5eb03 (diff) | |
Merge pull request #957 from AttorneyOnline/kaleidoscope
The Kaleidoscope - Hell, it's about time.
Diffstat (limited to 'src/evidence.cpp')
| -rw-r--r-- | src/evidence.cpp | 501 |
1 files changed, 281 insertions, 220 deletions
diff --git a/src/evidence.cpp b/src/evidence.cpp index 752ca47d..322970fa 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"); @@ -118,89 +100,105 @@ void Courtroom::refresh_evidence() ui_evidence_list.clear(); set_size_and_pos(ui_evidence_button, "evidence_button"); - ui_evidence_button->set_image("evidence_button"); + ui_evidence_button->setImage("evidence_button"); ui_evidence_button->setToolTip(tr("Bring up the Evidence screen.")); set_size_and_pos(ui_evidence, "evidence_background"); if (current_evidence_global) - ui_evidence->set_image("evidence_background"); + { + ui_evidence->setImage("evidence_background"); + } else - ui_evidence->set_image("evidence_background_private"); + { + ui_evidence->setImage("evidence_background_private"); + } set_size_and_pos(ui_evidence_name, "evidence_name"); set_size_and_pos(ui_evidence_buttons, "evidence_buttons"); set_size_and_pos(ui_evidence_left, "evidence_left"); - ui_evidence_left->set_image("arrow_left"); + ui_evidence_left->setImage("arrow_left"); set_size_and_pos(ui_evidence_right, "evidence_right"); - ui_evidence_right->set_image("arrow_right"); + ui_evidence_right->setImage("arrow_right"); set_size_and_pos(ui_evidence_present, "evidence_present"); - ui_evidence_present->set_image("present"); + ui_evidence_present->setImage("present"); set_size_and_pos(ui_evidence_overlay, "evidence_overlay"); if (current_evidence_global) - ui_evidence_overlay->set_image("evidence_overlay"); + { + ui_evidence_overlay->setImage("evidence_overlay"); + } else - ui_evidence_overlay->set_image("evidence_overlay_private"); + { + ui_evidence_overlay->setImage("evidence_overlay_private"); + } set_size_and_pos(ui_evidence_delete, "evidence_delete"); - ui_evidence_delete->set_image("evidence_delete"); + ui_evidence_delete->setImage("evidence_delete"); set_size_and_pos(ui_evidence_image_name, "evidence_image_name"); set_size_and_pos(ui_evidence_image_button, "evidence_image_button"); set_size_and_pos(ui_evidence_x, "evidence_x"); - ui_evidence_x->set_image("evidence_x"); + ui_evidence_x->setImage("evidence_x"); set_size_and_pos(ui_evidence_ok, "evidence_ok"); - ui_evidence_ok->set_image("evidence_ok"); + ui_evidence_ok->setImage("evidence_ok"); set_size_and_pos(ui_evidence_switch, "evidence_switch"); - if (current_evidence_global) { - ui_evidence_switch->set_image("evidence_global"); + if (current_evidence_global) + { + ui_evidence_switch->setImage("evidence_global"); ui_evidence_switch->setToolTip(tr("Switch evidence to private inventory.")); } - else { - ui_evidence_switch->set_image("evidence_private"); + else + { + ui_evidence_switch->setImage("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) { - ui_evidence_transfer->set_image("evidence_transfer"); - ui_evidence_transfer->setToolTip( - tr("Transfer evidence to private inventory.")); + if (current_evidence_global) + { + ui_evidence_transfer->setImage("evidence_transfer"); + ui_evidence_transfer->setToolTip(tr("Transfer evidence to private inventory.")); } - else { - ui_evidence_transfer->set_image("evidence_transfer_private"); - ui_evidence_transfer->setToolTip( - tr("Transfer evidence to global inventory.")); + else + { + ui_evidence_transfer->setImage("evidence_transfer_private"); + 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"); + ui_evidence_save->setImage("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"); + ui_evidence_load->setImage("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,60 +208,54 @@ 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 i = 0; i < max_evidence_on_page; ++i) + { 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(i, button_width, button_height, ao_app, ui_evidence_buttons); ui_evidence_list.append(f_evidence); + f_evidence->move(x_pos, y_pos); - 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::evidenceClicked, this, &Courtroom::on_evidence_clicked); + connect(f_evidence, &AOEvidenceButton::evidenceDoubleClicked, this, &Courtroom::on_evidence_double_clicked); + connect(f_evidence, &AOEvidenceButton::mouseoverUpdated, 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; } } } -void Courtroom::set_evidence_list(QVector<evi_type> &p_evi_list) +void Courtroom::set_evidence_list(QVector<EvidenceItem> &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; + QVector<EvidenceItem> old_list = local_evidence_list; local_evidence_list.clear(); local_evidence_list = 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 +265,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 +305,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 +316,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->setSelected(false); f_evidence_button->setToolTip(""); - if (n_real_evidence == (total_evidence - 1)) { - f_evidence_button->set_theme_image("addevidence.png"); + if (n_real_evidence == (total_evidence - 1)) + { + f_evidence_button->setThemeImage("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->setImage(local_evidence_list.at(n_real_evidence).image); if (n_real_evidence == current_evidence) - f_evidence_button->set_selected(true); + { + f_evidence_button->setSelected(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->setImage(""); + } f_evidence_button->show(); } @@ -386,17 +387,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 +415,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,12 +445,15 @@ 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 { - evi_type f_evi; + { + ao_app->send_server_packet(AOPacket("PE", {"<name>", "<description>", "empty.png"})); + } + else + { + EvidenceItem f_evi; f_evi.name = "<name>"; f_evi.description = "<description>"; f_evi.image = "empty.png"; @@ -452,22 +465,28 @@ 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); + { + i_button->setSelected(false); + } - ui_evidence_list.at(p_id)->set_selected(true); + ui_evidence_list.at(p_id)->setSelected(true); current_evidence = f_real_id; } @@ -476,26 +495,33 @@ 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); + { + i_button->setSelected(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()) { - ui_evidence_list.at(p_id)->set_selected(true); + if (p_id < ui_evidence_list.count()) + { + ui_evidence_list.at(p_id)->setSelected(true); } current_evidence = f_real_id; - evi_type f_evi = local_evidence_list.at(f_real_id); + EvidenceItem f_evi = local_evidence_list.at(f_real_id); ui_evidence_description->clear(); ui_evidence_description->appendPlainText(f_evi.description); @@ -518,23 +544,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 +589,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"); + { + ui_evidence_present->setImage("present"); + } else - ui_evidence_present->set_image("present_disabled"); + { + ui_evidence_present->setImage("present_disabled"); + } is_presenting_evidence = !is_presenting_evidence; @@ -572,9 +613,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 +631,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 +646,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 +668,21 @@ bool Courtroom::on_evidence_x_clicked() void Courtroom::on_evidence_ok_clicked() { ui_evidence_ok->hide(); - if (current_evidence < local_evidence_list.size()) { - evi_type f_evi = local_evidence_list.at(current_evidence); - if (current_evidence_global) { + if (current_evidence < local_evidence_list.size()) + { + EvidenceItem f_evi = local_evidence_list.at(current_evidence); + 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 +694,8 @@ void Courtroom::on_evidence_ok_clicked() } // Autosave private evidence - if (!current_evidence_global) { + if (!current_evidence_global) + { evidence_save("inventories/autosave.ini"); } } @@ -659,12 +708,14 @@ 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 { - evi_type f_evi = local_evidence_list.at(current_evidence); + EvidenceItem f_evi = local_evidence_list.at(current_evidence); QStringList f_contents; f_contents.append(f_evi.name); @@ -672,11 +723,11 @@ 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 { - evi_type f_evi = local_evidence_list.at(current_evidence); + EvidenceItem f_evi = local_evidence_list.at(current_evidence); name = f_evi.name; private_evidence_list.append(f_evi); @@ -694,18 +745,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; + } + EvidenceItem 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() @@ -721,35 +776,33 @@ void Courtroom::evidence_switch(bool global) evidence_close(); current_evidence_global = global; is_presenting_evidence = false; - ui_evidence_present->set_image("present"); + ui_evidence_present->setImage("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(); ui_evidence_load->hide(); - ui_evidence_switch->set_image("evidence_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.")); - } - else { + ui_evidence_switch->setImage("evidence_global"); + ui_evidence->setImage("evidence_background"); + ui_evidence_overlay->setImage("evidence_overlay"); + ui_evidence_transfer->setImage("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.")); + } + else + { local_evidence_list = private_evidence_list; ui_evidence_present->hide(); ui_evidence_save->show(); ui_evidence_load->show(); - ui_evidence_switch->set_image("evidence_private"); - 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_switch->setImage("evidence_private"); + ui_evidence->setImage("evidence_background_private"); + ui_evidence_overlay->setImage("evidence_overlay_private"); + ui_evidence_transfer->setImage("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.")); } current_evidence_page = 0; set_evidence_page(); @@ -758,17 +811,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 +834,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 +854,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 +864,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; + EvidenceItem 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 +882,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 +893,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); @@ -842,8 +904,7 @@ void Courtroom::evidence_save(QString filename) inventory.sync(); } -bool Courtroom::compare_evidence_changed(evi_type evi_a, evi_type evi_b) +bool Courtroom::compare_evidence_changed(EvidenceItem evi_a, EvidenceItem 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; } |
