summaryrefslogtreecommitdiff
path: root/noncore/settings/netsystemtime/settime.cpp
Unidiff
Diffstat (limited to 'noncore/settings/netsystemtime/settime.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/settings/netsystemtime/settime.cpp25
1 files changed, 24 insertions, 1 deletions
diff --git a/noncore/settings/netsystemtime/settime.cpp b/noncore/settings/netsystemtime/settime.cpp
index 2cef6e8..b456012 100644
--- a/noncore/settings/netsystemtime/settime.cpp
+++ b/noncore/settings/netsystemtime/settime.cpp
@@ -189,17 +189,31 @@ SetDateTime::SetDateTime(QWidget *parent, const char *name, WFlags f )
189 this, SLOT(commitTime())); 189 this, SLOT(commitTime()));
190 190
191 QObject::connect( tz, SIGNAL( signalNewTz( const QString& ) ), 191 QObject::connect( tz, SIGNAL( signalNewTz( const QString& ) ),
192 timeButton, SLOT( slotTzChange( const QString& ) ) ); 192 timeButton, SLOT( slotTzChange( const QString& ) ) );
193 QObject::connect( tz, SIGNAL( signalNewTz( const QString& ) ), 193 QObject::connect( tz, SIGNAL( signalNewTz( const QString& ) ),
194 SLOT( tzChange( const QString& ) ) ); 194 SLOT( tzChange( const QString& ) ) );
195
196 QObject::connect( weekStartCombo, SIGNAL( activated ( int )),
197 SLOT(updateSystem(int ) ));
198 QObject::connect( ampmCombo, SIGNAL( activated ( int )),
199 SLOT(updateSystem(int ) ));
200 QObject::connect( dateFormatCombo, SIGNAL( activated ( int )),
201 SLOT(updateSystem(int ) ));
202 QObject::connect( clockAppletCombo, SIGNAL( activated ( int )),
203 SLOT(updateSystem(int ) ));
195} 204}
196 205
197SetDateTime::~SetDateTime() 206SetDateTime::~SetDateTime()
198{ 207{
208 writeSettings();
209
210}
199 211
212void SetDateTime::writeSettings()
213{
200 Config config("qpe"); 214 Config config("qpe");
201 config.setGroup( "Time" ); 215 config.setGroup( "Time" );
202 config.writeEntry( "AMPM", ampmCombo->currentItem() ); 216 config.writeEntry( "AMPM", ampmCombo->currentItem() );
203 config.writeEntry( "MONDAY", weekStartCombo->currentItem() ); 217 config.writeEntry( "MONDAY", weekStartCombo->currentItem() );
204 config.setGroup( "Date" ); 218 config.setGroup( "Date" );
205 DateFormat df = date_formats[dateFormatCombo->currentItem()]; 219 DateFormat df = date_formats[dateFormatCombo->currentItem()];
@@ -244,16 +258,22 @@ void SetDateTime::setTime(QDateTime dt)
244 cfg.writeEntry("time", t ); 258 cfg.writeEntry("time", t );
245 myTv.tv_usec = 0; 259 myTv.tv_usec = 0;
246 260
247 if ( myTv.tv_sec != -1 ) 261 if ( myTv.tv_sec != -1 )
248 ::settimeofday( &myTv, 0 ); 262 ::settimeofday( &myTv, 0 );
249 Global::writeHWClock(); 263 Global::writeHWClock();
264}
265
266void SetDateTime::updateSystem(int i)
267{
268 qDebug("SetDateTime::updateSystem(int %i)",i);
269 writeSettings();
250 // since time has changed quickly load in the datebookdb 270 // since time has changed quickly load in the datebookdb
251 // to allow the alarm server to get a better grip on itself 271 // to allow the alarm server to get a better grip on itself
252 // (example re-trigger alarms for when we travel back in time) 272 // (example re-trigger alarms for when we travel back in time)
253 DateBookDB db; 273 // DateBookDB db;
254 274
255 // set the timezone for everyone else... 275 // set the timezone for everyone else...
256 QCopEnvelope setTimeZone( "QPE/System", "timeChange(QString)" ); 276 QCopEnvelope setTimeZone( "QPE/System", "timeChange(QString)" );
257 setTimeZone << tz->currentZone(); 277 setTimeZone << tz->currentZone();
258 278
259 // AM/PM setting and notify time changed 279 // AM/PM setting and notify time changed
@@ -273,23 +293,25 @@ void SetDateTime::setTime(QDateTime dt)
273 enableScreenSaver << -1 << -1 << -1; 293 enableScreenSaver << -1 << -1 << -1;
274 294
275} 295}
276 296
277void SetDateTime::tzChange( const QString &tz ) 297void SetDateTime::tzChange( const QString &tz )
278{ 298{
299 qDebug("SetDateTime::tzChange");
279 // set the TZ get the time and leave gracefully... 300 // set the TZ get the time and leave gracefully...
280 QString strSave; 301 QString strSave;
281 strSave = getenv( "TZ" ); 302 strSave = getenv( "TZ" );
282 setenv( "TZ", tz, 1 ); 303 setenv( "TZ", tz, 1 );
283 304
284 QDate d = QDate::currentDate(); 305 QDate d = QDate::currentDate();
285 // reset the time. 306 // reset the time.
286 if ( !strSave.isNull() ) { 307 if ( !strSave.isNull() ) {
287 setenv( "TZ", strSave, 1 ); 308 setenv( "TZ", strSave, 1 );
288 } 309 }
289 dateButton->setDate( d ); 310 dateButton->setDate( d );
311 updateSystem();
290} 312}
291 313
292void SetDateTime::formatChanged(int i) 314void SetDateTime::formatChanged(int i)
293{ 315{
294 dateButton->setDateFormat(date_formats[i]); 316 dateButton->setDateFormat(date_formats[i]);
295} 317}
@@ -427,12 +449,13 @@ void SetTime::checkedPM( int c )
427 449
428 hour = show_hour; 450 hour = show_hour;
429} 451}
430 452
431void SetTime::slotTzChange( const QString &tz ) 453void SetTime::slotTzChange( const QString &tz )
432{ 454{
455 qDebug("SetTime::slotTzChange");
433 // set the TZ get the time and leave gracefully... 456 // set the TZ get the time and leave gracefully...
434 QString strSave; 457 QString strSave;
435 strSave = getenv( "TZ" ); 458 strSave = getenv( "TZ" );
436 setenv( "TZ", tz, 1 ); 459 setenv( "TZ", tz, 1 );
437 460
438 QTime t = QTime::currentTime(); 461 QTime t = QTime::currentTime();