Connection selection dialog bug fix for selectremotedlg
[irwi] / src / selectremotedlg.cpp
index 2ffc121..6b191a1 100644 (file)
@@ -53,6 +53,11 @@ SelectRemoteDlg::SelectRemoteDlg(QWidget *parent)
 SelectRemoteDlg::~SelectRemoteDlg()
 {
     delete layout;
+    if (onlinePollerThread != NULL) {
+        onlinePollerThread->quit();
+        delete onlinePollerThread;
+        onlinePollerThread = NULL;
+    }
 }
 
 void SelectRemoteDlg::setDB(RemoteDB *db)
@@ -108,10 +113,26 @@ void SelectRemoteDlg::downloadRemote()
     }
 }
 
+void SelectRemoteDlg::getDB()
+{
+    if (onlinePollerThread != NULL) {
+        onlinePollerThread->quit();
+        delete onlinePollerThread;
+        onlinePollerThread = NULL;
+    }
+    remoteDBMgr.getDBAsync();
+}
+
 void SelectRemoteDlg::refreshDB()
 {
     setBusy(true);
-    remoteDBMgr.getDBAsync();
+    if (onlinePollerThread != NULL) {
+        delete onlinePollerThread;
+    }
+    onlinePollerThread = new OnlinePollerThread(this);
+    connect(onlinePollerThread, SIGNAL(online()),
+            this, SLOT(getDB()));
+    onlinePollerThread->run();
 }
 
 void SelectRemoteDlg::showEvent(QShowEvent *event)