summaryrefslogtreecommitdiff
path: root/noncore
Unidiff
Diffstat (limited to 'noncore') (more/less context) (show whitespace changes)
-rw-r--r--noncore/tools/clock/clock.cpp171
-rw-r--r--noncore/tools/clock/clock.h15
2 files changed, 121 insertions, 65 deletions
diff --git a/noncore/tools/clock/clock.cpp b/noncore/tools/clock/clock.cpp
index 0937362..9898332 100644
--- a/noncore/tools/clock/clock.cpp
+++ b/noncore/tools/clock/clock.cpp
@@ -75,16 +75,12 @@ static void toggleScreenSaver( bool on )
75Clock::Clock( QWidget * parent, const char * name, WFlags f ) 75Clock::Clock( QWidget * parent, const char * name, WFlags f )
76 : QVBox( parent, name , f ) 76 : QVBox( parent, name , f )
77{ 77{
78 setSpacing( 4 ); 78 setSpacing( 4 );
79 setMargin( 1 ); 79 setMargin( 1 );
80 80
81 Config config( "qpe" );
82 config.setGroup( "Time" );
83 ampm = config.readBoolEntry( "AMPM", TRUE );
84
85 81
86 snoozeBtn = new QPushButton ( this ); 82 snoozeBtn = new QPushButton ( this );
87 snoozeBtn->setText( tr( "Snooze" ) ); 83 snoozeBtn->setText( tr( "Snooze" ) );
88 84
89 aclock = new AnalogClock( this ); 85 aclock = new AnalogClock( this );
90 aclock->display( QTime::currentTime() ); 86 aclock->display( QTime::currentTime() );
@@ -125,47 +121,39 @@ Clock::Clock( QWidget * parent, const char * name, WFlags f )
125 gl->addWidget( swatchRB, 1, 0 ); 121 gl->addWidget( swatchRB, 1, 0 );
126 grp->insert( swatchRB ); 122 grp->insert( swatchRB );
127 123
128 connect( grp, SIGNAL( clicked( int ) ), this, SLOT( modeSelect( int ) ) ); 124 connect( grp, SIGNAL( clicked( int ) ), this, SLOT( modeSelect( int ) ) );
129 grp->setButton( 0 ); 125 grp->setButton( 0 );
130 126
131 set 127 set = new QPushButton ( controls );
132 = new QPushButton ( controls ); 128 set->setMaximumSize( 50, 30 );
133 set 129 gl->addWidget( set , 0, 1 );
134 ->setMaximumSize( 50, 30 ); 130 set->setText( tr( "Start" ) );
135 gl->addWidget( set 131 set->setEnabled( FALSE );
136 , 0, 1 ); 132 grp->insert( set );
137 set
138 ->setText( tr( "Start" ) );
139 set
140 ->setEnabled( FALSE );
141 grp->insert( set
142 );
143 133
144 reset = new QPushButton ( controls ); 134 reset = new QPushButton ( controls );
145 gl->addWidget( reset, 1, 1 ); 135 gl->addWidget( reset, 1, 1 );
146 reset->setText( tr( "Reset" ) ); 136 reset->setText( tr( "Reset" ) );
147 reset->setEnabled( FALSE ); 137 reset->setEnabled( FALSE );
148 grp->insert( reset ); 138 grp->insert( reset );
149 139
150 alarmOffBtn = new QPushButton ( controls ); 140 alarmOffBtn = new QPushButton ( controls );
151 // alarmOffBtn->setMaximumSize(60,30);
152 gl->addWidget( alarmOffBtn, 0, 2 ); 141 gl->addWidget( alarmOffBtn, 0, 2 );
153 142
154 alarmBtn = new QPushButton ( controls ); 143 alarmBtn = new QPushButton ( controls );
155 // alarmBtn->setMaximumSize(60,30);
156 gl->addWidget( alarmBtn, 1, 2 ); 144 gl->addWidget( alarmBtn, 1, 2 );
145
157 alarmBtn->setText( tr( "Set Alarm" ) ); 146 alarmBtn->setText( tr( "Set Alarm" ) );
158 147
159 OClickableLabel *click = new OClickableLabel( controls, "label" ); 148 OClickableLabel *click = new OClickableLabel( controls, "label" );
160 click->setText( tr( "Set date and time." ) ); 149 click->setText( tr( "Set date and time." ) );
161 gl->addMultiCellWidget( click, 3, 3, 0, 2, AlignHCenter ); 150 gl->addMultiCellWidget( click, 3, 3, 0, 2, AlignHCenter );
162 connect( click, SIGNAL( clicked() ), this, SLOT( slotAdjustTime() ) ); 151 connect( click, SIGNAL( clicked() ), this, SLOT( slotAdjustTime() ) );
163 152
164 connect( set 153 connect( set , SIGNAL( pressed() ), SLOT( slotSet() ) );
165 , SIGNAL( pressed() ), SLOT( slotSet() ) );
166 connect( reset, SIGNAL( clicked() ), SLOT( slotReset() ) ); 154 connect( reset, SIGNAL( clicked() ), SLOT( slotReset() ) );
167 155
168 connect( alarmBtn, SIGNAL( clicked() ), SLOT( slotSetAlarm() ) ); 156 connect( alarmBtn, SIGNAL( clicked() ), SLOT( slotSetAlarm() ) );
169 connect( snoozeBtn, SIGNAL( clicked() ), SLOT( slotSnooze() ) ); 157 connect( snoozeBtn, SIGNAL( clicked() ), SLOT( slotSnooze() ) );
170 connect( alarmOffBtn, SIGNAL( clicked() ), SLOT( slotToggleAlarm() ) ); 158 connect( alarmOffBtn, SIGNAL( clicked() ), SLOT( slotToggleAlarm() ) );
171 159
@@ -180,63 +168,78 @@ Clock::Clock( QWidget * parent, const char * name, WFlags f )
180 168
181 swatch_running = FALSE; 169 swatch_running = FALSE;
182 swatch_totalms = 0; 170 swatch_totalms = 0;
183 171
184 connect( qApp, SIGNAL( clockChanged( bool ) ), this, SLOT( changeClock( bool ) ) ); 172 connect( qApp, SIGNAL( clockChanged( bool ) ), this, SLOT( changeClock( bool ) ) );
185 173
174
175 Config config( "qpe" );
176 config.setGroup( "Time" );
177 ampm = config.readBoolEntry( "AMPM", TRUE );
178
186 QString tmp = config.readEntry( "clockAlarmHour", "" ); 179 QString tmp = config.readEntry( "clockAlarmHour", "" );
187 bool ok; 180 bool ok;
188 hour = tmp.toInt( &ok, 10 ); 181 hour = tmp.toInt( &ok, 10 );
189 tmp = config.readEntry( "clockAlarmMinute", "" ); 182 tmp = config.readEntry( "clockAlarmMinute", "" );
190 minute = tmp.toInt( &ok, 10 ); 183 minute = tmp.toInt( &ok, 10 );
191 184
192 if ( config.readEntry( "clockAlarmSet", "FALSE" ) == "TRUE" ) { 185 if ( config.readEntry( "clockAlarmSet", "FALSE" ) == "TRUE" )
186 {
193 alarmOffBtn->setText( tr( "Alarm Is On" ) ); 187 alarmOffBtn->setText( tr( "Alarm Is On" ) );
194 alarmBool = TRUE; 188 alarmBool = TRUE;
195 snoozeBtn->show(); 189 snoozeBtn->show();
196 } 190 }
197 else { 191 else
192 {
198 alarmOffBtn->setText( tr( "Alarm Is Off" ) ); 193 alarmOffBtn->setText( tr( "Alarm Is Off" ) );
199 alarmBool = FALSE; 194 alarmBool = FALSE;
200 snoozeBtn->hide(); 195 snoozeBtn->hide();
201 } 196 }
202 197
203 QTimer::singleShot( 0, this, SLOT( updateClock() ) ); 198 QTimer::singleShot( 0, this, SLOT( updateClock() ) );
204 modeSelect( 0 ); 199
200 Config cfg( "Clock" );
201 cfg.setGroup( "Mode" );
202 int mode = cfg.readBoolEntry( "clockMode");setSwatchMode( mode);
203 modeSelect( mode);
205} 204}
206 205
207Clock::~Clock() 206Clock::~Clock()
208{ 207{
209 toggleScreenSaver( true ); 208 toggleScreenSaver( true );
210} 209}
211 210
212void Clock::updateClock() 211void Clock::updateClock()
213{ 212{
214 if ( clockRB->isChecked() ) { 213 if ( clockRB->isChecked() )
214 {
215 QTime tm = QDateTime::currentDateTime().time(); 215 QTime tm = QDateTime::currentDateTime().time();
216 QString s; 216 QString s;
217 if ( ampm ) { 217 if ( ampm )
218 {
218 int hour = tm.hour(); 219 int hour = tm.hour();
219 if ( hour == 0 ) 220 if ( hour == 0 )
220 hour = 12; 221 hour = 12;
221 if ( hour > 12 ) 222 if ( hour > 12 )
222 hour -= 12; 223 hour -= 12;
223 s.sprintf( "%2d%c%02d", hour, ':', tm.minute() ); 224 s.sprintf( "%2d%c%02d", hour, ':', tm.minute() );
224 ampmLabel->setText( ( tm.hour() >= 12 ) ? "PM" : "AM" ); 225 ampmLabel->setText( ( tm.hour() >= 12 ) ? "PM" : "AM" );
225 ampmLabel->show(); 226 ampmLabel->show();
226 } 227 }
227 else { 228 else
229 {
228 s.sprintf( "%2d%c%02d", tm.hour(), ':', tm.minute() ); 230 s.sprintf( "%2d%c%02d", tm.hour(), ':', tm.minute() );
229 ampmLabel->hide(); 231 ampmLabel->hide();
230 } 232 }
231 lcd->display( s ); 233 lcd->display( s );
232 lcd->repaint( FALSE ); 234 lcd->repaint( FALSE );
233 aclock->display( QTime::currentTime() ); 235 aclock->display( QTime::currentTime() );
234 date->setText( TimeString::longDateString( QDate::currentDate() ) ); 236 date->setText( TimeString::longDateString( QDate::currentDate() ) );
235 } 237 }
236 else { 238 else
239 {
237 QTime swatch_time; 240 QTime swatch_time;
238 QString lcdtext; 241 QString lcdtext;
239 int totalms = swatch_totalms; 242 int totalms = swatch_totalms;
240 if ( swatch_running ) 243 if ( swatch_running )
241 totalms += swatch_start.elapsed(); 244 totalms += swatch_start.elapsed();
242 swatch_time = QTime( 0, 0, 0 ).addMSecs( totalms ); 245 swatch_time = QTime( 0, 0, 0 ).addMSecs( totalms );
@@ -261,25 +264,25 @@ void Clock::clearClock( void )
261 lcd->display( QTime( 0, 0, 0 ).toString() ); 264 lcd->display( QTime( 0, 0, 0 ).toString() );
262 aclock->display( QTime( 0, 0, 0 ) ); 265 aclock->display( QTime( 0, 0, 0 ) );
263} 266}
264 267
265void Clock::slotSet() 268void Clock::slotSet()
266{ 269{
267 if ( t->isActive() ) { 270 if ( t->isActive() )
271 {
268 swatch_totalms += swatch_start.elapsed(); 272 swatch_totalms += swatch_start.elapsed();
269 set 273 set->setText( tr( "Start" ) );
270 ->setText( tr( "Start" ) );
271 t->stop(); 274 t->stop();
272 swatch_running = FALSE; 275 swatch_running = FALSE;
273 toggleScreenSaver( TRUE ); 276 toggleScreenSaver( TRUE );
274 updateClock(); 277 updateClock();
275 } 278 }
276 else { 279 else
280 {
277 swatch_start.start(); 281 swatch_start.start();
278 set 282 set->setText( tr( "Stop" ) );
279 ->setText( tr( "Stop" ) );
280 t->start( 1000 ); 283 t->start( 1000 );
281 swatch_running = TRUE; 284 swatch_running = TRUE;
282 // disable screensaver while stop watch is running 285 // disable screensaver while stop watch is running
283 toggleScreenSaver( FALSE ); 286 toggleScreenSaver( FALSE );
284 } 287 }
285} 288}
@@ -295,31 +298,36 @@ void Clock::slotReset()
295 298
296 updateClock(); 299 updateClock();
297} 300}
298 301
299void Clock::modeSelect( int m ) 302void Clock::modeSelect( int m )
300{ 303{
301 if ( m ) { 304 qDebug("Clock::modeSelect( %d) ", m);
305 if ( m )
306 {
302 lcd->setNumDigits( 8 + 1 + sw_prec ); 307 lcd->setNumDigits( 8 + 1 + sw_prec );
303 lcd->setMinimumWidth( lcd->sizeHint().width() ); 308 lcd->setMinimumWidth( lcd->sizeHint().width() );
304 set 309 set->setEnabled( TRUE );
305 ->setEnabled( TRUE );
306 reset->setEnabled( TRUE ); 310 reset->setEnabled( TRUE );
307 ampmLabel->hide(); 311 ampmLabel->hide();
308 312
309 if ( !swatch_running ) 313 if ( !swatch_running )
310 t->stop(); 314 t->stop();
311 } 315 }
312 else { 316 else
317 {
313 lcd->setNumDigits( 5 ); 318 lcd->setNumDigits( 5 );
314 lcd->setMinimumWidth( lcd->sizeHint().width() ); 319 lcd->setMinimumWidth( lcd->sizeHint().width() );
315 set 320 set->setEnabled( FALSE );
316 ->setEnabled( FALSE );
317 reset->setEnabled( FALSE ); 321 reset->setEnabled( FALSE );
318 t->start( 1000 ); 322 t->start( 1000 );
319 } 323 }
324
325 Config config( "Clock" );
326 config.setGroup( "Mode" );
327 config.writeEntry( "clockMode", m );
320 updateClock(); 328 updateClock();
321} 329}
322 330
323//this sets the alarm time 331//this sets the alarm time
324void Clock::slotSetAlarm() 332void Clock::slotSetAlarm()
325{ 333{
@@ -364,20 +372,22 @@ void Clock::slotSnooze()
364 372
365//toggles alarm on/off 373//toggles alarm on/off
366void Clock::slotToggleAlarm() 374void Clock::slotToggleAlarm()
367{ 375{
368 Config config( "qpe" ); 376 Config config( "qpe" );
369 config.setGroup( "Time" ); 377 config.setGroup( "Time" );
370 if ( alarmBool ) { 378 if ( alarmBool )
379 {
371 config.writeEntry( "clockAlarmSet", "FALSE" ); 380 config.writeEntry( "clockAlarmSet", "FALSE" );
372 alarmOffBtn->setText( tr( "Alarm Is Off" ) ); 381 alarmOffBtn->setText( tr( "Alarm Is Off" ) );
373 snoozeBtn->hide(); 382 snoozeBtn->hide();
374 alarmBool = FALSE; 383 alarmBool = FALSE;
375 alarmOff(); 384 alarmOff();
376 } 385 }
377 else { 386 else
387 {
378 config.writeEntry( "clockAlarmSet", "TRUE" ); 388 config.writeEntry( "clockAlarmSet", "TRUE" );
379 alarmOffBtn->setText( tr( "Alarm Is On" ) ); 389 alarmOffBtn->setText( tr( "Alarm Is On" ) );
380 snoozeBtn->show(); 390 snoozeBtn->show();
381 alarmBool = TRUE; 391 alarmBool = TRUE;
382 alarmOn(); 392 alarmOn();
383 } 393 }
@@ -423,58 +433,60 @@ void Clock::clearTimer()
423void Clock::appMessage( const QCString& msg, const QByteArray& /*data*/ ) 433void Clock::appMessage( const QCString& msg, const QByteArray& /*data*/ )
424{ 434{
425 int stopTimer = 0; 435 int stopTimer = 0;
426 int timerStay = 5000; 436 int timerStay = 5000;
427 bSound = TRUE; 437 bSound = TRUE;
428 qDebug( "Message received in clock" ); 438 qDebug( "Message received in clock" );
429 if ( msg == "alarm(QDateTime,int)" ) { 439 if ( msg == "alarm(QDateTime,int)" )
440 {
430 Config config( "qpe" ); 441 Config config( "qpe" );
431 config.setGroup( "Time" ); 442 config.setGroup( "Time" );
432 if ( config.readBoolEntry( "mp3Alarm", 0 ) ) 443 if ( config.readBoolEntry( "mp3Alarm", 0 ) )
433 { 444 {
434 clearTimer(); 445 clearTimer();
435// pid_t pid;
436// switch(pid = fork())
437// {
438// case -1:
439// {//failed
440// }
441// break;
442// case 0:
443// {//child
444// QCopEnvelope e( "QPE/Application/opieplayer", "setDocument(QString)" );
445// e << config.readEntry( "mp3File", "" );
446 pthread_t thread; 446 pthread_t thread;
447 pthread_create(&thread, NULL, (void * (*) (void *))startPlayer, NULL/* &*/); 447 pthread_create(&thread, NULL, (void * (*) (void *))startPlayer, NULL/* &*/);
448// startPlayer();
449// }
450// break;
451// };
452 448
453 } 449 }
454 else 450 else
455 { 451 {
456 452
457 Sound::soundAlarm(); 453 Sound::soundAlarm();
458 stopTimer = startTimer( timerStay ); 454 stopTimer = startTimer( timerStay );
459 } 455 }
460 } 456 }
457
458 if ( msg == "timerStart()" )
459 {
460 slotStartTimer();
461 }
462 if ( msg == "timerStop()" )
463 {
464 slotStopTimer();
465 }
466 if ( msg == "timerReset()" )
467 {
468 slotResetTimer();
469 }
470
461 show(); 471 show();
462 raise(); 472 raise();
463 QPEApplication::setKeepRunning(); 473 QPEApplication::setKeepRunning();
464 setActiveWindow(); 474 setActiveWindow();
465} 475}
466 476
467void Clock::timerEvent( QTimerEvent *e ) 477void Clock::timerEvent( QTimerEvent *e )
468{ 478{
469 static int stop = 0; 479 static int stop = 0;
470 if ( stop < 120 && bSound ) { 480 if ( stop < 120 && bSound )
481 {
471 Sound::soundAlarm(); 482 Sound::soundAlarm();
472 stop++; 483 stop++;
473 } 484 }
474 else { 485 else
486 {
475 stop = 0; 487 stop = 0;
476 killTimer( e->timerId() ); 488 killTimer( e->timerId() );
477 clearTimer(); 489 clearTimer();
478 setCaption( tr( "Clock: Alarm was missed." ) ); 490 setCaption( tr( "Clock: Alarm was missed." ) );
479 } 491 }
480} 492}
@@ -498,25 +510,27 @@ void AnalogClock::drawContents( QPainter *p )
498 QPoint center = fr. center ( ); // ( fr.x() + fr.width() / 2, fr.y() + fr.height() / 2 ); 510 QPoint center = fr. center ( ); // ( fr.x() + fr.width() / 2, fr.y() + fr.height() / 2 );
499 QPoint l1 ( center. x ( ), fr. y ( ) + 2 ); 511 QPoint l1 ( center. x ( ), fr. y ( ) + 2 );
500 QPoint l2 ( center. x ( ), fr. y ( ) + 8 ); 512 QPoint l2 ( center. x ( ), fr. y ( ) + 8 );
501 513
502 514
503 515
504 if ( clear ) { 516 if ( clear )
517 {
505 erase ( r ); 518 erase ( r );
506 p-> setPen ( NoPen ); 519 p-> setPen ( NoPen );
507 p-> setBrush ( colorGroup ( ). color ( QColorGroup::Base )); 520 p-> setBrush ( colorGroup ( ). color ( QColorGroup::Base ));
508 p-> drawEllipse ( fr ); 521 p-> drawEllipse ( fr );
509 p-> setBrush ( NoBrush ); 522 p-> setBrush ( NoBrush );
510 523
511 // draw ticks 524 // draw ticks
512 p->setPen( QPen( colorGroup ( ). color ( QColorGroup::Text ), 1 ) ); 525 p->setPen( QPen( colorGroup ( ). color ( QColorGroup::Text ), 1 ) );
513 for ( int i = 0; i < 12; i++ ) 526 for ( int i = 0; i < 12; i++ )
514 p->drawLine( rotate( center, l1, i * 30 ), rotate( center, l2, i * 30 ) ); 527 p->drawLine( rotate( center, l1, i * 30 ), rotate( center, l2, i * 30 ) );
515 } 528 }
516 else { 529 else
530 {
517 drawPointers ( p, fr, colorGroup ( ). color ( QColorGroup::Base ), prevTime, &currTime ); 531 drawPointers ( p, fr, colorGroup ( ). color ( QColorGroup::Base ), prevTime, &currTime );
518 } 532 }
519 533
520 drawPointers ( p, fr, colorGroup ( ). color ( QColorGroup::Text ), currTime ); 534 drawPointers ( p, fr, colorGroup ( ). color ( QColorGroup::Text ), currTime );
521 535
522 prevTime = currTime; 536 prevTime = currTime;
@@ -581,6 +595,41 @@ QPoint AnalogClock::rotate( QPoint c, QPoint p, int a )
581 595
582void Clock::slotAdjustTime() 596void Clock::slotAdjustTime()
583{ 597{
584 QCopEnvelope e( "QPE/System", "execute(QString)" ); 598 QCopEnvelope e( "QPE/System", "execute(QString)" );
585 e << QString( "systemtime" ); 599 e << QString( "systemtime" );
586} 600}
601
602void Clock::slotStartTimer()
603{
604 Config cfg( "Clock" );
605 cfg.setGroup( "Mode" );
606 int mode = cfg.readBoolEntry( "clockMode");
607 if ( clockRB->isChecked() )
608 setSwatchMode( 1);
609 slotSet();
610}
611
612void Clock::slotStopTimer()
613{
614 Config cfg( "Clock" );
615 cfg.setGroup( "Mode" );
616 int mode = cfg.readBoolEntry( "clockMode");
617 if ( clockRB->isChecked() )
618 setSwatchMode( 1);
619slotSet();
620}
621
622void Clock::slotResetTimer()
623{
624 if ( clockRB->isChecked() )
625 setSwatchMode( 1);
626slotReset();
627}
628
629void Clock::setSwatchMode(int mode)
630{
631 qDebug("Clock::setSwatchMode( %d)"), mode;
632 swatchRB->setChecked( mode);
633 clearClock( );
634 modeSelect( mode );
635}
diff --git a/noncore/tools/clock/clock.h b/noncore/tools/clock/clock.h
index 23cc143..9b00e28 100644
--- a/noncore/tools/clock/clock.h
+++ b/noncore/tools/clock/clock.h
@@ -43,18 +43,20 @@ public:
43 void display( const QTime& time ); 43 void display( const QTime& time );
44 44
45protected: 45protected:
46 void drawContents( QPainter *p ); 46 void drawContents( QPainter *p );
47 47
48private: 48private:
49 QPoint rotate( QPoint center, QPoint p, int angle );
50 void drawPointers ( QPainter *, const QRect &r, const QColor &c, const QTime &t, const QTime *t2 = 0 );
51 49
52 QTime currTime; 50 QTime currTime;
53 QTime prevTime; 51 QTime prevTime;
54 bool clear; 52 bool clear;
53
54 QPoint rotate( QPoint center, QPoint p, int angle );
55 void drawPointers ( QPainter *, const QRect &r, const QColor &c, const QTime &t, const QTime *t2 = 0 );
56
55}; 57};
56 58
57class Clock : public QVBox 59class Clock : public QVBox
58{ 60{
59 Q_OBJECT 61 Q_OBJECT
60 62
@@ -75,25 +77,30 @@ private slots:
75 void slotToggleAlarm(); 77 void slotToggleAlarm();
76 void alarmOn(); 78 void alarmOn();
77 void alarmOff(); 79 void alarmOff();
78 void appMessage(const QCString& msg, const QByteArray& data); 80 void appMessage(const QCString& msg, const QByteArray& data);
79 void timerEvent( QTimerEvent *e ); 81 void timerEvent( QTimerEvent *e );
80 void slotAdjustTime(); 82 void slotAdjustTime();
83
84 void slotStartTimer();
85 void slotStopTimer();
86 void slotResetTimer();
87 void setSwatchMode( int );
81private: 88private:
82 void clearClock();
83 void clearTimer();
84 bool alarmBool; 89 bool alarmBool;
85 QTimer *t; 90 QTimer *t;
86 QLCDNumber *lcd; 91 QLCDNumber *lcd;
87 QLabel *date; 92 QLabel *date;
88 QLabel *ampmLabel; 93 QLabel *ampmLabel;
89 QPushButton *set, *reset, *alarmBtn, *snoozeBtn, *alarmOffBtn; 94 QPushButton *set, *reset, *alarmBtn, *snoozeBtn, *alarmOffBtn;
90 QRadioButton *clockRB, *swatchRB; 95 QRadioButton *clockRB, *swatchRB;
91 AnalogClock *aclock; 96 AnalogClock *aclock;
92 QTime swatch_start; 97 QTime swatch_start;
93 int swatch_totalms; 98 int swatch_totalms;
94 bool swatch_running; 99 bool swatch_running;
95 bool ampm; 100 bool ampm;
101 void clearClock();
102 void clearTimer();
96}; 103};
97 104
98#endif 105#endif
99 106