From 6570bcf0662d675cc3f0ed89820fc95efe4cace3 Mon Sep 17 00:00:00 2001 From: Skye Deving <76892045+skyedeving@users.noreply.github.com> Date: Mon, 4 Jan 2021 13:45:18 -0600 Subject: [PATCH] Fix timestamps when toggling showname On toggling shownames, regenerate_ic_chatlog() gets called to reprint the entire chatlog with append_ic_text(). The issue is that append_ic_text() uses QDateTime::currentDateTime() for the timestamp when it's called. Therefore the fix is adding a new timestamp parameter to the append_ic_text() which we supply from the datetime provided by each chatlogpiece --- include/courtroom.h | 2 +- src/courtroom.cpp | 18 ++++++++++++------ 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/include/courtroom.h b/include/courtroom.h index f05b15a..9332481 100644 --- a/include/courtroom.h +++ b/include/courtroom.h @@ -225,7 +225,7 @@ public: // selected // or the user isn't already scrolled to the top void append_ic_text(QString p_text, QString p_name = "", QString action = "", - int color = 0); + int color = 0, QDateTime timestamp = {}); // prints who played the song to IC chat and plays said song(if found on local // filesystem) takes in a list where the first element is the song name and diff --git a/src/courtroom.cpp b/src/courtroom.cpp index 9518911..9fda395 100644 --- a/src/courtroom.cpp +++ b/src/courtroom.cpp @@ -2619,7 +2619,7 @@ void Courtroom::log_ic_text(QString p_name, QString p_showname, } void Courtroom::append_ic_text(QString p_text, QString p_name, QString p_action, - int color) + int color, QDateTime timestamp) { QTextCharFormat bold; QTextCharFormat normal; @@ -2645,10 +2645,15 @@ void Courtroom::append_ic_text(QString p_text, QString p_name, QString p_action, } // Timestamp if we're doing that meme - if (log_timestamp) - ui_ic_chatlog->textCursor().insertText( - "[" + QDateTime::currentDateTime().toString("h:mm:ss AP") + "] ", - normal); + if (log_timestamp) { + if (timestamp.isValid()) { + ui_ic_chatlog->textCursor().insertText( + "[" + timestamp.toString("h:mm:ss AP") + "] ", normal); + } else { + ui_ic_chatlog->textCursor().insertText( + "[" + QDateTime::currentDateTime().toString("h:mm:ss AP") + "] ", normal); + } + } // Format the name of the actor ui_ic_chatlog->textCursor().insertText(p_name, bold); @@ -4780,7 +4785,8 @@ void Courtroom::regenerate_ic_chatlog() append_ic_text(item.get_message(), ui_showname_enable->isChecked() ? item.get_showname() : item.get_name(), - item.get_action(), item.get_chat_color()); + item.get_action(), item.get_chat_color(), + item.get_datetime().toLocalTime()); } }