aboutsummaryrefslogtreecommitdiff
path: root/src/lobby.cpp
diff options
context:
space:
mode:
authorSkye Deving <76892045+skyedeving@users.noreply.github.com>2021-01-09 11:59:51 -0600
committerGitHub <noreply@github.com>2021-01-09 11:59:51 -0600
commit05dd086fff26f951de41702df19d74767c8f711c (patch)
tree8df4dffe00d4ba6a554a6eef138b5aaa7422c4b4 /src/lobby.cpp
parent883fa8547d2d650ab28fcc91169e1d0068760ac9 (diff)
Fix segfault in server list without a server selection (#374)
Also bumps C++ version to C++17 (C++1z).
Diffstat (limited to 'src/lobby.cpp')
-rw-r--r--src/lobby.cpp17
1 files changed, 10 insertions, 7 deletions
diff --git a/src/lobby.cpp b/src/lobby.cpp
index afbf221e..954c30a8 100644
--- a/src/lobby.cpp
+++ b/src/lobby.cpp
@@ -283,7 +283,10 @@ QString Lobby::get_chatlog()
int Lobby::get_selected_server()
{
- return ui_server_list->currentItem()->text(0).toInt();
+ if (auto item = ui_server_list->currentItem()) {
+ return item->text(0).toInt();
+ }
+ return -1;
}
void Lobby::set_loading_value(int p_value)
@@ -333,12 +336,12 @@ void Lobby::on_add_to_fav_pressed()
void Lobby::on_add_to_fav_released()
{
ui_add_to_fav->set_image("addtofav");
-
- // you cant add favorites from favorites m8
- if (!public_servers_selected)
- return;
-
- ao_app->add_favorite_server(get_selected_server());
+ if (public_servers_selected) {
+ int selection = get_selected_server();
+ if (selection > -1) {
+ ao_app->add_favorite_server(selection);
+ }
+ }
}
void Lobby::on_connect_pressed() { ui_connect->set_image("connect_pressed"); }