8 #include <QCoreApplication>
10 QHash<QString,Location *> Locations::locationHash;
11 bool Locations::initialised = false;
13 Locations::Locations()
16 QCoreApplication::setOrganizationName("ZouBa");
17 QCoreApplication::setOrganizationDomain("zouba.yi.org");
18 QCoreApplication::setOrganizationName("ZouBa");
25 Locations::~Locations()
29 bool Locations::addLocation( Location *location )
33 // if it's valid now, save the setting
34 if ( location->isValid() ) {
35 saveLocation( location );
38 if ( !locationHash.contains( location->label() ) ) {
39 qDebug() << "Adding location" << location->label();
40 locationHash[ location->label() ] = location;
43 qDebug() << "FAILED to add location" << location->label();
49 void Locations::restoreLocations()
53 settings.beginGroup( "Locations" );
54 QStringList labels = settings.childGroups();
56 for( int i=0; i<labels.size(); ++i ) {
57 QString label = labels[i];
58 settings.beginGroup( label );
59 QString x = settings.value( "x" ).toString();
60 QString y = settings.value( "y" ).toString();
61 QString address = settings.value( "address" ).toString();
64 qDebug() << "restoring" << label;
65 Location *location = new Location( x, y, label );
66 location->setAddress( address );
68 locationHash[ label ] = location;
74 void Locations::saveLocation( Location *location )
76 qDebug() << "Saving location" << location->label();
78 settings.beginGroup( "Locations" );
79 settings.beginGroup( location->label() );
80 settings.setValue( "address", location->address() );
81 settings.setValue( "x", location->x() );
82 settings.setValue( "y", location->y() );
87 void Locations::saveLocation()
89 Location *location = qobject_cast<Location*>(sender());
91 saveLocation( location );
94 Location *Locations::location( const QString &label )
96 qDebug() << "requesting location" << label;
99 if ( locationHash.contains( label ) ) {
100 qDebug() << "found location" << label;
101 retVal = locationHash[ label ];
103 qDebug() << "didn't find location" << label;