The IC chatlog can now show both name and showname, and can be exported.
- Toggle the 'Custom shownames' tickbox to switch between real names and custom shownames. - Type `/save_chatlog` in the OOC to export your IC chatlog into a file. - Exporting the chatlog will append the date and time of the message, too.
This commit is contained in:
parent
0032c36822
commit
29c91e63ea
@ -49,7 +49,8 @@ SOURCES += main.cpp\
|
||||
aotextedit.cpp \
|
||||
aoevidencedisplay.cpp \
|
||||
discord_rich_presence.cpp \
|
||||
aooptionsdialog.cpp
|
||||
aooptionsdialog.cpp \
|
||||
chatlogpiece.cpp
|
||||
|
||||
HEADERS += lobby.h \
|
||||
aoimage.h \
|
||||
@ -82,7 +83,8 @@ HEADERS += lobby.h \
|
||||
discord_rich_presence.h \
|
||||
discord-rpc.h \
|
||||
aooptionsdialog.h \
|
||||
text_file_functions.h
|
||||
text_file_functions.h \
|
||||
chatlogpiece.h
|
||||
|
||||
# 1. You need to get BASS and put the x86 bass DLL/headers in the project root folder
|
||||
# AND the compilation output folder. If you want a static link, you'll probably
|
||||
|
76
chatlogpiece.cpp
Normal file
76
chatlogpiece.cpp
Normal file
@ -0,0 +1,76 @@
|
||||
#include "chatlogpiece.h"
|
||||
|
||||
chatlogpiece::chatlogpiece()
|
||||
{
|
||||
name = "UNKNOWN";
|
||||
showname = "UNKNOWN";
|
||||
message = "UNKNOWN";
|
||||
is_song = false;
|
||||
datetime = QDateTime::currentDateTime().toUTC();
|
||||
}
|
||||
|
||||
chatlogpiece::chatlogpiece(QString p_name, QString p_showname, QString p_message, bool p_song)
|
||||
{
|
||||
name = p_name;
|
||||
showname = p_showname;
|
||||
message = p_message;
|
||||
is_song = p_song;
|
||||
datetime = QDateTime::currentDateTime().toUTC();
|
||||
}
|
||||
|
||||
chatlogpiece::chatlogpiece(QString p_name, QString p_showname, QString p_message, bool p_song, QDateTime p_datetime)
|
||||
{
|
||||
name = p_name;
|
||||
showname = p_showname;
|
||||
message = p_message;
|
||||
is_song = p_song;
|
||||
datetime = p_datetime.toUTC();
|
||||
}
|
||||
|
||||
QString chatlogpiece::get_name()
|
||||
{
|
||||
return name;
|
||||
}
|
||||
|
||||
QString chatlogpiece::get_showname()
|
||||
{
|
||||
return showname;
|
||||
}
|
||||
|
||||
QString chatlogpiece::get_message()
|
||||
{
|
||||
return message;
|
||||
}
|
||||
|
||||
QDateTime chatlogpiece::get_datetime()
|
||||
{
|
||||
return datetime;
|
||||
}
|
||||
|
||||
bool chatlogpiece::get_is_song()
|
||||
{
|
||||
return is_song;
|
||||
}
|
||||
|
||||
QString chatlogpiece::get_datetime_as_string()
|
||||
{
|
||||
return datetime.toString();
|
||||
}
|
||||
|
||||
|
||||
QString chatlogpiece::get_full()
|
||||
{
|
||||
QString full = "[";
|
||||
|
||||
full.append(get_datetime_as_string());
|
||||
full.append(" UTC] ");
|
||||
full.append(get_showname());
|
||||
full.append(" (");
|
||||
full.append(get_name());
|
||||
full.append(")");
|
||||
if (is_song)
|
||||
full.append(" has played a song: ");
|
||||
full.append(get_message());
|
||||
|
||||
return full;
|
||||
}
|
31
chatlogpiece.h
Normal file
31
chatlogpiece.h
Normal file
@ -0,0 +1,31 @@
|
||||
#ifndef CHATLOGPIECE_H
|
||||
#define CHATLOGPIECE_H
|
||||
|
||||
#include <QString>
|
||||
#include <QDateTime>
|
||||
|
||||
class chatlogpiece
|
||||
{
|
||||
public:
|
||||
chatlogpiece();
|
||||
chatlogpiece(QString p_name, QString p_showname, QString p_message, bool p_song);
|
||||
chatlogpiece(QString p_name, QString p_showname, QString p_message, bool p_song, QDateTime p_datetime);
|
||||
|
||||
QString get_name();
|
||||
QString get_showname();
|
||||
QString get_message();
|
||||
bool get_is_song();
|
||||
QDateTime get_datetime();
|
||||
QString get_datetime_as_string();
|
||||
|
||||
QString get_full();
|
||||
|
||||
private:
|
||||
QString name;
|
||||
QString showname;
|
||||
QString message;
|
||||
QDateTime datetime;
|
||||
bool is_song;
|
||||
};
|
||||
|
||||
#endif // CHATLOGPIECE_H
|
@ -1268,6 +1268,14 @@ void Courtroom::handle_chatmessage(QStringList *p_contents)
|
||||
ui_evidence_present->set_image("present_disabled.png");
|
||||
}
|
||||
|
||||
chatlogpiece* temp = new chatlogpiece(ao_app->get_showname(char_list.at(f_char_id).name), f_showname, ": " + m_chatmessage[MESSAGE], false);
|
||||
ic_chatlog_history.append(*temp);
|
||||
|
||||
while(ic_chatlog_history.size() > log_maximum_blocks)
|
||||
{
|
||||
ic_chatlog_history.removeFirst();
|
||||
}
|
||||
|
||||
append_ic_text(": " + m_chatmessage[MESSAGE], f_showname);
|
||||
|
||||
previous_ic_message = f_message;
|
||||
@ -2555,16 +2563,24 @@ void Courtroom::handle_song(QStringList *p_contents)
|
||||
else
|
||||
{
|
||||
QString str_char = char_list.at(n_char).name;
|
||||
QString str_show = char_list.at(n_char).name;
|
||||
|
||||
if (p_contents->length() > 2)
|
||||
{
|
||||
if (ui_showname_enable->isChecked())
|
||||
str_char = p_contents->at(2);
|
||||
str_show = p_contents->at(2);
|
||||
}
|
||||
|
||||
if (!mute_map.value(n_char))
|
||||
{
|
||||
append_ic_songchange(f_song_clear, str_char);
|
||||
chatlogpiece* temp = new chatlogpiece(str_char, str_show, f_song, true);
|
||||
ic_chatlog_history.append(*temp);
|
||||
|
||||
while(ic_chatlog_history.size() > log_maximum_blocks)
|
||||
{
|
||||
ic_chatlog_history.removeFirst();
|
||||
}
|
||||
|
||||
append_ic_songchange(f_song_clear, str_show);
|
||||
music_player->play(f_song);
|
||||
}
|
||||
}
|
||||
@ -2768,6 +2784,29 @@ void Courtroom::on_ooc_return_pressed()
|
||||
ui_ooc_chat_message->clear();
|
||||
return;
|
||||
}
|
||||
else if (ooc_message.startsWith("/save_chatlog"))
|
||||
{
|
||||
QFile file("chatlog.txt");
|
||||
|
||||
if (!file.open(QIODevice::WriteOnly | QIODevice::Text | QIODevice::Truncate))
|
||||
{
|
||||
append_server_chatmessage("CLIENT", "Couldn't open chatlog.txt to write into.", "1");
|
||||
ui_ooc_chat_message->clear();
|
||||
return;
|
||||
}
|
||||
|
||||
QTextStream out(&file);
|
||||
|
||||
foreach (chatlogpiece item, ic_chatlog_history) {
|
||||
out << item.get_full() << '\n';
|
||||
}
|
||||
|
||||
file.close();
|
||||
|
||||
append_server_chatmessage("CLIENT", "The IC chatlog has been saved.", "1");
|
||||
ui_ooc_chat_message->clear();
|
||||
return;
|
||||
}
|
||||
|
||||
QStringList packet_contents;
|
||||
packet_contents.append(ui_ooc_chat_name->text());
|
||||
@ -3295,6 +3334,26 @@ void Courtroom::on_guard_clicked()
|
||||
|
||||
void Courtroom::on_showname_enable_clicked()
|
||||
{
|
||||
ui_ic_chatlog->clear();
|
||||
first_message_sent = false;
|
||||
|
||||
foreach (chatlogpiece item, ic_chatlog_history) {
|
||||
if (ui_showname_enable->isChecked())
|
||||
{
|
||||
if (item.get_is_song())
|
||||
append_ic_songchange(item.get_message(), item.get_showname());
|
||||
else
|
||||
append_ic_text(item.get_message(), item.get_showname());
|
||||
}
|
||||
else
|
||||
{
|
||||
if (item.get_is_song())
|
||||
append_ic_songchange(item.get_message(), item.get_name());
|
||||
else
|
||||
append_ic_text(item.get_message(), item.get_name());
|
||||
}
|
||||
}
|
||||
|
||||
ui_ic_chat_message->setFocus();
|
||||
}
|
||||
|
||||
|
@ -18,6 +18,7 @@
|
||||
#include "aotextedit.h"
|
||||
#include "aoevidencedisplay.h"
|
||||
#include "datatypes.h"
|
||||
#include "chatlogpiece.h"
|
||||
|
||||
#include <QMainWindow>
|
||||
#include <QLineEdit>
|
||||
@ -257,6 +258,8 @@ private:
|
||||
|
||||
QSignalMapper *char_button_mapper;
|
||||
|
||||
QVector<chatlogpiece> ic_chatlog_history;
|
||||
|
||||
// These map music row items and area row items to their actual IDs.
|
||||
QVector<int> music_row_to_number;
|
||||
QVector<int> area_row_to_number;
|
||||
|
Loading…
Reference in New Issue
Block a user