X-Git-Url: https://vcs.maemo.org/git/?a=blobdiff_plain;f=src%2Fselectremotedlg.cpp;h=2ffc12144892071bcdb2054835ef602f871683ae;hb=69acdc9b27f4c01a707a431a5d8120a3797a9a73;hp=e1330f7ac05cbe4d04371865c68a81f09225ce64;hpb=0a01fd912bff0e58e989dc0d8e55ba7bd3773970;p=irwi diff --git a/src/selectremotedlg.cpp b/src/selectremotedlg.cpp index e1330f7..2ffc121 100644 --- a/src/selectremotedlg.cpp +++ b/src/selectremotedlg.cpp @@ -1,6 +1,7 @@ #include "selectremotedlg.h" #include "remote.h" +#include "remotelistwidgetitem.h" #include #include @@ -24,13 +25,17 @@ SelectRemoteDlg::SelectRemoteDlg(QWidget *parent) alphabetList = new QListWidget(this); alphabetList->setMaximumWidth(96); layout->addWidget(alphabetList); - connect(alphabetList, SIGNAL(currentItemChanged(QListWidgetItem*, QListWidgetItem*)), - this, SLOT(alphabetItemChanged(QListWidgetItem*, QListWidgetItem*))); + connect(alphabetList, + SIGNAL(currentItemChanged(QListWidgetItem*, QListWidgetItem*)), + this, + SLOT(alphabetItemChanged(QListWidgetItem*, QListWidgetItem*))); mfgList = new QListWidget(this); layout->addWidget(mfgList); - connect(mfgList, SIGNAL(currentItemChanged(QListWidgetItem*, QListWidgetItem*)), - this, SLOT(mfgItemChanged(QListWidgetItem*, QListWidgetItem*))); + connect(mfgList, + SIGNAL(currentItemChanged(QListWidgetItem*, QListWidgetItem*)), + this, + SLOT(mfgItemChanged(QListWidgetItem*, QListWidgetItem*))); modelList = new QListWidget(this); layout->addWidget(modelList); @@ -41,14 +46,22 @@ SelectRemoteDlg::SelectRemoteDlg(QWidget *parent) this, SLOT(downloadRemote())); this->setLayout(layout); + connect(&remoteDBMgr, SIGNAL(dbReady(RemoteDB*)), + this, SLOT(setDB(RemoteDB*))); } - SelectRemoteDlg::~SelectRemoteDlg() { delete layout; } +void SelectRemoteDlg::setDB(RemoteDB *db) +{ + remoteDB = db; + alphabetList->addItems(remoteDB->keys()); + setBusy(false); +} + void SelectRemoteDlg::setBusy(bool busy) { setAttribute(Qt::WA_Maemo5ShowProgressIndicator, busy); @@ -62,7 +75,7 @@ void SelectRemoteDlg::alphabetItemChanged(QListWidgetItem *current, modelList->clear(); if (current) { - mfgList->addItems(remoteDb[current->text()].keys()); + mfgList->addItems((*remoteDB)[current->text()].keys()); } } @@ -72,20 +85,38 @@ void SelectRemoteDlg::mfgItemChanged(QListWidgetItem *current, modelList->clear(); if (current) { - QList remotes = - remoteDb[alphabetList->currentItem()->text()][current->text()]; - foreach(Remote remote, remotes) { - modelList.addItem(RemoteListWidgetItem(remote)); + RemoteList remotes = + (*remoteDB)[alphabetList->currentItem()->text()][current->text()]; + foreach(Remote *remote, remotes) { + modelList->addItem(new RemoteListWidgetItem(remote)); } } } void SelectRemoteDlg::downloadRemote() { - RemoteListWidgetItem *currentModel = modelList->currentItem(); + RemoteListWidgetItem *currentModel = + static_cast(modelList->currentItem()); if (currentModel) { - currentModel->remote().saveFile(); + setBusy(); + connect(currentModel->remote(), SIGNAL(saveFinished()), + this, SLOT(close())); + currentModel->remote()->saveToFile(); + + emit remoteChanged(*(currentModel->remote())); } } +void SelectRemoteDlg::refreshDB() +{ + setBusy(true); + remoteDBMgr.getDBAsync(); +} + +void SelectRemoteDlg::showEvent(QShowEvent *event) +{ + refreshDB(); + QDialog::showEvent(event); +} +