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.cpp122
1 files changed, 77 insertions, 45 deletions
diff --git a/noncore/settings/netsystemtime/settime.cpp b/noncore/settings/netsystemtime/settime.cpp
index 949fcb3..36166ae 100644
--- a/noncore/settings/netsystemtime/settime.cpp
+++ b/noncore/settings/netsystemtime/settime.cpp
@@ -32,12 +32,13 @@
32#include <qpe/timestring.h> 32#include <qpe/timestring.h>
33#include <qpe/qpedialog.h> 33#include <qpe/qpedialog.h>
34#if ( defined Q_WS_QWS || defined(_WS_QWS_) ) && !defined(QT_NO_COP) 34#if ( defined Q_WS_QWS || defined(_WS_QWS_) ) && !defined(QT_NO_COP)
35#include <qpe/qcopenvelope_qws.h> 35#include <qpe/qcopenvelope_qws.h>
36#endif 36#endif
37 37
38#include <qtimer.h>
38#include <qbuttongroup.h> 39#include <qbuttongroup.h>
39#include <qcheckbox.h> 40#include <qcheckbox.h>
40#include <qlabel.h> 41#include <qlabel.h>
41#include <qlayout.h> 42#include <qlayout.h>
42#include <qradiobutton.h> 43#include <qradiobutton.h>
43#include <qspinbox.h> 44#include <qspinbox.h>
@@ -49,48 +50,53 @@
49#include <time.h> 50#include <time.h>
50#include <stdlib.h> 51#include <stdlib.h>
51#include <stdio.h> 52#include <stdio.h>
52 53
53 54
54SetDateTime::SetDateTime(QWidget *parent, const char *name, WFlags f ) 55SetDateTime::SetDateTime(QWidget *parent, const char *name, WFlags f )
55 : NtpBase( parent, name, f ) 56 : NtpBase( parent, name, true, f )
56{ 57{
57 // setCaption( tr("Set System Time") ); 58 setCaption( tr("System Time") );
58 59
59// QVBoxLayout *vb = new QVBoxLayout( this, 5 );
60 QVBoxLayout *vb = new QVBoxLayout( FrameSystemTime, 5 ); 60 QVBoxLayout *vb = new QVBoxLayout( FrameSystemTime, 5 );
61 QVBoxLayout *vb2 = new QVBoxLayout( FrameSetTime, 5 );
62 61
63 TextLabelMainPredTime = new QLabel( FrameSystemTime ); 62// TextLabelMainPredTime = new QLabel( FrameSystemTime );
64 vb->addWidget( TextLabelMainPredTime, 1, 0 ); 63// vb->addWidget( TextLabelMainPredTime, 1, 0 );
65 64
66 QHBoxLayout *hb = new QHBoxLayout( vb, -1, "timezone layout" ); 65 timeButton = new SetTime( FrameSystemTime );
66 vb->addWidget( timeButton );
67
68 QHBoxLayout *db = new QHBoxLayout( vb );
69 QLabel *dateLabel = new QLabel( tr("Date"), FrameSystemTime );
70 db->addWidget( dateLabel, 1 );
71 dateButton = new DateButton( TRUE, FrameSystemTime );
72 db->addWidget( dateButton, 2 );
67 73
74 ButtonSetTime = new QPushButton( FrameSystemTime );
75 vb->addWidget( ButtonSetTime, 1, 0 );
76
77 QFrame *hline = new QFrame( FrameSystemTime );
78 hline->setFrameStyle( QFrame::HLine | QFrame::Sunken );
79 vb->addWidget( hline );
80
81 QHBoxLayout *hb = new QHBoxLayout( vb, -1, "timezone layout" );
82
68 QLabel *lblZone = new QLabel( tr( "Time Zone" ), FrameSystemTime, "timezone label" ); 83 QLabel *lblZone = new QLabel( tr( "Time Zone" ), FrameSystemTime, "timezone label" );
69 lblZone->setMaximumSize( lblZone->sizeHint() ); 84 lblZone->setMaximumSize( lblZone->sizeHint() );
70 hb->addWidget( lblZone ); 85 hb->addWidget( lblZone );
71 86
72 tz = new TimeZoneSelector( FrameSystemTime, "Timezone choices" ); 87 tz = new TimeZoneSelector( FrameSystemTime, "Timezone choices" );
73 tz->setMinimumSize( tz->sizeHint() ); 88 tz->setMinimumSize( tz->sizeHint() );
74 hb->addWidget( tz ); 89 hb->addWidget( tz );
75
76 timeButton = new SetTime( FrameSetTime );
77 vb2->addWidget( timeButton );
78
79 QHBoxLayout *db = new QHBoxLayout( vb2 );
80 QLabel *dateLabel = new QLabel( tr("Date"), FrameSetTime );
81 db->addWidget( dateLabel, 1 );
82 dateButton = new DateButton( TRUE, FrameSetTime );
83 db->addWidget( dateButton, 2 );
84
85 QSpacerItem* spacer = new QSpacerItem( 20, 20, QSizePolicy::Minimum, QSizePolicy::Expanding );
86 vb2->addItem( spacer );
87 90
88 QFrame *hline = new QFrame( FrameSystemTime ); 91 hline = new QFrame( FrameSystemTime );
89 hline->setFrameStyle( QFrame::HLine | QFrame::Sunken ); 92 hline->setFrameStyle( QFrame::HLine | QFrame::Sunken );
90 vb->addWidget( hline ); 93 vb->addWidget( hline );
94
95 QSpacerItem* spacer = new QSpacerItem( 20, 20, QSizePolicy::Minimum, QSizePolicy::Expanding );
96 vb->addItem( spacer );
91 97
92 Config config("qpe"); 98 Config config("qpe");
93 config.setGroup( "Time" ); 99 config.setGroup( "Time" );
94 100
95 QHBoxLayout *hb1 = new QHBoxLayout( vb ); 101 QHBoxLayout *hb1 = new QHBoxLayout( vb );
96 102
@@ -176,41 +182,37 @@ SetDateTime::SetDateTime(QWidget *parent, const char *name, WFlags f )
176 hb4->addWidget( clockAppletCombo, 2 ); 182 hb4->addWidget( clockAppletCombo, 2 );
177 int clockApplet = config.readNumEntry("ClockApplet",0); 183 int clockApplet = config.readNumEntry("ClockApplet",0);
178 clockAppletCombo->setCurrentItem( clockApplet ); 184 clockAppletCombo->setCurrentItem( clockApplet );
179 185
180 vb->addStretch( 0 ); 186 vb->addStretch( 0 );
181 187
182 hline = new QFrame( FrameSystemTime ); 188// hline = new QFrame( FrameSystemTime );
183 hline->setFrameStyle( QFrame::HLine | QFrame::Sunken ); 189// hline->setFrameStyle( QFrame::HLine | QFrame::Sunken );
184 vb->addWidget( hline ); 190// vb->addWidget( hline );
191//
192// ButtonSetTime = new QPushButton( FrameSystemTime );
193// vb->addWidget( ButtonSetTime, 1, 0 );
185 194
186 ButtonSetTime = new QPushButton( FrameSystemTime );
187 vb->addWidget( ButtonSetTime, 1, 0 );
188
189 QObject::connect( PushButtonSetManualTime, SIGNAL(clicked()),
190 this, SLOT(commitTime()));
191 195
192 QObject::connect( tz, SIGNAL( signalNewTz( const QString& ) ), 196 QObject::connect( tz, SIGNAL( signalNewTz( const QString& ) ),
193 timeButton, SLOT( slotTzChange( const QString& ) ) ); 197 timeButton, SLOT( slotTzChange( const QString& ) ) );
194 QObject::connect( tz, SIGNAL( signalNewTz( const QString& ) ), 198 QObject::connect( tz, SIGNAL( signalNewTz( const QString& ) ),
195 SLOT( tzChange( const QString& ) ) ); 199 SLOT( tzChange( const QString& ) ) );
196 200
197 QObject::connect( weekStartCombo, SIGNAL( activated ( int )), 201// QObject::connect( weekStartCombo, SIGNAL( activated ( int )),
198 SLOT(updateSystem(int ) )); 202 // SLOT(updateSystem(int ) ));
199 QObject::connect( ampmCombo, SIGNAL( activated ( int )), 203// QObject::connect( ampmCombo, SIGNAL( activated ( int )),
200 SLOT(updateSystem(int ) )); 204 // SLOT(updateSystem(int ) ));
201 QObject::connect( dateFormatCombo, SIGNAL( activated ( int )), 205// QObject::connect( dateFormatCombo, SIGNAL( activated ( int )),
202 SLOT(updateSystem(int ) )); 206 // SLOT(updateSystem(int ) ));
203 QObject::connect( clockAppletCombo, SIGNAL( activated ( int )), 207// QObject::connect( clockAppletCombo, SIGNAL( activated ( int )),
204 SLOT(updateSystem(int ) )); 208 // SLOT(updateSystem(int ) ));
205} 209}
206 210
207SetDateTime::~SetDateTime() 211SetDateTime::~SetDateTime()
208{ 212{
209 writeSettings();
210
211} 213}
212 214
213void SetDateTime::writeSettings() 215void SetDateTime::writeSettings()
214{ 216{
215 Config config("qpe"); 217 Config config("qpe");
216 config.setGroup( "Time" ); 218 config.setGroup( "Time" );
@@ -273,21 +275,21 @@ void SetDateTime::setTime(QDateTime dt)
273 //timeApplet << ""; 275 //timeApplet << "";
274 // Restore screensaver 276 // Restore screensaver
275 QCopEnvelope enableScreenSaver( "QPE/System", "setScreenSaverIntervals(int,int,int)" ); 277 QCopEnvelope enableScreenSaver( "QPE/System", "setScreenSaverIntervals(int,int,int)" );
276 enableScreenSaver << -1 << -1 << -1; 278 enableScreenSaver << -1 << -1 << -1;
277} 279}
278 280
279void SetDateTime::updateSystem(int i) 281void SetDateTime::updateSystem()
280{ 282{
281 // really turn off the screensaver before doing anything 283 // really turn off the screensaver before doing anything
282 { 284 {
283 // Needs to be encased in { } so that it deconstructs and sends 285 // Needs to be encased in { } so that it deconstructs and sends
284 QCopEnvelope disableScreenSaver( "QPE/System", "setScreenSaverIntervals(int,int,int)" ); 286 QCopEnvelope disableScreenSaver( "QPE/System", "setScreenSaverIntervals(int,int,int)" );
285 disableScreenSaver << 0 << 0 << 0; 287 disableScreenSaver << 0 << 0 << 0;
286 } 288 }
287 qDebug("SetDateTime::updateSystem(int %i)",i); 289 qDebug("SetDateTime::updateSystem()");
288 writeSettings(); 290 writeSettings();
289 291
290 // set the timezone for everyone else... 292 // set the timezone for everyone else...
291 QCopEnvelope setTimeZone( "QPE/System", "timeChange(QString)" ); 293 QCopEnvelope setTimeZone( "QPE/System", "timeChange(QString)" );
292 setTimeZone << tz->currentZone(); 294 setTimeZone << tz->currentZone();
293 295
@@ -320,13 +322,13 @@ void SetDateTime::tzChange( const QString &tz )
320 strSave = getenv( "TZ" ); 322 strSave = getenv( "TZ" );
321 setenv( "TZ", tz, 1 ); 323 setenv( "TZ", tz, 1 );
322 324
323 QDate d = QDate::currentDate(); 325 QDate d = QDate::currentDate();
324 // reset the time. 326 // reset the time.
325 if ( !strSave.isNull() ) { 327 if ( !strSave.isNull() ) {
326 setenv( "TZ", strSave, 1 ); 328 setenv( "TZ", strSave, 1 );
327 } 329 }
328 dateButton->setDate( d ); 330 dateButton->setDate( d );
329 updateSystem(); 331 updateSystem();
330} 332}
331 333
332void SetDateTime::formatChanged(int i) 334void SetDateTime::formatChanged(int i)
@@ -339,17 +341,21 @@ static const int ValuePM = 1;
339 341
340 342
341 343
342SetTime::SetTime( QWidget *parent, const char *name ) 344SetTime::SetTime( QWidget *parent, const char *name )
343 : QWidget( parent, name ) 345 : QWidget( parent, name )
344{ 346{
347 clock = new QTimer(this, "clock" );
348 connect(clock, SIGNAL( timeout() ), SLOT(slotClockTick()) );
349 clock->start( 1000 * 60 );
350
345 use12hourTime = FALSE; 351 use12hourTime = FALSE;
346 352
347 QTime currTime = QTime::currentTime(); 353 _time = QDateTime::currentDateTime();
348 hour = currTime.hour(); 354 hour = _time.time().hour();
349 minute = currTime.minute(); 355 minute = _time.time().minute();
350 356
351 QHBoxLayout *hb2 = new QHBoxLayout( this ); 357 QHBoxLayout *hb2 = new QHBoxLayout( this );
352 hb2->setSpacing( 3 ); 358 hb2->setSpacing( 3 );
353 359
354 QLabel *l = new QLabel( tr("Hour"), this ); 360 QLabel *l = new QLabel( tr("Hour"), this );
355 // l->setAlignment( AlignRight | AlignVCenter ); 361 // l->setAlignment( AlignRight | AlignVCenter );
@@ -496,7 +502,33 @@ void SetTime::slotTzChange( const QString &tz )
496 } else { 502 } else {
497 sbHour->setValue( t.hour() ); 503 sbHour->setValue( t.hour() );
498 } 504 }
499 sbMin->setValue( t.minute() ); 505 sbMin->setValue( t.minute() );
500} 506}
501 507
508void SetTime::setTime( QDateTime dt )
509{
510 _time = dt;
511 QTime t = dt.time();
512 // just set the spinboxes and let it propage through
513 if(use12hourTime) {
514 int show_hour = t.hour();
515 if (t.hour() >= 12) {
516 show_hour -= 12;
517 ampm->setCurrentItem( ValuePM );
518 } else {
519 ampm->setCurrentItem( ValueAM );
520 }
521 if (show_hour == 0)
522 show_hour = 12;
523 sbHour->setValue( show_hour );
524 } else {
525 sbHour->setValue( t.hour() );
526 }
527 sbMin->setValue( t.minute() );
528}
502 529
530void SetTime::slotClockTick()
531{
532 setTime( _time.addSecs(60) );
533 qDebug("SetTime::slotClockTick %s",_time.toString().latin1());
534}