author | sandman <sandman> | 2002-06-10 23:24:52 (UTC) |
---|---|---|
committer | sandman <sandman> | 2002-06-10 23:24:52 (UTC) |
commit | 4ca2d71bbbe91c01e398f6aadd69975fa8894c29 (patch) (side-by-side diff) | |
tree | 7533774848c0fbe63aa89550c30be021019c06ed | |
parent | 3613c40c01d05fa7bbb60c376a486a350a67d6a6 (diff) | |
download | opie-4ca2d71bbbe91c01e398f6aadd69975fa8894c29.zip opie-4ca2d71bbbe91c01e398f6aadd69975fa8894c29.tar.gz opie-4ca2d71bbbe91c01e398f6aadd69975fa8894c29.tar.bz2 |
Fix some oddities regarding AM/PM and alarms at 00:xx in 24H mode
-rw-r--r-- | noncore/tools/clock/clock.cpp | 3 | ||||
-rw-r--r-- | noncore/tools/clock/setAlarm.cpp | 5 |
2 files changed, 7 insertions, 1 deletions
diff --git a/noncore/tools/clock/clock.cpp b/noncore/tools/clock/clock.cpp index 9b9e644..a47793b 100644 --- a/noncore/tools/clock/clock.cpp +++ b/noncore/tools/clock/clock.cpp @@ -212,192 +212,195 @@ void Clock::updateClock() 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() ) ); } } void Clock::changeClock( bool a ) { ampm = a; updateClock(); } void Clock::clearClock( void ) { lcd->display( QTime( 0,0,0 ).toString() ); aclock->display( QTime( 0,0,0 ) ); } 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 ); } } void Clock::slotReset() { t->stop(); swatch_start.start(); swatch_totalms = 0; if (swatch_running ) t->start(1000); updateClock(); } 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); } updateClock(); } //this sets the alarm time void Clock::slotSetAlarm() { if( !snoozeBtn->isHidden()) slotToggleAlarm(); Set_Alarm *setAlarmDlg; setAlarmDlg = new Set_Alarm(this,"SetAlarm", TRUE); int result = setAlarmDlg->exec(); if(result == 1) { Config config( "qpe" ); config.setGroup("Time"); QString tmp; hour = setAlarmDlg->Hour_Slider->value(); minute = setAlarmDlg->Minute_Slider->value(); snoozeTime=setAlarmDlg->SnoozeSlider->value(); if(ampm) { + if ( hour == 12 ) + hour = 0; + if(setAlarmDlg->Pm_RadioButton->isChecked() && hour < 12 ) hour+=12; } config.writeEntry("clockAlarmHour", tmp.setNum( hour ),10); config.writeEntry("clockAlarmMinute",tmp.setNum( minute ),10); config.writeEntry("clockAlarmSnooze",tmp.setNum( snoozeTime ),10); config.write(); } } void Clock::slotSnooze() { bSound=FALSE; int warn = 0; QTime t = QTime::currentTime(); QDateTime whenl( when.date(), t.addSecs( snoozeTime*60)); when=whenl; AlarmServer::addAlarm( when, "QPE/Application/clock", "alarm(QDateTime,int)", warn ); } //toggles alarm on/off 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(); } config.write(); } void Clock::alarmOn() { QDate d = QDate::currentDate(); QTime tm((int)hour,(int)minute,0); qDebug("Time set "+tm.toString()); QTime t = QTime::currentTime(); if( t > tm) d = d.addDays(1); int warn = 0; QDateTime whenl(d,tm); when=whenl; AlarmServer::addAlarm( when, "QPE/Application/clock", "alarm(QDateTime,int)", warn ); setCaption("Alarm set: "+ whenl.toString()); } void Clock::alarmOff() { int warn = 0; bSound=FALSE; AlarmServer::deleteAlarm( when, "QPE/Application/clock", "alarm(QDateTime,int)", warn ); qDebug("Alarm Off "+ when.toString()); setCaption("Clock"); } 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)" ) { Sound::soundAlarm(); stopTimer = startTimer( timerStay); } show(); raise(); QPEApplication::setKeepRunning(); setActiveWindow(); } void Clock::timerEvent( QTimerEvent *e ) { static int stop = 0; if ( stop < 120 && bSound) { Sound::soundAlarm(); stop++; } else { stop = 0; diff --git a/noncore/tools/clock/setAlarm.cpp b/noncore/tools/clock/setAlarm.cpp index 6b95e6a..bd964e0 100644 --- a/noncore/tools/clock/setAlarm.cpp +++ b/noncore/tools/clock/setAlarm.cpp @@ -39,146 +39,149 @@ Set_Alarm::Set_Alarm( QWidget* parent, const char* name, bool modal, WFlags fl setCaption( tr( "Set Alarm" ) ); connect( qApp,SIGNAL( aboutToQuit()),SLOT( cleanUp()) ); Set_AlarmLayout = new QGridLayout( this ); Set_AlarmLayout->setSpacing( 6 ); Set_AlarmLayout->setMargin( 11 ); TextLabel1 = new QLabel( this, "TextLabel1" ); TextLabel1->setText( tr( "Hour" ) ); Set_AlarmLayout->addWidget( TextLabel1, 0, 0 ); TextLabel2 = new QLabel( this, "TextLabel2" ); TextLabel2->setText( tr( "Minute" ) ); Set_AlarmLayout->addMultiCellWidget( TextLabel2, 0, 0, 1, 2 ); Hour_Slider = new QSlider( this, "Hour_Slider" ); Hour_Slider->setPageStep( 1); Hour_Slider->setOrientation( QSlider::Horizontal ); connect(Hour_Slider, SIGNAL( valueChanged(int)),this,SLOT(slotChangeHour(int))); Set_AlarmLayout->addWidget( Hour_Slider, 2, 0 ); Hour_LCDNumber = new QLCDNumber( this, "Hour_LCDNumber" ); Hour_LCDNumber->setFrameShape( QLCDNumber::Box ); Hour_LCDNumber->setFrameShadow( QLCDNumber::Plain ); Hour_LCDNumber->setSegmentStyle( QLCDNumber::Flat ); Set_AlarmLayout->addWidget( Hour_LCDNumber, 1, 0 ); Minute_Slider = new QSlider( this, "Minute_Slider" ); Minute_Slider->setMaxValue( 59); Minute_Slider->setPageStep( 1); Minute_Slider->setOrientation( QSlider::Horizontal ); connect(Minute_Slider, SIGNAL( valueChanged(int)),this,SLOT(slotChangeMinute(int))); Set_AlarmLayout->addMultiCellWidget( Minute_Slider, 2, 2, 1, 2 ); Minute_LCDNumber = new QLCDNumber( this, "Minute_LCDNumber" ); Minute_LCDNumber->setFrameShape( QLCDNumber::Box ); Minute_LCDNumber->setFrameShadow( QLCDNumber::Plain ); Minute_LCDNumber->setSegmentStyle( QLCDNumber::Flat ); Set_AlarmLayout->addMultiCellWidget( Minute_LCDNumber, 1, 1, 1, 2 ); Am_RadioButton = new QRadioButton( this, "Am_RadioButton" ); Am_RadioButton->setText( tr( "AM" ) ); Am_RadioButton->setChecked(TRUE); connect( Am_RadioButton, SIGNAL(toggled(bool)),this,SLOT( amButtonToggled(bool))); Set_AlarmLayout->addMultiCellWidget( Am_RadioButton, 0, 1, 3, 4 ); Pm_RadioButton = new QRadioButton( this, "Pm_RadioButton" ); Pm_RadioButton->setText( tr( "PM" ) ); connect( Pm_RadioButton, SIGNAL(toggled(bool)),this,SLOT( pmButtonToggled(bool))); Set_AlarmLayout->addMultiCellWidget(Pm_RadioButton, 1, 2, 3, 4 ); TextLabel3 = new QLabel( this, "TextLabel3" ); TextLabel3->setText( tr( "Snooze Delay\n(minutes)" ) ); Set_AlarmLayout->addMultiCellWidget( TextLabel3, 3, 3, 0, 1 ); Snooze_LCDNumber = new QLCDNumber( this, "Snooze_LCDNumber" ); Snooze_LCDNumber->setFrameShape( QLCDNumber::Box ); Snooze_LCDNumber->setFrameShadow( QLCDNumber::Plain ); Snooze_LCDNumber->setSegmentStyle( QLCDNumber::Flat ); Set_AlarmLayout->addMultiCellWidget( Snooze_LCDNumber, 3, 3, 1, 2 ); SnoozeSlider = new QSlider( this, "SnoozeSlider" ); SnoozeSlider->setMaxValue( 60 ); SnoozeSlider->setOrientation( QSlider::Horizontal ); connect(SnoozeSlider, SIGNAL( valueChanged(int)),this,SLOT(slotChangeSnooze(int))); Set_AlarmLayout->addMultiCellWidget( SnoozeSlider, 3, 3, 3, 4 ); Config config( "qpe" ); config.setGroup("Time"); bool ok; bool ampm = config.readBoolEntry( "AMPM", TRUE ); QString alarmHour=config.readEntry("clockAlarmHour","8"); int i_alarmHour = alarmHour.toInt(&ok,10); QString alarmMinute=config.readEntry("clockAlarmMinute","0"); QString snoozeTime=config.readEntry("clockAlarmSnooze","0"); if(ampm) { Hour_Slider->setMaxValue( 12); Hour_Slider->setMinValue( 1); if( i_alarmHour > 12) { i_alarmHour = i_alarmHour - 12; Pm_RadioButton->setChecked(TRUE); } + else if ( i_alarmHour == 0 ) { + i_alarmHour = 12; + } Hour_Slider->setValue( i_alarmHour); Minute_Slider->setValue( alarmMinute.toInt(&ok,10) ); SnoozeSlider->setValue( snoozeTime.toInt(&ok,10) ); } else { Hour_Slider->setMaxValue( 23); - Hour_Slider->setMinValue( 1); + Hour_Slider->setMinValue( 0); Hour_Slider->setValue( i_alarmHour); Minute_Slider->setValue( alarmMinute.toInt(&ok,10) ); SnoozeSlider->setValue( snoozeTime.toInt(&ok,10) ); Am_RadioButton->hide(); Pm_RadioButton->hide(); } // signals and slots connections } Set_Alarm::~Set_Alarm() { } void Set_Alarm::slotChangeHour(int hour) { Hour_LCDNumber->display(hour); } void Set_Alarm::slotChangeMinute(int minute) { Minute_LCDNumber->display(minute); } void Set_Alarm::slotChangeSnooze(int minute) { Snooze_LCDNumber->display(minute); } void Set_Alarm::amButtonToggled(bool b) { if ( b) Pm_RadioButton->setChecked(FALSE); } void Set_Alarm::pmButtonToggled(bool b) { if (b) Am_RadioButton->setChecked(FALSE); } void Set_Alarm::cleanUp() { } |