From: Torste Aikio Date: Tue, 6 Jul 2010 11:08:09 +0000 (+0300) Subject: Connection selection dialog bug fix for selectremotedlg X-Git-Url: https://vcs.maemo.org/git/?a=commitdiff_plain;h=d345cf9458da222e89d4781eb9cdb3d1d95728d9;hp=cde3264e4d1cd75052429a33d93aeb1796f21cd2;p=irwi Connection selection dialog bug fix for selectremotedlg --- diff --git a/src/remotedbmgr.h b/src/remotedbmgr.h index 11765d8..95750fa 100644 --- a/src/remotedbmgr.h +++ b/src/remotedbmgr.h @@ -15,6 +15,7 @@ public: RemoteDBMgr(); ~RemoteDBMgr(); +public slots: void getDBAsync(); signals: diff --git a/src/selectremotedlg.cpp b/src/selectremotedlg.cpp index 2ffc121..6b191a1 100644 --- a/src/selectremotedlg.cpp +++ b/src/selectremotedlg.cpp @@ -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) diff --git a/src/selectremotedlg.h b/src/selectremotedlg.h index 8433318..109a7ef 100644 --- a/src/selectremotedlg.h +++ b/src/selectremotedlg.h @@ -29,6 +29,7 @@ public: public slots: void refreshDB(); + void getDB(); private slots: void alphabetItemChanged(QListWidgetItem *current, @@ -53,6 +54,7 @@ private: QListWidget *modelList; QPushButton *downloadBtn; RemoteDB *remoteDB; + OnlinePollerThread *onlinePollerThread; void setBusy(bool busy = true); };