summaryrefslogtreecommitdiff
path: root/noncore/tools/clock/clock.cpp
authorllornkcor <llornkcor>2002-03-15 04:29:42 (UTC)
committer llornkcor <llornkcor>2002-03-15 04:29:42 (UTC)
commita0d6c8fdac4e8644c31d1b2e2a321131be4b57c2 (patch) (side-by-side diff)
tree319d9a01475596ccefa9765cc324485a4ce7e5aa /noncore/tools/clock/clock.cpp
parent320291b5006c75e3e42ba1cbbac9639a54309553 (diff)
downloadopie-a0d6c8fdac4e8644c31d1b2e2a321131be4b57c2.zip
opie-a0d6c8fdac4e8644c31d1b2e2a321131be4b57c2.tar.gz
opie-a0d6c8fdac4e8644c31d1b2e2a321131be4b57c2.tar.bz2
added simple 24 hr alarm features
Diffstat (limited to 'noncore/tools/clock/clock.cpp') (more/less context) (show whitespace changes)
-rw-r--r--noncore/tools/clock/clock.cpp157
1 files changed, 157 insertions, 0 deletions
diff --git a/noncore/tools/clock/clock.cpp b/noncore/tools/clock/clock.cpp
index ef93e11..d5d77bc 100644
--- a/noncore/tools/clock/clock.cpp
+++ b/noncore/tools/clock/clock.cpp
@@ -21,2 +21,3 @@
#include "clock.h"
+#include "setAlarm.h"
@@ -26,4 +27,10 @@
#include <qpe/timestring.h>
+#include <qpe/alarmserver.h>
+#include <qpe/sound.h>
+#include <qpe/resource.h>
+#include <qsound.h>
+#include <qtimer.h>
#include <qlcdnumber.h>
+#include <qslider.h>
#include <qlabel.h>
@@ -35,2 +42,4 @@
#include <qpainter.h>
+#include <qmessagebox.h>
+#include <qdatetime.h>
@@ -57,2 +66,5 @@ Clock::Clock( QWidget * parent, const char * name, WFlags f )
+ snoozeBtn = new QPushButton ( this);
+ snoozeBtn->setText( tr( "Snooze" ) );
+
aclock = new AnalogClock( this );
@@ -100,2 +112,3 @@ Clock::Clock( QWidget * parent, const char * name, WFlags f )
set = new QPushButton ( controls );
+ set->setMaximumSize(50,30);
gl->addWidget( set, 0, 1 );
@@ -111,2 +124,11 @@ 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" ) );
+
connect( set, SIGNAL( pressed() ), SLOT( slotSet() ) );
@@ -114,2 +136,9 @@ Clock::Clock( QWidget * parent, const char * name, WFlags f )
+ connect( alarmBtn, SIGNAL( clicked() ), SLOT( slotSetAlarm() ) );
+ connect( snoozeBtn, SIGNAL( clicked() ), SLOT( slotSnooze() ) );
+ connect( alarmOffBtn, SIGNAL( clicked() ), SLOT( slotToggleAlarm() ) );
+
+ connect( qApp, SIGNAL(appMessage(const QCString&, const QByteArray&)),
+ this, SLOT(appMessage(const QCString&, const QByteArray&)) );
+
t = new QTimer( this );
@@ -125,2 +154,18 @@ Clock::Clock( QWidget * parent, const char * name, WFlags f )
+ 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") {
+ alarmOffBtn->setText( tr( "Alarm On" ) );
+ alarmBool=TRUE;
+ snoozeBtn->show();
+ } else {
+ alarmOffBtn->setText( tr( "Alarm Off" ) );
+ alarmBool=FALSE;
+ snoozeBtn->hide();
+ }
+
QTimer::singleShot( 0, this, SLOT(updateClock()) );
@@ -237,2 +282,114 @@ void Clock::modeSelect( int m )
+//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(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;
+ 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 Off" ) );
+ snoozeBtn->hide();
+ alarmBool=FALSE;
+ alarmOff();
+ } else {
+ config.writeEntry("clockAlarmSet","TRUE");
+ alarmOffBtn->setText( tr( "Alarm 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;
+ QDateTime whenl(d,tm);
+ when=whenl;
+ AlarmServer::addAlarm( when,
+ "QPE/Application/clock",
+ "alarm(QDateTime,int)", warn );
+ QMessageBox::message("Note","Alarm is set for:\n"+ whenl.toString());
+}
+
+void Clock::alarmOff()
+{
+ int warn;
+ bSound=FALSE;
+ AlarmServer::deleteAlarm( when,
+ "QPE/Application/clock",
+ "alarm(QDateTime,int)", warn );
+ qDebug("Alarm Off "+ when.toString());
+
+}
+
+void Clock::appMessage(const QCString& msg, const QByteArray& data)
+{
+ int stopTimer = 0;
+ int timerStay = 5000;
+ bSound=TRUE;
+ if ( msg == "alarm(QDateTime,int)" ) {
+ Sound::soundAlarm();
+ stopTimer = startTimer( timerStay);
+ }
+}
+
+void Clock::timerEvent( QTimerEvent *e )
+{
+ static int stop = 0;
+ if ( stop < 10 && bSound) {
+ Sound::soundAlarm();
+ stop++;
+ } else {
+ stop = 0;
+ killTimer( e->timerId() );
+ }
+}
+
+
QSizePolicy AnalogClock::sizePolicy() const