Remove /rainbow as clientside slash commands are cursed. I shall purge all clientside slash command memery soon...
Fix /save_case iterating from last to first instead of first to last Implement private evidence saving/loading to and from an .ini file
This commit is contained in:
parent
829604e808
commit
bdef10ace5
@ -570,6 +570,8 @@ private:
|
|||||||
AOButton *ui_evidence_ok;
|
AOButton *ui_evidence_ok;
|
||||||
AOButton *ui_evidence_switch;
|
AOButton *ui_evidence_switch;
|
||||||
AOButton *ui_evidence_transfer;
|
AOButton *ui_evidence_transfer;
|
||||||
|
AOButton *ui_evidence_save;
|
||||||
|
AOButton *ui_evidence_load;
|
||||||
AOTextEdit *ui_evidence_description;
|
AOTextEdit *ui_evidence_description;
|
||||||
|
|
||||||
AOImage *ui_char_select_background;
|
AOImage *ui_char_select_background;
|
||||||
@ -747,6 +749,8 @@ private slots:
|
|||||||
|
|
||||||
void evidence_close();
|
void evidence_close();
|
||||||
void evidence_switch(bool global);
|
void evidence_switch(bool global);
|
||||||
|
void on_evidence_save_clicked();
|
||||||
|
void on_evidence_load_clicked();
|
||||||
bool compare_evidence_changed(evi_type evi_a, evi_type evi_b);
|
bool compare_evidence_changed(evi_type evi_a, evi_type evi_b);
|
||||||
|
|
||||||
void on_back_to_lobby_clicked();
|
void on_back_to_lobby_clicked();
|
||||||
|
@ -2993,14 +2993,6 @@ void Courtroom::on_ooc_return_pressed()
|
|||||||
toggle_judge_buttons(false);
|
toggle_judge_buttons(false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (ooc_message.startsWith("/rainbow") && ao_app->yellow_text_enabled && !rainbow_appended)
|
|
||||||
{
|
|
||||||
//ui_text_color->addItem("Rainbow");
|
|
||||||
ui_ooc_chat_message->clear();
|
|
||||||
//rainbow_appended = true;
|
|
||||||
append_server_chatmessage("CLIENT", tr("This does nothing, but there you go."), "1");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
else if (ooc_message.startsWith("/settings"))
|
else if (ooc_message.startsWith("/settings"))
|
||||||
{
|
{
|
||||||
ui_ooc_chat_message->clear();
|
ui_ooc_chat_message->clear();
|
||||||
@ -3221,7 +3213,7 @@ void Courtroom::on_ooc_return_pressed()
|
|||||||
casefile.setValue("doc", "");
|
casefile.setValue("doc", "");
|
||||||
casefile.setValue("status",command[2]);
|
casefile.setValue("status",command[2]);
|
||||||
casefile.sync();
|
casefile.sync();
|
||||||
for(int i = local_evidence_list.size() - 1; i >= 0; i--)
|
for(int i = 0; i < local_evidence_list.size(); i++)
|
||||||
{
|
{
|
||||||
QString clean_evidence_dsc = local_evidence_list[i].description.replace(QRegularExpression("<owner = ...>..."), "");
|
QString clean_evidence_dsc = local_evidence_list[i].description.replace(QRegularExpression("<owner = ...>..."), "");
|
||||||
clean_evidence_dsc = clean_evidence_dsc.replace(clean_evidence_dsc.lastIndexOf(">"), 1, "");
|
clean_evidence_dsc = clean_evidence_dsc.replace(clean_evidence_dsc.lastIndexOf(">"), 1, "");
|
||||||
|
@ -19,6 +19,11 @@ void Courtroom::initialize_evidence()
|
|||||||
ui_evidence_switch = new AOButton(ui_evidence, ao_app);
|
ui_evidence_switch = new AOButton(ui_evidence, ao_app);
|
||||||
ui_evidence_transfer = new AOButton(ui_evidence, ao_app);
|
ui_evidence_transfer = new AOButton(ui_evidence, ao_app);
|
||||||
|
|
||||||
|
ui_evidence_save = new AOButton(ui_evidence, ao_app);
|
||||||
|
ui_evidence_save->setToolTip(tr("Save evidence to an .ini file."));
|
||||||
|
ui_evidence_load = new AOButton(ui_evidence, ao_app);
|
||||||
|
ui_evidence_save->setToolTip(tr("Load evidence from an .ini file."));
|
||||||
|
|
||||||
ui_evidence_overlay = new AOImage(ui_evidence, ao_app);
|
ui_evidence_overlay = new AOImage(ui_evidence, ao_app);
|
||||||
|
|
||||||
ui_evidence_delete = new AOButton(ui_evidence_overlay, ao_app);
|
ui_evidence_delete = new AOButton(ui_evidence_overlay, ao_app);
|
||||||
@ -45,6 +50,8 @@ void Courtroom::initialize_evidence()
|
|||||||
connect(ui_evidence_present, SIGNAL(clicked()), this, SLOT(on_evidence_present_clicked()));
|
connect(ui_evidence_present, SIGNAL(clicked()), this, SLOT(on_evidence_present_clicked()));
|
||||||
connect(ui_evidence_switch, SIGNAL(clicked()), this, SLOT(on_evidence_switch_clicked()));
|
connect(ui_evidence_switch, SIGNAL(clicked()), this, SLOT(on_evidence_switch_clicked()));
|
||||||
connect(ui_evidence_transfer, SIGNAL(clicked()), this, SLOT(on_evidence_transfer_clicked()));
|
connect(ui_evidence_transfer, SIGNAL(clicked()), this, SLOT(on_evidence_transfer_clicked()));
|
||||||
|
connect(ui_evidence_save, SIGNAL(clicked()), this, SLOT(on_evidence_save_clicked()));
|
||||||
|
connect(ui_evidence_load, SIGNAL(clicked()), this, SLOT(on_evidence_load_clicked()));
|
||||||
|
|
||||||
connect(ui_evidence_delete, SIGNAL(clicked()), this, SLOT(on_evidence_delete_clicked()));
|
connect(ui_evidence_delete, SIGNAL(clicked()), this, SLOT(on_evidence_delete_clicked()));
|
||||||
connect(ui_evidence_image_name, SIGNAL(returnPressed()), this, SLOT(on_evidence_image_name_edited()));
|
connect(ui_evidence_image_name, SIGNAL(returnPressed()), this, SLOT(on_evidence_image_name_edited()));
|
||||||
@ -136,6 +143,20 @@ void Courtroom::refresh_evidence()
|
|||||||
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");
|
set_size_and_pos(ui_evidence_description, "evidence_description");
|
||||||
|
|
||||||
QPoint f_spacing = ao_app->get_button_spacing("evidence_button_spacing", "courtroom_design.ini");
|
QPoint f_spacing = ao_app->get_button_spacing("evidence_button_spacing", "courtroom_design.ini");
|
||||||
@ -584,6 +605,7 @@ void Courtroom::on_evidence_transfer_clicked()
|
|||||||
if (current_evidence >= local_evidence_list.size())
|
if (current_evidence >= local_evidence_list.size())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
QString name;
|
||||||
if (!current_evidence_global) //Transfer private evidence to global
|
if (!current_evidence_global) //Transfer private evidence to global
|
||||||
{
|
{
|
||||||
evi_type f_evi = local_evidence_list.at(current_evidence);
|
evi_type f_evi = local_evidence_list.at(current_evidence);
|
||||||
@ -593,16 +615,18 @@ void Courtroom::on_evidence_transfer_clicked()
|
|||||||
f_contents.append(f_evi.description);
|
f_contents.append(f_evi.description);
|
||||||
f_contents.append(f_evi.image);
|
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(new AOPacket("PE", f_contents));
|
||||||
}
|
}
|
||||||
else //Transfer global evidence to private
|
else //Transfer global evidence to private
|
||||||
{
|
{
|
||||||
evi_type f_evi = local_evidence_list.at(current_evidence);
|
evi_type f_evi = local_evidence_list.at(current_evidence);
|
||||||
|
name = f_evi.name;
|
||||||
private_evidence_list.append(f_evi);
|
private_evidence_list.append(f_evi);
|
||||||
}
|
}
|
||||||
|
|
||||||
QMessageBox *msgBox = new QMessageBox;
|
QMessageBox *msgBox = new QMessageBox;
|
||||||
msgBox->setText("Evidence has been transferred.");
|
msgBox->setText("\"" + name + "\" has been transferred.");
|
||||||
msgBox->setStandardButtons(QMessageBox::Ok);
|
msgBox->setStandardButtons(QMessageBox::Ok);
|
||||||
msgBox->setDefaultButton(QMessageBox::Ok);
|
msgBox->setDefaultButton(QMessageBox::Ok);
|
||||||
msgBox->exec();
|
msgBox->exec();
|
||||||
@ -644,15 +668,73 @@ void Courtroom::evidence_switch(bool global)
|
|||||||
{
|
{
|
||||||
local_evidence_list = global_evidence_list;
|
local_evidence_list = global_evidence_list;
|
||||||
ui_evidence_present->show();
|
ui_evidence_present->show();
|
||||||
|
ui_evidence_save->hide();
|
||||||
|
ui_evidence_load->hide();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
local_evidence_list = private_evidence_list;
|
local_evidence_list = private_evidence_list;
|
||||||
ui_evidence_present->hide();
|
ui_evidence_present->hide();
|
||||||
|
ui_evidence_save->show();
|
||||||
|
ui_evidence_load->show();
|
||||||
}
|
}
|
||||||
set_evidence_page();
|
set_evidence_page();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Courtroom::on_evidence_save_clicked()
|
||||||
|
{
|
||||||
|
if (current_evidence_global)
|
||||||
|
return; //Don't allow saving/loading operations when in global inventory mode for now
|
||||||
|
|
||||||
|
QString p_path = QFileDialog::getSaveFileName(this, tr("Save Inventory"), "base/inventories/", tr("Ini Files (*.ini)"));
|
||||||
|
if (p_path.isEmpty())
|
||||||
|
return;
|
||||||
|
|
||||||
|
evidence_close();
|
||||||
|
ui_evidence_name->setText("");
|
||||||
|
|
||||||
|
QSettings inventory(p_path, QSettings::IniFormat);
|
||||||
|
inventory.clear();
|
||||||
|
for(int i = 0; i < local_evidence_list.size(); i++)
|
||||||
|
{
|
||||||
|
inventory.beginGroup(QString::number(i));
|
||||||
|
inventory.setValue("name",local_evidence_list[i].name);
|
||||||
|
inventory.setValue("description",local_evidence_list[i].description);
|
||||||
|
inventory.setValue("image",local_evidence_list[i].image);
|
||||||
|
inventory.endGroup();
|
||||||
|
}
|
||||||
|
inventory.sync();
|
||||||
|
}
|
||||||
|
|
||||||
|
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"), "base/inventories/", tr("Ini Files (*.ini)"));
|
||||||
|
if (p_path.isEmpty())
|
||||||
|
return;
|
||||||
|
|
||||||
|
evidence_close();
|
||||||
|
ui_evidence_name->setText("");
|
||||||
|
|
||||||
|
QSettings inventory(p_path, QSettings::IniFormat);
|
||||||
|
local_evidence_list.clear();
|
||||||
|
foreach (QString evi, inventory.childGroups())
|
||||||
|
{
|
||||||
|
if (evi == "General")
|
||||||
|
continue;
|
||||||
|
|
||||||
|
evi_type f_evi;
|
||||||
|
f_evi.name = inventory.value(evi + "/name", "UNKNOWN").value<QString>();
|
||||||
|
f_evi.description = inventory.value(evi + "/description", "UNKNOWN").value<QString>();
|
||||||
|
f_evi.image = inventory.value(evi + "/image", "UNKNOWN.png").value<QString>();
|
||||||
|
local_evidence_list.append(f_evi);
|
||||||
|
}
|
||||||
|
private_evidence_list = local_evidence_list;
|
||||||
|
set_evidence_page();
|
||||||
|
}
|
||||||
|
|
||||||
bool Courtroom::compare_evidence_changed(evi_type evi_a, evi_type evi_b)
|
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;
|
||||||
|
Loading…
Reference in New Issue
Block a user