SDK Client Disconnection Fixes

This commit is contained in:
B Horn 2022-06-12 04:43:15 +00:00 committed by Adam Honse
parent 003f4ba641
commit 937451d6e8
2 changed files with 11 additions and 9 deletions

View file

@ -157,15 +157,15 @@ void NetworkClient::StartClient()
void NetworkClient::StopClient() void NetworkClient::StopClient()
{ {
server_connected = false; if(server_connected)
client_active = false;
if (server_connected)
{ {
shutdown(client_sock, SD_RECEIVE); shutdown(client_sock, SD_RECEIVE);
closesocket(client_sock); closesocket(client_sock);
} }
client_active = false;
server_connected = false;
if(ListenThread) if(ListenThread)
{ {
ListenThread->join(); ListenThread->join();

View file

@ -1269,14 +1269,15 @@ void OpenRGBDialog2::UpdateDevicesList()
| Remove all remaining device tabs | | Remove all remaining device tabs |
\*-----------------------------------------------------*/ \*-----------------------------------------------------*/
unsigned int tab_count = ui->DevicesTabBar->count(); unsigned int tab_count = ui->DevicesTabBar->count();
unsigned int base_tab = controllers.size();
for(unsigned int tab_idx = controllers.size(); tab_idx < tab_count; tab_idx++) for(unsigned int tab_idx = controllers.size(); tab_idx < tab_count; tab_idx++)
{ {
QWidget* tab_widget = ui->DevicesTabBar->widget(tab_idx); QWidget* tab_widget = ui->DevicesTabBar->widget(base_tab);
if(dynamic_cast<OpenRGBPluginContainer*>(tab_widget) == nullptr) if(dynamic_cast<OpenRGBPluginContainer*>(tab_widget) == nullptr)
{ {
ui->DevicesTabBar->removeTab(tab_idx); ui->DevicesTabBar->removeTab(base_tab);
delete tab_widget; delete tab_widget;
} }
} }
@ -1293,17 +1294,18 @@ void OpenRGBDialog2::UpdateDevicesList()
\*-----------------------------------------------------*/ \*-----------------------------------------------------*/
for(int tab_idx = controllers.size(); tab_idx < ui->InformationTabBar->count(); tab_idx++) for(int tab_idx = controllers.size(); tab_idx < ui->InformationTabBar->count(); tab_idx++)
{ {
std::string type_str = ui->InformationTabBar->widget(tab_idx)->metaObject()->className(); std::string type_str = ui->InformationTabBar->widget(base_tab)->metaObject()->className();
if(type_str == "Ui::OpenRGBDeviceInfoPage") if(type_str == "Ui::OpenRGBDeviceInfoPage")
{ {
found = true; found = true;
QWidget* tab_widget = ui->InformationTabBar->widget(tab_idx); QWidget* tab_widget = ui->InformationTabBar->widget(base_tab);
ui->InformationTabBar->removeTab(tab_idx); ui->InformationTabBar->removeTab(base_tab);
delete tab_widget; delete tab_widget;
break; break;
} }
base_tab += 1;
} }
} }
} }