-rw-r--r-- | noncore/tools/clock/clock.cpp | 171 | ||||
-rw-r--r-- | noncore/tools/clock/clock.h | 15 |
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 @@ -77,12 +77,8 @@ Clock::Clock( QWidget * parent, const char * name, WFlags f ) { setSpacing( 4 ); setMargin( 1 ); - Config config( "qpe" ); - config.setGroup( "Time" ); - ampm = config.readBoolEntry( "AMPM", TRUE ); - snoozeBtn = new QPushButton ( this ); snoozeBtn->setText( tr( "Snooze" ) ); @@ -127,43 +123,35 @@ Clock::Clock( QWidget * parent, const char * name, WFlags f ) connect( grp, SIGNAL( clicked( int ) ), this, SLOT( modeSelect( int ) ) ); 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 ); gl->addWidget( reset, 1, 1 ); reset->setText( tr( "Reset" ) ); reset->setEnabled( FALSE ); grp->insert( reset ); 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" ) ); OClickableLabel *click = new OClickableLabel( controls, "label" ); click->setText( tr( "Set date and time." ) ); gl->addMultiCellWidget( click, 3, 3, 0, 2, AlignHCenter ); 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() ) ); connect( alarmBtn, SIGNAL( clicked() ), SLOT( slotSetAlarm() ) ); connect( snoozeBtn, SIGNAL( clicked() ), SLOT( slotSnooze() ) ); @@ -182,27 +170,38 @@ Clock::Clock( QWidget * parent, const char * name, WFlags f ) swatch_totalms = 0; 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; hour = tmp.toInt( &ok, 10 ); tmp = config.readEntry( "clockAlarmMinute", "" ); minute = tmp.toInt( &ok, 10 ); - if ( config.readEntry( "clockAlarmSet", "FALSE" ) == "TRUE" ) { + if ( config.readEntry( "clockAlarmSet", "FALSE" ) == "TRUE" ) + { alarmOffBtn->setText( tr( "Alarm Is On" ) ); alarmBool = TRUE; snoozeBtn->show(); } - else { + 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); } Clock::~Clock() { @@ -210,12 +209,14 @@ Clock::~Clock() } void Clock::updateClock() { - if ( clockRB->isChecked() ) { + if ( clockRB->isChecked() ) + { QTime tm = QDateTime::currentDateTime().time(); QString s; - if ( ampm ) { + if ( ampm ) + { int hour = tm.hour(); if ( hour == 0 ) hour = 12; if ( hour > 12 ) @@ -223,18 +224,20 @@ void Clock::updateClock() s.sprintf( "%2d%c%02d", hour, ':', tm.minute() ); ampmLabel->setText( ( tm.hour() >= 12 ) ? "PM" : "AM" ); ampmLabel->show(); } - else { + 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 { + else + { QTime swatch_time; QString lcdtext; int totalms = swatch_totalms; if ( swatch_running ) @@ -263,21 +266,21 @@ void Clock::clearClock( void ) } void Clock::slotSet() { - if ( t->isActive() ) { + if ( t->isActive() ) + { swatch_totalms += swatch_start.elapsed(); - set - ->setText( tr( "Start" ) ); + set->setText( tr( "Start" ) ); t->stop(); swatch_running = FALSE; toggleScreenSaver( TRUE ); updateClock(); } - else { + else + { swatch_start.start(); - set - ->setText( tr( "Stop" ) ); + set->setText( tr( "Stop" ) ); t->start( 1000 ); swatch_running = TRUE; // disable screensaver while stop watch is running toggleScreenSaver( FALSE ); @@ -297,27 +300,32 @@ void Clock::slotReset() } void Clock::modeSelect( int m ) { - if ( m ) { + qDebug("Clock::modeSelect( %d) ", m); + if ( m ) + { lcd->setNumDigits( 8 + 1 + sw_prec ); lcd->setMinimumWidth( lcd->sizeHint().width() ); - set - ->setEnabled( TRUE ); + set->setEnabled( TRUE ); reset->setEnabled( TRUE ); ampmLabel->hide(); if ( !swatch_running ) t->stop(); } - else { + else + { lcd->setNumDigits( 5 ); lcd->setMinimumWidth( lcd->sizeHint().width() ); - set - ->setEnabled( FALSE ); + set->setEnabled( FALSE ); reset->setEnabled( FALSE ); t->start( 1000 ); } + + Config config( "Clock" ); + config.setGroup( "Mode" ); + config.writeEntry( "clockMode", m ); updateClock(); } //this sets the alarm time @@ -366,16 +374,18 @@ void Clock::slotSnooze() void Clock::slotToggleAlarm() { Config config( "qpe" ); config.setGroup( "Time" ); - if ( alarmBool ) { + if ( alarmBool ) + { config.writeEntry( "clockAlarmSet", "FALSE" ); alarmOffBtn->setText( tr( "Alarm Is Off" ) ); snoozeBtn->hide(); alarmBool = FALSE; alarmOff(); } - else { + else + { config.writeEntry( "clockAlarmSet", "TRUE" ); alarmOffBtn->setText( tr( "Alarm Is On" ) ); snoozeBtn->show(); alarmBool = TRUE; @@ -425,31 +435,17 @@ void Clock::appMessage( const QCString& msg, const QByteArray& /*data*/ ) int stopTimer = 0; int timerStay = 5000; bSound = TRUE; qDebug( "Message received in clock" ); - if ( msg == "alarm(QDateTime,int)" ) { + 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 { @@ -457,8 +453,22 @@ void Clock::appMessage( const QCString& msg, const QByteArray& /*data*/ ) Sound::soundAlarm(); stopTimer = startTimer( timerStay ); } } + + if ( msg == "timerStart()" ) + { + slotStartTimer(); + } + if ( msg == "timerStop()" ) + { + slotStopTimer(); + } + if ( msg == "timerReset()" ) + { + slotResetTimer(); + } + show(); raise(); QPEApplication::setKeepRunning(); setActiveWindow(); @@ -466,13 +476,15 @@ void Clock::appMessage( const QCString& msg, const QByteArray& /*data*/ ) void Clock::timerEvent( QTimerEvent *e ) { static int stop = 0; - if ( stop < 120 && bSound ) { + if ( stop < 120 && bSound ) + { Sound::soundAlarm(); stop++; } - else { + else + { stop = 0; killTimer( e->timerId() ); clearTimer(); setCaption( tr( "Clock: Alarm was missed." ) ); @@ -500,9 +512,10 @@ void AnalogClock::drawContents( QPainter *p ) QPoint l2 ( center. x ( ), fr. y ( ) + 8 ); - if ( clear ) { + if ( clear ) + { erase ( r ); p-> setPen ( NoPen ); p-> setBrush ( colorGroup ( ). color ( QColorGroup::Base )); p-> drawEllipse ( fr ); @@ -512,9 +525,10 @@ void AnalogClock::drawContents( QPainter *p ) 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 { + else + { drawPointers ( p, fr, colorGroup ( ). color ( QColorGroup::Base ), prevTime, &currTime ); } drawPointers ( p, fr, colorGroup ( ). color ( QColorGroup::Text ), currTime ); @@ -583,4 +597,39 @@ void Clock::slotAdjustTime() { QCopEnvelope e( "QPE/System", "execute(QString)" ); 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 @@ -45,14 +45,16 @@ public: protected: void drawContents( QPainter *p ); 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 ); + }; class Clock : public QVBox { @@ -77,11 +79,14 @@ private slots: void alarmOff(); void appMessage(const QCString& msg, const QByteArray& data); void timerEvent( QTimerEvent *e ); void slotAdjustTime(); + + void slotStartTimer(); + void slotStopTimer(); + void slotResetTimer(); + void setSwatchMode( int ); private: - void clearClock(); - void clearTimer(); bool alarmBool; QTimer *t; QLCDNumber *lcd; QLabel *date; @@ -92,8 +97,10 @@ private: QTime swatch_start; int swatch_totalms; bool swatch_running; bool ampm; + void clearClock(); + void clearTimer(); }; #endif |