Skip to content

Commit a8156ed

Browse files
authored
Fix shownames toggle not being respected in several places, clean up implementation (#1080)
* Move showname switch to settings and fix it * let the append function handle shownames
1 parent 494eb6c commit a8156ed

3 files changed

Lines changed: 31 additions & 49 deletions

File tree

src/courtroom.cpp

Lines changed: 27 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -128,6 +128,8 @@ Courtroom::Courtroom(AOApplication *p_ao_app)
128128
log_timestamp = Options::getInstance().logTimestampEnabled();
129129
log_timestamp_format = Options::getInstance().logTimestampFormat();
130130

131+
custom_shownames = Options::getInstance().customShownameEnabled();
132+
131133
ui_debug_log = new AOTextArea(Options::getInstance().maxLogSize(), this);
132134
ui_debug_log->setReadOnly(true);
133135
ui_debug_log->setOpenExternalLinks(true);
@@ -320,11 +322,6 @@ Courtroom::Courtroom(AOApplication *p_ao_app)
320322
ui_additive->hide();
321323
ui_additive->setObjectName("ui_additive");
322324

323-
ui_showname_enable = new QCheckBox(this);
324-
ui_showname_enable->setChecked(Options::getInstance().customShownameEnabled());
325-
ui_showname_enable->setText(tr("Shownames"));
326-
ui_showname_enable->setObjectName("ui_showname_enable");
327-
328325
ui_slide_enable = new QCheckBox(this);
329326
ui_slide_enable->setChecked(false);
330327
ui_slide_enable->setText(tr("Slide"));
@@ -507,8 +504,6 @@ Courtroom::Courtroom(AOApplication *p_ao_app)
507504
connect(ui_guard, &AOButton::clicked, this, &Courtroom::focus_ic_input);
508505
connect(ui_slide_enable, &AOButton::clicked, this, &Courtroom::focus_ic_input);
509506

510-
connect(ui_showname_enable, &AOButton::clicked, this, &Courtroom::on_showname_enable_clicked);
511-
512507
connect(ui_pair_button, &AOButton::clicked, this, &Courtroom::on_pair_clicked);
513508
connect(ui_pair_list, &QListWidget::clicked, this, &Courtroom::on_pair_list_clicked);
514509
connect(ui_pair_offset_spinbox, QOverload<int>::of(&QSpinBox::valueChanged), this, &Courtroom::on_pair_offset_changed);
@@ -750,15 +745,13 @@ void Courtroom::set_widgets()
750745
{
751746
ui_pair_button->show();
752747
ui_immediate->show();
753-
ui_showname_enable->show();
754748
ui_ic_chat_name->show();
755749
ui_ic_chat_name->setEnabled(true);
756750
}
757751
else
758752
{
759753
ui_pair_button->hide();
760754
ui_immediate->hide();
761-
ui_showname_enable->hide();
762755
ui_ic_chat_name->hide();
763756
ui_ic_chat_name->setEnabled(false);
764757
}
@@ -814,13 +807,15 @@ void Courtroom::set_widgets()
814807

815808
log_maximum_blocks = Options::getInstance().maxLogSize();
816809

817-
bool regenerate = log_goes_downwards != Options::getInstance().logDirectionDownwards() || log_colors != Options::getInstance().colorLogEnabled() || log_newline != Options::getInstance().logNewline() || log_margin != Options::getInstance().logMargin() || log_timestamp != Options::getInstance().logTimestampEnabled() || log_timestamp_format != Options::getInstance().logTimestampFormat();
810+
bool regenerate = log_goes_downwards != Options::getInstance().logDirectionDownwards() || log_colors != Options::getInstance().colorLogEnabled() || log_newline != Options::getInstance().logNewline() || log_margin != Options::getInstance().logMargin() || log_timestamp != Options::getInstance().logTimestampEnabled() || log_timestamp_format != Options::getInstance().logTimestampFormat() || custom_shownames != Options::getInstance().customShownameEnabled();
818811
log_goes_downwards = Options::getInstance().logDirectionDownwards();
819812
log_colors = Options::getInstance().colorLogEnabled();
820813
log_newline = Options::getInstance().logNewline();
821814
log_margin = Options::getInstance().logMargin();
822815
log_timestamp = Options::getInstance().logTimestampEnabled();
823816
log_timestamp_format = Options::getInstance().logTimestampFormat();
817+
818+
custom_shownames = Options::getInstance().customShownameEnabled();
824819
if (regenerate)
825820
{
826821
regenerate_ic_chatlog();
@@ -1095,9 +1090,6 @@ void Courtroom::set_widgets()
10951090
ui_guard->setToolTip(tr("Do not listen to mod calls when checked, preventing them from "
10961091
"playing sounds or focusing attention on the window."));
10971092

1098-
set_size_and_pos(ui_showname_enable, "showname_enable");
1099-
ui_showname_enable->setToolTip(tr("Display customized shownames for all users when checked."));
1100-
11011093
set_size_and_pos(ui_slide_enable, "slide_enable");
11021094
ui_slide_enable->setToolTip(tr("Allow your messages to trigger slide animations when checked."));
11031095
ui_slide_enable->show();
@@ -1172,7 +1164,6 @@ void Courtroom::set_widgets()
11721164
truncate_label_text(ui_guard, "guard");
11731165
truncate_label_text(ui_pre, "pre");
11741166
truncate_label_text(ui_flip, "flip");
1175-
truncate_label_text(ui_showname_enable, "showname_enable");
11761167
truncate_label_text(ui_slide_enable, "slide_enable");
11771168

11781169
// QLabel
@@ -2397,7 +2388,7 @@ void Courtroom::chatmessage_enqueue(QStringList p_contents)
23972388
if (sender || Options::getInstance().desynchronisedLogsEnabled())
23982389
{
23992390
// Initialize operation "message queue ghost"
2400-
log_chatmessage(p_contents[MESSAGE], p_contents[CHAR_ID].toInt(), p_contents[SHOWNAME], p_contents[CHAR_NAME], p_contents[OBJECTION_MOD], p_contents[EVIDENCE_ID].toInt(), p_contents[TEXT_COLOR].toInt(), QUEUED, sender || Options::getInstance().desynchronisedLogsEnabled());
2391+
log_chatmessage(p_contents[MESSAGE], f_char_id, p_contents[SHOWNAME], p_contents[CHAR_NAME], p_contents[OBJECTION_MOD], p_contents[EVIDENCE_ID].toInt(), p_contents[TEXT_COLOR].toInt(), QUEUED, sender || Options::getInstance().desynchronisedLogsEnabled());
24012392
}
24022393

24032394
bool is_objection = false;
@@ -2414,7 +2405,7 @@ void Courtroom::chatmessage_enqueue(QStringList p_contents)
24142405
}
24152406
}
24162407
// Log the IO file
2417-
log_chatmessage(p_contents[MESSAGE], f_char_id, showname, p_contents[CHAR_NAME], p_contents[OBJECTION_MOD], p_contents[EVIDENCE_ID].toInt(), p_contents[TEXT_COLOR].toInt(), log_mode, sender);
2408+
log_chatmessage(p_contents[MESSAGE], f_char_id, p_contents[SHOWNAME], p_contents[CHAR_NAME], p_contents[OBJECTION_MOD], p_contents[EVIDENCE_ID].toInt(), p_contents[TEXT_COLOR].toInt(), log_mode, sender);
24182409

