X-Git-Url: http://git.maemo.org/git/?p=jenirok;a=blobdiff_plain;f=src%2Fgui%2Fresultwindow.cpp;h=605ecb1a88a21e01babf5271c90a4b88b22520aa;hp=179eac89ca1941edc9c6bbd130a738786772f557;hb=d446f61d869683cce860e717726805fa859ebbfc;hpb=cf883c1283eb6b096592ef875a32696fee9dd6ff diff --git a/src/gui/resultwindow.cpp b/src/gui/resultwindow.cpp index 179eac8..605ecb1 100644 --- a/src/gui/resultwindow.cpp +++ b/src/gui/resultwindow.cpp @@ -25,14 +25,21 @@ #include "resultwindow.h" #include "settings.h" #include "db.h" +#include "cache.h" ResultWindow::ResultWindow(QWidget* parent): QMainWindow(parent), -eniro_(0), list_(0) +eniro_(0), list_(0), connectionManager_(0) { setAttribute(Qt::WA_Maemo5StackedWindow); setWindowTitle(tr("Search results")); } +ResultWindow::~ResultWindow() +{ + delete connectionManager_; + connectionManager_ = 0; +} + void ResultWindow::search(SearchDialog::SearchDetails& details) { if(!list_) @@ -54,6 +61,7 @@ void ResultWindow::search(SearchDialog::SearchDetails& details) if(!eniro_) { eniro_ = new Eniro(selectedSite, this); + eniro_->setTimeout(REQUEST_TIMEOUT); connect(eniro_, SIGNAL(resultAvailable(Eniro::Result const&, Eniro::SearchDetails const&)), @@ -95,6 +103,13 @@ void ResultWindow::search(SearchDialog::SearchDetails& details) show(); setAttribute(Qt::WA_Maemo5ShowProgressIndicator, true); + if(!connectionManager_) + { + connectionManager_ = new ConnectionManager(); + } + + connectionManager_->connect(); + eniro_->abort(); eniro_->search(Eniro::SearchDetails(details.name, details.location, type)); @@ -105,6 +120,11 @@ void ResultWindow::resultAvailable(Eniro::Result const& result, { Q_UNUSED(details); + if(!result.number.isEmpty()) + { + Cache::instance().addItem(result); + } + QString row = result.name; if(!result.street.isEmpty()) @@ -137,7 +157,14 @@ void ResultWindow::requestFinished(QVector const& results, if(error) { - QMessageBox::critical(this, tr("Error"), eniro_->errorString()); + QString errorString = eniro_->errorString(); + + if(errorString.isEmpty()) + { + errorString = tr("Unknown error"); + } + + QMessageBox::critical(this, tr("Error"), errorString); } if(results.size() == 0)