8 #include <QCoreApplication>
10 QHash<QString,Location *> Locations::locationHash;
11 bool Locations::initialised = false;
13 Locations::Locations()
21 Locations::~Locations()
25 bool Locations::addLocation( Location *location )
29 // if it's valid now, save the setting
30 if ( location->isValid() ) {
31 saveLocation( location );
34 if ( !locationHash.contains( location->label() ) ) {
35 qDebug() << "Adding location" << location->label();
36 locationHash[ location->label() ] = location;
39 qDebug() << "FAILED to add location" << location->label();
45 void Locations::restoreLocations()
49 settings.beginGroup( "Locations" );
50 QStringList labels = settings.childGroups();
52 for( int i=0; i<labels.size(); ++i ) {
53 QString label = labels[i];
54 settings.beginGroup( label );
55 QString x = settings.value( "x" ).toString();
56 QString y = settings.value( "y" ).toString();
57 QString address = settings.value( "address" ).toString();
60 qDebug() << "restoring" << label;
61 Location *location = new Location( x, y, label );
62 location->setAddress( address );
64 locationHash[ label ] = location;
70 void Locations::saveLocation( Location *location )
72 qDebug() << "Saving location" << location->label();
74 settings.beginGroup( "Locations" );
75 settings.beginGroup( location->label() );
76 settings.setValue( "address", location->address() );
77 settings.setValue( "x", location->x() );
78 settings.setValue( "y", location->y() );
83 void Locations::saveLocation()
85 Location *location = qobject_cast<Location*>(sender());
87 saveLocation( location );
90 Location *Locations::location( const QString &label )
92 qDebug() << "requesting location" << label;
95 if ( locationHash.contains( label ) ) {
96 qDebug() << "found location" << label;
97 retVal = locationHash[ label ];
99 qDebug() << "didn't find location" << label;