Revert "Removed onlinepollerthread"
[irwi] / src / selectremotedlg.cpp
index 3f83249..dbc8115 100644 (file)
@@ -2,6 +2,7 @@
 
 #include "remote.h"
 #include "remotelistwidgetitem.h"
+#include "onlinepollerthread.h"
 
 #include <QHBoxLayout>
 #include <QLabel>
@@ -17,6 +18,7 @@
 SelectRemoteDlg::SelectRemoteDlg(QWidget *parent)
     : QDialog(parent)
 {
+    onlinePollerThread = NULL;
     this->setWindowTitle(tr("Select remote"));
     this->setMinimumHeight(320);
 
@@ -53,6 +55,12 @@ SelectRemoteDlg::SelectRemoteDlg(QWidget *parent)
 SelectRemoteDlg::~SelectRemoteDlg()
 {
     delete layout;
+    if (onlinePollerThread != NULL) {
+        onlinePollerThread->stop();
+        onlinePollerThread->wait();
+        delete onlinePollerThread;
+        onlinePollerThread = NULL;
+    }
 }
 
 void SelectRemoteDlg::setDB(RemoteDB *db)
@@ -108,11 +116,25 @@ void SelectRemoteDlg::downloadRemote()
     }
 }
 
+void SelectRemoteDlg::getDB()
+{
+    if (onlinePollerThread != NULL) {
+        onlinePollerThread->stop();
+        onlinePollerThread->wait();
+        delete onlinePollerThread;
+        onlinePollerThread = NULL;
+    }
+    remoteDBMgr.getDBAsync();
+}
+
 void SelectRemoteDlg::refreshDB()
 {
     setBusy(true);
     if (onlinePollerThread != NULL) {
+        onlinePollerThread->stop();
+        onlinePollerThread->wait();
         delete onlinePollerThread;
+        onlinePollerThread = NULL;
     }
     onlinePollerThread = new OnlinePollerThread();
     connect(onlinePollerThread, SIGNAL(online()),