author | paule <paule> | 2007-01-13 07:42:23 (UTC) |
---|---|---|
committer | paule <paule> | 2007-01-13 07:42:23 (UTC) |
commit | a1360b0af73518d97ebe63ad3cd156cd8b57c8b5 (patch) (side-by-side diff) | |
tree | 2630d54134a775f48254624273a8b381e77e39c0 | |
parent | b1075202780c1d807c9d9f5286a2ffa7714bae51 (diff) | |
download | opie-a1360b0af73518d97ebe63ad3cd156cd8b57c8b5.zip opie-a1360b0af73518d97ebe63ad3cd156cd8b57c8b5.tar.gz opie-a1360b0af73518d97ebe63ad3cd156cd8b57c8b5.tar.bz2 |
* Increase font size (fixes bug #1597)
* Improve usability of snooze function (fixes bug #1598)
* Fix stretched icon (fixes bug #1616)
-rw-r--r-- | noncore/tools/clock/alarmdlgbase.ui | 490 | ||||
-rw-r--r-- | noncore/tools/clock/clock.cpp | 19 | ||||
-rw-r--r-- | noncore/tools/clock/clock.h | 1 |
3 files changed, 494 insertions, 16 deletions
diff --git a/noncore/tools/clock/alarmdlgbase.ui b/noncore/tools/clock/alarmdlgbase.ui index 63759f3..944f532 100644 --- a/noncore/tools/clock/alarmdlgbase.ui +++ b/noncore/tools/clock/alarmdlgbase.ui @@ -1,154 +1,636 @@ <!DOCTYPE UI><UI> <class>AlarmDlgBase</class> <widget> <class>QDialog</class> <property stdset="1"> <name>name</name> <cstring>AlarmDlgBase</cstring> </property> <property stdset="1"> <name>geometry</name> <rect> <x>0</x> <y>0</y> - <width>124</width> - <height>92</height> + <width>199</width> + <height>243</height> </rect> </property> <property stdset="1"> <name>caption</name> <string>Form1</string> </property> <property> <name>layoutMargin</name> </property> <vbox> <property stdset="1"> <name>margin</name> - <number>6</number> + <number>11</number> </property> <property stdset="1"> <name>spacing</name> <number>6</number> </property> <widget> <class>QLayoutWidget</class> <property stdset="1"> <name>name</name> <cstring>Layout1</cstring> </property> <hbox> <property stdset="1"> <name>margin</name> <number>0</number> </property> <property stdset="1"> <name>spacing</name> <number>6</number> </property> <widget> <class>QLabel</class> <property stdset="1"> <name>name</name> <cstring>pixmap</cstring> </property> <property stdset="1"> <name>scaledContents</name> - <bool>true</bool> + <bool>false</bool> </property> </widget> <spacer> <property> <name>name</name> <cstring>Spacer1</cstring> </property> <property stdset="1"> <name>orientation</name> <enum>Horizontal</enum> </property> <property stdset="1"> <name>sizeType</name> <enum>Expanding</enum> </property> <property> <name>sizeHint</name> <size> <width>20</width> <height>20</height> </size> </property> </spacer> <widget> <class>QLabel</class> <property stdset="1"> <name>name</name> <cstring>alarmDlgLabel</cstring> </property> <property stdset="1"> <name>text</name> <string>TextLabel1</string> </property> + <property stdset="1"> + <name>scaledContents</name> + <bool>false</bool> + </property> </widget> </hbox> </widget> <widget> <class>QLayoutWidget</class> <property stdset="1"> <name>name</name> <cstring>Layout2</cstring> </property> <hbox> <property stdset="1"> <name>margin</name> <number>0</number> </property> <property stdset="1"> <name>spacing</name> <number>6</number> </property> <widget> <class>QLabel</class> <property stdset="1"> <name>name</name> <cstring>TextLabel2</cstring> </property> <property stdset="1"> <name>text</name> <string>Snooze</string> </property> </widget> <widget> <class>QSpinBox</class> <property stdset="1"> <name>name</name> <cstring>snoozeTime</cstring> </property> <property stdset="1"> + <name>caption</name> + <string></string> + </property> + <property stdset="1"> <name>suffix</name> <string> mins</string> </property> <property stdset="1"> <name>maxValue</name> <number>60</number> </property> <property stdset="1"> <name>lineStep</name> <number>5</number> </property> + <property stdset="1"> + <name>value</name> + <number>5</number> + </property> + <property> + <name>layoutMargin</name> + </property> </widget> </hbox> </widget> <widget> <class>QPushButton</class> <property stdset="1"> <name>name</name> + <cstring>cmdSnooze</cstring> + </property> + <property stdset="1"> + <name>minimumSize</name> + <size> + <width>0</width> + <height>100</height> + </size> + </property> + <property stdset="1"> + <name>palette</name> + <palette> + <active> + <color> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + <color> + <red>255</red> + <green>128</green> + <blue>128</blue> + </color> + <color> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + <color> + <red>255</red> + <green>191</green> + <blue>191</blue> + </color> + <color> + <red>127</red> + <green>64</green> + <blue>64</blue> + </color> + <color> + <red>170</red> + <green>85</green> + <blue>85</blue> + </color> + <color> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + <color> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + <color> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + <color> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + <color> + <red>238</red> + <green>238</green> + <blue>230</blue> + </color> + <color> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + <color> + <red>255</red> + <green>221</green> + <blue>118</blue> + </color> + <color> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </active> + <disabled> + <color> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + <color> + <red>255</red> + <green>128</green> + <blue>128</blue> + </color> + <color> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + <color> + <red>255</red> + <green>166</green> + <blue>166</blue> + </color> + <color> + <red>127</red> + <green>64</green> + <blue>64</blue> + </color> + <color> + <red>170</red> + <green>85</green> + <blue>85</blue> + </color> + <color> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + <color> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + <color> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + <color> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + <color> + <red>238</red> + <green>238</green> + <blue>230</blue> + </color> + <color> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + <color> + <red>255</red> + <green>221</green> + <blue>118</blue> + </color> + <color> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </disabled> + <inactive> + <color> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + <color> + <red>255</red> + <green>128</green> + <blue>128</blue> + </color> + <color> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + <color> + <red>255</red> + <green>166</green> + <blue>166</blue> + </color> + <color> + <red>127</red> + <green>64</green> + <blue>64</blue> + </color> + <color> + <red>170</red> + <green>85</green> + <blue>85</blue> + </color> + <color> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + <color> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + <color> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + <color> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + <color> + <red>238</red> + <green>238</green> + <blue>230</blue> + </color> + <color> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + <color> + <red>255</red> + <green>221</green> + <blue>118</blue> + </color> + <color> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </inactive> + </palette> + </property> + <property stdset="1"> + <name>text</name> + <string>Snooze</string> + </property> + </widget> + <widget> + <class>QPushButton</class> + <property stdset="1"> + <name>name</name> <cstring>cmdOk</cstring> </property> <property stdset="1"> + <name>minimumSize</name> + <size> + <width>0</width> + <height>32</height> + </size> + </property> + <property stdset="1"> + <name>palette</name> + <palette> + <active> + <color> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + <color> + <red>192</red> + <green>255</green> + <blue>192</blue> + </color> + <color> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + <color> + <red>223</red> + <green>255</green> + <blue>223</blue> + </color> + <color> + <red>96</red> + <green>127</green> + <blue>96</blue> + </color> + <color> + <red>128</red> + <green>170</green> + <blue>128</blue> + </color> + <color> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + <color> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + <color> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + <color> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + <color> + <red>238</red> + <green>238</green> + <blue>230</blue> + </color> + <color> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + <color> + <red>255</red> + <green>221</green> + <blue>118</blue> + </color> + <color> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </active> + <disabled> + <color> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + <color> + <red>192</red> + <green>255</green> + <blue>192</blue> + </color> + <color> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + <color> + <red>230</red> + <green>255</green> + <blue>230</blue> + </color> + <color> + <red>96</red> + <green>127</green> + <blue>96</blue> + </color> + <color> + <red>128</red> + <green>170</green> + <blue>128</blue> + </color> + <color> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + <color> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + <color> + <red>128</red> + <green>128</green> + <blue>128</blue> + </color> + <color> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + <color> + <red>238</red> + <green>238</green> + <blue>230</blue> + </color> + <color> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + <color> + <red>255</red> + <green>221</green> + <blue>118</blue> + </color> + <color> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </disabled> + <inactive> + <color> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + <color> + <red>192</red> + <green>255</green> + <blue>192</blue> + </color> + <color> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + <color> + <red>230</red> + <green>255</green> + <blue>230</blue> + </color> + <color> + <red>96</red> + <green>127</green> + <blue>96</blue> + </color> + <color> + <red>128</red> + <green>170</green> + <blue>128</blue> + </color> + <color> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + <color> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + <color> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + <color> + <red>255</red> + <green>255</green> + <blue>255</blue> + </color> + <color> + <red>238</red> + <green>238</green> + <blue>230</blue> + </color> + <color> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + <color> + <red>255</red> + <green>221</green> + <blue>118</blue> + </color> + <color> + <red>0</red> + <green>0</green> + <blue>0</blue> + </color> + </inactive> + </palette> + </property> + <property stdset="1"> <name>text</name> <string>Close</string> </property> </widget> </vbox> </widget> </UI> diff --git a/noncore/tools/clock/clock.cpp b/noncore/tools/clock/clock.cpp index 9b324e0..325a307 100644 --- a/noncore/tools/clock/clock.cpp +++ b/noncore/tools/clock/clock.cpp @@ -9,242 +9,239 @@ ** packaging of this file. ** ** 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. ** **********************************************************************/ // changes added and Copyright (C) by L. J. Potter <ljp@llornkcor.com> 2002 // changes added and Copyright (C) by Holger Freyther 2004,2005 #include "clock.h" #include "analogclock.h" #include <qtabwidget.h> #include <opie2/ofiledialog.h> #include <opie2/oresource.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 <qsound.h> #include <qtimer.h> #include <qlcdnumber.h> #include <qslider.h> #include <qlabel.h> #include <qtimer.h> #include <qpushbutton.h> #include <qtoolbutton.h> #include <qpainter.h> #include <qmessagebox.h> #include <qdatetime.h> #include <qspinbox.h> #include <qcombobox.h> #include <qcheckbox.h> #include <qgroupbox.h> #include <qlayout.h> #include <qhbox.h> #include <qlineedit.h> static const int sw_prec = 2; static const int magic_daily = 2292922; static const int magic_countdown = 2292923; static const int magic_snooze = 2292924; static const int magic_playmp = 2292925; static const char ALARM_CLOCK_CHANNEL [] = "QPE/Application/clock"; static const char ALARM_CLOCK_MESSAGE [] = "alarm(QDateTime,int)"; #include <math.h> #include <unistd.h> #include <sys/types.h> #include <pthread.h> static void toggleScreenSaver( bool on ) { QCopEnvelope e( "QPE/System", "setScreenSaverMode(int)" ); e << ( on ? QPEApplication::Enable : QPEApplication::DisableSuspend ); } static void startPlayer() { Config config( "qpe" ); config.setGroup( "Time" ); sleep(15); QCopEnvelope e( "QPE/Application/opieplayer", "setDocument(QString)" ); e << config.readEntry( "mp3File", "" ); } class MySpinBox : public QSpinBox { public: QLineEdit *lineEdit() const { return editor(); } }; // // // AlarmDlg::AlarmDlg(QWidget *parent, const char *name, bool modal, const QString &txt) : AlarmDlgBase(parent, name, modal) { + // Increase font size to make it a little more readable + QFont f(font()); + f.setPointSize((int)(f.pointSize() * 1.7)); + setFont(f); + setCaption( tr("Clock") ); pixmap->setPixmap( Opie::Core::OResource::loadPixmap("clock/alarmbell") ); alarmDlgLabel->setText(txt); - connect(snoozeTime, SIGNAL(valueChanged(int)), this, - SLOT(changePrompt(int))); - connect(cmdOk, SIGNAL(clicked()), this, SLOT(checkSnooze())); + connect(cmdSnooze, SIGNAL(clicked()), this, SLOT(checkSnooze())); + connect(cmdOk, SIGNAL(clicked()), this, SLOT(accept())); } + // // // void AlarmDlg::setText(const QString &txt) { alarmDlgLabel->setText(txt); } // // // void AlarmDlg::checkSnooze(void) { // // Ensure we have only one snooze alarm. // AlarmServer::deleteAlarm(QDateTime(), ALARM_CLOCK_CHANNEL, ALARM_CLOCK_MESSAGE, magic_snooze); if (snoozeTime->value() > 0) { QDateTime wake = QDateTime::currentDateTime(); wake = wake.addSecs(snoozeTime->value() * 60); // snoozeTime in minutes AlarmServer::addAlarm(wake, ALARM_CLOCK_CHANNEL, ALARM_CLOCK_MESSAGE, magic_snooze); } accept(); } -void -AlarmDlg::changePrompt(int mins) -{ - cmdOk->setText(mins > 0 ? tr("Snooze") : tr("Close") ); -} - - - Clock::Clock( QWidget * parent, const char *, WFlags f ) : ClockBase( parent, "clock", f ), swatch_splitms(99), init(FALSE) // No tr { alarmDlg = 0; swLayout = 0; dayBtn = new QToolButton * [7]; Config config( "qpe" ); config.setGroup("Time"); ampm = config.readBoolEntry( "AMPM", TRUE ); onMonday = config.readBoolEntry( "MONDAY" ); connect( tabs, SIGNAL(currentChanged(QWidget*)), this, SLOT(tabChanged(QWidget*)) ); analogStopwatch = new AnalogClock( swFrame ); stopwatchLcd = new QLCDNumber( swFrame ); stopwatchLcd->setFrameStyle( QFrame::NoFrame ); stopwatchLcd->setSegmentStyle( QLCDNumber::Flat ); stopwatchLcd->setSizePolicy( QSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred) ); analogClock->display( QTime::currentTime() ); clockLcd->setNumDigits( 5 ); clockLcd->setFixedWidth( clockLcd->sizeHint().width() ); date->setText( TimeString::dateString( QDate::currentDate(), TimeString::currentDateFormat() ) ); if ( qApp->desktop()->width() < 200 ) date->setFont( QFont(date->font().family(), 14, QFont::Bold) ); if ( qApp->desktop()->height() > 240 ) { clockLcd->setFixedHeight( 30 ); stopwatchLcd->setFixedHeight( 30 ); } connect( stopStart, SIGNAL(pressed()), SLOT(stopStartStopWatch()) ); connect( reset, SIGNAL(pressed()), SLOT(resetStopWatch()) ); t = new QTimer( this ); connect( t, SIGNAL(timeout()), SLOT(updateClock()) ); t->start( 1000 ); applyAlarmTimer = new QTimer( this ); connect( applyAlarmTimer, SIGNAL(timeout()), this, SLOT(applyDailyAlarm()) ); alarmt = new QTimer( this ); connect( alarmt, SIGNAL(timeout()), SLOT(alarmTimeout()) ); connect( qApp, SIGNAL(timeChanged()), SLOT(updateClock()) ); connect( qApp, SIGNAL(timeChanged()), SLOT(applyDailyAlarm()) ); swatch_running = FALSE; swatch_totalms = 0; swatch_currLap = 0; swatch_dispLap = 0; stopwatchLcd->setNumDigits( 8+1+sw_prec ); stopwatchLcd->display( "00:00:00.00" ); QVBoxLayout *lvb = new QVBoxLayout( lapFrame ); nextLapBtn = new QToolButton( UpArrow, lapFrame ); connect( nextLapBtn, SIGNAL(clicked()), this, SLOT(nextLap()) ); nextLapBtn->setAccel( Key_Up ); lvb->addWidget( nextLapBtn ); prevLapBtn = new QToolButton( DownArrow, lapFrame ); connect( prevLapBtn, SIGNAL(clicked()), this, SLOT(prevLap()) ); prevLapBtn->setAccel( Key_Down ); prevLapBtn->setMinimumWidth( 15 ); lvb->addWidget( prevLapBtn ); prevLapBtn->setEnabled( FALSE ); nextLapBtn->setEnabled( FALSE ); reset->setEnabled( FALSE ); lapLcd->setNumDigits( 8+1+sw_prec ); lapLcd->display( "00:00:00.00" ); splitLcd->setNumDigits( 8+1+sw_prec ); splitLcd->display( "00:00:00.00" ); lapNumLcd->display( 1 ); lapTimer = new QTimer( this ); connect( lapTimer, SIGNAL(timeout()), this, SLOT(lapTimeout()) ); for (uint s = 0; s < swatch_splitms.count(); s++ ) swatch_splitms[(int)s] = 0; connect( qApp, SIGNAL(clockChanged(bool)), this, SLOT(changeClock(bool)) ); cdGroup->hide(); // XXX implement countdown timer. connect( dailyHour, SIGNAL(valueChanged(int)), this, SLOT(scheduleApplyDailyAlarm()) ); connect( dailyMinute, SIGNAL(valueChanged(int)), this, SLOT(setDailyMinute(int)) ); connect( dailyAmPm, SIGNAL(activated(int)), this, SLOT(setDailyAmPm(int)) ); connect( dailyEnabled, SIGNAL(toggled(bool)), this, SLOT(enableDaily(bool)) ); cdLcd->display( "00:00" ); dailyMinute->setValidator(0); diff --git a/noncore/tools/clock/clock.h b/noncore/tools/clock/clock.h index c063a9b..10bbfef 100644 --- a/noncore/tools/clock/clock.h +++ b/noncore/tools/clock/clock.h @@ -1,116 +1,115 @@ /********************************************************************** ** Copyright (C) 2000-2002 Trolltech AS. All rights reserved. ** ** This file is part of the Qtopia Environment. ** ** This file may be distributed and/or modified under the terms of the ** GNU General Public License version 2 as published by the Free Software ** Foundation and appearing in the file LICENSE.GPL included in the ** packaging of this file. ** ** 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. ** **********************************************************************/ #ifndef CLOCK_H #define CLOCK_H #include "clockbase.h" #include "alarmdlgbase.h" #include <qdatetime.h> class QTimer; class QLabel; class QDialog; class AnalogClock; class QBoxLayout; class QToolButton; class AlarmDlg: public AlarmDlgBase { Q_OBJECT public: AlarmDlg(QWidget *parent = 0, const char *name = 0, bool modal = TRUE, const QString &txt = "Alarm"); void setText(const QString &txt); private slots: void checkSnooze(void); - void changePrompt(int minutes); }; class Clock : public ClockBase { Q_OBJECT public: Clock( QWidget *parent=0, const char *name=0, WFlags fl=0 ); ~Clock(); QDateTime when; bool bSound; int hour, minute, snoozeTime; static QString appName() { return QString::fromLatin1("clock"); } private slots: void stopStartStopWatch(); void resetStopWatch(); void prevLap(); void nextLap(); void lapTimeout(); void tabChanged(QWidget*); void updateClock(); void changeClock( bool ); void setDailyAmPm( int ); void setDailyMinute( int ); void dailyEdited(); void enableDaily( bool ); void appMessage(const QCString& msg, const QByteArray& data); void alarmTimeout(); void applyDailyAlarm(); void scheduleApplyDailyAlarm(); void slotBrowseMp3File(); protected: QDateTime nextAlarm( int h, int m ); int dayBtnIdx( int ) const; void closeEvent( QCloseEvent *e ); void updateLap(); void setSwatchLcd( QLCDNumber *lcd, int ms, bool showMs ); bool eventFilter( QObject *, QEvent * ); bool spinBoxValid( QSpinBox *sb ); bool validDaysSelected(void); private: QTimer *t; QTimer *alarmt; QTime swatch_start; int swatch_totalms; QArray<int> swatch_splitms; bool swatch_running; int swatch_currLap; int swatch_dispLap; QToolButton *prevLapBtn; QToolButton *nextLapBtn; QTimer *lapTimer; AnalogClock* analogStopwatch; QLCDNumber* stopwatchLcd; QBoxLayout *swLayout; bool ampm; bool onMonday; int alarmCount; AlarmDlg* alarmDlg; QToolButton **dayBtn; bool init; QTimer *applyAlarmTimer; }; #endif |