[fix] show connection status windows when connection status changed

This commit is contained in:
dijunkun
2024-07-24 16:27:58 +08:00
parent a99a4230af
commit b9c5db41ab
3 changed files with 10 additions and 7 deletions

View File

@@ -4,7 +4,7 @@
#include "render.h" #include "render.h"
int Render::ConnectionStatusWindow() { int Render::ConnectionStatusWindow() {
if (connect_button_pressed_) { if (show_connection_status_window_) {
const ImGuiViewport *viewport = ImGui::GetMainViewport(); const ImGuiViewport *viewport = ImGui::GetMainViewport();
ImGui::SetNextWindowPos(ImVec2((viewport->WorkSize.x - viewport->WorkPos.x - ImGui::SetNextWindowPos(ImVec2((viewport->WorkSize.x - viewport->WorkPos.x -
@@ -41,6 +41,7 @@ int Render::ConnectionStatusWindow() {
ImGui::SetCursorPosY(connection_status_window_height_ * 2 / 3); ImGui::SetCursorPosY(connection_status_window_height_ * 2 / 3);
} else if (ConnectionStatus::Connected == connection_status_) { } else if (ConnectionStatus::Connected == connection_status_) {
text = localization::p2p_connected[localization_language_index_]; text = localization::p2p_connected[localization_language_index_];
show_connection_status_window_ = false;
} else if (ConnectionStatus::Disconnected == connection_status_) { } else if (ConnectionStatus::Disconnected == connection_status_) {
text = localization::p2p_disconnected[localization_language_index_]; text = localization::p2p_disconnected[localization_language_index_];
ImGui::SetCursorPosX(connection_status_window_width_ * 3 / 7); ImGui::SetCursorPosX(connection_status_window_width_ * 3 / 7);
@@ -48,7 +49,7 @@ int Render::ConnectionStatusWindow() {
// Cancel // Cancel
if (ImGui::Button( if (ImGui::Button(
localization::cancel[localization_language_index_].c_str())) { localization::cancel[localization_language_index_].c_str())) {
connect_button_pressed_ = false; show_connection_status_window_ = false;
} }
} else if (ConnectionStatus::Failed == connection_status_) { } else if (ConnectionStatus::Failed == connection_status_) {
text = localization::p2p_failed[localization_language_index_]; text = localization::p2p_failed[localization_language_index_];
@@ -57,7 +58,7 @@ int Render::ConnectionStatusWindow() {
// Cancel // Cancel
if (ImGui::Button( if (ImGui::Button(
localization::cancel[localization_language_index_].c_str())) { localization::cancel[localization_language_index_].c_str())) {
connect_button_pressed_ = false; show_connection_status_window_ = false;
} }
} else if (ConnectionStatus::Closed == connection_status_) { } else if (ConnectionStatus::Closed == connection_status_) {
text = localization::p2p_closed[localization_language_index_]; text = localization::p2p_closed[localization_language_index_];
@@ -66,7 +67,7 @@ int Render::ConnectionStatusWindow() {
// Cancel // Cancel
if (ImGui::Button( if (ImGui::Button(
localization::ok[localization_language_index_].c_str())) { localization::ok[localization_language_index_].c_str())) {
connect_button_pressed_ = false; show_connection_status_window_ = false;
} }
} else if (ConnectionStatus::IncorrectPassword == connection_status_) { } else if (ConnectionStatus::IncorrectPassword == connection_status_) {
if (!password_validating_) { if (!password_validating_) {
@@ -91,7 +92,7 @@ int Render::ConnectionStatusWindow() {
// OK // OK
if (ImGui::Button( if (ImGui::Button(
localization::ok[localization_language_index_].c_str())) { localization::ok[localization_language_index_].c_str())) {
connect_button_pressed_ = true; show_connection_status_window_ = true;
password_validating_ = true; password_validating_ = true;
JoinConnection(peer_reserved_ ? peer_reserved_ : peer_, remote_id_, JoinConnection(peer_reserved_ ? peer_reserved_ : peer_, remote_id_,
remote_password_.c_str()); remote_password_.c_str());
@@ -102,7 +103,7 @@ int Render::ConnectionStatusWindow() {
if (ImGui::Button( if (ImGui::Button(
localization::cancel[localization_language_index_].c_str())) { localization::cancel[localization_language_index_].c_str())) {
remote_password_ = ""; remote_password_ = "";
connect_button_pressed_ = false; show_connection_status_window_ = false;
} }
} else { } else {
text = localization::validate_password[localization_language_index_]; text = localization::validate_password[localization_language_index_];
@@ -118,7 +119,7 @@ int Render::ConnectionStatusWindow() {
// Cancel // Cancel
if (ImGui::Button( if (ImGui::Button(
localization::cancel[localization_language_index_].c_str())) { localization::cancel[localization_language_index_].c_str())) {
connect_button_pressed_ = false; show_connection_status_window_ = false;
} }
} }

View File

@@ -183,6 +183,7 @@ class Render {
bool regenerate_password_ = false; bool regenerate_password_ = false;
bool streaming_ = false; bool streaming_ = false;
bool show_about_window_ = false; bool show_about_window_ = false;
bool show_connection_status_window_ = false;
double copy_start_time_ = 0; double copy_start_time_ = 0;
double regenerate_password_start_time_ = 0; double regenerate_password_start_time_ = 0;

View File

@@ -174,6 +174,7 @@ void Render::OnSignalStatusCb(SignalStatus status, void *user_data) {
void Render::OnConnectionStatusCb(ConnectionStatus status, void *user_data) { void Render::OnConnectionStatusCb(ConnectionStatus status, void *user_data) {
Render *render = (Render *)user_data; Render *render = (Render *)user_data;
render->connection_status_ = status; render->connection_status_ = status;
render->show_connection_status_window_ = true;
if (ConnectionStatus::Connecting == status) { if (ConnectionStatus::Connecting == status) {
render->connection_status_str_ = "Connecting"; render->connection_status_str_ = "Connecting";
} else if (ConnectionStatus::Connected == status) { } else if (ConnectionStatus::Connected == status) {