diff --git a/include/networkmanager.h b/include/networkmanager.h index 052bc9b..3e37222 100644 --- a/include/networkmanager.h +++ b/include/networkmanager.h @@ -55,7 +55,7 @@ signals: void server_connected(bool state); public slots: - void get_server_list(const std::function &cb); + void get_server_list(); void ship_server_packet(QString p_packet); void join_to_server(); void handle_server_packet(const QString& p_data); @@ -64,8 +64,7 @@ public slots: const std::function &cb); void send_heartbeat(); private slots: - void ms_request_finished(QNetworkReply *reply, - const std::function &cb); + void ms_request_finished(QNetworkReply *reply); private: QString get_user_agent() const { diff --git a/src/lobby.cpp b/src/lobby.cpp index a705b26..85cc744 100644 --- a/src/lobby.cpp +++ b/src/lobby.cpp @@ -229,7 +229,7 @@ void Lobby::loadUI() void Lobby::on_refresh_released() { - net_manager->get_server_list(std::bind(&Lobby::list_servers, this)); + net_manager->get_server_list(); get_motd(); list_favorites(); } diff --git a/src/main.cpp b/src/main.cpp index 5b696fe..4528bc4 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -56,7 +56,7 @@ int main(int argc, char *argv[]) main_app.installTranslator(&appTranslator); main_app.construct_lobby(); - main_app.net_manager->get_server_list(std::bind(&Lobby::list_servers, main_app.w_lobby)); + main_app.net_manager->get_server_list(); main_app.net_manager->send_heartbeat(); main_app.w_lobby->show(); return main_app.exec(); diff --git a/src/networkmanager.cpp b/src/networkmanager.cpp index 96e262a..b7e2810 100644 --- a/src/networkmanager.cpp +++ b/src/networkmanager.cpp @@ -29,18 +29,17 @@ NetworkManager::NetworkManager(AOApplication *parent) : QObject(parent) heartbeat_timer->start(heartbeat_interval); } -void NetworkManager::get_server_list(const std::function &cb) +void NetworkManager::get_server_list() { QNetworkRequest req(QUrl(ms_baseurl + "/servers")); req.setRawHeader("User-Agent", get_user_agent().toUtf8()); QNetworkReply *reply = http->get(req); connect(reply, &QNetworkReply::finished, - this, std::bind(&NetworkManager::ms_request_finished, this, reply, cb)); + this, std::bind(&NetworkManager::ms_request_finished, this, reply)); } -void NetworkManager::ms_request_finished(QNetworkReply *reply, - const std::function &cb) +void NetworkManager::ms_request_finished(QNetworkReply *reply) { QJsonDocument json = QJsonDocument::fromJson(reply->readAll()); if (json.isNull()) { @@ -72,8 +71,9 @@ void NetworkManager::ms_request_finished(QNetworkReply *reply, } ao_app->set_server_list(server_list); - cb(); - + if (ao_app->lobby_constructed) { + ao_app->w_lobby->list_servers(); + } reply->deleteLater(); }