author | llornkcor <llornkcor> | 2003-03-04 16:50:17 (UTC) |
---|---|---|
committer | llornkcor <llornkcor> | 2003-03-04 16:50:17 (UTC) |
commit | bb765b9cd286d85eb8fa1d18199dfb7a29d57fc5 (patch) (side-by-side diff) | |
tree | 80d69eef2975d1fb27a758aea7629d34c678a270 | |
parent | 628a783e5d7ec07b5c073c94a77b614439d937ba (diff) | |
download | opie-bb765b9cd286d85eb8fa1d18199dfb7a29d57fc5.zip opie-bb765b9cd286d85eb8fa1d18199dfb7a29d57fc5.tar.gz opie-bb765b9cd286d85eb8fa1d18199dfb7a29d57fc5.tar.bz2 |
added 3 qcop calls. timerStart(), timerStop() and timerReset()
-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 @@ -75,16 +75,12 @@ static void toggleScreenSaver( bool on ) Clock::Clock( QWidget * parent, const char * name, WFlags f ) : QVBox( parent, name , f ) { setSpacing( 4 ); setMargin( 1 ); - Config config( "qpe" ); - config.setGroup( "Time" ); - ampm = config.readBoolEntry( "AMPM", TRUE ); - snoozeBtn = new QPushButton ( this ); snoozeBtn->setText( tr( "Snooze" ) ); aclock = new AnalogClock( this ); aclock->display( QTime::currentTime() ); @@ -125,47 +121,39 @@ Clock::Clock( QWidget * parent, const char * name, WFlags f ) gl->addWidget( swatchRB, 1, 0 ); grp->insert( swatchRB ); 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() ) ); connect( alarmOffBtn, SIGNAL( clicked() ), SLOT( slotToggleAlarm() ) ); @@ -180,63 +168,78 @@ Clock::Clock( QWidget * parent, const char * name, WFlags f ) swatch_running = FALSE; 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() { toggleScreenSaver( true ); } 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 ) hour -= 12; 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 ) totalms += swatch_start.elapsed(); swatch_time = QTime( 0, 0, 0 ).addMSecs( totalms ); @@ -261,25 +264,25 @@ void Clock::clearClock( void ) lcd->display( QTime( 0, 0, 0 ).toString() ); aclock->display( QTime( 0, 0, 0 ) ); } 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 ); } } @@ -295,31 +298,36 @@ void Clock::slotReset() updateClock(); } 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 void Clock::slotSetAlarm() { @@ -364,20 +372,22 @@ void Clock::slotSnooze() //toggles alarm on/off 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; alarmOn(); } @@ -423,58 +433,60 @@ void Clock::clearTimer() 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 { Sound::soundAlarm(); stopTimer = startTimer( timerStay ); } } + + if ( msg == "timerStart()" ) + { + slotStartTimer(); + } + if ( msg == "timerStop()" ) + { + slotStopTimer(); + } + if ( msg == "timerReset()" ) + { + slotResetTimer(); + } + show(); raise(); QPEApplication::setKeepRunning(); setActiveWindow(); } 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." ) ); } } @@ -498,25 +510,27 @@ void AnalogClock::drawContents( QPainter *p ) QPoint center = fr. center ( ); // ( fr.x() + fr.width() / 2, fr.y() + fr.height() / 2 ); QPoint l1 ( center. x ( ), fr. y ( ) + 2 ); 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 ); 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 { + else + { drawPointers ( p, fr, colorGroup ( ). color ( QColorGroup::Base ), prevTime, &currTime ); } drawPointers ( p, fr, colorGroup ( ). color ( QColorGroup::Text ), currTime ); prevTime = currTime; @@ -581,6 +595,41 @@ QPoint AnalogClock::rotate( QPoint c, QPoint p, int a ) 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 @@ -43,18 +43,20 @@ public: void display( const QTime& time ); 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 { Q_OBJECT @@ -75,25 +77,30 @@ private slots: void slotToggleAlarm(); void alarmOn(); 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; QLabel *ampmLabel; QPushButton *set, *reset, *alarmBtn, *snoozeBtn, *alarmOffBtn; QRadioButton *clockRB, *swatchRB; AnalogClock *aclock; QTime swatch_start; int swatch_totalms; bool swatch_running; bool ampm; + void clearClock(); + void clearTimer(); }; #endif |