author | zautrix <zautrix> | 2005-03-26 22:32:32 (UTC) |
---|---|---|
committer | zautrix <zautrix> | 2005-03-26 22:32:32 (UTC) |
commit | 46b94158f6b115e175516a8432ec5b71f1403834 (patch) (unidiff) | |
tree | b075219da97f93d4e09863fda822722872f8b94b /kalarmd | |
parent | 7177e62052b732f901eca6627825d0b38d8438be (diff) | |
download | kdepimpi-46b94158f6b115e175516a8432ec5b71f1403834.zip kdepimpi-46b94158f6b115e175516a8432ec5b71f1403834.tar.gz kdepimpi-46b94158f6b115e175516a8432ec5b71f1403834.tar.bz2 |
fixes
-rw-r--r-- | kalarmd/alarmdialog.cpp | 31 | ||||
-rw-r--r-- | kalarmd/alarmdialog.h | 4 | ||||
-rw-r--r-- | kalarmd/simplealarmdaemonimpl.cpp | 13 |
3 files changed, 28 insertions, 20 deletions
diff --git a/kalarmd/alarmdialog.cpp b/kalarmd/alarmdialog.cpp index 794c8ae..d6feedc 100644 --- a/kalarmd/alarmdialog.cpp +++ b/kalarmd/alarmdialog.cpp | |||
@@ -1,277 +1,278 @@ | |||
1 | /* | 1 | /* |
2 | This file is part of the KDE alarm daemon. | 2 | This file is part of the KDE alarm daemon. |
3 | Copyright (c) 2000 Cornelius Schumacher <schumacher@kde.org> | 3 | Copyright (c) 2000 Cornelius Schumacher <schumacher@kde.org> |
4 | 4 | ||
5 | This program is free software; you can redistribute it and/or modify | 5 | This program is free software; you can redistribute it and/or modify |
6 | it under the terms of the GNU General Public License as published by | 6 | it under the terms of the GNU General Public License as published by |
7 | the Free Software Foundation; either version 2 of the License, or | 7 | the Free Software Foundation; either version 2 of the License, or |
8 | (at your option) any later version. | 8 | (at your option) any later version. |
9 | 9 | ||
10 | This program is distributed in the hope that it will be useful, | 10 | This program is distributed in the hope that it will be useful, |
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of |
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
13 | GNU General Public License for more details. | 13 | GNU General Public License for more details. |
14 | 14 | ||
15 | You should have received a copy of the GNU General Public License | 15 | You should have received a copy of the GNU General Public License |
16 | along with this program; if not, write to the Free Software | 16 | along with this program; if not, write to the Free Software |
17 | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | 17 | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. |
18 | 18 | ||
19 | As a special exception, permission is given to link this program | 19 | As a special exception, permission is given to link this program |
20 | with any edition of Qt, and distribute the resulting executable, | 20 | with any edition of Qt, and distribute the resulting executable, |
21 | without including the source code for Qt in the source distribution. | 21 | without including the source code for Qt in the source distribution. |
22 | */ | 22 | */ |
23 | 23 | ||
24 | // $Id$ | 24 | // $Id$ |
25 | 25 | ||
26 | #include <qhbox.h> | 26 | #include <qhbox.h> |
27 | #include <qvbox.h> | 27 | #include <qvbox.h> |
28 | #include <qapp.h> | 28 | #include <qapp.h> |
29 | #include <qlabel.h> | 29 | #include <qlabel.h> |
30 | #include <qlayout.h> | 30 | #include <qlayout.h> |
31 | #include <qfile.h> | 31 | #include <qfile.h> |
32 | #include <qtimer.h> | 32 | #include <qtimer.h> |
33 | #include <qsound.h> | 33 | #include <qsound.h> |
34 | #include <qpushbutton.h> | 34 | #include <qpushbutton.h> |
35 | #define protected public | 35 | #define protected public |
36 | #include <qspinbox.h> | 36 | #include <qspinbox.h> |
37 | #undef protected | 37 | #undef protected |
38 | #include <stdlib.h> | 38 | #include <stdlib.h> |
39 | #ifndef _WIN32_ | 39 | #ifndef _WIN32_ |
40 | #include <unistd.h> | 40 | #include <unistd.h> |
41 | #include <sys/ioctl.h> | 41 | #include <sys/ioctl.h> |
42 | #endif | 42 | #endif |
43 | #include <stdio.h> | 43 | #include <stdio.h> |
44 | #include <fcntl.h> | 44 | #include <fcntl.h> |
45 | 45 | ||
46 | #ifndef DESKTOP_VERSION | 46 | #ifndef DESKTOP_VERSION |
47 | #include <qtopia/alarmserver.h> | 47 | #include <qtopia/alarmserver.h> |
48 | #include <qpe/resource.h> | 48 | #include <qpe/resource.h> |
49 | #include <qtopia/sound.h> | 49 | #include <qtopia/sound.h> |
50 | #endif | 50 | #endif |
51 | 51 | ||
52 | #include "alarmdialog.h" | 52 | #include "alarmdialog.h" |
53 | 53 | ||
54 | 54 | ||
55 | AlarmDialog::AlarmDialog(QWidget *parent,const char *name) | 55 | AlarmDialog::AlarmDialog(QWidget *parent,const char *name) |
56 | : QDialog (parent, name, true, Qt::WStyle_StaysOnTop ) | 56 | : QDialog (parent, name, true, Qt::WStyle_StaysOnTop ) |
57 | { | 57 | { |
58 | setCaption( "KO/Pi Alarm!" ); | 58 | setCaption( "KO/Pi Alarm!" ); |
59 | QVBoxLayout* layout = new QVBoxLayout( this); | 59 | QVBoxLayout* layout = new QVBoxLayout( this); |
60 | QLabel* l = new QLabel("The following event triggered alarm:",this); | 60 | QLabel* l = new QLabel("The following event triggered alarm:",this); |
61 | layout->addWidget ( l ); | 61 | layout->addWidget ( l ); |
62 | l->setAlignment( AlignCenter); | 62 | l->setAlignment( AlignCenter); |
63 | mMessage = new QLabel ( " ", this ); | 63 | mMessage = new QLabel ( " ", this ); |
64 | int fs = 18; | 64 | int fs = 18; |
65 | int fs2 = 12; | 65 | int fs2 = 12; |
66 | if ( QApplication::desktop()->width() < 480 ) { | 66 | if ( QApplication::desktop()->width() < 480 ) { |
67 | setMaximumSize(220, 260); | 67 | setMaximumSize(220, 260); |
68 | fs2 = 10; | 68 | fs2 = 10; |
69 | } | 69 | } |
70 | else { | 70 | else { |
71 | setMaximumSize(440, 440); | 71 | setMaximumSize(440, 440); |
72 | } | 72 | } |
73 | layout->setSpacing( 3 ); | 73 | layout->setSpacing( 3 ); |
74 | layout->setMargin( 3 ); | 74 | layout->setMargin( 3 ); |
75 | QFont fo = QApplication::font(); | 75 | QFont fo = QApplication::font(); |
76 | fo.setBold( true ); | 76 | fo.setBold( true ); |
77 | fo.setPointSize( fs2 ); | 77 | fo.setPointSize( fs2 ); |
78 | l->setFont( fo ); | 78 | l->setFont( fo ); |
79 | fo.setPointSize( fs ); | 79 | fo.setPointSize( fs ); |
80 | mMessage->setFont(fo ); | 80 | mMessage->setFont(fo ); |
81 | mMessage->setAlignment( AlignCenter); | 81 | mMessage->setAlignment( AlignCenter); |
82 | l = new QLabel("Missed Alarms:",this); | ||
83 | l->setAlignment( AlignCenter); | ||
84 | layout->addWidget ( mMessage ); | 82 | layout->addWidget ( mMessage ); |
85 | layout->addWidget ( l ); | 83 | mMissedAlarms= new QLabel ( "(No missed Alarms)", this ); |
86 | mMissedAlarms= new QLabel ( "", this ); | ||
87 | mMissedAlarms->setAlignment( AlignCenter); | 84 | mMissedAlarms->setAlignment( AlignCenter); |
88 | 85 | ||
89 | playSoundTimer = new QTimer( this ); | 86 | playSoundTimer = new QTimer( this ); |
90 | connect ( playSoundTimer, SIGNAL( timeout() ), this, SLOT (playSound() ) ); | 87 | connect ( playSoundTimer, SIGNAL( timeout() ), this, SLOT (playSound() ) ); |
91 | 88 | ||
92 | playSoundTimer->stop(); | 89 | playSoundTimer->stop(); |
93 | 90 | ||
94 | layout->addWidget ( mMissedAlarms ); | 91 | layout->addWidget ( mMissedAlarms ); |
92 | mMissedAlarmsCombo = new QComboBox ( this ); | ||
93 | layout->addWidget ( mMissedAlarmsCombo ); | ||
95 | QVBox *suspendBox = new QVBox( this ); | 94 | QVBox *suspendBox = new QVBox( this ); |
96 | suspendBox->setSpacing(3); | 95 | suspendBox->setSpacing(3); |
97 | layout->addWidget ( suspendBox ); | 96 | layout->addWidget ( suspendBox ); |
98 | QLabel* labb = new QLabel("Suspend duration (minutes):",suspendBox); | 97 | QLabel* labb = new QLabel("Suspend duration (minutes):",suspendBox); |
99 | labb->setAlignment(AlignCenter); | 98 | labb->setAlignment(AlignCenter); |
100 | fo = font(); | 99 | fo = font(); |
101 | fo.setPointSize( 36 ); | 100 | fo.setPointSize( 36 ); |
102 | mSuspendSpin = new QSpinBox(1,1440,1,suspendBox); | 101 | mSuspendSpin = new QSpinBox(1,1440,1,suspendBox); |
103 | mSuspendSpin->setFont( fo ); | 102 | mSuspendSpin->setFont( fo ); |
104 | mSuspendSpin->setValue(7); // default suspend duration | 103 | mSuspendSpin->setValue(7); // default suspend duration |
105 | mSuspendSpin->setButtonSymbols( QSpinBox::PlusMinus ); | 104 | mSuspendSpin->setButtonSymbols( QSpinBox::PlusMinus ); |
106 | mSuspendSpin->setButtonSymbols( QSpinBox::PlusMinus ); | 105 | mSuspendSpin->setButtonSymbols( QSpinBox::PlusMinus ); |
107 | mSuspendSpin->upButton ()->setFixedSize( QSize( 48, 30 )); | 106 | mSuspendSpin->upButton ()->setFixedSize( QSize( 48, 30 )); |
108 | mSuspendSpin->downButton ()->setFixedSize( QSize( 48, 30 )); | 107 | mSuspendSpin->downButton ()->setFixedSize( QSize( 48, 30 )); |
109 | mSuspendSpin->setFixedSize( 100,62 ); | 108 | mSuspendSpin->setFixedSize( 100,62 ); |
110 | mSuspendSpin->setButtonSymbols( QSpinBox::PlusMinus ); | 109 | mSuspendSpin->setButtonSymbols( QSpinBox::PlusMinus ); |
111 | 110 | ||
112 | QVBox * bbox = new QVBox ( this ); | 111 | QVBox * bbox = new QVBox ( this ); |
113 | layout->addWidget ( bbox ); | 112 | layout->addWidget ( bbox ); |
114 | bbox->layout()->setSpacing( 2 ); | 113 | bbox->layout()->setSpacing( 2 ); |
115 | QPushButton* suspend = new QPushButton( "Suspend", bbox); | 114 | mSuspendButton = new QPushButton( "Suspend", bbox); |
116 | QPushButton* silen = new QPushButton( " Stop sound ", bbox); | 115 | QPushButton* silen = new QPushButton( " Stop sound ", bbox); |
117 | QPushButton* okbut = new QPushButton( "Ok", bbox); | 116 | QPushButton* okbut = new QPushButton( "Ok", bbox); |
118 | suspend->setFont( fo ); | 117 | mSuspendButton->setFont( fo ); |
119 | silen->setFont( fo ); | 118 | silen->setFont( fo ); |
120 | okbut->setFont( fo ); | 119 | okbut->setFont( fo ); |
120 | okbut->setDefault( true ); | ||
121 | connect (silen , SIGNAL( clicked() ), this, SLOT (silent() ) ); | 121 | connect (silen , SIGNAL( clicked() ), this, SLOT (silent() ) ); |
122 | connect (suspend , SIGNAL( clicked() ), this, SLOT (slotSuspend() ) ); | 122 | connect (mSuspendButton, SIGNAL( clicked() ), this, SLOT (slotSuspend() ) ); |
123 | connect (okbut , SIGNAL( clicked() ), this, SLOT (slotOk() ) ); | 123 | connect (okbut , SIGNAL( clicked() ), this, SLOT (slotOk() ) ); |
124 | #ifndef _WIN32_ | 124 | #ifndef _WIN32_ |
125 | if ( QFile::exists ( "/dev/sharp_led" ) ) | 125 | if ( QFile::exists ( "/dev/sharp_led" ) ) |
126 | fd_led = open ( "/dev/sharp_led", O_RDWR|O_NONBLOCK ); | 126 | fd_led = open ( "/dev/sharp_led", O_RDWR|O_NONBLOCK ); |
127 | else | 127 | else |
128 | #endif | 128 | #endif |
129 | fd_led = 0; | 129 | fd_led = 0; |
130 | statusLED.which = SHARP_LED_SALARM; | 130 | statusLED.which = SHARP_LED_SALARM; |
131 | mSilent = false; | 131 | mSilent = false; |
132 | mSuspendCounter = 0; | 132 | mSuspendCounter = 0; |
133 | setServerNotification( true ); | 133 | setServerNotification( true ); |
134 | } | 134 | } |
135 | void AlarmDialog::reject () | 135 | void AlarmDialog::reject () |
136 | { | 136 | { |
137 | QTimer::singleShot ( 3000, this, SLOT (suspend()) ); | 137 | QTimer::singleShot ( 3000, this, SLOT (suspend()) ); |
138 | slotSuspend(); | 138 | slotSuspend(); |
139 | } | 139 | } |
140 | AlarmDialog::~AlarmDialog() | 140 | AlarmDialog::~AlarmDialog() |
141 | { | 141 | { |
142 | } | 142 | } |
143 | void AlarmDialog::silent () | 143 | void AlarmDialog::silent () |
144 | { | 144 | { |
145 | mSilent = true; | 145 | mSilent = true; |
146 | } | 146 | } |
147 | void AlarmDialog::accept() | 147 | void AlarmDialog::accept() |
148 | { | 148 | { |
149 | slotOk(); | 149 | slotOk(); |
150 | } | 150 | } |
151 | 151 | ||
152 | void AlarmDialog::suspend() | 152 | void AlarmDialog::suspend() |
153 | { | 153 | { |
154 | #ifdef DESKTOP_VERSION | 154 | #ifdef DESKTOP_VERSION |
155 | 155 | ||
156 | #else | 156 | #else |
157 | Sound::soundAlarm (); | 157 | Sound::soundAlarm (); |
158 | #endif | 158 | #endif |
159 | } | 159 | } |
160 | void AlarmDialog::slotOk() | 160 | void AlarmDialog::slotOk() |
161 | { | 161 | { |
162 | mStopAlarm = true; | 162 | mStopAlarm = true; |
163 | mMissedAlarms->setText(""); | 163 | mMissedAlarms->setText("(No missed Alarms)"); |
164 | mMessage->setText(""); | 164 | mMessage->setText(""); |
165 | mMissedAlarmsCombo->clear(); | ||
165 | #ifndef _WIN32_ | 166 | #ifndef _WIN32_ |
166 | if ( fd_led > 0 ) { | 167 | if ( fd_led > 0 ) { |
167 | statusLED.status = LED_SALARM_OFF ; | 168 | statusLED.status = LED_SALARM_OFF ; |
168 | ioctl (fd_led, SHARP_LED_SETSTATUS, &statusLED); | 169 | ioctl (fd_led, SHARP_LED_SETSTATUS, &statusLED); |
169 | } | 170 | } |
170 | #endif | 171 | #endif |
171 | QDialog::accept(); | 172 | QDialog::accept(); |
172 | } | 173 | } |
173 | 174 | ||
174 | void AlarmDialog::slotSuspend() | 175 | void AlarmDialog::slotSuspend() |
175 | { | 176 | { |
176 | //qDebug("AlarmDialog::suspend() "); // emit suspendSignal(mSuspendSpin->value()); | 177 | //qDebug("AlarmDialog::suspend() "); // emit suspendSignal(mSuspendSpin->value()); |
177 | mStopAlarm = true; | 178 | mStopAlarm = true; |
178 | QDateTime nextA = QDateTime::currentDateTime().addSecs( mSuspendSpin->value() * 60 ); | 179 | QDateTime nextA = QDateTime::currentDateTime().addSecs( mSuspendSpin->value() * 60 ); |
179 | QString mess = "suspend_alarm" +mFileName+"+++" ; | 180 | QString mess = "suspend_alarm" +mFileName+"+++" ; |
180 | if ( mMessage->text().left( 10 ) !="Suspended:" ) | 181 | if ( mMessage->text().left( 10 ) !="Suspended:" ) |
181 | mess += "Suspended:\n"; | 182 | mess += "Suspended:\n"; |
182 | mess +=mMessage->text(); | 183 | mess +=mMessage->text(); |
183 | #ifndef DESKTOP_VERSION | 184 | #ifndef DESKTOP_VERSION |
184 | if ( mServerNotification ) | 185 | if ( mServerNotification ) |
185 | AlarmServer::addAlarm ( nextA,"koalarm",mess.latin1()); | 186 | AlarmServer::addAlarm ( nextA,"koalarm",mess.latin1()); |
186 | #endif | 187 | #endif |
187 | emit addAlarm( nextA , mess ); | 188 | emit addAlarm( nextA , mess ); |
188 | slotOk(); | 189 | slotOk(); |
189 | } | 190 | } |
190 | 191 | ||
191 | void AlarmDialog::setServerNotification( bool b ) | 192 | void AlarmDialog::setServerNotification( bool b ) |
192 | { | 193 | { |
193 | mServerNotification = b; | 194 | mServerNotification = b; |
194 | } | 195 | } |
195 | int AlarmDialog::getSuspendTime( ) | 196 | int AlarmDialog::getSuspendTime( ) |
196 | { | 197 | { |
197 | return mSuspendSpin->value(); | 198 | return mSuspendSpin->value(); |
198 | 199 | ||
199 | } | 200 | } |
200 | void AlarmDialog::setSuspendTime( int val ) | 201 | void AlarmDialog::setSuspendTime( int val ) |
201 | { | 202 | { |
202 | mSuspendSpin->setValue( val ); | 203 | mSuspendSpin->setValue( val ); |
203 | } | 204 | } |
204 | bool AlarmDialog::eventNotification( QString mess, int replay , QString fn, bool playwav, int pause , int suspendtimes) | 205 | bool AlarmDialog::eventNotification( QString mess, int replay , QString fn, bool playwav, int pause , int suspendtimes) |
205 | { | 206 | { |
206 | if ( mess.left( 9) != "Suspended" ) | 207 | if ( mess.left( 9) != "Suspended" ) |
207 | mSuspendCounter = suspendtimes; | 208 | mSuspendCounter = suspendtimes; |
208 | mPauseCount = pause; | 209 | mPauseCount = pause; |
209 | mFileName = fn; | 210 | mFileName = fn; |
210 | mPlayWav = playwav; | 211 | mPlayWav = playwav; |
211 | if ( !QFile::exists( fn ) ) | 212 | if ( !QFile::exists( fn ) ) |
212 | mFileName = ""; | 213 | mFileName = ""; |
213 | alarmCounter = 0 ; | 214 | alarmCounter = 0 ; |
214 | maxAlarmReplay = replay ; | 215 | maxAlarmReplay = replay ; |
215 | mStopAlarm = false; | 216 | mStopAlarm = false; |
216 | mSilent = false; | 217 | mSilent = false; |
217 | if ( mMissedAlarms->text() == "" ) | 218 | if ( !mMessage->text().stripWhiteSpace().isEmpty() ) { |
218 | mMissedAlarms->setText( mMessage->text()); | 219 | mMissedAlarmsCombo->show(); |
219 | else | 220 | mMissedAlarmsCombo->insertItem( mMessage->text().stripWhiteSpace() ); |
220 | mMissedAlarms->setText( mMessage->text()+ "\n" + mMissedAlarms->text() ); | 221 | mMissedAlarms->setText( "Missed alarms:"); |
221 | if ( mMissedAlarms->text().length() > 180 ) | 222 | } else |
222 | mMissedAlarms->setText(mMissedAlarms->text().left ( 180 )); | 223 | mMissedAlarmsCombo->hide(); |
223 | mMessage->setText(mess); | 224 | mMessage->setText(mess); |
224 | int w =sizeHint().width() ; | 225 | int w =sizeHint().width() ; |
225 | int h = sizeHint().height() ; | 226 | int h = sizeHint().height() ; |
226 | int dw = QApplication::desktop()->width(); | 227 | int dw = QApplication::desktop()->width(); |
227 | int dh = QApplication::desktop()->height(); | 228 | int dh = QApplication::desktop()->height(); |
228 | setGeometry( (dw-w)/2, (dh - h )/2 ,w,h ); | 229 | setGeometry( (dw-w)/2, (dh - h )/2 ,w,h ); |
229 | show(); | 230 | show(); |
230 | raise(); | 231 | raise(); |
231 | qApp->processEvents(); | 232 | qApp->processEvents(); |
232 | repaint(); | 233 | repaint(); |
233 | qApp->processEvents(); | 234 | qApp->processEvents(); |
234 | 235 | ||
235 | #ifndef _WIN32_ | 236 | #ifndef _WIN32_ |
236 | if ( fd_led > 0 ) { | 237 | if ( fd_led > 0 ) { |
237 | statusLED.status = LED_SALARM_ON ; | 238 | statusLED.status = LED_SALARM_ON ; |
238 | ioctl (fd_led, SHARP_LED_SETSTATUS, &statusLED); | 239 | ioctl (fd_led, SHARP_LED_SETSTATUS, &statusLED); |
239 | } | 240 | } |
240 | #endif | 241 | #endif |
241 | playSoundTimer->start( 1000, true ); | 242 | playSoundTimer->start( 1000, true ); |
242 | return true; | 243 | return true; |
243 | 244 | ||
244 | } | 245 | } |
245 | 246 | ||
246 | 247 | ||
247 | void AlarmDialog::playSound () | 248 | void AlarmDialog::playSound () |
248 | { | 249 | { |
249 | if (mStopAlarm ) | 250 | if (mStopAlarm ) |
250 | return; | 251 | return; |
251 | showNormal(); | 252 | showNormal(); |
252 | setActiveWindow(); | 253 | setActiveWindow(); |
253 | setFocus(); | 254 | mSuspendSpin->setFocus(); |
254 | raise(); | 255 | raise(); |
255 | 256 | ||
256 | qApp->processEvents(); | 257 | qApp->processEvents(); |
257 | if ( alarmCounter < maxAlarmReplay && ! mSilent) { | 258 | if ( alarmCounter < maxAlarmReplay && ! mSilent) { |
258 | ++alarmCounter; | 259 | ++alarmCounter; |
259 | if ( !mPlayWav || mFileName.length() < 2 ) { | 260 | if ( !mPlayWav || mFileName.length() < 2 ) { |
260 | 261 | ||
261 | #ifndef DESKTOP_VERSION | 262 | #ifndef DESKTOP_VERSION |
262 | Sound::soundAlarm (); | 263 | Sound::soundAlarm (); |
263 | #endif | 264 | #endif |
264 | } else { | 265 | } else { |
265 | QSound::play ( mFileName ); | 266 | QSound::play ( mFileName ); |
266 | //qDebug("BEEP!"); | 267 | //qDebug("BEEP!"); |
267 | } | 268 | } |
268 | } else { | 269 | } else { |
269 | if ( ! mSilent && mSuspendCounter > 0 ) { | 270 | if ( ! mSilent && mSuspendCounter > 0 ) { |
270 | --mSuspendCounter; | 271 | --mSuspendCounter; |
271 | reject (); | 272 | reject (); |
272 | hide(); | 273 | hide(); |
273 | return; | 274 | return; |
274 | } | 275 | } |
275 | } | 276 | } |
276 | playSoundTimer->start( mPauseCount * 1000, true ); | 277 | playSoundTimer->start( mPauseCount * 1000, true ); |
277 | } | 278 | } |
diff --git a/kalarmd/alarmdialog.h b/kalarmd/alarmdialog.h index 3155f18..896cf60 100644 --- a/kalarmd/alarmdialog.h +++ b/kalarmd/alarmdialog.h | |||
@@ -1,80 +1,84 @@ | |||
1 | /* | 1 | /* |
2 | This file is part of the KDE alarm daemon. | 2 | This file is part of the KDE alarm daemon. |
3 | Copyright (c) 2000 Cornelius Schumacher <schumacher@kde.org> | 3 | Copyright (c) 2000 Cornelius Schumacher <schumacher@kde.org> |
4 | 4 | ||
5 | This program is free software; you can redistribute it and/or modify | 5 | This program is free software; you can redistribute it and/or modify |
6 | it under the terms of the GNU General Public License as published by | 6 | it under the terms of the GNU General Public License as published by |
7 | the Free Software Foundation; either version 2 of the License, or | 7 | the Free Software Foundation; either version 2 of the License, or |
8 | (at your option) any later version. | 8 | (at your option) any later version. |
9 | 9 | ||
10 | This program is distributed in the hope that it will be useful, | 10 | This program is distributed in the hope that it will be useful, |
11 | but WITHOUT ANY WARRANTY; without even the implied warranty of | 11 | but WITHOUT ANY WARRANTY; without even the implied warranty of |
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
13 | GNU General Public License for more details. | 13 | GNU General Public License for more details. |
14 | 14 | ||
15 | You should have received a copy of the GNU General Public License | 15 | You should have received a copy of the GNU General Public License |
16 | along with this program; if not, write to the Free Software | 16 | along with this program; if not, write to the Free Software |
17 | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | 17 | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. |
18 | 18 | ||
19 | As a special exception, permission is given to link this program | 19 | As a special exception, permission is given to link this program |
20 | with any edition of Qt, and distribute the resulting executable, | 20 | with any edition of Qt, and distribute the resulting executable, |
21 | without including the source code for Qt in the source distribution. | 21 | without including the source code for Qt in the source distribution. |
22 | */ | 22 | */ |
23 | #ifndef ALARMDIALOG_H | 23 | #ifndef ALARMDIALOG_H |
24 | #define ALARMDIALOG_H | 24 | #define ALARMDIALOG_H |
25 | 25 | ||
26 | 26 | ||
27 | 27 | ||
28 | #include <qdialog.h> | 28 | #include <qdialog.h> |
29 | #include <qdatetime.h> | 29 | #include <qdatetime.h> |
30 | #include <qstring.h> | 30 | #include <qstring.h> |
31 | #include <qcombobox.h> | ||
32 | #include <qpushbutton.h> | ||
31 | 33 | ||
32 | #include "sharp_char.h" | 34 | #include "sharp_char.h" |
33 | 35 | ||
34 | 36 | ||
35 | class QSpinBox; | 37 | class QSpinBox; |
36 | class QLabel; | 38 | class QLabel; |
37 | class QString; | 39 | class QString; |
38 | 40 | ||
39 | class AlarmDialog : public QDialog { | 41 | class AlarmDialog : public QDialog { |
40 | Q_OBJECT | 42 | Q_OBJECT |
41 | public: | 43 | public: |
42 | AlarmDialog( QWidget *parent = 0, const char *name = 0 ); | 44 | AlarmDialog( QWidget *parent = 0, const char *name = 0 ); |
43 | virtual ~AlarmDialog(); | 45 | virtual ~AlarmDialog(); |
44 | 46 | ||
45 | bool eventNotification(QString m, int replay , QString m2 , bool, int, int ); | 47 | bool eventNotification(QString m, int replay , QString m2 , bool, int, int ); |
46 | int getSuspendTime( ); | 48 | int getSuspendTime( ); |
47 | void setSuspendTime( int ); | 49 | void setSuspendTime( int ); |
48 | void setServerNotification( bool b ); | 50 | void setServerNotification( bool b ); |
49 | 51 | ||
50 | public slots: | 52 | public slots: |
51 | void slotOk(); | 53 | void slotOk(); |
52 | void slotSuspend(); | 54 | void slotSuspend(); |
53 | void reject () ; | 55 | void reject () ; |
54 | void silent () ; | 56 | void silent () ; |
55 | void accept(); | 57 | void accept(); |
56 | void suspend(); | 58 | void suspend(); |
57 | void playSound (); | 59 | void playSound (); |
58 | signals: | 60 | signals: |
59 | // void suspendSignal(int duration); | 61 | // void suspendSignal(int duration); |
60 | void addAlarm(const QDateTime &, const QString & ); | 62 | void addAlarm(const QDateTime &, const QString & ); |
61 | 63 | ||
62 | private: | 64 | private: |
63 | int alarmCounter; | 65 | int alarmCounter; |
64 | int mPauseCount; | 66 | int mPauseCount; |
65 | int mSuspendCounter; | 67 | int mSuspendCounter; |
66 | int maxAlarmReplay; | 68 | int maxAlarmReplay; |
67 | QTimer* playSoundTimer; | 69 | QTimer* playSoundTimer; |
68 | bool mStopAlarm; | 70 | bool mStopAlarm; |
69 | bool mSilent; | 71 | bool mSilent; |
70 | bool mPlayWav; | 72 | bool mPlayWav; |
71 | bool mServerNotification; | 73 | bool mServerNotification; |
72 | QLabel* mMessage; | 74 | QLabel* mMessage; |
73 | QLabel* mMissedAlarms; | 75 | QLabel* mMissedAlarms; |
74 | QSpinBox *mSuspendSpin; | 76 | QSpinBox *mSuspendSpin; |
77 | QComboBox *mMissedAlarmsCombo; | ||
78 | QPushButton* mSuspendButton; | ||
75 | QString mFileName; | 79 | QString mFileName; |
76 | int fd_led; | 80 | int fd_led; |
77 | sharp_led_status statusLED; | 81 | sharp_led_status statusLED; |
78 | }; | 82 | }; |
79 | 83 | ||
80 | #endif | 84 | #endif |
diff --git a/kalarmd/simplealarmdaemonimpl.cpp b/kalarmd/simplealarmdaemonimpl.cpp index e8ec033..b3da428 100644 --- a/kalarmd/simplealarmdaemonimpl.cpp +++ b/kalarmd/simplealarmdaemonimpl.cpp | |||
@@ -268,416 +268,419 @@ void SimpleAlarmDaemonImpl::recieve( const QCString& msg, const QByteArray& ) | |||
268 | QString filename = getenv("QPEDIR") ; | 268 | QString filename = getenv("QPEDIR") ; |
269 | filename += "/pics/kdepim/korganizer/koalarm.wav"; | 269 | filename += "/pics/kdepim/korganizer/koalarm.wav"; |
270 | QString tempfilename; | 270 | QString tempfilename; |
271 | if ( mess.left( 13 ) == "suspend_alarm") { | 271 | if ( mess.left( 13 ) == "suspend_alarm") { |
272 | bool error = false; | 272 | bool error = false; |
273 | int len = mess.mid( 13 ).find("+++"); | 273 | int len = mess.mid( 13 ).find("+++"); |
274 | if ( len < 2 ) | 274 | if ( len < 2 ) |
275 | error = true; | 275 | error = true; |
276 | else { | 276 | else { |
277 | tempfilename = mess.mid( 13, len ); | 277 | tempfilename = mess.mid( 13, len ); |
278 | if ( !QFile::exists( tempfilename ) ) | 278 | if ( !QFile::exists( tempfilename ) ) |
279 | error = true; | 279 | error = true; |
280 | } | 280 | } |
281 | if ( ! error ) { | 281 | if ( ! error ) { |
282 | filename = tempfilename; | 282 | filename = tempfilename; |
283 | } | 283 | } |
284 | mAlarmMessage = mess.mid( 13+len+3 ); | 284 | mAlarmMessage = mess.mid( 13+len+3 ); |
285 | //qDebug("suspend file %s ",tempfilename.latin1() ); | 285 | //qDebug("suspend file %s ",tempfilename.latin1() ); |
286 | startAlarm( mAlarmMessage, filename); | 286 | startAlarm( mAlarmMessage, filename); |
287 | return; | 287 | return; |
288 | } | 288 | } |
289 | if ( mess.left( 11 ) == "timer_alarm") { | 289 | if ( mess.left( 11 ) == "timer_alarm") { |
290 | mTimerTime = 0; | 290 | mTimerTime = 0; |
291 | startAlarm( mess.mid( 11 ), filename ); | 291 | startAlarm( mess.mid( 11 ), filename ); |
292 | return; | 292 | return; |
293 | } | 293 | } |
294 | if ( mess.left( 10 ) == "proc_alarm") { | 294 | if ( mess.left( 10 ) == "proc_alarm") { |
295 | bool error = false; | 295 | bool error = false; |
296 | int len = mess.mid( 10 ).find("+++"); | 296 | int len = mess.mid( 10 ).find("+++"); |
297 | if ( len < 2 ) | 297 | if ( len < 2 ) |
298 | error = true; | 298 | error = true; |
299 | else { | 299 | else { |
300 | tempfilename = mess.mid( 10, len ); | 300 | tempfilename = mess.mid( 10, len ); |
301 | if ( !QFile::exists( tempfilename ) ) | 301 | if ( !QFile::exists( tempfilename ) ) |
302 | error = true; | 302 | error = true; |
303 | } | 303 | } |
304 | if ( error ) { | 304 | if ( error ) { |
305 | mAlarmMessage = "Procedure Alarm\nError - File not found\n"; | 305 | mAlarmMessage = "Procedure Alarm\nError - File not found\n"; |
306 | mAlarmMessage += mess.mid( 10+len+3+9 ); | 306 | mAlarmMessage += mess.mid( 10+len+3+9 ); |
307 | } else { | 307 | } else { |
308 | QCopEnvelope e("QPE/Application/kopi", "-writeFileSilent"); | 308 | QCopEnvelope e("QPE/Application/kopi", "-writeFileSilent"); |
309 | //qDebug("-----system command %s ",tempfilename.latin1() ); | 309 | //qDebug("-----system command %s ",tempfilename.latin1() ); |
310 | if ( vfork () == 0 ) { | 310 | if ( vfork () == 0 ) { |
311 | execl ( tempfilename.latin1(), 0 ); | 311 | execl ( tempfilename.latin1(), 0 ); |
312 | return; | 312 | return; |
313 | } | 313 | } |
314 | return; | 314 | return; |
315 | } | 315 | } |
316 | 316 | ||
317 | //qDebug("+++++++system command %s ",tempfilename.latin1() ); | 317 | //qDebug("+++++++system command %s ",tempfilename.latin1() ); |
318 | } | 318 | } |
319 | if ( mess.left( 11 ) == "audio_alarm") { | 319 | if ( mess.left( 11 ) == "audio_alarm") { |
320 | bool error = false; | 320 | bool error = false; |
321 | int len = mess.mid( 11 ).find("+++"); | 321 | int len = mess.mid( 11 ).find("+++"); |
322 | if ( len < 2 ) | 322 | if ( len < 2 ) |
323 | error = true; | 323 | error = true; |
324 | else { | 324 | else { |
325 | tempfilename = mess.mid( 11, len ); | 325 | tempfilename = mess.mid( 11, len ); |
326 | if ( !QFile::exists( tempfilename ) ) | 326 | if ( !QFile::exists( tempfilename ) ) |
327 | error = true; | 327 | error = true; |
328 | } | 328 | } |
329 | if ( ! error ) { | 329 | if ( ! error ) { |
330 | filename = tempfilename; | 330 | filename = tempfilename; |
331 | } | 331 | } |
332 | mAlarmMessage = mess.mid( 11+len+3+9 ); | 332 | mAlarmMessage = mess.mid( 11+len+3+9 ); |
333 | //qDebug("audio file command %s ",tempfilename.latin1() ); | 333 | //qDebug("audio file command %s ",tempfilename.latin1() ); |
334 | } | 334 | } |
335 | if ( mess.left( 9 ) == "cal_alarm") { | 335 | if ( mess.left( 9 ) == "cal_alarm") { |
336 | mAlarmMessage = mess.mid( 9 ) ; | 336 | mAlarmMessage = mess.mid( 9 ) ; |
337 | } | 337 | } |
338 | 338 | ||
339 | writeFile(); | 339 | writeFile(); |
340 | startAlarm( mAlarmMessage, filename ); | 340 | startAlarm( mAlarmMessage, filename ); |
341 | 341 | ||
342 | } | 342 | } |
343 | 343 | ||
344 | int SimpleAlarmDaemonImpl::getFileNameLen( QString mess ) | 344 | int SimpleAlarmDaemonImpl::getFileNameLen( QString mess ) |
345 | { | 345 | { |
346 | return 0; | 346 | return 0; |
347 | } | 347 | } |
348 | void SimpleAlarmDaemonImpl::startAlarm( QString mess, QString filename ) | 348 | void SimpleAlarmDaemonImpl::startAlarm( QString mess, QString filename ) |
349 | { | 349 | { |
350 | //mAlarmDialog->show(); | 350 | //mAlarmDialog->show(); |
351 | //mAlarmDialog->raise(); | 351 | //mAlarmDialog->raise(); |
352 | mAlarmDialog->eventNotification( mess, mPlayBeeps, filename, wavAlarm,mPausePlay ,mSuspend ); | 352 | mAlarmDialog->eventNotification( mess, mPlayBeeps, filename, wavAlarm,mPausePlay ,mSuspend ); |
353 | } | 353 | } |
354 | 354 | ||
355 | 355 | ||
356 | void SimpleAlarmDaemonImpl::fillTimerPopUp() | 356 | void SimpleAlarmDaemonImpl::fillTimerPopUp() |
357 | { | 357 | { |
358 | 358 | ||
359 | // qDebug(" timer %d %d ",mTimerPopupConf, mTimerTime ); | 359 | // qDebug(" timer %d %d ",mTimerPopupConf, mTimerTime ); |
360 | if ( mTimerPopupConf == mTimerTime ) { | 360 | if ( mTimerPopupConf == mTimerTime ) { |
361 | if ( mTimerTime ) { | 361 | if ( mTimerTime ) { |
362 | int secs = QDateTime::currentDateTime().secsTo ( mRunningTimer ); | 362 | int secs = QDateTime::currentDateTime().secsTo ( mRunningTimer ); |
363 | QTime t ( secs/3600, (secs/60)%60, secs%60 ); | 363 | QTime t ( secs/3600, (secs/60)%60, secs%60 ); |
364 | mTimerPopUp->changeItem ( 1 , t.toString() + " (remaining time)"); | 364 | mTimerPopUp->changeItem ( 1 , t.toString() + " (countdown)"); |
365 | } | 365 | } |
366 | else { | 366 | else { |
367 | QString text = mCustomText.stripWhiteSpace (); | 367 | QString text = mCustomText.stripWhiteSpace (); |
368 | int in = text.find( " " ); | 368 | int in = text.find( " " ); |
369 | text = text.left ( in ); | 369 | text = text.left ( in ); |
370 | mTimerPopUp->changeItem ( 3, text ); | 370 | mTimerPopUp->changeItem ( 3, text ); |
371 | } | 371 | } |
372 | return; | 372 | return; |
373 | } | 373 | } |
374 | mTimerPopupConf = mTimerTime; | 374 | mTimerPopupConf = mTimerTime; |
375 | mTimerPopUp->clear(); | 375 | mTimerPopUp->clear(); |
376 | if ( mTimerTime ) { | 376 | if ( mTimerTime ) { |
377 | int secs = QDateTime::currentDateTime().secsTo ( mRunningTimer ); | 377 | int secs = QDateTime::currentDateTime().secsTo ( mRunningTimer ); |
378 | QTime t ( secs/3600, (secs/60)%60, secs%60 ); | 378 | QTime t ( secs/3600, (secs/60)%60, secs%60 ); |
379 | 379 | ||
380 | 380 | ||
381 | mTimerPopUp->insertItem( "Stop timer "+ mRunningTimerText , 0 ); | 381 | mTimerPopUp->insertItem( "Stop timer "+ mRunningTimerText , 0 ); |
382 | mTimerPopUp->insertItem( t.toString() + " (remaining time)",1); | 382 | mTimerPopUp->insertItem( t.toString() + " (countdown)",1); |
383 | mTimerPopUp->insertItem( mRunningTimer.time().toString() + " (alarm time)",2); | 383 | mTimerPopUp->insertItem( mRunningTimer.time().toString() + " (alarm)",2); |
384 | } else { | 384 | } else { |
385 | 385 | ||
386 | QString fileName = QDir::homeDirPath() +"/.kopialarmtimerrc"; | 386 | QString fileName = QDir::homeDirPath() +"/.kopialarmtimerrc"; |
387 | QFile file( fileName ); | 387 | QFile file( fileName ); |
388 | if( !QFile::exists( fileName) ) { | 388 | if( !QFile::exists( fileName) ) { |
389 | // write defaults | 389 | // write defaults |
390 | if (!file.open( IO_WriteOnly ) ) { | 390 | if (!file.open( IO_WriteOnly ) ) { |
391 | return; | 391 | return; |
392 | } | 392 | } |
393 | QString configString ; | 393 | QString configString ; |
394 | configString += "#config file for kopi alarm timer\n"; | 394 | configString += "#config file for kopi alarm timer\n"; |
395 | configString += "#format: <Text for popup menu>;<timer countdown in minutes>\n"; | 395 | configString += "#format: <Text for popup menu>;<timer countdown in minutes>\n"; |
396 | configString += "#NOTE: minimum value for timer are 3 minutes!\n"; | 396 | configString += "#NOTE: minimum value for timer are 3 minutes!\n"; |
397 | configString += "24 h; 1440\n"; | 397 | configString += "24 h; 1440\n"; |
398 | configString += " 8 h; 480\n"; | 398 | configString += " 8 h; 480\n"; |
399 | configString += " 5 h; 300\n"; | 399 | configString += " 5 h; 300\n"; |
400 | configString += " 1 h; 60\n"; | 400 | configString += " 1 h; 60\n"; |
401 | configString += "30 min; 30\n"; | 401 | configString += "30 min; 30\n"; |
402 | configString += "15 min; 15\n"; | 402 | configString += "15 min; 15\n"; |
403 | configString += "SEPARATOR\n"; | 403 | configString += "SEPARATOR\n"; |
404 | configString += "Pizza; 22\n"; | 404 | configString += "Pizza; 22\n"; |
405 | configString += "Nap; 45\n"; | 405 | configString += "Nap; 45\n"; |
406 | configString += "Tea; 5\n"; | 406 | configString += "Tea; 5\n"; |
407 | QTextStream ts( &file ); | 407 | QTextStream ts( &file ); |
408 | ts << configString ; | 408 | ts << configString ; |
409 | file.close(); | 409 | file.close(); |
410 | } | 410 | } |
411 | 411 | ||
412 | if (!file.open( IO_ReadOnly ) ) { | 412 | if (!file.open( IO_ReadOnly ) ) { |
413 | return ; | 413 | return ; |
414 | } | 414 | } |
415 | QString line; | 415 | QString line; |
416 | bool ok; | 416 | bool ok; |
417 | while ( file.readLine( line, 1024 ) > 0 ) { | 417 | while ( file.readLine( line, 1024 ) > 0 ) { |
418 | //qDebug("read %s ", line.latin1()); | 418 | //qDebug("read %s ", line.latin1()); |
419 | if ( line.left(1 ) != "#" ) { | 419 | if ( line.left(1 ) != "#" ) { |
420 | // no comment | 420 | // no comment |
421 | if ( line.left(9 ) == "SEPARATOR" ) { | 421 | if ( line.left(9 ) == "SEPARATOR" ) { |
422 | mTimerPopUp->insertSeparator(); | 422 | mTimerPopUp->insertSeparator(); |
423 | } else { | 423 | } else { |
424 | QStringList li = QStringList::split(";",line); | 424 | QStringList li = QStringList::split(";",line); |
425 | ok = false; | 425 | ok = false; |
426 | if ( li.count() == 2 ) { | 426 | if ( li.count() == 2 ) { |
427 | int val = li[1].toInt( &ok ); | 427 | int val = li[1].toInt( &ok ); |
428 | if ( ok && val > 2 ) { | 428 | if ( ok && val > 2 ) { |
429 | mTimerPopUp->insertItem( li[0], val); | 429 | mTimerPopUp->insertItem( li[0], val); |
430 | } | 430 | } |
431 | } | 431 | } |
432 | } | 432 | } |
433 | } | 433 | } |
434 | } | 434 | } |
435 | file.close(); | 435 | file.close(); |
436 | #if 0 | 436 | #if 0 |
437 | mTimerPopUp->insertItem( "24 h", 1440 ); | 437 | mTimerPopUp->insertItem( "24 h", 1440 ); |
438 | // mTimerPopUp->insertItem( i18n("12 h"), 720 ); | 438 | // mTimerPopUp->insertItem( i18n("12 h"), 720 ); |
439 | mTimerPopUp->insertItem( " 8 h", 480 ); | 439 | mTimerPopUp->insertItem( " 8 h", 480 ); |
440 | mTimerPopUp->insertItem( " 5 h", 300 ); | 440 | mTimerPopUp->insertItem( " 5 h", 300 ); |
441 | // mTimerPopUp->insertItem( i18n(" 2 h"), 120 ); | 441 | // mTimerPopUp->insertItem( i18n(" 2 h"), 120 ); |
442 | mTimerPopUp->insertItem( " 1 h", 60 ); | 442 | mTimerPopUp->insertItem( " 1 h", 60 ); |
443 | mTimerPopUp->insertItem( "30 min", 30 ); | 443 | mTimerPopUp->insertItem( "30 min", 30 ); |
444 | mTimerPopUp->insertItem( "15 min", 15 ); | 444 | mTimerPopUp->insertItem( "15 min", 15 ); |
445 | mTimerPopUp->insertItem( "10 min", 10 ); | 445 | mTimerPopUp->insertItem( "10 min", 10 ); |
446 | //mTimerPopUp->insertItem( " 5 min", 5 ); | 446 | //mTimerPopUp->insertItem( " 5 min", 5 ); |
447 | mTimerPopUp->insertSeparator(); | 447 | mTimerPopUp->insertSeparator(); |
448 | mTimerPopUp->insertItem( "Pizza", 22 ); | 448 | mTimerPopUp->insertItem( "Pizza", 22 ); |
449 | mTimerPopUp->insertItem( "Nap", 45 ); | 449 | mTimerPopUp->insertItem( "Nap", 45 ); |
450 | mTimerPopUp->insertItem( "Tea", 5 ); | 450 | mTimerPopUp->insertItem( "Tea", 5 ); |
451 | #endif | 451 | #endif |
452 | QString text = mCustomText.stripWhiteSpace (); | 452 | QString text = mCustomText.stripWhiteSpace (); |
453 | int in = text.find( " " ); | 453 | int in = text.find( " " ); |
454 | text = text.left ( in ); | 454 | text = text.left ( in ); |
455 | mTimerPopUp->insertItem( text, 3 ); | 455 | mTimerPopUp->insertItem( text, 3 ); |
456 | mTimerPopUp->insertSeparator(); | 456 | mTimerPopUp->insertSeparator(); |
457 | mTimerPopUp->insertItem( "Customize", 2 ); | 457 | mTimerPopUp->insertItem( "Customize", 2 ); |
458 | } | 458 | } |
459 | 459 | ||
460 | } | 460 | } |
461 | 461 | ||
462 | void SimpleAlarmDaemonImpl::showTimer() | 462 | void SimpleAlarmDaemonImpl::showTimer() |
463 | { | 463 | { |
464 | fillTimerPopUp(); | 464 | fillTimerPopUp(); |
465 | } | 465 | } |
466 | 466 | ||
467 | void SimpleAlarmDaemonImpl::confTimer( int time ) | 467 | void SimpleAlarmDaemonImpl::confTimer( int time ) |
468 | { | 468 | { |
469 | //qDebug("impleAlarmDaemonImpl::confTimer() %d ", time ); | 469 | //qDebug("impleAlarmDaemonImpl::confTimer() %d ", time ); |
470 | int minutes = time; | 470 | int minutes = time; |
471 | if ( minutes == 0 ) { | 471 | if ( minutes == 0 ) { |
472 | if ( ! mTimerTime ) | 472 | if ( ! mTimerTime ) |
473 | return; | 473 | return; |
474 | 474 | ||
475 | QDialog dia ( 0, ("Stop Timer" ), true ); | 475 | QDialog dia ( 0, ("Stop Timer" ), true ); |
476 | QLabel lab (("Really stop the timer?\n\n"+ mRunningTimerText+"\n"), &dia ); | 476 | QLabel lab (("Really stop the timer?\n\n"+ mRunningTimerText+"\n"), &dia ); |
477 | lab.setAlignment( AlignCenter ); | 477 | lab.setAlignment( AlignCenter ); |
478 | dia.setCaption(("KO/Pi Timer Stop" )); | 478 | dia.setCaption(("KO/Pi Timer Stop" )); |
479 | QVBoxLayout lay( &dia ); | 479 | QVBoxLayout lay( &dia ); |
480 | lay.addWidget( &lab); | 480 | lay.addWidget( &lab); |
481 | QPushButton ok ( "Stop timer!", &dia); | 481 | QPushButton ok ( "Stop timer!", &dia); |
482 | QFont fo = dia.font(); | 482 | QFont fo = dia.font(); |
483 | fo.setPointSize( 36 ); | 483 | fo.setPointSize( 36 ); |
484 | ok.setFont( fo ); | 484 | ok.setFont( fo ); |
485 | lay.addWidget( &ok); | 485 | lay.addWidget( &ok); |
486 | connect ( &ok, SIGNAL (clicked()), &dia, SLOT ( accept() ) ); | 486 | connect ( &ok, SIGNAL (clicked()), &dia, SLOT ( accept() ) ); |
487 | QPushButton con ( "Continue timer!", &dia); | 487 | QPushButton con ( "Continue timer!", &dia); |
488 | fo.setPointSize( 36 ); | 488 | fo.setPointSize( 36 ); |
489 | con.setFont( fo ); | 489 | con.setFont( fo ); |
490 | lay.addWidget( &con); | 490 | lay.addWidget( &con); |
491 | connect ( &con, SIGNAL (clicked()), &dia, SLOT ( reject() ) ); | 491 | connect ( &con, SIGNAL (clicked()), &dia, SLOT ( reject() ) ); |
492 | lay.setMargin(5); | 492 | lay.setMargin(5); |
493 | lay.setSpacing(5); | 493 | lay.setSpacing(5); |
494 | dia.resize(dia.sizeHint() ); | 494 | dia.resize(dia.sizeHint() ); |
495 | 495 | ||
496 | if ( !dia.exec() ) | 496 | if ( !dia.exec() ) |
497 | return; | 497 | return; |
498 | 498 | ||
499 | AlarmServer::deleteAlarm ( mRunningTimer,"koalarm" , timerMesssage.latin1() ); | 499 | AlarmServer::deleteAlarm ( mRunningTimer,"koalarm" , timerMesssage.latin1() ); |
500 | mTimerTime = 0; | 500 | mTimerTime = 0; |
501 | return; | 501 | return; |
502 | } | 502 | } |
503 | if ( mTimerTime ) | 503 | if ( mTimerTime ) |
504 | return; | 504 | return; |
505 | if ( minutes == 1 ) { | 505 | if ( minutes == 1 ) { |
506 | return; | 506 | return; |
507 | } | 507 | } |
508 | QString mess = "timer_alarm"; | 508 | QString mess = "timer_alarm"; |
509 | mess += ("Timer Alarm!\n"); | 509 | mess += ("Timer Alarm!\n"); |
510 | if ( minutes == 22 ) { | 510 | if ( minutes == 22 ) { |
511 | mess += ( "Pizza is ready"); | 511 | mess += ( "Pizza is ready"); |
512 | mRunningTimerText = "Pizza"; | 512 | mRunningTimerText = "Pizza"; |
513 | } | 513 | } |
514 | else if ( minutes == 45 ) { | 514 | else if ( minutes == 45 ) { |
515 | mess += ( "Please wake up!"); | 515 | mess += ( "Please wake up!"); |
516 | mRunningTimerText = "Nap"; | 516 | mRunningTimerText = "Nap"; |
517 | } | 517 | } |
518 | else if ( minutes == 5 ) { | 518 | else if ( minutes == 5 ) { |
519 | mess += ( "Tea is ready"); | 519 | mess += ( "Tea is ready"); |
520 | mRunningTimerText = "Tea"; | 520 | mRunningTimerText = "Tea"; |
521 | } | 521 | } |
522 | else if ( minutes == 3 ) { | 522 | else if ( minutes == 3 ) { |
523 | mess += mCustomText; | 523 | mess += mCustomText; |
524 | minutes = mCustomMinutes ; | 524 | minutes = mCustomMinutes ; |
525 | mRunningTimerText = mCustomText.stripWhiteSpace (); | 525 | mRunningTimerText = mCustomText.stripWhiteSpace (); |
526 | int in = mRunningTimerText.find( " " ); | 526 | int in = mRunningTimerText.find( " " ); |
527 | mRunningTimerText = mRunningTimerText.left ( in ); | 527 | mRunningTimerText = mRunningTimerText.left ( in ); |
528 | } | 528 | } |
529 | else { | 529 | else { |
530 | if ( minutes == 2 ) { | 530 | if ( minutes == 2 ) { |
531 | // ask time | 531 | // ask time |
532 | QDialog dia ( 0, ("Customize Timer" ), true ); | 532 | QDialog dia ( 0, ("Customize Timer" ), true ); |
533 | QLabel lab (("Message Text:"), &dia ); | 533 | QLabel lab (("Message Text:"), &dia ); |
534 | dia.setCaption(("KO/Pi Timer" )); | 534 | dia.setCaption(("KO/Pi Timer" )); |
535 | QVBoxLayout lay( &dia ); | 535 | QVBoxLayout lay( &dia ); |
536 | lay.setMargin(5); | 536 | lay.setMargin(5); |
537 | lay.setSpacing(5); | 537 | lay.setSpacing(5); |
538 | lay.addWidget( &lab); | 538 | lay.addWidget( &lab); |
539 | QLineEdit lEdit( mCustomText, &dia ); | 539 | QLineEdit lEdit( mCustomText, &dia ); |
540 | lay.addWidget( &lEdit); | 540 | lay.addWidget( &lEdit); |
541 | QLabel lab2 (("Countdown time (1 min - 24 h):"), &dia ); | 541 | QLabel lab2 (("Countdown time (1 min - 24 h):"), &dia ); |
542 | lay.addWidget( &lab2); | 542 | lay.addWidget( &lab2); |
543 | QHBox hbox1 ( &dia ); | 543 | QHBox hbox1 ( &dia ); |
544 | lay.addWidget( &hbox1); | 544 | lay.addWidget( &hbox1); |
545 | QLabel lab3 (("Hours"), &hbox1 ); | 545 | QLabel lab3 (("Hours"), &hbox1 ); |
546 | QLabel lab4 (("Minutes"), &hbox1 ); | 546 | QLabel lab4 (("Minutes"), &hbox1 ); |
547 | QHBox hbox ( &dia ); | 547 | QHBox hbox ( &dia ); |
548 | QSpinBox spinh( 0, 24, 1,& hbox ); | 548 | QSpinBox spinh( 0, 24, 1,& hbox ); |
549 | QFont fo = dia.font(); | 549 | QFont fo = dia.font(); |
550 | fo.setPointSize( 36 ); | 550 | fo.setPointSize( 36 ); |
551 | QSpinBox spinm( 0, 59, 1,&hbox ); | 551 | QSpinBox spinm( 0, 59, 1,&hbox ); |
552 | spinm.setFont( fo ); | 552 | spinm.setFont( fo ); |
553 | spinh.setFont( fo ); | 553 | spinh.setFont( fo ); |
554 | spinh.setButtonSymbols( QSpinBox::PlusMinus ); | 554 | spinh.setButtonSymbols( QSpinBox::PlusMinus ); |
555 | spinm.setButtonSymbols( QSpinBox::PlusMinus ); | 555 | spinm.setButtonSymbols( QSpinBox::PlusMinus ); |
556 | spinh.upButton ()->setFixedSize( QSize( 48, 30 )); | 556 | spinh.upButton ()->setFixedSize( QSize( 48, 30 )); |
557 | spinh.downButton ()->setFixedSize( QSize( 48, 30 )); | 557 | spinh.downButton ()->setFixedSize( QSize( 48, 30 )); |
558 | //spinh.editor ()->setFixedSize( QSize( 50, 100 )); | 558 | //spinh.editor ()->setFixedSize( QSize( 50, 100 )); |
559 | spinh.setFixedSize( 100,62 ); | 559 | spinh.setFixedSize( 100,62 ); |
560 | spinm.upButton ()->setFixedSize( QSize( 48, 30 )); | 560 | spinm.upButton ()->setFixedSize( QSize( 48, 30 )); |
561 | spinm.downButton ()->setFixedSize( QSize( 48, 30 )); | 561 | spinm.downButton ()->setFixedSize( QSize( 48, 30 )); |
562 | spinm.downButton ()->setGeometry( 50,50,50,50); | 562 | spinm.downButton ()->setGeometry( 50,50,50,50); |
563 | spinm.setSuffix( " m" ); | 563 | // spinm.setSuffix( " m" ); |
564 | spinh.setSuffix( " h" ); | 564 | //spinh.setSuffix( " h" ); |
565 | spinm.setWrapping ( true ); | 565 | spinm.setWrapping ( true ); |
566 | //spinm.editor ()->setFixedSize( QSize( 50, 100 )); | 566 | //spinm.editor ()->setFixedSize( QSize( 50, 100 )); |
567 | spinm.setLineStep( 1 ); | 567 | spinm.setLineStep( 1 ); |
568 | spinm.setFixedSize( 110,62 ); | 568 | spinm.setFixedSize( 110,62 ); |
569 | lay.addWidget( &hbox); | 569 | lay.addWidget( &hbox); |
570 | QLabel lab5 ("Timer fires at:", &dia ); | 570 | QLabel lab5 ("Timer fires at:", &dia ); |
571 | lab5.setAlignment( AlignCenter ); | 571 | lab5.setAlignment( AlignCenter ); |
572 | lay.addWidget( &lab5); | 572 | lay.addWidget( &lab5); |
573 | KODateLabel dl ( &dia ); | 573 | KODateLabel dl ( &dia ); |
574 | dl.setAlignment( AlignCenter ); | 574 | dl.setAlignment( AlignCenter ); |
575 | dl.setFont( fo ); | 575 | dl.setFont( fo ); |
576 | connect ( &spinh, SIGNAL ( valueChanged (int)), &dl, SLOT ( slot_hours( int ) ) ); | 576 | connect ( &spinh, SIGNAL ( valueChanged (int)), &dl, SLOT ( slot_hours( int ) ) ); |
577 | connect ( &spinm, SIGNAL ( valueChanged (int)), &dl, SLOT ( slot_minutes( int ) ) ); | 577 | connect ( &spinm, SIGNAL ( valueChanged (int)), &dl, SLOT ( slot_minutes( int ) ) ); |
578 | lay.addWidget( &dl); | 578 | lay.addWidget( &dl); |
579 | spinh.setValue( mCustomMinutes/60 ); | 579 | spinh.setValue( mCustomMinutes/60 ); |
580 | spinm.setValue( mCustomMinutes%60 ); | 580 | spinm.setValue( mCustomMinutes%60 ); |
581 | QPushButton ok ( "Start timer", &dia); | 581 | QPushButton ok ( "Start timer", &dia); |
582 | ok.setDefault( true ); | ||
582 | ok.setFont( fo ); | 583 | ok.setFont( fo ); |
584 | spinh.setFocus(); | ||
583 | lay.addWidget( &ok); | 585 | lay.addWidget( &ok); |
584 | connect ( &ok, SIGNAL (clicked()), &dia, SLOT ( accept() ) ); | 586 | connect ( &ok, SIGNAL (clicked()), &dia, SLOT ( accept() ) ); |
585 | dia.resize( dia.sizeHint().width(), dia.sizeHint().height() ); | 587 | dia.resize( dia.sizeHint().width(), dia.sizeHint().height() ); |
586 | 588 | ||
587 | if ( !dia.exec() ) | 589 | if ( !dia.exec() ) |
588 | return; | 590 | return; |
589 | mCustomText = lEdit.text(); | 591 | mCustomText = lEdit.text(); |
590 | mCustomMinutes = spinh.value()*60+spinm.value(); | 592 | mCustomMinutes = spinh.value()*60+spinm.value(); |
591 | if ( mCustomMinutes == 0 ) | 593 | if ( mCustomMinutes == 0 ) |
592 | mCustomMinutes = 1; | 594 | mCustomMinutes = 1; |
593 | if ( mCustomMinutes > 1440 ) | 595 | if ( mCustomMinutes > 1440 ) |
594 | mCustomMinutes = 1440; | 596 | mCustomMinutes = 1440; |
595 | mess += mCustomText; | 597 | mess += mCustomText; |
596 | minutes = mCustomMinutes; | 598 | minutes = mCustomMinutes; |
597 | mRunningTimerText = mCustomText.stripWhiteSpace (); | 599 | mRunningTimerText = mCustomText.stripWhiteSpace (); |
598 | int in = mRunningTimerText.find( " " ); | 600 | int in = mRunningTimerText.find( " " ); |
599 | mRunningTimerText = mRunningTimerText.left ( in ); | 601 | mRunningTimerText = mRunningTimerText.left ( in ); |
600 | } | 602 | } |
601 | else { | 603 | else { |
602 | mess+= QString::number ( minutes ) + ( " minutes are past!"); | 604 | mess+= QString::number ( minutes ) + ( " minutes are past!"); |
603 | int min = minutes; | 605 | int min = minutes; |
604 | if ( min % 60 == 0 ) | 606 | if ( min % 60 == 0 ) |
605 | mRunningTimerText = QString::number ( min/60 ) + ( " hours"); | 607 | mRunningTimerText = QString::number ( min/60 ) + ( " hours"); |
606 | else | 608 | else |
607 | mRunningTimerText = QString::number ( minutes ) + ( " minutes"); | 609 | mRunningTimerText = QString::number ( minutes ) + ( " minutes"); |
608 | } | 610 | } |
609 | } | 611 | } |
610 | //minutes = 1; | 612 | //minutes = 1; |
613 | |||
611 | mRunningTimer = QDateTime::currentDateTime().addSecs( minutes * 60 ); | 614 | mRunningTimer = QDateTime::currentDateTime().addSecs( minutes * 60 ); |
612 | timerMesssage = mess; | 615 | timerMesssage = mess; |
613 | AlarmServer::addAlarm ( mRunningTimer,"koalarm",timerMesssage.latin1()); | 616 | AlarmServer::addAlarm ( mRunningTimer,"koalarm",timerMesssage.latin1()); |
614 | mTimerTime = 1; | 617 | mTimerTime = 1; |
615 | } | 618 | } |
616 | 619 | ||
617 | void SimpleAlarmDaemonImpl::writeFile() | 620 | void SimpleAlarmDaemonImpl::writeFile() |
618 | { | 621 | { |
619 | QCopEnvelope e("QPE/Application/kopi", "-writeFile"); | 622 | QCopEnvelope e("QPE/Application/kopi", "-writeFile"); |
620 | } | 623 | } |
621 | void SimpleAlarmDaemonImpl::showWN() | 624 | void SimpleAlarmDaemonImpl::showWN() |
622 | { | 625 | { |
623 | QCopEnvelope e("QPE/Application/kopi", "-showWN"); | 626 | QCopEnvelope e("QPE/Application/kopi", "-showWN"); |
624 | } | 627 | } |
625 | void SimpleAlarmDaemonImpl::newTodo() | 628 | void SimpleAlarmDaemonImpl::newTodo() |
626 | { | 629 | { |
627 | QCopEnvelope e("QPE/Application/kopi", "-newTodo"); | 630 | QCopEnvelope e("QPE/Application/kopi", "-newTodo"); |
628 | } | 631 | } |
629 | 632 | ||
630 | void SimpleAlarmDaemonImpl::newEvent() | 633 | void SimpleAlarmDaemonImpl::newEvent() |
631 | { | 634 | { |
632 | QCopEnvelope e("QPE/Application/kopi", "-newEvent"); | 635 | QCopEnvelope e("QPE/Application/kopi", "-newEvent"); |
633 | 636 | ||
634 | } | 637 | } |
635 | void SimpleAlarmDaemonImpl::newMail() | 638 | void SimpleAlarmDaemonImpl::newMail() |
636 | { | 639 | { |
637 | QCopEnvelope e("QPE/Application/ompi", "newMail()"); | 640 | QCopEnvelope e("QPE/Application/ompi", "newMail()"); |
638 | } | 641 | } |
639 | void SimpleAlarmDaemonImpl::showAdd() | 642 | void SimpleAlarmDaemonImpl::showAdd() |
640 | { | 643 | { |
641 | QCopEnvelope e("QPE/Application/kapi", "raise()"); | 644 | QCopEnvelope e("QPE/Application/kapi", "raise()"); |
642 | } | 645 | } |
643 | void SimpleAlarmDaemonImpl::ringSync() | 646 | void SimpleAlarmDaemonImpl::ringSync() |
644 | { | 647 | { |
645 | QCopEnvelope e("QPE/Application/kopi", "-ringSync"); | 648 | QCopEnvelope e("QPE/Application/kopi", "-ringSync"); |
646 | 649 | ||
647 | } | 650 | } |
648 | void SimpleAlarmDaemonImpl::newCountdown() | 651 | void SimpleAlarmDaemonImpl::newCountdown() |
649 | { | 652 | { |
650 | //recieve("cal_alarm", 10 ); | 653 | //recieve("cal_alarm", 10 ); |
651 | } | 654 | } |
652 | void SimpleAlarmDaemonImpl::simulate() | 655 | void SimpleAlarmDaemonImpl::simulate() |
653 | { | 656 | { |
654 | writeFile(); | 657 | writeFile(); |
655 | QString filename = getenv("QPEDIR") ; | 658 | QString filename = getenv("QPEDIR") ; |
656 | filename += "/pics/kdepim/korganizer/koalarm.wav"; | 659 | filename += "/pics/kdepim/korganizer/koalarm.wav"; |
657 | startAlarm("Alarm simulation", filename ); | 660 | startAlarm("Alarm simulation", filename ); |
658 | } | 661 | } |
659 | void SimpleAlarmDaemonImpl::showKO() | 662 | void SimpleAlarmDaemonImpl::showKO() |
660 | { | 663 | { |
661 | QCopEnvelope e("QPE/Application/kopi", "-showKO"); | 664 | QCopEnvelope e("QPE/Application/kopi", "-showKO"); |
662 | // testing only | 665 | // testing only |
663 | //QCopEnvelope e("QPE/Application/kopi", "nextView()"); | 666 | //QCopEnvelope e("QPE/Application/kopi", "nextView()"); |
664 | 667 | ||
665 | } | 668 | } |
666 | void SimpleAlarmDaemonImpl::showTodo() | 669 | void SimpleAlarmDaemonImpl::showTodo() |
667 | { | 670 | { |
668 | QCopEnvelope e("QPE/Application/kopi", "-showTodo"); | 671 | QCopEnvelope e("QPE/Application/kopi", "-showTodo"); |
669 | 672 | ||
670 | } | 673 | } |
671 | void SimpleAlarmDaemonImpl::writeJournal() | 674 | void SimpleAlarmDaemonImpl::writeJournal() |
672 | { | 675 | { |
673 | QCopEnvelope e("QPE/Application/kopi", "-showJournal"); | 676 | QCopEnvelope e("QPE/Application/kopi", "-showJournal"); |
674 | 677 | ||
675 | } | 678 | } |
676 | 679 | ||
677 | void SimpleAlarmDaemonImpl::mousePressEvent( QMouseEvent * ) | 680 | void SimpleAlarmDaemonImpl::mousePressEvent( QMouseEvent * ) |
678 | { | 681 | { |
679 | 682 | ||
680 | mPopUp->popup(mapToGlobal(QPoint (0, -mPopUp->height() ))); | 683 | mPopUp->popup(mapToGlobal(QPoint (0, -mPopUp->height() ))); |
681 | 684 | ||
682 | } | 685 | } |
683 | 686 | ||