diff --git a/include/lobby.h b/include/lobby.h index 1868c8f2d..43b59f2fd 100644 --- a/include/lobby.h +++ b/include/lobby.h @@ -19,7 +19,6 @@ class AOApplication; class Lobby : public QMainWindow { Q_OBJECT - public: Lobby(AOApplication *p_ao_app, NetworkManager *p_net_man = nullptr); ~Lobby(); @@ -28,9 +27,7 @@ class Lobby : public QMainWindow { void set_server_description(const QString &server_description); void list_servers(); int get_selected_server(); - -signals: - + int pageSelected(); private: AOApplication *ao_app; @@ -83,6 +80,8 @@ class Lobby : public QMainWindow { void loadUI(); + TabPage current_page = SERVER; + private slots: void on_tab_changed(int index); void on_refresh_released(); diff --git a/src/lobby.cpp b/src/lobby.cpp index aff169ebe..405b1facf 100644 --- a/src/lobby.cpp +++ b/src/lobby.cpp @@ -36,6 +36,7 @@ void Lobby::on_tab_changed(int index) { switch (index) { case SERVER: + current_page = SERVER; ui_add_to_favorite_button->setVisible(true); ui_remove_from_favorites_button->setVisible(false); ui_add_server_button->setVisible(false); @@ -44,6 +45,7 @@ void Lobby::on_tab_changed(int index) reset_selection(); break; case FAVORITES: + current_page = FAVORITES; ui_add_to_favorite_button->setVisible(false); ui_remove_from_favorites_button->setVisible(true); ui_add_server_button->setVisible(true); @@ -52,6 +54,7 @@ void Lobby::on_tab_changed(int index) reset_selection(); break; case DEMOS: + current_page = DEMOS; ui_add_to_favorite_button->setVisible(false); ui_add_server_button->setVisible(false); ui_remove_from_favorites_button->setVisible(false); @@ -81,6 +84,11 @@ int Lobby::get_selected_server() return -1; } +int Lobby::pageSelected() +{ + return current_page; +} + void Lobby::reset_selection() { last_index = -1; diff --git a/src/packet_distribution.cpp b/src/packet_distribution.cpp index 474686ffe..395ce2f5b 100644 --- a/src/packet_distribution.cpp +++ b/src/packet_distribution.cpp @@ -175,26 +175,34 @@ void AOApplication::server_packet_received(AOPacket *p_packet) courtroom_loaded = false; int selected_server = w_lobby->get_selected_server(); - QString server_address = "", server_name = ""; - if (true) { - if (selected_server >= 0 && selected_server < server_list.size()) { - auto info = server_list.at(selected_server); - server_name = info.name; - server_address = - QString("%1:%2").arg(info.ip, QString::number(info.port)); - window_title = server_name; - } + switch (w_lobby->pageSelected()) { + case 0: + if (selected_server >= 0 && selected_server < server_list.size()) { + auto info = server_list.at(selected_server); + server_name = info.name; + server_address = + QString("%1:%2").arg(info.ip, QString::number(info.port)); + window_title = server_name; + } + break; + case 1: + { + QVector favorite_list = Options::getInstance().favorites(); + if (selected_server >= 0 && selected_server < favorite_list.size()) { + auto info = favorite_list.at(selected_server); + server_name = info.name; + server_address = + QString("%1:%2").arg(info.ip, QString::number(info.port)); + window_title = server_name; + } } - else { - QVector favorite_list = Options::getInstance().favorites(); - if (selected_server >= 0 && selected_server < favorite_list.size()) { - auto info = favorite_list.at(selected_server); - server_name = info.name; - server_address = - QString("%1:%2").arg(info.ip, QString::number(info.port)); - window_title = server_name; - } + break; + case 2: + window_title = "Local Demo Recording"; + break; + default: + break; } if (courtroom_constructed)