From 798617fc226cc1677e478682a06986484d71a921 Mon Sep 17 00:00:00 2001 From: Alex Noir Date: Sat, 19 Feb 2022 00:40:26 +0300 Subject: [PATCH] Polish up the evidence system so it's a single-click editing Fix evidence editing regressions caused by #587 Fix issues with "ok" button detecting itself as "changes from the server" Fix "ok" button remaining after you press it once, allowing you to spam evidence update packets by spamclicking it --- include/courtroom.h | 2 -- src/evidence.cpp | 58 +++++++++------------------------------------ 2 files changed, 11 insertions(+), 49 deletions(-) diff --git a/include/courtroom.h b/include/courtroom.h index 8a41b60..91ee9e4 100644 --- a/include/courtroom.h +++ b/include/courtroom.h @@ -757,7 +757,6 @@ private: AOButton *ui_evidence_transfer; AOButton *ui_evidence_save; AOButton *ui_evidence_load; - AOButton *ui_evidence_edit; QPlainTextEdit *ui_evidence_description; @@ -888,7 +887,6 @@ private slots: void on_evidence_image_button_clicked(); void on_evidence_clicked(int p_id); void on_evidence_double_clicked(int p_id); - void on_evidence_edit_clicked(); void on_evidence_hover(int p_id, bool p_state); diff --git a/src/evidence.cpp b/src/evidence.cpp index fc305d2..6819703 100644 --- a/src/evidence.cpp +++ b/src/evidence.cpp @@ -50,7 +50,6 @@ void Courtroom::initialize_evidence() ui_evidence_image_button = new AOButton(ui_evidence_overlay, ao_app); ui_evidence_image_button->setText(tr("Choose..")); ui_evidence_image_button->setObjectName("ui_evidence_image_button"); - ui_evidence_image_button->setDisabled(true); ui_evidence_x = new AOButton(ui_evidence_overlay, ao_app); ui_evidence_x->setToolTip( tr("Close the evidence display/editing overlay.\n" @@ -64,13 +63,9 @@ void Courtroom::initialize_evidence() ui_evidence_description = new QPlainTextEdit(ui_evidence_overlay); ui_evidence_description->setFrameStyle(QFrame::NoFrame); ui_evidence_description->setToolTip( - tr("Click the pencil icon to edit. Press [X] to update your changes.")); + tr("Click to edit. Press [X] to update your changes.")); ui_evidence_description->setObjectName("ui_evidence_description"); - ui_evidence_edit = new AOButton(ui_evidence_overlay, ao_app); - ui_evidence_edit->setToolTip(tr("Edit this piece of evidence.")); - ui_evidence_edit->setObjectName("ui_evidence_edit"); - connect(ui_evidence_name, &QLineEdit::returnPressed, this, &Courtroom::on_evidence_name_edited); connect(ui_evidence_left, &AOButton::clicked, this, @@ -105,7 +100,6 @@ void Courtroom::initialize_evidence() &Courtroom::on_evidence_image_name_edited); connect(ui_evidence_description, &QPlainTextEdit::textChanged, this, &Courtroom::on_evidence_edited); - connect(ui_evidence_edit, &AOButton::clicked, this, &Courtroom::on_evidence_edit_clicked); ui_evidence->hide(); } @@ -162,9 +156,6 @@ void Courtroom::refresh_evidence() set_size_and_pos(ui_evidence_ok, "evidence_ok"); ui_evidence_ok->set_image("evidence_ok"); - set_size_and_pos(ui_evidence_edit, "evidence_edit"); - ui_evidence_edit->set_image("evidence_edit"); - set_size_and_pos(ui_evidence_switch, "evidence_switch"); if (current_evidence_global) { ui_evidence_switch->set_image("evidence_global"); @@ -272,8 +263,7 @@ void Courtroom::set_evidence_list(QVector &p_evi_list) evidence_close(); ui_evidence_name->setText(""); } - else if (ui_evidence_description->isReadOnly()) // We haven't double clicked - // to edit it or anything + else if (ui_evidence_ok->isHidden()) // We haven't clicked to edit it or anything { on_evidence_double_clicked(current_evidence); } @@ -302,6 +292,7 @@ void Courtroom::set_evidence_list(QVector &p_evi_list) switch (ret) { case QMessageBox::Yes: // "Keep changes" + ui_evidence_ok->hide(); break; case QMessageBox::No: // "Discard changes and keep theirs" @@ -387,7 +378,6 @@ void Courtroom::on_evidence_name_edited() void Courtroom::on_evidence_image_name_edited() { - ui_evidence_image_name->setReadOnly(true); if (current_evidence >= local_evidence_list.size()) return; } @@ -417,8 +407,6 @@ void Courtroom::on_evidence_image_button_clicked() void Courtroom::on_evidence_clicked(int p_id) { - ui_evidence_name->setReadOnly(true); - int f_real_id = p_id + max_evidence_on_page * current_evidence_page; if (f_real_id == local_evidence_list.size()) { @@ -465,15 +453,16 @@ void Courtroom::on_evidence_double_clicked(int p_id) ui_evidence_description->clear(); ui_evidence_description->appendPlainText(f_evi.description); - ui_evidence_description->setReadOnly(true); - ui_evidence_description->setToolTip(tr("Click the pencil to edit...")); + ui_evidence_description->setReadOnly(false); + ui_evidence_description->setToolTip(tr("Click to edit...")); ui_evidence_name->setText(f_evi.name); - ui_evidence_name->setReadOnly(true); - ui_evidence_name->setToolTip(tr("Click the pencil to edit...")); + ui_evidence_name->setReadOnly(false); + ui_evidence_name->setToolTip(tr("Click to edit...")); + ui_evidence_image_name->setText(f_evi.image); - ui_evidence_image_name->setReadOnly(true); - ui_evidence_image_name->setToolTip(tr("Click the pencil to edit...")); + ui_evidence_image_name->setReadOnly(false); + ui_evidence_image_name->setToolTip(tr("Click to edit...")); ui_evidence_overlay->show(); ui_evidence_ok->hide(); @@ -483,7 +472,6 @@ void Courtroom::on_evidence_double_clicked(int p_id) void Courtroom::on_evidence_hover(int p_id, bool p_state) { - ui_evidence_name->setReadOnly(true); int final_id = p_id + max_evidence_on_page * current_evidence_page; if (p_state) { @@ -592,11 +580,7 @@ void Courtroom::on_evidence_x_clicked() void Courtroom::on_evidence_ok_clicked() { - ui_evidence_name->setReadOnly(true); - ui_evidence_description->setReadOnly(true); - ui_evidence_image_name->setReadOnly(true); - ui_evidence_edit->show(); - ui_evidence_image_button->setDisabled(true); + 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) { @@ -679,22 +663,6 @@ void Courtroom::on_evidence_transfer_clicked() msgBox->exec(); } -void Courtroom::on_evidence_edit_clicked() -{ - if (!ui_evidence_overlay->isVisible()) - return; - if (!ui_evidence_edit->isHidden()) { - ui_evidence_name->setReadOnly(false); - ui_evidence_image_name->setReadOnly(false); - ui_evidence_description->setReadOnly(false); - ui_evidence_image_button->setDisabled(false); - ui_evidence_edit->hide(); - } - else { - return; - } -} - void Courtroom::on_evidence_edited() { if (current_evidence >= @@ -714,12 +682,8 @@ void Courtroom::on_evidence_edited() void Courtroom::evidence_close() { ui_evidence_description->setReadOnly(true); - ui_evidence_description->setToolTip(""); ui_evidence_name->setReadOnly(true); - ui_evidence_name->setToolTip(""); ui_evidence_image_name->setReadOnly(true); - ui_evidence_image_name->setToolTip(""); - ui_evidence_edit->show(); ui_evidence_image_button->setDisabled(true); ui_evidence_overlay->hide(); ui_ic_chat_message->setFocus();