X-Git-Url: http://vcs.maemo.org/git/?a=blobdiff_plain;f=src%2Fgui%2Fdetailwindow.cpp;h=f7088c2baace112d19f86cabc8f9d469621e3b19;hb=71ac726571baae82abd4a8411f3f9e8f85dcfb0e;hp=92a6d73710fa6a7371b604b50c9ef62a93bf3710;hpb=d683b3ca259161ea7b5fb806b3bdab8fb1e96cb7;p=jenirok diff --git a/src/gui/detailwindow.cpp b/src/gui/detailwindow.cpp index 92a6d73..f7088c2 100644 --- a/src/gui/detailwindow.cpp +++ b/src/gui/detailwindow.cpp @@ -154,8 +154,11 @@ void DetailWindow::addToContacts() ContactManager cm; ContactManager::Contact contact; + getDetails(contact.street, contact.streetNumber, + contact.zipCode, contact.city); contact.name = addContactInput_->text(); contact.number = numberButton_->valueText(); + contact.country = country_; addDialog_->hide(); @@ -208,8 +211,6 @@ void DetailWindow::openMaps() { QString street = streetButton_->valueText(); QString city = cityButton_->valueText(); - QString number; - QString zip; if(street.isEmpty() && city.isEmpty()) { @@ -218,18 +219,36 @@ void DetailWindow::openMaps() setAttribute(Qt::WA_Maemo5ShowProgressIndicator, true); + OviMaps maps; + + OviMaps::Address addr; + getDetails(addr.street, addr.number, + addr.zipCode, addr.city); + addr.country = country_; + + if(!maps.openMaps(addr)) + { + QMaemo5InformationBox::information(this, tr("Unable to find coordinates for address.")); + } + + setAttribute(Qt::WA_Maemo5ShowProgressIndicator, false); +} + +void DetailWindow::getDetails(QString& street, QString& streetNumber, + QString& zip, QString& city) +{ int pos = 0; - QStringList words = street.split(" ", QString::SkipEmptyParts); + QString streetVal = streetButton_->valueText(); + QString cityVal = cityButton_->valueText(); + + QStringList words = streetVal.split(" ", QString::SkipEmptyParts); static QRegExp numberCheck("([0-9-]+)"); bool numberFound = false; bool numberSet = false; - QString streetStr; - QString numberStr; - for(int i = 0; i < words.size(); i++) { if(i > 0 && numberCheck.exactMatch(words.at(i))) @@ -241,41 +260,26 @@ void DetailWindow::openMaps() { if(!numberSet) { - numberStr = words.at(i); + streetNumber = words.at(i); numberSet = true; } } else { - streetStr += words.at(i) + " "; + street += words.at(i) + " "; } } - number = numberStr.trimmed(); - street = streetStr.trimmed(); + streetNumber = streetNumber.trimmed(); + street = street.trimmed(); - if((pos = city.indexOf(" ")) > 0) + if((pos = cityVal.indexOf(" ")) > 0) { - if(numberCheck.exactMatch(city.left(pos))) + if(numberCheck.exactMatch(cityVal.left(pos))) { - zip = city.left(pos); - city = city.mid(pos + 1); + zip = cityVal.left(pos); + city = cityVal.mid(pos + 1); } } - OviMaps maps; - - OviMaps::Address addr; - addr.street = street; - addr.number = number; - addr.zipCode = zip; - addr.city = city; - addr.country = country_; - - if(!maps.openMaps(addr)) - { - QMaemo5InformationBox::information(this, tr("Unable to find coordinates for address.")); - } - - setAttribute(Qt::WA_Maemo5ShowProgressIndicator, false); }