24192410
// Send this boi into the queue
24202411
chatmessage_queue.enqueue(p_contents);
@@ -2482,7 +2473,7 @@ void Courtroom::unpack_chatmessage(QStringList p_contents)
24822473
bool sender = Options::getInstance().desynchronisedLogsEnabled() || m_chatmessage[CHAR_ID].toInt() == m_cid;
24832474

24842475
// We have logs displaying as soon as we reach the message in our queue, which is a less confusing but also less accurate experience for the user.
2485-
log_chatmessage(m_chatmessage[MESSAGE], m_chatmessage[CHAR_ID].toInt(), m_chatmessage[SHOWNAME], m_chatmessage[CHAR_NAME], m_chatmessage[OBJECTION_MOD], m_chatmessage[EVIDENCE_ID].toInt(), m_chatmessage[TEXT_COLOR].toInt(), DISPLAY_ONLY, sender);
2476+
log_chatmessage(m_chatmessage[MESSAGE], m_chatmessage[CHAR_ID].toInt(), p_contents[SHOWNAME], m_chatmessage[CHAR_NAME], m_chatmessage[OBJECTION_MOD], m_chatmessage[EVIDENCE_ID].toInt(), m_chatmessage[TEXT_COLOR].toInt(), DISPLAY_ONLY, sender);
24862477

