aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/aoapplication.h3
-rw-r--r--include/courtroom.h10
-rw-r--r--src/courtroom.cpp4
-rw-r--r--src/packet_distribution.cpp10
4 files changed, 21 insertions, 6 deletions
diff --git a/include/aoapplication.h b/include/aoapplication.h
index 60d945ec..3f5767cf 100644
--- a/include/aoapplication.h
+++ b/include/aoapplication.h
@@ -61,6 +61,9 @@ public:
void call_settings_menu();
void call_announce_menu(Courtroom *court);
+ qint64 last_ping;
+ QString window_title;
+
/////////////////server metadata//////////////////
unsigned int s_decryptor = 5;
diff --git a/include/courtroom.h b/include/courtroom.h
index 1ff74f54..0daeb2b1 100644
--- a/include/courtroom.h
+++ b/include/courtroom.h
@@ -57,7 +57,7 @@
#include <QScrollBar>
#include <QTextBoundaryFinder>
#include <QTextCharFormat>
-//#include <QRandomGenerator>
+#include <QElapsedTimer>
#include <stack>
@@ -251,6 +251,8 @@ public:
void check_connection_received();
+ qint64 get_ping() { return ping_timer.elapsed(); }
+
~Courtroom();
private:
@@ -299,11 +301,15 @@ private:
QVector<chatlogpiece> ic_chatlog_history;
- // triggers ping_server() every 60 seconds
+ // triggers ping_server() every 1 second
QTimer *keepalive_timer;
// determines how fast messages tick onto screen
QTimer *chat_tick_timer;
+
+ // count up timer to check how long it took for us to get a response from ping_server()
+ QElapsedTimer ping_timer;
+
// int chat_tick_interval = 60;
// which tick position(character in chat message) we are at
int tick_pos = 0;
diff --git a/src/courtroom.cpp b/src/courtroom.cpp
index e2b372c5..ec1fc994 100644
--- a/src/courtroom.cpp
+++ b/src/courtroom.cpp
@@ -8,7 +8,7 @@ Courtroom::Courtroom(AOApplication *p_ao_app) : QMainWindow()
qsrand(static_cast<uint>(QDateTime::currentMSecsSinceEpoch() / 1000));
keepalive_timer = new QTimer(this);
- keepalive_timer->start(60000);
+ keepalive_timer->start(1000);
chat_tick_timer = new QTimer(this);
@@ -623,7 +623,6 @@ void Courtroom::set_widgets()
ui_music_display->set_play_once(false);
set_size_and_pos(ui_clock, "clock");
- ui_clock->start(30000);
if (is_ao2_bg) {
set_size_and_pos(ui_ic_chat_message, "ao2_ic_chat_message");
@@ -4672,6 +4671,7 @@ void Courtroom::on_switch_area_music_clicked()
void Courtroom::ping_server()
{
+ ping_timer.start();
ao_app->send_server_packet(
new AOPacket("CH#" + QString::number(m_cid) + "#%"));
}
diff --git a/src/packet_distribution.cpp b/src/packet_distribution.cpp
index e4e5d5c2..9422cfdb 100644
--- a/src/packet_distribution.cpp
+++ b/src/packet_distribution.cpp
@@ -116,7 +116,13 @@ void AOApplication::server_packet_received(AOPacket *p_packet)
qDebug() << "R:" << f_packet;
#endif
- if (header == "decryptor") {
+ if (header == "CHECK") {
+ if (courtroom_constructed) {
+ last_ping = w_courtroom->get_ping();
+ w_courtroom->set_window_title(window_title + " [ping:" + QString::number(last_ping) + "]");
+ }
+ }
+ else if (header == "decryptor") {
if (f_contents.size() == 0)
goto end;
@@ -250,7 +256,7 @@ void AOApplication::server_packet_received(AOPacket *p_packet)
courtroom_loaded = false;
- QString window_title = tr("Attorney Online 2");
+ window_title = tr("Attorney Online 2");
int selected_server = w_lobby->get_selected_server();
QString server_address = "", server_name = "";