From 3dec84a91b00b50c3d07c0eb68238173bd11cdd1 Mon Sep 17 00:00:00 2001 From: Antonio Maiorano Date: Tue, 9 Oct 2018 22:02:59 -0400 Subject: [PATCH] Fix infinite polling for usb devices after the "add to whitelist" dialog has been opened once Problem is that USBDeviceAddToWhitelistDialog starts a timer once created to poll for devices every second. In Qt, closing a heap-allocated dialog doesn't delete it, so it keeps on polling. This fix is to allocate dialog on the stack, then use "exec" to run it modally without returning. Once closed, the stack instance will get destroyed, thus killing the timer. --- Source/Core/DolphinQt/Settings/WiiPane.cpp | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/Source/Core/DolphinQt/Settings/WiiPane.cpp b/Source/Core/DolphinQt/Settings/WiiPane.cpp index 8865686f82..6d2eced4cb 100644 --- a/Source/Core/DolphinQt/Settings/WiiPane.cpp +++ b/Source/Core/DolphinQt/Settings/WiiPane.cpp @@ -249,11 +249,10 @@ void WiiPane::ValidateSelectionState() void WiiPane::OnUSBWhitelistAddButton() { - USBDeviceAddToWhitelistDialog* usb_whitelist_dialog = new USBDeviceAddToWhitelistDialog(this); - connect(usb_whitelist_dialog, &USBDeviceAddToWhitelistDialog::accepted, this, + USBDeviceAddToWhitelistDialog usb_whitelist_dialog(this); + connect(&usb_whitelist_dialog, &USBDeviceAddToWhitelistDialog::accepted, this, &WiiPane::PopulateUSBPassthroughListWidget); - usb_whitelist_dialog->setModal(true); - usb_whitelist_dialog->show(); + usb_whitelist_dialog.exec(); } void WiiPane::OnUSBWhitelistRemoveButton()