summaryrefslogtreecommitdiff
path: root/noncore
authorpaule <paule>2007-01-14 03:02:55 (UTC)
committer paule <paule>2007-01-14 03:02:55 (UTC)
commitca67251af3f46d685afac8dc6bfe452799c2546e (patch) (unidiff)
tree3e7ae7ed8d06e97c5556b52c5cf3826426cedd9b /noncore
parent81de0baf254bd2d935d0fdf035143e5510354fa7 (diff)
downloadopie-ca67251af3f46d685afac8dc6bfe452799c2546e.zip
opie-ca67251af3f46d685afac8dc6bfe452799c2546e.tar.gz
opie-ca67251af3f46d685afac8dc6bfe452799c2546e.tar.bz2
When selecting a time zone, warn the user if the time zone file in /usr/share/zoneinfo for the selected time zone is missing
Diffstat (limited to 'noncore') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/settings/netsystemtime/timetabwidget.cpp61
1 files changed, 35 insertions, 26 deletions
diff --git a/noncore/settings/netsystemtime/timetabwidget.cpp b/noncore/settings/netsystemtime/timetabwidget.cpp
index bcfbdf7..895514b 100644
--- a/noncore/settings/netsystemtime/timetabwidget.cpp
+++ b/noncore/settings/netsystemtime/timetabwidget.cpp
@@ -50,6 +50,8 @@
50#include <qpushbutton.h> 50#include <qpushbutton.h>
51#include <qscrollview.h> 51#include <qscrollview.h>
52#include <qspinbox.h> 52#include <qspinbox.h>
53#include <qmessagebox.h>
54#include <qfile.h>
53 55
54#include <stdlib.h> 56#include <stdlib.h>
55#include <sys/time.h> 57#include <sys/time.h>
@@ -277,33 +279,40 @@ void TimeTabWidget::slotWeekStartChanged( int monday )
277 279
278void TimeTabWidget::slotTZChanged( const QString &newtz ) 280void TimeTabWidget::slotTZChanged( const QString &newtz )
279{ 281{
280 // If controls have a valid date & time, update systemtime 282 // Check timezone has a valid file in /usr/share/zoneinfo
281 int hour = sbHour->value(); 283 if(!QFile::exists("/usr/share/zoneinfo/" + newtz)) {
282 if ( use12HourTime && cbAmpm->currentItem() == ValuePM ) 284 QMessageBox::warning(this, tr("Time zone file missing"),
283 hour += 12; 285 (tr("There is no time zone file for the\nselected time zone (%1).\nYou will need to install it before the\nsystem time zone can be set correctly.")).arg(newtz));
284 QDateTime dt( btnDate->date(), QTime ( hour, sbMin->value(), QTime::currentTime().second() ) );
285 setSystemTime( dt );
286 QCopEnvelope setTimeZone( "QPE/System", "timeChange(QString)" );
287 setTimeZone << newtz;
288
289 // Set system timezone
290 QString currtz = getenv( "TZ" );
291 setenv( "TZ", newtz, 1 );
292
293 // Get new date/time
294 hour = sbHour->value();
295 if ( use12HourTime && cbAmpm->currentItem() == ValuePM )
296 hour += 12;
297 dt = QDateTime::currentDateTime();
298
299 // Reset system timezone
300 if ( !currtz.isNull() )
301 {
302 setenv( "TZ", currtz, 1 );
303 } 286 }
287 else {
288 // If controls have a valid date & time, update systemtime
289 int hour = sbHour->value();
290 if ( use12HourTime && cbAmpm->currentItem() == ValuePM )
291 hour += 12;
292 QDateTime dt( btnDate->date(), QTime ( hour, sbMin->value(), QTime::currentTime().second() ) );
293 setSystemTime( dt );
294 QCopEnvelope setTimeZone( "QPE/System", "timeChange(QString)" );
295 setTimeZone << newtz;
304 296
305 // Set controls to new time 297 // Set system timezone
306 setDateTime( dt ); 298 QString currtz = getenv( "TZ" );
299 setenv( "TZ", newtz, 1 );
307 300
308 emit tzChanged( newtz ); 301 // Get new date/time
302 hour = sbHour->value();
303 if ( use12HourTime && cbAmpm->currentItem() == ValuePM )
304 hour += 12;
305 dt = QDateTime::currentDateTime();
306
307 // Reset system timezone
308 if ( !currtz.isNull() )
309 {
310 setenv( "TZ", currtz, 1 );
311 }
312
313 // Set controls to new time
314 setDateTime( dt );
315
316 emit tzChanged( newtz );
317 }
309} 318}