X-Git-Url: http://git.maemo.org/git/?a=blobdiff_plain;ds=sidebyside;f=src%2Fcommon%2Fmobil1881.cpp;h=a51d29377f243994ec7861d2d20680c835ddd955;hb=f99718e69b270a89094113a26b22c694b79382f0;hp=ba1907a389aef10df42cbd66553b74cbc7d9e73d;hpb=d187495fd3566da1ee1eb94cc313c2f561a0fac5;p=jenirok diff --git a/src/common/mobil1881.cpp b/src/common/mobil1881.cpp index ba1907a..a51d293 100644 --- a/src/common/mobil1881.cpp +++ b/src/common/mobil1881.cpp @@ -47,25 +47,42 @@ void Mobil1881::search(Source::SearchDetails const& details) { resetTimeout(); - int id = sendQuery(details, 1); - SearchData* newData = new SearchData; newData->details = details; - newData->searchIds.insert(id); newData->currentPage = 1; + newData->finishedSearches = 0; + + if(details.type == Source::BOTH) + { + newData->totalSearches = 2; + Source::SearchDetails tmpDetails = details; + tmpDetails.type = Source::PERSONS; + int id1 = sendQuery(tmpDetails, 1); + tmpDetails.type = Source::YELLOW_PAGES; + int id2 = sendQuery(tmpDetails, 1); + newData->searchIds.insert(id1); + newData->searchIds.insert(id2); + } + else + { + newData->totalSearches = 1; + int id = sendQuery(details, 1); + newData->searchIds.insert(id); + } pendingSearches_.push_back(newData); } -void Mobil1881::handleHttpData(int id, QString const& data) +void Mobil1881::handleHttpData(int id, QByteArray const& data) { + QString decoded = QString::fromUtf8(data.data()); + for(int i = 0; i < pendingSearches_.size(); i++) { if(pendingSearches_.at(i) && pendingSearches_.at(i)->searchIds.find(id) != pendingSearches_.at(i)->searchIds.end()) { - - addNumbers(pendingSearches_.at(i), data, i); + addNumbers(pendingSearches_.at(i), decoded, i); break; } } @@ -78,7 +95,6 @@ void Mobil1881::handleHttpError(int id) if(pendingSearches_.at(i) && pendingSearches_.at(i)->searchIds.find(id) != pendingSearches_.at(i)->searchIds.end()) { - setError(Source::CONNECTION_FAILURE, http_.errorString()); emitRequestFinished(pendingSearches_.at(i), true, i); break; @@ -90,6 +106,14 @@ void Mobil1881::addNumbers(SearchData* searchData, QString const& data, int index) { + if(data.isEmpty()) + { + qDebug() << "Server returned no data"; + setError(CONNECTION_FAILURE, "Server returned no data"); + emitRequestFinished(searchData, true, index); + return; + } + if(data.indexOf("Last ned vCard") > 0) { addOnlyNumber(searchData, data, index); @@ -97,10 +121,10 @@ void Mobil1881::addNumbers(SearchData* searchData, } int pos = 0; - QRegExp rx("