summaryrefslogtreecommitdiff
authorzecke <zecke>2002-05-21 14:21:59 (UTC)
committer zecke <zecke>2002-05-21 14:21:59 (UTC)
commitd65dc25caec62d4c554c99fbc151bf4d07c63b72 (patch) (side-by-side diff)
tree37485591f8cd642df0177ea77b860f8d4432e9ef
parent3eb1e88e5915c9dbd521a150cc5dd7eb7dbb3663 (diff)
downloadopie-d65dc25caec62d4c554c99fbc151bf4d07c63b72.zip
opie-d65dc25caec62d4c554c99fbc151bf4d07c63b72.tar.gz
opie-d65dc25caec62d4c554c99fbc151bf4d07c63b72.tar.bz2
usbaility updates a clock should be able to set the time
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/tools/clock/clock.cpp24
-rw-r--r--noncore/tools/clock/clock.h1
-rw-r--r--noncore/tools/clock/clock.pro2
3 files changed, 20 insertions, 7 deletions
diff --git a/noncore/tools/clock/clock.cpp b/noncore/tools/clock/clock.cpp
index a21a061..ea8e8ca 100644
--- a/noncore/tools/clock/clock.cpp
+++ b/noncore/tools/clock/clock.cpp
@@ -10,48 +10,50 @@
**
** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
**
** See http://www.trolltech.com/gpl/ for GPL licensing information.
**
** Contact info@trolltech.com if any conditions of this licensing are
** not clear to you.
**
**********************************************************************/
#include "clock.h"
#include "setAlarm.h"
#include <qpe/qpeapplication.h>
#include <qpe/qcopenvelope_qws.h>
#include <qpe/config.h>
#include <qpe/timestring.h>
#include <qpe/alarmserver.h>
#include <qpe/sound.h>
#include <qpe/resource.h>
#include <qsound.h>
#include <qtimer.h>
+#include <opie/oclickablelabel.h>
+
#include <qlcdnumber.h>
#include <qslider.h>
#include <qlabel.h>
#include <qlayout.h>
#include <qtimer.h>
#include <qpushbutton.h>
#include <qradiobutton.h>
#include <qbuttongroup.h>
#include <qpainter.h>
#include <qmessagebox.h>
#include <qdatetime.h>
#include <math.h>
const double deg2rad = 0.017453292519943295769; // pi/180
const int sw_prec = 2;
static void toggleScreenSaver( bool on )
{
QCopEnvelope e("QPE/System", "setScreenSaverMode(int)" );
e << (on ? QPEApplication::Enable: QPEApplication::DisableSuspend );
}
Clock::Clock( QWidget * parent, const char * name, WFlags f )
@@ -71,141 +73,146 @@ Clock::Clock( QWidget * parent, const char * name, WFlags f )
aclock->display( QTime::currentTime() );
aclock->setLineWidth( 2 );
QHBox *hb = new QHBox( this );
hb->setMargin( 0 );
QWidget *space = new QWidget( hb );
lcd = new QLCDNumber( hb );
lcd->setSegmentStyle( QLCDNumber::Flat );
lcd->setFrameStyle( QFrame::NoFrame );
lcd->setSizePolicy( QSizePolicy( QSizePolicy::Minimum, QSizePolicy::Minimum ) );
lcd->setFixedHeight( 23 );
ampmLabel = new QLabel( tr("PM"), hb );
ampmLabel->setFont( QFont( "Helvetica", 14, QFont::Bold ) );
ampmLabel->setSizePolicy( QSizePolicy( QSizePolicy::Minimum, QSizePolicy::Preferred ) );
ampmLabel->setAlignment( AlignLeft | AlignBottom );
space = new QWidget( hb );
date = new QLabel( this );
date->setAlignment( AlignHCenter | AlignVCenter );
date->setFont( QFont( "Helvetica", 14, QFont::Bold ) );
date->setText( TimeString::longDateString( QDate::currentDate() ) );
QWidget *controls = new QWidget( this );
- QGridLayout *gl = new QGridLayout( controls, 2, 2, 6, 4 );
+ QGridLayout *gl = new QGridLayout( controls, 3, 2, 6, 4 );
QButtonGroup *grp = new QButtonGroup( controls );
grp->setRadioButtonExclusive( true );
grp->hide();
clockRB = new QRadioButton ( tr( "Clock" ), controls );
gl->addWidget( clockRB, 0, 0 );
grp->insert( clockRB );
swatchRB = new QRadioButton ( tr( "Stopwatch" ), controls );
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 );
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( reset, SIGNAL( clicked() ), SLOT( slotReset() ) );
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 );
connect( t, SIGNAL( timeout() ), SLOT( updateClock() ) );
t->start( 1000 );
connect( qApp, SIGNAL( timeChanged() ), SLOT( updateClock() ) );
swatch_running = FALSE;
swatch_totalms = 0;
connect( qApp, SIGNAL(clockChanged(bool)), this, SLOT(changeClock(bool)) );
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 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);
}
Clock::~Clock()
{
toggleScreenSaver( true );
}
void Clock::updateClock()
{
if ( clockRB->isChecked() ) {
QTime tm = QDateTime::currentDateTime().time();
QString s;
if ( ampm ) {
int hour = tm.hour();
- if (hour == 0)
+ 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);
@@ -260,88 +267,88 @@ 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);
}
updateClock();
}
//this sets the alarm time
-void Clock::slotSetAlarm()
+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()
+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());
@@ -453,24 +460,29 @@ void AnalogClock::drawContents( QPainter *p )
p->drawLine( s1, s2 );
if ( !clear )
prevTime = currTime;
}
void AnalogClock::display( const QTime& t )
{
currTime = t;
clear = true;
repaint( false );
clear = false;
repaint( false );
}
QPoint AnalogClock::rotate( QPoint c, QPoint p, int a )
{
double angle = deg2rad * ( - a + 180 );
double nx = c.x() - ( p.x() - c.x() ) * cos( angle ) -
( p.y() - c.y() ) * sin( angle );
double ny = c.y() - ( p.y() - c.y() ) * cos( angle ) +
( p.x() - c.x() ) * sin( angle );
return QPoint( nx, ny );
}
+void Clock::slotAdjustTime()
+{
+ QCopEnvelope e("QPE/System", "execute(QString)");
+ e << QString("systemtime");
+}
diff --git a/noncore/tools/clock/clock.h b/noncore/tools/clock/clock.h
index 9b756b5..024dd28 100644
--- a/noncore/tools/clock/clock.h
+++ b/noncore/tools/clock/clock.h
@@ -55,44 +55,45 @@ private:
class Clock : public QVBox
{
Q_OBJECT
public:
Clock( QWidget * parent = 0, const char * name = 0, WFlags f=0 );
~Clock();
QDateTime when;
bool bSound;
int hour, minute, snoozeTime;
private slots:
void slotSet();
void slotReset();
void modeSelect(int);
void updateClock();
void changeClock( bool );
void slotSetAlarm();
void slotSnooze();
void slotToggleAlarm();
void alarmOn();
void alarmOff();
void appMessage(const QCString& msg, const QByteArray& data);
void timerEvent( QTimerEvent *e );
+ void slotAdjustTime();
private:
void clearClock();
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;
};
#endif
diff --git a/noncore/tools/clock/clock.pro b/noncore/tools/clock/clock.pro
index 5373515..7eecce1 100644
--- a/noncore/tools/clock/clock.pro
+++ b/noncore/tools/clock/clock.pro
@@ -1,24 +1,24 @@
TEMPLATE = app
CONFIG = qt warn_on release
DESTDIR = $(OPIEDIR)/bin
HEADERS = clock.h setAlarm.h
SOURCES = clock.cpp setAlarm.cpp \
main.cpp
INCLUDEPATH += $(OPIEDIR)/include
DEPENDPATH += $(OPIEDIR)/include
-LIBS += -lqpe
+LIBS += -lqpe -lopie
INTERFACES =
TARGET = clock
TRANSLATIONS = ../i18n/de/clock.ts
TRANSLATIONS += ../i18n/pt_BR/clock.ts
TRANSLATIONS += ../i18n/en/clock.ts
TRANSLATIONS += ../i18n/hu/clock.ts
TRANSLATIONS += ../i18n/sl/clock.ts
TRANSLATIONS += ../i18n/ja/clock.ts
TRANSLATIONS += ../i18n/ko/clock.ts
TRANSLATIONS += ../i18n/fr/clock.ts
TRANSLATIONS += ../i18n/pl/clock.ts
TRANSLATIONS += ../i18n/no/clock.ts
TRANSLATIONS += ../i18n/zh_CN/clock.ts
TRANSLATIONS += ../i18n/zh_TW/clock.ts