#include "remote.h"
#include "remotelistwidgetitem.h"
+#include "onlinepollerthread.h"
#include <QHBoxLayout>
#include <QLabel>
this, SLOT(downloadRemote()));
this->setLayout(layout);
- setBusy(true);
connect(&remoteDBMgr, SIGNAL(dbReady(RemoteDB*)),
this, SLOT(setDB(RemoteDB*)));
- remoteDBMgr.getDBAsync();
}
-
SelectRemoteDlg::~SelectRemoteDlg()
{
delete layout;
+ if (onlinePollerThread != NULL) {
+ onlinePollerThread->quit();
+ delete onlinePollerThread;
+ onlinePollerThread = NULL;
+ }
}
void SelectRemoteDlg::setDB(RemoteDB *db)
}
}
+void SelectRemoteDlg::getDB()
+{
+ if (onlinePollerThread != NULL) {
+ onlinePollerThread->quit();
+ delete onlinePollerThread;
+ onlinePollerThread = NULL;
+ }
+ remoteDBMgr.getDBAsync();
+}
+
+void SelectRemoteDlg::refreshDB()
+{
+ setBusy(true);
+ if (onlinePollerThread != NULL) {
+ delete onlinePollerThread;
+ }
+ onlinePollerThread = new OnlinePollerThread();
+ connect(onlinePollerThread, SIGNAL(online()),
+ this, SLOT(getDB()));
+ onlinePollerThread->run();
+}
+
+void SelectRemoteDlg::showEvent(QShowEvent *event)
+{
+ refreshDB();
+ QDialog::showEvent(event);
+}
+