24872478
// Process the callwords for this message
24882479
handle_callwords();
@@ -2597,15 +2588,15 @@ void Courtroom::log_chatmessage(QString f_message, int f_char_id, QString f_show
25972588
break;
25982589
case DISPLAY_AND_IO:
25992590
log_ic_text(f_char, f_displayname, shout_message, tr("shouts"));
2600-
append_ic_text(shout_message, f_displayname, tr("shouts"), 0, selfname, QDateTime::currentDateTime(), false);
2591+
append_ic_text(shout_message, f_displayname, f_char, tr("shouts"), 0, selfname, QDateTime::currentDateTime(), false);
26012592
break;
26022593
case DISPLAY_ONLY:
26032594
case QUEUED:
26042595
if (!ghost && sender)
26052596
{
26062597
pop_ic_ghost();
26072598
}
2608-
append_ic_text(shout_message, f_displayname, tr("shouts"), 0, selfname, QDateTime::currentDateTime(), ghost);
2599+
append_ic_text(shout_message, f_displayname, f_char, tr("shouts"), 0, selfname, QDateTime::currentDateTime(), ghost);
26092600
break;
26102601
}
26112602
}
@@ -2619,19 +2610,19 @@ void Courtroom::log_chatmessage(QString f_message, int f_char_id, QString f_show
26192610
switch (f_log_mode)
26202611
{
26212612
case IO_ONLY:
2622-
log_ic_text(f_showname, f_displayname, f_evi_name, tr("has presented evidence"), 0, selfname);
2613+
log_ic_text(f_char, f_displayname, f_evi_name, tr("has presented evidence"), 0, selfname);
26232614
break;
26242615
case DISPLAY_AND_IO:
2625-
log_ic_text(f_showname, f_displayname, f_evi_name, tr("has presented evidence"));
2626-
append_ic_text(f_evi_name, f_displayname, tr("has presented evidence"), 0, selfname, QDateTime::currentDateTime(), false);
2616+
log_ic_text(f_char, f_displayname, f_evi_name, tr("has presented evidence"));
2617+
append_ic_text(f_evi_name, f_displayname, f_char, tr("has presented evidence"), 0, selfname, QDateTime::currentDateTime(), false);
26272618
break;
26282619
case DISPLAY_ONLY:
26292620
case QUEUED:
26302621
if (!ghost && sender)
26312622
{
26322623
pop_ic_ghost();
26332624
}
2634-
append_ic_text(f_evi_name, f_displayname, tr("has presented evidence"), 0, selfname, QDateTime::currentDateTime(), ghost);
2625+
append_ic_text(f_evi_name, f_displayname, f_char, tr("has presented evidence"), 0, selfname, QDateTime::currentDateTime(), ghost);
26352626
break;
26362627
}
26372628
}
@@ -2651,19 +2642,19 @@ void Courtroom::log_chatmessage(QString f_message, int f_char_id, QString f_show
26512642
switch (f_log_mode)
26522643
{
26532644
case IO_ONLY:
2654-
log_ic_text(f_showname, f_displayname, f_message, "", f_color, selfname);
2645+
log_ic_text(f_char, f_displayname, f_message, "", f_color, selfname);
26552646
break;
26562647
case DISPLAY_AND_IO:
2657-
log_ic_text(f_showname, f_displayname, f_message, "", f_color, selfname);
2658-
append_ic_text(f_message, f_displayname, "", f_color, selfname, QDateTime::currentDateTime(), false);
2648+
log_ic_text(f_char, f_displayname, f_message, "", f_color, selfname);
2649+
append_ic_text(f_message, f_displayname, f_char, "", f_color, selfname, QDateTime::currentDateTime(), false);
26592650
break;
26602651
case DISPLAY_ONLY:
26612652
case QUEUED:
26622653
if (!ghost && sender)
26632654
{
26642655
pop_ic_ghost();
26652656
}
2666-
append_ic_text(f_message, f_displayname, "", f_color, selfname, QDateTime::currentDateTime(), ghost);
2657+
append_ic_text(f_message, f_displayname, f_char, "", f_color, selfname, QDateTime::currentDateTime(), ghost);
26672658
break;
26682659
}
26692660
}
@@ -3261,7 +3252,7 @@ void Courtroom::play_char_sfx(QString sfx_name)
32613252
void Courtroom::initialize_chatbox()
32623253
{
32633254
int f_charid = m_chatmessage[CHAR_ID].toInt();
3264-
if (f_charid >= 0 && f_charid < char_list.size() && (m_chatmessage[SHOWNAME].isEmpty() || !ui_showname_enable->isChecked()))
3255+
if (f_charid >= 0 && f_charid < char_list.size() && (m_chatmessage[SHOWNAME].isEmpty() || !custom_shownames))
32653256
{
32663257
QString real_name = char_list.at(f_charid).name;
32673258
QString f_showname = ao_app->get_showname(real_name);
@@ -3790,7 +3781,7 @@ void Courtroom::log_ic_text(QString p_name, QString p_showname, QString p_messag
37903781
}
37913782
}
37923783

3793-
void Courtroom::append_ic_text(QString p_text, QString p_name, QString p_action, int color, bool selfname, QDateTime timestamp, bool ghost)
3784+
void Courtroom::append_ic_text(QString p_text, QString p_name, QString p_char, QString p_action, int color, bool selfname, QDateTime timestamp, bool ghost)
37943785
{
37953786
QColor chatlog_color = ao_app->get_color("ic_chatlog_color", "courtroom_fonts.ini");
37963787
QTextCharFormat bold;
@@ -3816,6 +3807,8 @@ void Courtroom::append_ic_text(QString p_text, QString p_name, QString p_action,
38163807
const bool need_newline = !ui_ic_chatlog->document()->isEmpty();
38173808
const int scrollbar_target_value = log_goes_downwards ? ui_ic_chatlog->verticalScrollBar()->maximum() : ui_ic_chatlog->verticalScrollBar()->minimum();
38183809

3810+
QString displayname = custom_shownames ? p_name : ao_app->get_showname(p_char);
3811+
38193812
if (ghost)
38203813
{
38213814
ghost_blocks++;
@@ -3826,7 +3819,7 @@ void Courtroom::append_ic_text(QString p_text, QString p_name, QString p_action,
38263819
}
38273820
else
38283821
{
3829-
last_ic_message = p_name + ":" + p_text;
3822+
last_ic_message = displayname + ":" + p_text;
38303823
}
38313824

38323825
ui_ic_chatlog->moveCursor(log_goes_downwards ? QTextCursor::End : QTextCursor::Start);
@@ -3863,7 +3856,7 @@ void Courtroom::append_ic_text(QString p_text, QString p_name, QString p_action,
38633856

38643857
// Format the name of the actor
38653858
QTextCharFormat name_format = selfname ? own_name : other_name;
3866-
ui_ic_chatlog->textCursor().insertText(p_name, name_format);
3859+
ui_ic_chatlog->textCursor().insertText(displayname, name_format);
38673860
// Special case for stopping the music
38683861
if (p_action == tr("has stopped the music"))
38693862
{
@@ -4756,12 +4749,12 @@ void Courtroom::handle_song(QStringList *p_contents)
47564749
if (is_stop)
47574750
{
47584751
log_ic_text(str_char, str_show, "", tr("has stopped the music"), 0, selfname);
4759-
append_ic_text("", str_show, tr("has stopped the music"), 0, selfname);
4752+
append_ic_text("", str_show, str_char, tr("has stopped the music"), 0, selfname);
47604753
}
47614754
else
47624755
{
47634756
log_ic_text(str_char, str_show, f_song, tr("has played a song"), 0, selfname);
4764-
append_ic_text(f_song_clear, str_show, tr("has played a song"), 0, selfname);
4757+
append_ic_text(f_song_clear, str_show, str_char, tr("has played a song"), 0, selfname);
47654758
}
47664759
}
47674760
}
@@ -6503,21 +6496,13 @@ void Courtroom::focus_ic_input()
65036496
ui_ic_chat_message->setFocus();
65046497
}
65056498

6506-
void Courtroom::on_showname_enable_clicked()
6507-
{
6508-
regenerate_ic_chatlog();
6509-
focus_ic_input();
6510-
}
6511-
65126499
void Courtroom::regenerate_ic_chatlog()
65136500
{
65146501
ui_ic_chatlog->clear();
65156502
last_ic_message = "";
65166503
foreach (ChatLogPiece item, ic_chatlog_history)
65176504
{
6518-
QString message = item.message;
6519-
QString name = ui_showname_enable->isChecked() ? item.character_name : item.character;
6520-
append_ic_text(message, name, item.action, item.color, item.local_player, item.timestamp.toLocalTime());
6505+
append_ic_text(item.message, item.character_name, item.character, item.action, item.color, item.local_player, item.timestamp.toLocalTime());
65216506
}
65226507
}
65236508

src/courtroom.h

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -252,7 +252,7 @@ class Courtroom : public QMainWindow
252252
// this function keeps the chatlog scrolled to the top unless there's text
253253
// selected
254254
// or the user isn't already scrolled to the top
255-
void append_ic_text(QString p_text, QString p_name = QString(), QString action = QString(), int color = 0, bool selfname = false, QDateTime timestamp = QDateTime::currentDateTime(), bool ghost = false);
255+
void append_ic_text(QString p_text, QString p_name = QString(), QString p_char = QString(), QString action = QString(), int color = 0, bool selfname = false, QDateTime timestamp = QDateTime::currentDateTime(), bool ghost = false);
256256

257257
// clear sent messages that appear on the IC log but haven't been delivered
258258
// yet to other players
@@ -409,6 +409,9 @@ class Courtroom : public QMainWindow
409409
// format string for aforementioned log timestamp
410410
QString log_timestamp_format;
411411

412+
// True, if the log and in-character display should use custom shownames.
413+
bool custom_shownames = true;
414+
412415
// How long in miliseconds should the objection wait before appearing.
413416
int objection_threshold = 1500;
414417

@@ -939,8 +942,6 @@ private Q_SLOTS:
939942
void focus_ic_input();
940943
void on_additive_clicked();
941944

942-
void on_showname_enable_clicked();
943-
944945
void on_evidence_button_clicked();
945946
void on_evidence_context_menu_requested(const QPoint &pos);
946947

src/options.cpp

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -56,10 +56,6 @@ Options::Options()
5656
/*! Migrate old configuration keys/values to a relevant format. */
5757
void Options::migrate()
5858
{
59-
if (config.contains("show_custom_shownames"))
60-
{
61-
config.remove("show_custom_shownames");
62-
}
6359
if (QFile::exists(get_base_path() + "callwords.ini"))
6460
{
6561
migrateCallwords();

0 commit comments

Comments
 (0)