8 #include <QCoreApplication>
10 QHash<QString,Location *> Locations::locationHash;
11 bool Locations::initialised = false;
13 Locations::Locations()
16 qDebug() << "Initialising locations";
17 QCoreApplication::setOrganizationDomain("zouba.maemo.org");
18 QCoreApplication::setOrganizationName("ZouBa");
19 QCoreApplication::setApplicationName("ZouBa");
26 Locations::~Locations()
30 bool Locations::addLocation(Location *location)
34 // if it's valid now, save the setting
35 if (location->isValid()) {
36 saveLocation(location);
38 qDebug() << "Location not valid, so not saving";
41 if (!locationHash.contains(location->label())) {
42 qDebug() << "Adding location" << location->label();
43 locationHash[ location->label() ] = location;
46 qDebug() << "FAILED to add location" << location->label();
52 void Locations::restoreLocations()
56 settings.beginGroup("Locations");
57 QStringList labels = settings.childGroups();
59 for(int i=0; i<labels.size(); ++i) {
60 QString label = labels[i];
61 settings.beginGroup(label);
62 QString longitude = settings.value("longitude").toString();
63 QString latitude = settings.value("latitude").toString();
64 QString address = settings.value("address").toString();
67 qDebug() << "restoring" << label;
68 Location *location = new Location(longitude, latitude , label);
69 location->setAddress(address);
71 locationHash[ label ] = location;
77 void Locations::saveLocation(Location *location)
79 qDebug() << "Saving location" << location->label();
81 settings.beginGroup("Locations");
82 settings.beginGroup(location->label());
83 settings.setValue("address", location->address());
84 settings.setValue("longitude", location->longitude());
85 settings.setValue("latitude", location->latitude());
90 void Locations::saveLocation()
92 qDebug() << "Saving location (slot)";
93 Location *location = qobject_cast<Location*>(sender());
95 saveLocation(location);
98 Location *Locations::location(const QString &label)
100 qDebug() << "requesting location" << label;
101 Location *retVal = 0;
103 if (locationHash.contains(label)) {
104 qDebug() << "found location" << label;
105 retVal = locationHash[ label ];
107 qDebug() << "didn't find location" << label;