author | zecke <zecke> | 2004-10-22 15:15:01 (UTC) |
---|---|---|
committer | zecke <zecke> | 2004-10-22 15:15:01 (UTC) |
commit | f2a2eca1870e1fd88c82a6ccb039610949daa72c (patch) (side-by-side diff) | |
tree | 9ca204b4cddfee6272cfc8d5e55b27b60a0743d0 | |
parent | 0a3ab70a5be70bb04691a2a566ce63719e57f83e (diff) | |
download | opie-f2a2eca1870e1fd88c82a6ccb039610949daa72c.zip opie-f2a2eca1870e1fd88c82a6ccb039610949daa72c.tar.gz opie-f2a2eca1870e1fd88c82a6ccb039610949daa72c.tar.bz2 |
Write the hardware clock after setting the datetime. This way we can
gurantee it is set while opiealarm has not run.
-rw-r--r-- | noncore/settings/netsystemtime/timetabwidget.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/noncore/settings/netsystemtime/timetabwidget.cpp b/noncore/settings/netsystemtime/timetabwidget.cpp index 1ea460e..3cc127d 100644 --- a/noncore/settings/netsystemtime/timetabwidget.cpp +++ b/noncore/settings/netsystemtime/timetabwidget.cpp @@ -175,64 +175,70 @@ void TimeTabWidget::setDateTime( const QDateTime &dt ) cbAmpm->setCurrentItem( ValuePM ); } else { cbAmpm->setCurrentItem( ValueAM ); } if ( show_hour == 0 ) show_hour = 12; sbHour->setValue( show_hour ); } else { sbHour->setValue( t.hour() ); } sbMin->setValue( t.minute() ); // Set date btnDate->setDate( dt.date() ); } void TimeTabWidget::setSystemTime( const QDateTime &dt ) { // Set system clock if ( dt.isValid() ) { struct timeval myTv; int t = TimeConversion::toUTC( dt ); myTv.tv_sec = t; myTv.tv_usec = 0; if ( myTv.tv_sec != -1 ) ::settimeofday( &myTv, 0 ); + + /* + * Commit the datetime to the 'hardware' + * as Global::writeHWClock() is a NOOP with Opie Alarm + */ + system("/sbin/hwclock --systohc --utc"); } } void TimeTabWidget::slotUse12HourTime( int i ) { use12HourTime = (i == 1); cbAmpm->setEnabled( use12HourTime ); int show_hour = sbHour->value(); if ( use12HourTime ) { sbHour->setMinValue( 1 ); sbHour->setMaxValue( 12 ); if ( show_hour >= 12 ) { show_hour -= 12; cbAmpm->setCurrentItem( ValuePM ); } else { cbAmpm->setCurrentItem( ValueAM ); } if ( show_hour == 0 ) show_hour = 12; } else { sbHour->setMinValue( 0 ); sbHour->setMaxValue( 23 ); |