8 #include <QCoreApplication>
10 QHash<QString,Location *> Locations::locationHash;
11 Locations Locations::singleton;
13 Locations::Locations()
15 QCoreApplication::setOrganizationName("ZouBa");
16 QCoreApplication::setOrganizationDomain("zouba.yi.org");
17 QCoreApplication::setOrganizationName("ZouBa");
22 Locations::~Locations()
26 Locations *Locations::instance()
31 bool Locations::addLocation( Location *location )
35 // if it's valid now, save the setting
36 if ( location->isValid() ) {
37 saveLocation( location );
40 if ( !locationHash.contains( location->label() ) ) {
41 qDebug() << "Adding location" << location->label();
42 locationHash[ location->label() ] = location;
45 qDebug() << "FAILED to add location" << location->label();
51 void Locations::restoreLocations()
55 settings.beginGroup( "Locations" );
56 QStringList labels = settings.childGroups();
58 for( int i=0; i<labels.size(); ++i ) {
59 QString label = labels[i];
60 qDebug() << "restoring" << label;
61 settings.beginGroup( label );
62 QString x = settings.value( "x" ).toString();
63 QString y = settings.value( "y" ).toString();
66 Location *location = new Location( x, y, label );
67 location->setAddress( settings.value( "address" ).toString() );
69 locationHash[ location->label() ] = location;
75 void Locations::saveLocation( Location *location )
77 qDebug() << "Saving location" << location->label();
79 settings.beginGroup( "Locations" );
80 settings.beginGroup( location->label() );
81 settings.setValue( "address", location->address() );
82 settings.setValue( "x", location->x() );
83 settings.setValue( "y", location->y() );
88 void Locations::saveLocation()
90 Location *location = qobject_cast<Location*>(sender());
92 saveLocation( location );
95 Location *Locations::location( const QString &label )
97 qDebug() << "requesting location" << label;
100 if ( locationHash.contains( label ) ) {
101 qDebug() << "found location" << label;
102 retVal = locationHash[ label ];
104 qDebug() << "didn't find location" << label;