-rw-r--r-- | noncore/tools/clock/clock.cpp | 429 | ||||
-rw-r--r-- | noncore/tools/clock/clock.h | 15 |
2 files changed, 250 insertions, 194 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 @@ -17,5 +17,5 @@ ** not clear to you. ** -**********************************************************************/ +**********************************************************************/ // changes added and Copyright (C) by L. J. Potter <ljp@llornkcor.com> 2002 @@ -59,9 +59,9 @@ const int sw_prec = 2; void startPlayer() { - Config config( "qpe" ); - config.setGroup( "Time" ); - sleep(15); - QCopEnvelope e( "QPE/Application/opieplayer", "setDocument(QString)" ); - e << config.readEntry( "mp3File", "" ); + Config config( "qpe" ); + config.setGroup( "Time" ); + sleep(15); + QCopEnvelope e( "QPE/Application/opieplayer", "setDocument(QString)" ); + e << config.readEntry( "mp3File", "" ); } @@ -79,8 +79,4 @@ Clock::Clock( QWidget * parent, const char * name, WFlags f ) setMargin( 1 ); - Config config( "qpe" ); - config.setGroup( "Time" ); - ampm = config.readBoolEntry( "AMPM", TRUE ); - snoozeBtn = new QPushButton ( this ); @@ -129,16 +125,10 @@ Clock::Clock( QWidget * parent, const char * name, WFlags f ) grp->setButton( 0 ); - set - = new QPushButton ( controls ); - set - ->setMaximumSize( 50, 30 ); - gl->addWidget( set - , 0, 1 ); - set - ->setText( tr( "Start" ) ); - set - ->setEnabled( FALSE ); - grp->insert( set - ); + set = new QPushButton ( controls ); + set->setMaximumSize( 50, 30 ); + gl->addWidget( set , 0, 1 ); + set->setText( tr( "Start" ) ); + set->setEnabled( FALSE ); + grp->insert( set ); reset = new QPushButton ( controls ); @@ -149,10 +139,9 @@ Clock::Clock( QWidget * parent, const char * name, WFlags f ) alarmOffBtn = new QPushButton ( controls ); - // alarmOffBtn->setMaximumSize(60,30); gl->addWidget( alarmOffBtn, 0, 2 ); alarmBtn = new QPushButton ( controls ); - // alarmBtn->setMaximumSize(60,30); gl->addWidget( alarmBtn, 1, 2 ); + alarmBtn->setText( tr( "Set Alarm" ) ); @@ -162,6 +151,5 @@ Clock::Clock( QWidget * parent, const char * name, WFlags f ) connect( click, SIGNAL( clicked() ), this, SLOT( slotAdjustTime() ) ); - connect( set - , SIGNAL( pressed() ), SLOT( slotSet() ) ); + connect( set , SIGNAL( pressed() ), SLOT( slotSet() ) ); connect( reset, SIGNAL( clicked() ), SLOT( slotReset() ) ); @@ -184,4 +172,9 @@ Clock::Clock( QWidget * parent, const char * name, WFlags f ) connect( qApp, SIGNAL( clockChanged( bool ) ), this, SLOT( changeClock( bool ) ) ); + + Config config( "qpe" ); + config.setGroup( "Time" ); + ampm = config.readBoolEntry( "AMPM", TRUE ); + QString tmp = config.readEntry( "clockAlarmHour", "" ); bool ok; @@ -190,17 +183,23 @@ Clock::Clock( QWidget * parent, const char * name, WFlags f ) minute = tmp.toInt( &ok, 10 ); - if ( config.readEntry( "clockAlarmSet", "FALSE" ) == "TRUE" ) { - alarmOffBtn->setText( tr( "Alarm Is On" ) ); - alarmBool = TRUE; - snoozeBtn->show(); - } - else { - alarmOffBtn->setText( tr( "Alarm Is Off" ) ); - alarmBool = FALSE; - snoozeBtn->hide(); - } + if ( config.readEntry( "clockAlarmSet", "FALSE" ) == "TRUE" ) + { + alarmOffBtn->setText( tr( "Alarm Is On" ) ); + alarmBool = TRUE; + snoozeBtn->show(); + } + else + { + alarmOffBtn->setText( tr( "Alarm Is Off" ) ); + alarmBool = FALSE; + snoozeBtn->hide(); + } QTimer::singleShot( 0, this, SLOT( updateClock() ) ); - modeSelect( 0 ); + + Config cfg( "Clock" ); + cfg.setGroup( "Mode" ); + int mode = cfg.readBoolEntry( "clockMode");setSwatchMode( mode); + modeSelect( mode); } @@ -212,41 +211,45 @@ Clock::~Clock() void Clock::updateClock() { - if ( clockRB->isChecked() ) { - QTime tm = QDateTime::currentDateTime().time(); - QString s; - if ( ampm ) { - int hour = tm.hour(); - if ( hour == 0 ) - hour = 12; - if ( hour > 12 ) - hour -= 12; - s.sprintf( "%2d%c%02d", hour, ':', tm.minute() ); - ampmLabel->setText( ( tm.hour() >= 12 ) ? "PM" : "AM" ); - ampmLabel->show(); - } - else { - s.sprintf( "%2d%c%02d", tm.hour(), ':', tm.minute() ); - ampmLabel->hide(); - } - lcd->display( s ); - lcd->repaint( FALSE ); - aclock->display( QTime::currentTime() ); - date->setText( TimeString::longDateString( QDate::currentDate() ) ); - } - else { - QTime swatch_time; - QString lcdtext; - int totalms = swatch_totalms; - if ( swatch_running ) - totalms += swatch_start.elapsed(); - swatch_time = QTime( 0, 0, 0 ).addMSecs( totalms ); - QString d = swatch_running ? QString( " " ) - : QString::number( totalms % 1000 + 1000 ); - lcdtext = swatch_time.toString() + "." + d.right( 3 ).left( sw_prec ); - lcd->display( lcdtext ); - lcd->repaint( FALSE ); - aclock->display( swatch_time ); - date->setText( TimeString::longDateString( QDate::currentDate() ) ); - } + if ( clockRB->isChecked() ) + { + QTime tm = QDateTime::currentDateTime().time(); + QString s; + if ( ampm ) + { + int hour = tm.hour(); + if ( hour == 0 ) + hour = 12; + if ( hour > 12 ) + hour -= 12; + s.sprintf( "%2d%c%02d", hour, ':', tm.minute() ); + ampmLabel->setText( ( tm.hour() >= 12 ) ? "PM" : "AM" ); + ampmLabel->show(); + } + else + { + s.sprintf( "%2d%c%02d", tm.hour(), ':', tm.minute() ); + ampmLabel->hide(); + } + lcd->display( s ); + lcd->repaint( FALSE ); + aclock->display( QTime::currentTime() ); + date->setText( TimeString::longDateString( QDate::currentDate() ) ); + } + else + { + QTime swatch_time; + QString lcdtext; + int totalms = swatch_totalms; + if ( swatch_running ) + totalms += swatch_start.elapsed(); + swatch_time = QTime( 0, 0, 0 ).addMSecs( totalms ); + QString d = swatch_running ? QString( " " ) + : QString::number( totalms % 1000 + 1000 ); + lcdtext = swatch_time.toString() + "." + d.right( 3 ).left( sw_prec ); + lcd->display( lcdtext ); + lcd->repaint( FALSE ); + aclock->display( swatch_time ); + date->setText( TimeString::longDateString( QDate::currentDate() ) ); + } } @@ -265,22 +268,22 @@ void Clock::clearClock( void ) void Clock::slotSet() { - if ( t->isActive() ) { - swatch_totalms += swatch_start.elapsed(); - set - ->setText( tr( "Start" ) ); - t->stop(); - swatch_running = FALSE; - toggleScreenSaver( TRUE ); - updateClock(); - } - else { - swatch_start.start(); - set - ->setText( tr( "Stop" ) ); - t->start( 1000 ); - swatch_running = TRUE; - // disable screensaver while stop watch is running - toggleScreenSaver( FALSE ); - } + if ( t->isActive() ) + { + swatch_totalms += swatch_start.elapsed(); + set->setText( tr( "Start" ) ); + t->stop(); + swatch_running = FALSE; + toggleScreenSaver( TRUE ); + updateClock(); + } + else + { + swatch_start.start(); + set->setText( tr( "Stop" ) ); + t->start( 1000 ); + swatch_running = TRUE; + // disable screensaver while stop watch is running + toggleScreenSaver( FALSE ); + } } @@ -299,23 +302,28 @@ void Clock::slotReset() void Clock::modeSelect( int m ) { - if ( m ) { - lcd->setNumDigits( 8 + 1 + sw_prec ); - lcd->setMinimumWidth( lcd->sizeHint().width() ); - set - ->setEnabled( TRUE ); - reset->setEnabled( TRUE ); - ampmLabel->hide(); - - if ( !swatch_running ) - t->stop(); - } - else { - lcd->setNumDigits( 5 ); - lcd->setMinimumWidth( lcd->sizeHint().width() ); - set - ->setEnabled( FALSE ); - reset->setEnabled( FALSE ); - t->start( 1000 ); - } + qDebug("Clock::modeSelect( %d) ", m); + if ( m ) + { + lcd->setNumDigits( 8 + 1 + sw_prec ); + lcd->setMinimumWidth( lcd->sizeHint().width() ); + set->setEnabled( TRUE ); + reset->setEnabled( TRUE ); + ampmLabel->hide(); + + if ( !swatch_running ) + t->stop(); + } + else + { + lcd->setNumDigits( 5 ); + lcd->setMinimumWidth( lcd->sizeHint().width() ); + set->setEnabled( FALSE ); + reset->setEnabled( FALSE ); + t->start( 1000 ); + } + + Config config( "Clock" ); + config.setGroup( "Mode" ); + config.writeEntry( "clockMode", m ); updateClock(); } @@ -368,18 +376,20 @@ void Clock::slotToggleAlarm() Config config( "qpe" ); config.setGroup( "Time" ); - if ( alarmBool ) { - config.writeEntry( "clockAlarmSet", "FALSE" ); - alarmOffBtn->setText( tr( "Alarm Is Off" ) ); - snoozeBtn->hide(); - alarmBool = FALSE; - alarmOff(); - } - else { - config.writeEntry( "clockAlarmSet", "TRUE" ); - alarmOffBtn->setText( tr( "Alarm Is On" ) ); - snoozeBtn->show(); - alarmBool = TRUE; - alarmOn(); - } + if ( alarmBool ) + { + config.writeEntry( "clockAlarmSet", "FALSE" ); + alarmOffBtn->setText( tr( "Alarm Is Off" ) ); + snoozeBtn->hide(); + alarmBool = FALSE; + alarmOff(); + } + else + { + config.writeEntry( "clockAlarmSet", "TRUE" ); + alarmOffBtn->setText( tr( "Alarm Is On" ) ); + snoozeBtn->show(); + alarmBool = TRUE; + alarmOn(); + } config.write(); } @@ -415,8 +425,8 @@ void Clock::alarmOff() void Clock::clearTimer() { - alarmOffBtn->setText( tr( "Alarm Is Off" ) ); - alarmBool = FALSE; - snoozeBtn->hide(); - setCaption( "Clock" ); + alarmOffBtn->setText( tr( "Alarm Is Off" ) ); + alarmBool = FALSE; + snoozeBtn->hide(); + setCaption( "Clock" ); } @@ -427,36 +437,36 @@ void Clock::appMessage( const QCString& msg, const QByteArray& /*data*/ ) bSound = TRUE; qDebug( "Message received in clock" ); - if ( msg == "alarm(QDateTime,int)" ) { - Config config( "qpe" ); - config.setGroup( "Time" ); - if ( config.readBoolEntry( "mp3Alarm", 0 ) ) - { - clearTimer(); -// pid_t pid; -// switch(pid = fork()) -// { -// case -1: -// {//failed -// } -// break; -// case 0: -// {//child -// QCopEnvelope e( "QPE/Application/opieplayer", "setDocument(QString)" ); -// e << config.readEntry( "mp3File", "" ); - pthread_t thread; - pthread_create(&thread, NULL, (void * (*) (void *))startPlayer, NULL/* &*/); -// startPlayer(); -// } -// break; -// }; - - } - else - { + if ( msg == "alarm(QDateTime,int)" ) + { + Config config( "qpe" ); + config.setGroup( "Time" ); + if ( config.readBoolEntry( "mp3Alarm", 0 ) ) + { + clearTimer(); + pthread_t thread; + pthread_create(&thread, NULL, (void * (*) (void *))startPlayer, NULL/* &*/); + + } + else + { + + Sound::soundAlarm(); + stopTimer = startTimer( timerStay ); + } + } + + if ( msg == "timerStart()" ) + { + slotStartTimer(); + } + if ( msg == "timerStop()" ) + { + slotStopTimer(); + } + if ( msg == "timerReset()" ) + { + slotResetTimer(); + } - Sound::soundAlarm(); - stopTimer = startTimer( timerStay ); - } - } show(); raise(); @@ -468,14 +478,16 @@ void Clock::timerEvent( QTimerEvent *e ) { static int stop = 0; - if ( stop < 120 && bSound ) { - Sound::soundAlarm(); - stop++; - } - else { - stop = 0; - killTimer( e->timerId() ); - clearTimer(); - setCaption( tr( "Clock: Alarm was missed." ) ); - } + if ( stop < 120 && bSound ) + { + Sound::soundAlarm(); + stop++; + } + else + { + stop = 0; + killTimer( e->timerId() ); + clearTimer(); + setCaption( tr( "Clock: Alarm was missed." ) ); + } } @@ -495,5 +507,5 @@ void AnalogClock::drawContents( QPainter *p ) else fr. setRect ( r. x ( ), ( r. height ( ) - r. width ( )) / 2, r. width ( ), r. width ( )); - + QPoint center = fr. center ( ); // ( fr.x() + fr.width() / 2, fr.y() + fr.height() / 2 ); QPoint l1 ( center. x ( ), fr. y ( ) + 2 ); @@ -502,22 +514,24 @@ void AnalogClock::drawContents( QPainter *p ) - if ( clear ) { - erase ( r ); - p-> setPen ( NoPen ); - p-> setBrush ( colorGroup ( ). color ( QColorGroup::Base )); - p-> drawEllipse ( fr ); - p-> setBrush ( NoBrush ); + if ( clear ) + { + erase ( r ); + p-> setPen ( NoPen ); + p-> setBrush ( colorGroup ( ). color ( QColorGroup::Base )); + p-> drawEllipse ( fr ); + p-> setBrush ( NoBrush ); + + // draw ticks + p->setPen( QPen( colorGroup ( ). color ( QColorGroup::Text ), 1 ) ); + for ( int i = 0; i < 12; i++ ) + p->drawLine( rotate( center, l1, i * 30 ), rotate( center, l2, i * 30 ) ); + } + else + { + drawPointers ( p, fr, colorGroup ( ). color ( QColorGroup::Base ), prevTime, &currTime ); + } - // draw ticks - p->setPen( QPen( colorGroup ( ). color ( QColorGroup::Text ), 1 ) ); - for ( int i = 0; i < 12; i++ ) - p->drawLine( rotate( center, l1, i * 30 ), rotate( center, l2, i * 30 ) ); - } - else { - drawPointers ( p, fr, colorGroup ( ). color ( QColorGroup::Base ), prevTime, &currTime ); - } - drawPointers ( p, fr, colorGroup ( ). color ( QColorGroup::Text ), currTime ); - + prevTime = currTime; } @@ -538,5 +552,5 @@ void AnalogClock::drawPointers ( QPainter *p, const QRect &r, const QColor &c, c if ( !t2 || ( t. minute ( ) != t2-> minute ( ) || t. hour ( ) != t2-> hour ( ))) { - // draw hour pointer + // draw hour pointer h1 = rotate( center, h1, 30 * ( t.hour() % 12 ) + t.minute() / 2 ); h2 = rotate( center, h2, 30 * ( t.hour() % 12 ) + t.minute() / 2 ); @@ -546,5 +560,5 @@ void AnalogClock::drawPointers ( QPainter *p, const QRect &r, const QColor &c, c if ( !t2 || ( t. minute ( ) != t2-> minute ( ))) { - // draw minute pointer + // draw minute pointer m1 = rotate( center, m1, t.minute() * 6 ); m2 = rotate( center, m2, t.minute() * 6 ); @@ -554,5 +568,5 @@ void AnalogClock::drawPointers ( QPainter *p, const QRect &r, const QColor &c, c if ( !t2 || ( t. second ( ) != t2-> second ( ))) { - // draw second pointer + // draw second pointer s1 = rotate( center, s1, t.second() * 6 ); s2 = rotate( center, s2, t.second() * 6 ); @@ -585,2 +599,37 @@ void Clock::slotAdjustTime() e << QString( "systemtime" ); } + +void Clock::slotStartTimer() +{ + Config cfg( "Clock" ); + cfg.setGroup( "Mode" ); + int mode = cfg.readBoolEntry( "clockMode"); + if ( clockRB->isChecked() ) + setSwatchMode( 1); + slotSet(); +} + +void Clock::slotStopTimer() +{ + Config cfg( "Clock" ); + cfg.setGroup( "Mode" ); + int mode = cfg.readBoolEntry( "clockMode"); + if ( clockRB->isChecked() ) + setSwatchMode( 1); +slotSet(); +} + +void Clock::slotResetTimer() +{ + if ( clockRB->isChecked() ) + setSwatchMode( 1); +slotReset(); +} + +void Clock::setSwatchMode(int mode) +{ + qDebug("Clock::setSwatchMode( %d)"), mode; + swatchRB->setChecked( mode); + clearClock( ); + modeSelect( mode ); +} 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 @@ -47,10 +47,12 @@ protected: private: - QPoint rotate( QPoint center, QPoint p, int angle ); - void drawPointers ( QPainter *, const QRect &r, const QColor &c, const QTime &t, const QTime *t2 = 0 ); QTime currTime; QTime prevTime; bool clear; + + QPoint rotate( QPoint center, QPoint p, int angle ); + void drawPointers ( QPainter *, const QRect &r, const QColor &c, const QTime &t, const QTime *t2 = 0 ); + }; @@ -79,7 +81,10 @@ private slots: void timerEvent( QTimerEvent *e ); void slotAdjustTime(); + + void slotStartTimer(); + void slotStopTimer(); + void slotResetTimer(); + void setSwatchMode( int ); private: - void clearClock(); - void clearTimer(); bool alarmBool; QTimer *t; @@ -94,4 +99,6 @@ private: bool swatch_running; bool ampm; + void clearClock(); + void clearTimer(); }; |