summaryrefslogtreecommitdiff
Side-by-side diff
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--noncore/tools/clock/clock.cpp39
-rw-r--r--noncore/tools/clock/clock.h2
2 files changed, 24 insertions, 17 deletions
diff --git a/noncore/tools/clock/clock.cpp b/noncore/tools/clock/clock.cpp
index 9898332..0eb2b83 100644
--- a/noncore/tools/clock/clock.cpp
+++ b/noncore/tools/clock/clock.cpp
@@ -220,115 +220,126 @@ void Clock::updateClock()
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 );
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()
+void Clock::startSWatch()
{
- if ( t->isActive() )
+ swatch_start.start();
+ set->setText( tr( "Stop" ) );
+ t->start( 1000 );
+ swatch_running = TRUE;
+ // disable screensaver while stop watch is running
+ toggleScreenSaver( FALSE );
+}
+
+void Clock::stopSWatch()
{
swatch_totalms += swatch_start.elapsed();
set->setText( tr( "Start" ) );
t->stop();
swatch_running = FALSE;
toggleScreenSaver( TRUE );
updateClock();
}
+
+
+void Clock::slotSet()
+{
+ if ( t->isActive() )
+ {
+ startSWatch();
+ }
else
{
- swatch_start.start();
- set->setText( tr( "Stop" ) );
- t->start( 1000 );
- swatch_running = TRUE;
- // disable screensaver while stop watch is running
- toggleScreenSaver( FALSE );
+ stopSWatch();
}
}
void Clock::slotReset()
{
t->stop();
swatch_start.start();
swatch_totalms = 0;
if ( swatch_running )
t->start( 1000 );
updateClock();
}
void Clock::modeSelect( int m )
{
qDebug("Clock::modeSelect( %d) ", 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 );
}
Config config( "Clock" );
config.setGroup( "Mode" );
config.writeEntry( "clockMode", m );
updateClock();
}
//this sets the alarm time
void Clock::slotSetAlarm()
{
if ( !snoozeBtn->isHidden() )
@@ -556,80 +567,74 @@ void AnalogClock::drawPointers ( QPainter *p, const QRect &r, const QColor &c, c
h2 = rotate( center, h2, 30 * ( t.hour() % 12 ) + t.minute() / 2 );
p-> setPen ( QPen ( c, 3 ));
p-> drawLine ( h1, h2 );
}
if ( !t2 || ( t. minute ( ) != t2-> minute ( ))) {
// draw minute pointer
m1 = rotate( center, m1, t.minute() * 6 );
m2 = rotate( center, m2, t.minute() * 6 );
p-> setPen ( QPen ( c, 2 ));
p-> drawLine ( m1, m2 );
}
if ( !t2 || ( t. second ( ) != t2-> second ( ))) {
// draw second pointer
s1 = rotate( center, s1, t.second() * 6 );
s2 = rotate( center, s2, t.second() * 6 );
p-> setPen ( QPen ( c, 1 ));
p-> drawLine ( s1, s2 );
}
}
void AnalogClock::display( const QTime& t )
{
currTime = t;
clear = false;
repaint( false );
clear = true;
}
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" );
}
void Clock::slotStartTimer()
{
- Config cfg( "Clock" );
- cfg.setGroup( "Mode" );
- int mode = cfg.readBoolEntry( "clockMode");
if ( clockRB->isChecked() )
setSwatchMode( 1);
- slotSet();
+ startSWatch();
}
void Clock::slotStopTimer()
{
- Config cfg( "Clock" );
- cfg.setGroup( "Mode" );
- int mode = cfg.readBoolEntry( "clockMode");
if ( clockRB->isChecked() )
setSwatchMode( 1);
-slotSet();
+ stopSWatch();
}
void Clock::slotResetTimer()
{
if ( clockRB->isChecked() )
setSwatchMode( 1);
slotReset();
}
void Clock::setSwatchMode(int mode)
{
- qDebug("Clock::setSwatchMode( %d)"), 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 9b00e28..1e5aa2c 100644
--- a/noncore/tools/clock/clock.h
+++ b/noncore/tools/clock/clock.h
@@ -55,52 +55,54 @@ private:
void drawPointers ( QPainter *, const QRect &r, const QColor &c, const QTime &t, const QTime *t2 = 0 );
};
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();
void slotStartTimer();
void slotStopTimer();
void slotResetTimer();
void setSwatchMode( int );
private:
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();
+ void startSWatch();
+ void stopSWatch();
};
#endif