-rw-r--r-- | kalarmd/alarmdialog.cpp | 36 | ||||
-rw-r--r-- | kalarmd/alarmdialog.h | 2 | ||||
-rw-r--r-- | kalarmd/simplealarmdaemonimpl.cpp | 9 |
3 files changed, 29 insertions, 18 deletions
diff --git a/kalarmd/alarmdialog.cpp b/kalarmd/alarmdialog.cpp index 65073f6..d72a8c2 100644 --- a/kalarmd/alarmdialog.cpp +++ b/kalarmd/alarmdialog.cpp | |||
@@ -52,129 +52,130 @@ | |||
52 | #include <qtopia/alarmserver.h> | 52 | #include <qtopia/alarmserver.h> |
53 | #include <qpe/resource.h> | 53 | #include <qpe/resource.h> |
54 | #include <qtopia/sound.h> | 54 | #include <qtopia/sound.h> |
55 | 55 | ||
56 | #endif | 56 | #endif |
57 | 57 | ||
58 | #include "alarmdialog.h" | 58 | #include "alarmdialog.h" |
59 | 59 | ||
60 | 60 | ||
61 | AlarmDialog::AlarmDialog(QWidget *parent,const char *name) | 61 | AlarmDialog::AlarmDialog(QWidget *parent,const char *name) |
62 | : QDialog (parent, name, true, Qt::WStyle_Customize |Qt::WStyle_StaysOnTop | Qt::WStyle_DialogBorder) | 62 | : QDialog (parent, name, true, Qt::WStyle_Customize |Qt::WStyle_StaysOnTop | Qt::WStyle_DialogBorder) |
63 | { | 63 | { |
64 | setCaption( "KO/Pi Alarm!" ); | 64 | setCaption( "KO/Pi Alarm!" ); |
65 | QVBoxLayout* layout = new QVBoxLayout( this); | 65 | QVBoxLayout* layout = new QVBoxLayout( this); |
66 | QLabel* l = new QLabel("The following event triggered alarm:",this); | 66 | QLabel* l = new QLabel("The following event triggered alarm:",this); |
67 | layout->addWidget ( l ); | 67 | layout->addWidget ( l ); |
68 | l->setAlignment( AlignCenter); | 68 | l->setAlignment( AlignCenter); |
69 | mMessage = new QLabel ( " ", this ); | 69 | mMessage = new QLabel ( " ", this ); |
70 | int fs = 18; | 70 | int fs = 18; |
71 | int fs2 = 12; | 71 | int fs2 = 12; |
72 | int baseSize = 6; | 72 | int baseSize = 6; |
73 | if ( QApplication::desktop()->width() < 480 ) { | 73 | if ( QApplication::desktop()->width() < 480 ) { |
74 | fs2 = 10; | 74 | fs2 = 10; |
75 | fs = 12; | 75 | fs = 12; |
76 | baseSize = 4; | 76 | baseSize = 4; |
77 | } | 77 | } |
78 | layout->setSpacing( 3 ); | 78 | layout->setSpacing( 3 ); |
79 | layout->setMargin( 3 ); | 79 | layout->setMargin( 3 ); |
80 | QFont fo = QApplication::font(); | 80 | QFont fo = QApplication::font(); |
81 | fo.setBold( true ); | 81 | fo.setBold( true ); |
82 | fo.setPointSize( fs2 ); | 82 | fo.setPointSize( fs2 ); |
83 | l->setFont( fo ); | 83 | l->setFont( fo ); |
84 | fo.setPointSize( fs ); | 84 | fo.setPointSize( fs ); |
85 | mMessage->setFont(fo ); | 85 | mMessage->setFont(fo ); |
86 | mMessage->setAlignment( AlignCenter); | 86 | mMessage->setAlignment( AlignCenter); |
87 | layout->addWidget ( mMessage ); | 87 | layout->addWidget ( mMessage ); |
88 | mMissedAlarms= new QLabel ( "(No missed Alarms)", this ); | 88 | mMissedAlarms= new QLabel ( "(No missed Alarms)", this ); |
89 | mMissedAlarms->setAlignment( AlignCenter); | 89 | mMissedAlarms->setAlignment( AlignCenter); |
90 | 90 | ||
91 | playSoundTimer = new QTimer( this ); | 91 | playSoundTimer = new QTimer( this ); |
92 | connect ( playSoundTimer, SIGNAL( timeout() ), this, SLOT (playSound() ) ); | 92 | connect ( playSoundTimer, SIGNAL( timeout() ), this, SLOT (playSound() ) ); |
93 | 93 | ||
94 | playSoundTimer->stop(); | 94 | playSoundTimer->stop(); |
95 | 95 | ||
96 | layout->addWidget ( mMissedAlarms ); | 96 | layout->addWidget ( mMissedAlarms ); |
97 | mMissedAlarmsCombo = new QComboBox ( this ); | 97 | mMissedAlarmsCombo = new QComboBox ( this ); |
98 | layout->addWidget ( mMissedAlarmsCombo ); | 98 | layout->addWidget ( mMissedAlarmsCombo ); |
99 | 99 | ||
100 | QLabel* labb = new QLabel("Suspend duration (minutes):",this); | 100 | QLabel* labb = new QLabel("Suspend\nduration\n(minutes):",this); |
101 | labb->setAlignment(AlignCenter); | 101 | labb->setAlignment(AlignCenter); |
102 | layout->addWidget ( labb ); | 102 | //layout->addWidget ( labb ); |
103 | fo = font(); | 103 | fo = font(); |
104 | int pointSize = 36; | 104 | int pointSize = 36; |
105 | if ( QApplication::desktop()->width() <= 320 ) | 105 | if ( QApplication::desktop()->width() <= 320 ) |
106 | pointSize = 18; | 106 | pointSize = 18; |
107 | fo.setPointSize( pointSize ); | 107 | fo.setPointSize( pointSize ); |
108 | mSuspendSpin = new QSpinBox(1,1440,1,this); | 108 | mSuspendSpin = new QSpinBox(1,1440,1,this); |
109 | mSuspendSpin->setFont( fo ); | 109 | mSuspendSpin->setFont( fo ); |
110 | mSuspendSpin->setValue(7); // default suspend duration | 110 | mSuspendSpin->setValue(7); // default suspend duration |
111 | mSuspendSpin->setButtonSymbols( QSpinBox::PlusMinus ); | 111 | mSuspendSpin->setButtonSymbols( QSpinBox::PlusMinus ); |
112 | mSuspendSpin->setButtonSymbols( QSpinBox::PlusMinus ); | 112 | mSuspendSpin->setButtonSymbols( QSpinBox::PlusMinus ); |
113 | 113 | ||
114 | #if QT_VERSION < 0x030000 | 114 | #if QT_VERSION < 0x030000 |
115 | mSuspendSpin->upButton ()->setFixedSize( QSize( 8*baseSize, 5*baseSize )); | 115 | mSuspendSpin->upButton ()->setFixedSize( QSize( 8*baseSize, 5*baseSize )); |
116 | mSuspendSpin->downButton ()->setFixedSize( QSize( 8*baseSize, 5*baseSize )); | 116 | mSuspendSpin->downButton ()->setFixedSize( QSize( 8*baseSize, 5*baseSize )); |
117 | #endif | 117 | #endif |
118 | mSuspendSpin->setFixedSize( 18*baseSize, 10*baseSize+2 ); | 118 | mSuspendSpin->setFixedSize( 18*baseSize, 10*baseSize+2 ); |
119 | mSuspendSpin->setButtonSymbols( QSpinBox::PlusMinus ); | 119 | mSuspendSpin->setButtonSymbols( QSpinBox::PlusMinus ); |
120 | QHBoxLayout* layoutSpin = new QHBoxLayout( layout ); | 120 | QHBoxLayout* layoutSpin = new QHBoxLayout( layout ); |
121 | layoutSpin->addStretch (); | 121 | layoutSpin->addStretch (); |
122 | layoutSpin->addWidget ( labb ); | ||
122 | layoutSpin->addWidget ( mSuspendSpin ); | 123 | layoutSpin->addWidget ( mSuspendSpin ); |
123 | layoutSpin->addStretch (); | 124 | layoutSpin->addStretch (); |
124 | 125 | ||
125 | QVBox * bbox = new QVBox ( this ); | 126 | QVBox * bbox = new QVBox ( this ); |
126 | layout->addWidget ( bbox ); | 127 | layout->addWidget ( bbox ); |
127 | bbox->layout()->setSpacing( 2 ); | 128 | bbox->layout()->setSpacing( 2 ); |
128 | labb = new QLabel("Press \"Cancel\" or \"Esc\" to suspend!",bbox); | 129 | labb = new QLabel("Press \"Cancel\" or \"Esc\" to suspend!",bbox); |
129 | labb->setAlignment(AlignCenter); | 130 | labb->setAlignment(AlignCenter); |
130 | mSuspendButton = new QPushButton( "Suspend", bbox); | 131 | mSuspendButton = new QPushButton( "Suspend", bbox); |
131 | QPushButton* silen = new QPushButton( " Stop sound ", bbox); | 132 | QPushButton* silen = new QPushButton( " Stop sound ", bbox); |
132 | QPushButton* okbut = new QPushButton( "Ok", bbox); | 133 | okbut = new QPushButton( "Ok", bbox); |
133 | mSuspendButton->setFont( fo ); | 134 | mSuspendButton->setFont( fo ); |
134 | silen->setFont( fo ); | 135 | silen->setFont( fo ); |
135 | okbut->setFont( fo ); | 136 | okbut->setFont( fo ); |
136 | okbut->setDefault( true ); | 137 | okbut->setDefault( true ); |
137 | connect (silen , SIGNAL( clicked() ), this, SLOT (silent() ) ); | 138 | connect (silen , SIGNAL( clicked() ), this, SLOT (silent() ) ); |
138 | connect (mSuspendButton, SIGNAL( clicked() ), this, SLOT (slotSuspend() ) ); | 139 | connect (mSuspendButton, SIGNAL( clicked() ), this, SLOT (slotSuspend() ) ); |
139 | connect (okbut , SIGNAL( clicked() ), this, SLOT (slotOk() ) ); | 140 | connect (okbut , SIGNAL( clicked() ), this, SLOT (slotOk() ) ); |
140 | connect (mSuspendSpin , SIGNAL( valueChanged ( int ) ), this, SLOT ( spinBoxChanged( int ) ) ); | 141 | connect (mSuspendSpin , SIGNAL( valueChanged ( int ) ), this, SLOT ( spinBoxChanged( int ) ) ); |
141 | #ifndef _WIN32_ | 142 | #ifndef _WIN32_ |
142 | if ( QFile::exists ( "/dev/sharp_led" ) ) | 143 | if ( QFile::exists ( "/dev/sharp_led" ) ) |
143 | fd_led = open ( "/dev/sharp_led", O_RDWR|O_NONBLOCK ); | 144 | fd_led = open ( "/dev/sharp_led", O_RDWR|O_NONBLOCK ); |
144 | else | 145 | else |
145 | #endif | 146 | #endif |
146 | fd_led = 0; | 147 | fd_led = 0; |
147 | statusLED.which = SHARP_LED_SALARM; | 148 | statusLED.which = SHARP_LED_SALARM; |
148 | mSilent = false; | 149 | mSilent = false; |
149 | mSuspendCounter = 0; | 150 | mSuspendCounter = 0; |
150 | setServerNotification( true ); | 151 | setServerNotification( true ); |
151 | } | 152 | } |
152 | void AlarmDialog::reject () | 153 | void AlarmDialog::reject () |
153 | { | 154 | { |
154 | QTimer::singleShot ( 3000, this, SLOT (suspend()) ); | 155 | QTimer::singleShot ( 3000, this, SLOT (suspend()) ); |
155 | slotSuspend(); | 156 | slotSuspend(); |
156 | } | 157 | } |
157 | AlarmDialog::~AlarmDialog() | 158 | AlarmDialog::~AlarmDialog() |
158 | { | 159 | { |
159 | } | 160 | } |
160 | void AlarmDialog::silent () | 161 | void AlarmDialog::silent () |
161 | { | 162 | { |
162 | mSilent = true; | 163 | mSilent = true; |
163 | } | 164 | } |
164 | void AlarmDialog::accept() | 165 | void AlarmDialog::accept() |
165 | { | 166 | { |
166 | slotOk(); | 167 | slotOk(); |
167 | } | 168 | } |
168 | 169 | ||
169 | void AlarmDialog::suspend() | 170 | void AlarmDialog::suspend() |
170 | { | 171 | { |
171 | #ifdef DESKTOP_VERSION | 172 | #ifdef DESKTOP_VERSION |
172 | 173 | ||
173 | #else | 174 | #else |
174 | Sound::soundAlarm (); | 175 | Sound::soundAlarm (); |
175 | #endif | 176 | #endif |
176 | } | 177 | } |
177 | void AlarmDialog::slotOk() | 178 | void AlarmDialog::slotOk() |
178 | { | 179 | { |
179 | mStopAlarm = true; | 180 | mStopAlarm = true; |
180 | mMissedAlarms->setText("(No missed Alarms)"); | 181 | mMissedAlarms->setText("(No missed Alarms)"); |
@@ -196,133 +197,138 @@ void AlarmDialog::slotSuspend() | |||
196 | QDateTime nextA = QDateTime::currentDateTime().addSecs( mSuspendSpin->value() * 60 ); | 197 | QDateTime nextA = QDateTime::currentDateTime().addSecs( mSuspendSpin->value() * 60 ); |
197 | QString mess = "suspend_alarm" +mFileName+"+++" ; | 198 | QString mess = "suspend_alarm" +mFileName+"+++" ; |
198 | if ( mMessage->text().left( 10 ) !="Suspended:" ) | 199 | if ( mMessage->text().left( 10 ) !="Suspended:" ) |
199 | mess += "Suspended:\n"; | 200 | mess += "Suspended:\n"; |
200 | mess +=mMessage->text(); | 201 | mess +=mMessage->text(); |
201 | #ifndef DESKTOP_VERSION | 202 | #ifndef DESKTOP_VERSION |
202 | if ( mServerNotification ) | 203 | if ( mServerNotification ) |
203 | AlarmServer::addAlarm ( nextA,"koalarm",mess.latin1()); | 204 | AlarmServer::addAlarm ( nextA,"koalarm",mess.latin1()); |
204 | #endif | 205 | #endif |
205 | emit addAlarm( nextA , mess ); | 206 | emit addAlarm( nextA , mess ); |
206 | slotOk(); | 207 | slotOk(); |
207 | } | 208 | } |
208 | 209 | ||
209 | void AlarmDialog::setServerNotification( bool b ) | 210 | void AlarmDialog::setServerNotification( bool b ) |
210 | { | 211 | { |
211 | mServerNotification = b; | 212 | mServerNotification = b; |
212 | } | 213 | } |
213 | int AlarmDialog::getSuspendTime( ) | 214 | int AlarmDialog::getSuspendTime( ) |
214 | { | 215 | { |
215 | return mSuspendSpin->value(); | 216 | return mSuspendSpin->value(); |
216 | 217 | ||
217 | } | 218 | } |
218 | void AlarmDialog::setSuspendTime( int val ) | 219 | void AlarmDialog::setSuspendTime( int val ) |
219 | { | 220 | { |
220 | mSuspendSpin->setValue( val ); | 221 | mSuspendSpin->setValue( val ); |
221 | } | 222 | } |
222 | bool AlarmDialog::eventNotification( QString mess, int replay , QString fn, bool playwav, int pause , int suspendtimes) | 223 | bool AlarmDialog::eventNotification( QString mess, int replay , QString fn, bool playwav, int pause , int suspendtimes) |
223 | { | 224 | { |
224 | if ( mess.left( 9) != "Suspended" ) | 225 | if ( mess.left( 9) != "Suspended" ) |
225 | mSuspendCounter = suspendtimes; | 226 | mSuspendCounter = suspendtimes; |
226 | mPauseCount = pause; | 227 | mPauseCount = pause; |
227 | mFileName = fn; | 228 | mFileName = fn; |
228 | mPlayWav = playwav; | 229 | mPlayWav = playwav; |
229 | if ( !QFile::exists( fn ) ) | 230 | if ( !QFile::exists( fn ) ) |
230 | mFileName = ""; | 231 | mFileName = ""; |
231 | alarmCounter = 0 ; | 232 | alarmCounter = 0 ; |
232 | maxAlarmReplay = replay ; | 233 | maxAlarmReplay = replay ; |
233 | mStopAlarm = false; | 234 | mStopAlarm = false; |
234 | mSilent = false; | 235 | mSilent = false; |
235 | if ( !mMessage->text().stripWhiteSpace().isEmpty() ) { | 236 | if ( !mMessage->text().stripWhiteSpace().isEmpty() ) { |
236 | mMissedAlarmsCombo->show(); | 237 | mMissedAlarmsCombo->show(); |
237 | QString newItem = mMessage->text().stripWhiteSpace(); | 238 | QString newItem = mMessage->text().stripWhiteSpace(); |
238 | newItem.replace( QRegExp("\n"), QString(" ") ); | 239 | newItem.replace( QRegExp("\n"), QString(" ") ); |
239 | mMissedAlarmsCombo->insertItem( newItem ); | 240 | mMissedAlarmsCombo->insertItem( newItem ); |
240 | mMissedAlarms->setText( "Missed alarms:"); | 241 | mMissedAlarms->setText( "Missed alarms:"); |
241 | } else | 242 | } else |
242 | mMissedAlarmsCombo->hide(); | 243 | mMissedAlarmsCombo->hide(); |
243 | mMessage->setText(mess); | 244 | mMessage->setText(mess); |
244 | int w =sizeHint().width() ; | 245 | int w = minimumSizeHint().width() ; |
245 | int h = sizeHint().height() ; | 246 | int h = minimumSizeHint().height() ; |
246 | int dw = QApplication::desktop()->width(); | 247 | int dw = QApplication::desktop()->width(); |
247 | int dh = QApplication::desktop()->height(); | 248 | int dh = QApplication::desktop()->height(); |
248 | setGeometry( (dw-w)/2, (dh - h )/2 ,w,h ); | 249 | setGeometry( (dw-w)/2, (dh - h )/2 ,w,h ); |
249 | show(); | 250 | hide(); |
250 | raise(); | ||
251 | //qApp->processEvents(); | ||
252 | //repaint(); | ||
253 | qApp->processEvents(); | ||
254 | 251 | ||
255 | #ifndef _WIN32_ | 252 | #ifndef _WIN32_ |
256 | if ( fd_led > 0 ) { | 253 | if ( fd_led > 0 ) { |
257 | statusLED.status = LED_SALARM_ON ; | 254 | statusLED.status = LED_SALARM_ON ; |
258 | ioctl (fd_led, SHARP_LED_SETSTATUS, &statusLED); | 255 | ioctl (fd_led, SHARP_LED_SETSTATUS, &statusLED); |
259 | } | 256 | } |
260 | #endif | 257 | #endif |
261 | playSoundTimer->start( 1000, true ); | 258 | okbut->setDefault( true ); |
259 | QTimer::singleShot( 1, this, SLOT ( forceRepaint() ) ); | ||
260 | // playSoundTimer->start( 1000, true ); | ||
262 | return true; | 261 | return true; |
263 | 262 | ||
264 | } | 263 | } |
265 | 264 | ||
266 | void AlarmDialog::spinBoxChanged( int ) | 265 | void AlarmDialog::forceRepaint() |
267 | { | 266 | { |
267 | |||
268 | showNormal(); | ||
269 | setActiveWindow(); | ||
270 | raise(); | ||
271 | playSoundTimer->start( 1000, true ); | ||
272 | |||
273 | } | ||
274 | void AlarmDialog::spinBoxChanged( int v ) | ||
275 | { | ||
276 | okbut->setDefault( false ); | ||
268 | mSilent = true; | 277 | mSilent = true; |
269 | } | 278 | } |
270 | 279 | ||
271 | void AlarmDialog::playSound () | 280 | void AlarmDialog::playSound () |
272 | { | 281 | { |
273 | 282 | ||
274 | if (mStopAlarm ) | 283 | if (mStopAlarm ) |
275 | return; | 284 | return; |
276 | if ( mSilent ) | 285 | if ( mSilent ) |
277 | return; | 286 | return; |
278 | showNormal(); | 287 | showNormal(); |
279 | setActiveWindow(); | 288 | setActiveWindow(); |
280 | raise(); | 289 | raise(); |
281 | mSuspendSpin->setFocus(); | 290 | mSuspendSpin->setFocus(); |
282 | |||
283 | |||
284 | qApp->processEvents(); | ||
285 | if ( alarmCounter < maxAlarmReplay && ! mSilent) { | 291 | if ( alarmCounter < maxAlarmReplay && ! mSilent) { |
286 | ++alarmCounter; | 292 | ++alarmCounter; |
287 | #ifdef DESKTOP_VERSION | 293 | #ifdef DESKTOP_VERSION |
288 | mPlayWav = true; | 294 | mPlayWav = true; |
289 | #endif | 295 | #endif |
290 | if ( !mPlayWav || mFileName.length() < 2 ) { | 296 | if ( !mPlayWav || mFileName.length() < 2 ) { |
291 | 297 | ||
292 | #ifdef DESKTOP_VERSION | 298 | #ifdef DESKTOP_VERSION |
293 | qDebug("Sound play not possible - file not found"); | 299 | qDebug("Sound play not possible - file not found"); |
294 | #else | 300 | #else |
295 | Sound::soundAlarm (); | 301 | Sound::soundAlarm (); |
296 | #endif | 302 | #endif |
297 | } else | 303 | } else |
298 | 304 | ||
299 | { | 305 | { |
300 | #ifdef DESKTOP_VERSION | 306 | #ifdef DESKTOP_VERSION |
301 | #ifdef _WIN32_ | 307 | #ifdef _WIN32_ |
302 | QSound::play ( mFileName ); | 308 | QSound::play ( mFileName ); |
303 | #else | 309 | #else |
304 | 310 | ||
305 | QString command = "playwave -r 22050 " + mFileName; | 311 | QString command = "playwave -r 22050 " + mFileName; |
306 | qDebug("KO: Playing file %s with 22kHz",mFileName.latin1() ); | 312 | qDebug("KO: Playing file %s with 22kHz",mFileName.latin1() ); |
307 | int ret = system ( command.latin1() ); | 313 | int ret = system ( command.latin1() ); |
308 | if ( ret != 0 ) { | 314 | if ( ret != 0 ) { |
309 | qDebug("Sound play command failed: %s ",command.latin1() ); | 315 | qDebug("Sound play command failed: %s ",command.latin1() ); |
310 | } | 316 | } |
311 | 317 | ||
312 | #endif | 318 | #endif |
313 | 319 | ||
314 | #else | 320 | #else |
315 | QSound::play ( mFileName ); | 321 | QSound::play ( mFileName ); |
316 | #endif | 322 | #endif |
317 | qDebug("BEEP!"); | 323 | qDebug("BEEP!"); |
318 | } | 324 | } |
319 | } else { | 325 | } else { |
320 | if ( ! mSilent && mSuspendCounter > 0 ) { | 326 | if ( ! mSilent && mSuspendCounter > 0 ) { |
321 | --mSuspendCounter; | 327 | --mSuspendCounter; |
322 | reject (); | 328 | reject (); |
323 | hide(); | 329 | hide(); |
324 | return; | 330 | return; |
325 | } | 331 | } |
326 | } | 332 | } |
327 | playSoundTimer->start( mPauseCount * 1000, true ); | 333 | playSoundTimer->start( mPauseCount * 1000, true ); |
328 | } | 334 | } |
diff --git a/kalarmd/alarmdialog.h b/kalarmd/alarmdialog.h index 1e4636c..52e681a 100644 --- a/kalarmd/alarmdialog.h +++ b/kalarmd/alarmdialog.h | |||
@@ -5,81 +5,83 @@ | |||
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> | 31 | #include <qcombobox.h> |
32 | #include <qpushbutton.h> | 32 | #include <qpushbutton.h> |
33 | 33 | ||
34 | #include "sharp_char.h" | 34 | #include "sharp_char.h" |
35 | 35 | ||
36 | 36 | ||
37 | class QSpinBox; | 37 | class QSpinBox; |
38 | class QLabel; | 38 | class QLabel; |
39 | class QString; | 39 | class QString; |
40 | 40 | ||
41 | class AlarmDialog : public QDialog { | 41 | class AlarmDialog : public QDialog { |
42 | Q_OBJECT | 42 | Q_OBJECT |
43 | public: | 43 | public: |
44 | AlarmDialog( QWidget *parent = 0, const char *name = 0 ); | 44 | AlarmDialog( QWidget *parent = 0, const char *name = 0 ); |
45 | virtual ~AlarmDialog(); | 45 | virtual ~AlarmDialog(); |
46 | 46 | ||
47 | bool eventNotification(QString m, int replay , QString m2 , bool, int, int ); | 47 | bool eventNotification(QString m, int replay , QString m2 , bool, int, int ); |
48 | int getSuspendTime( ); | 48 | int getSuspendTime( ); |
49 | void setSuspendTime( int ); | 49 | void setSuspendTime( int ); |
50 | void setServerNotification( bool b ); | 50 | void setServerNotification( bool b ); |
51 | 51 | ||
52 | public slots: | 52 | public slots: |
53 | void forceRepaint(); | ||
53 | void spinBoxChanged( int ); | 54 | void spinBoxChanged( int ); |
54 | void slotOk(); | 55 | void slotOk(); |
55 | void slotSuspend(); | 56 | void slotSuspend(); |
56 | void reject () ; | 57 | void reject () ; |
57 | void silent () ; | 58 | void silent () ; |
58 | void accept(); | 59 | void accept(); |
59 | void suspend(); | 60 | void suspend(); |
60 | void playSound (); | 61 | void playSound (); |
61 | signals: | 62 | signals: |
62 | // void suspendSignal(int duration); | 63 | // void suspendSignal(int duration); |
63 | void addAlarm(const QDateTime &, const QString & ); | 64 | void addAlarm(const QDateTime &, const QString & ); |
64 | 65 | ||
65 | private: | 66 | private: |
67 | QPushButton* okbut; | ||
66 | int alarmCounter; | 68 | int alarmCounter; |
67 | int mPauseCount; | 69 | int mPauseCount; |
68 | int mSuspendCounter; | 70 | int mSuspendCounter; |
69 | int maxAlarmReplay; | 71 | int maxAlarmReplay; |
70 | QTimer* playSoundTimer; | 72 | QTimer* playSoundTimer; |
71 | bool mStopAlarm; | 73 | bool mStopAlarm; |
72 | bool mSilent; | 74 | bool mSilent; |
73 | bool mPlayWav; | 75 | bool mPlayWav; |
74 | bool mServerNotification; | 76 | bool mServerNotification; |
75 | QLabel* mMessage; | 77 | QLabel* mMessage; |
76 | QLabel* mMissedAlarms; | 78 | QLabel* mMissedAlarms; |
77 | QSpinBox *mSuspendSpin; | 79 | QSpinBox *mSuspendSpin; |
78 | QComboBox *mMissedAlarmsCombo; | 80 | QComboBox *mMissedAlarmsCombo; |
79 | QPushButton* mSuspendButton; | 81 | QPushButton* mSuspendButton; |
80 | QString mFileName; | 82 | QString mFileName; |
81 | int fd_led; | 83 | int fd_led; |
82 | sharp_led_status statusLED; | 84 | sharp_led_status statusLED; |
83 | }; | 85 | }; |
84 | 86 | ||
85 | #endif | 87 | #endif |
diff --git a/kalarmd/simplealarmdaemonimpl.cpp b/kalarmd/simplealarmdaemonimpl.cpp index 294ce7d..2a463b3 100644 --- a/kalarmd/simplealarmdaemonimpl.cpp +++ b/kalarmd/simplealarmdaemonimpl.cpp | |||
@@ -260,97 +260,99 @@ void SimpleAlarmDaemonImpl::slotPlayBeep( int num ) | |||
260 | mBeepPopUp->setItemChecked ( mPlayBeeps, true ); | 260 | mBeepPopUp->setItemChecked ( mPlayBeeps, true ); |
261 | } | 261 | } |
262 | 262 | ||
263 | void SimpleAlarmDaemonImpl::recieve( const QCString& msg, const QByteArray& ) | 263 | void SimpleAlarmDaemonImpl::recieve( const QCString& msg, const QByteArray& ) |
264 | { | 264 | { |
265 | //qDebug("SimpleAlarmDaemonImpl::ALARM RECEIVED! %s", msg.data()); | 265 | //qDebug("SimpleAlarmDaemonImpl::ALARM RECEIVED! %s", msg.data()); |
266 | QString mess = msg; | 266 | QString mess = msg; |
267 | mAlarmMessage = mess.mid( 9 ); | 267 | mAlarmMessage = mess.mid( 9 ); |
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 | { |
309 | QCopEnvelope e("QPE/Application/kopi", "-writeFileSilent"); | ||
310 | } | ||
309 | //qDebug("-----system command %s ",tempfilename.latin1() ); | 311 | //qDebug("-----system command %s ",tempfilename.latin1() ); |
310 | if ( vfork () == 0 ) { | 312 | if ( vfork () == 0 ) { |
311 | execl ( tempfilename.latin1(), 0 ); | 313 | execl ( tempfilename.latin1(), 0 ); |
312 | return; | 314 | return; |
313 | } | 315 | } |
314 | return; | 316 | return; |
315 | } | 317 | } |
316 | 318 | ||
317 | //qDebug("+++++++system command %s ",tempfilename.latin1() ); | 319 | //qDebug("+++++++system command %s ",tempfilename.latin1() ); |
318 | } | 320 | } |
319 | if ( mess.left( 11 ) == "audio_alarm") { | 321 | if ( mess.left( 11 ) == "audio_alarm") { |
320 | bool error = false; | 322 | bool error = false; |
321 | int len = mess.mid( 11 ).find("+++"); | 323 | int len = mess.mid( 11 ).find("+++"); |
322 | if ( len < 2 ) | 324 | if ( len < 2 ) |
323 | error = true; | 325 | error = true; |
324 | else { | 326 | else { |
325 | tempfilename = mess.mid( 11, len ); | 327 | tempfilename = mess.mid( 11, len ); |
326 | if ( !QFile::exists( tempfilename ) ) | 328 | if ( !QFile::exists( tempfilename ) ) |
327 | error = true; | 329 | error = true; |
328 | } | 330 | } |
329 | if ( ! error ) { | 331 | if ( ! error ) { |
330 | filename = tempfilename; | 332 | filename = tempfilename; |
331 | } | 333 | } |
332 | mAlarmMessage = mess.mid( 11+len+3+9 ); | 334 | mAlarmMessage = mess.mid( 11+len+3+9 ); |
333 | //qDebug("audio file command %s ",tempfilename.latin1() ); | 335 | //qDebug("audio file command %s ",tempfilename.latin1() ); |
334 | } | 336 | } |
335 | if ( mess.left( 9 ) == "cal_alarm") { | 337 | if ( mess.left( 9 ) == "cal_alarm") { |
336 | mAlarmMessage = mess.mid( 9 ) ; | 338 | mAlarmMessage = mess.mid( 9 ) ; |
337 | } | 339 | } |
338 | 340 | ||
339 | writeFile(); | 341 | writeFile(); |
340 | startAlarm( mAlarmMessage, filename ); | 342 | startAlarm( mAlarmMessage, filename ); |
341 | 343 | ||
342 | } | 344 | } |
343 | 345 | ||
344 | int SimpleAlarmDaemonImpl::getFileNameLen( QString mess ) | 346 | int SimpleAlarmDaemonImpl::getFileNameLen( QString mess ) |
345 | { | 347 | { |
346 | return 0; | 348 | return 0; |
347 | } | 349 | } |
348 | void SimpleAlarmDaemonImpl::startAlarm( QString mess, QString filename ) | 350 | void SimpleAlarmDaemonImpl::startAlarm( QString mess, QString filename ) |
349 | { | 351 | { |
350 | //mAlarmDialog->show(); | 352 | //mAlarmDialog->show(); |
351 | //mAlarmDialog->raise(); | 353 | //mAlarmDialog->raise(); |
352 | mAlarmDialog->eventNotification( mess, mPlayBeeps, filename, wavAlarm,mPausePlay ,mSuspend ); | 354 | mAlarmDialog->eventNotification( mess, mPlayBeeps, filename, wavAlarm,mPausePlay ,mSuspend ); |
353 | } | 355 | } |
354 | 356 | ||
355 | 357 | ||
356 | void SimpleAlarmDaemonImpl::fillTimerPopUp() | 358 | void SimpleAlarmDaemonImpl::fillTimerPopUp() |
@@ -573,98 +575,99 @@ void SimpleAlarmDaemonImpl::confTimer( int time ) | |||
573 | KODateLabel dl ( &dia ); | 575 | KODateLabel dl ( &dia ); |
574 | dl.setAlignment( AlignCenter ); | 576 | dl.setAlignment( AlignCenter ); |
575 | dl.setFont( fo ); | 577 | dl.setFont( fo ); |
576 | connect ( &spinh, SIGNAL ( valueChanged (int)), &dl, SLOT ( slot_hours( int ) ) ); | 578 | connect ( &spinh, SIGNAL ( valueChanged (int)), &dl, SLOT ( slot_hours( int ) ) ); |
577 | connect ( &spinm, SIGNAL ( valueChanged (int)), &dl, SLOT ( slot_minutes( int ) ) ); | 579 | connect ( &spinm, SIGNAL ( valueChanged (int)), &dl, SLOT ( slot_minutes( int ) ) ); |
578 | lay.addWidget( &dl); | 580 | lay.addWidget( &dl); |
579 | spinh.setValue( mCustomMinutes/60 ); | 581 | spinh.setValue( mCustomMinutes/60 ); |
580 | spinm.setValue( mCustomMinutes%60 ); | 582 | spinm.setValue( mCustomMinutes%60 ); |
581 | QPushButton ok ( "Start timer", &dia); | 583 | QPushButton ok ( "Start timer", &dia); |
582 | ok.setDefault( true ); | 584 | ok.setDefault( true ); |
583 | ok.setFont( fo ); | 585 | ok.setFont( fo ); |
584 | spinh.setFocus(); | 586 | spinh.setFocus(); |
585 | lay.addWidget( &ok); | 587 | lay.addWidget( &ok); |
586 | connect ( &ok, SIGNAL (clicked()), &dia, SLOT ( accept() ) ); | 588 | connect ( &ok, SIGNAL (clicked()), &dia, SLOT ( accept() ) ); |
587 | dia.resize( dia.sizeHint().width(), dia.sizeHint().height() ); | 589 | dia.resize( dia.sizeHint().width(), dia.sizeHint().height() ); |
588 | 590 | ||
589 | if ( !dia.exec() ) | 591 | if ( !dia.exec() ) |
590 | return; | 592 | return; |
591 | mCustomText = lEdit.text(); | 593 | mCustomText = lEdit.text(); |
592 | mCustomMinutes = spinh.value()*60+spinm.value(); | 594 | mCustomMinutes = spinh.value()*60+spinm.value(); |
593 | if ( mCustomMinutes == 0 ) | 595 | if ( mCustomMinutes == 0 ) |
594 | mCustomMinutes = 1; | 596 | mCustomMinutes = 1; |
595 | if ( mCustomMinutes > 1440 ) | 597 | if ( mCustomMinutes > 1440 ) |
596 | mCustomMinutes = 1440; | 598 | mCustomMinutes = 1440; |
597 | mess += mCustomText; | 599 | mess += mCustomText; |
598 | minutes = mCustomMinutes; | 600 | minutes = mCustomMinutes; |
599 | mRunningTimerText = mCustomText.stripWhiteSpace (); | 601 | mRunningTimerText = mCustomText.stripWhiteSpace (); |
600 | int in = mRunningTimerText.find( " " ); | 602 | int in = mRunningTimerText.find( " " ); |
601 | mRunningTimerText = mRunningTimerText.left ( in ); | 603 | mRunningTimerText = mRunningTimerText.left ( in ); |
602 | } | 604 | } |
603 | else { | 605 | else { |
604 | mess+= QString::number ( minutes ) + ( " minutes are past!"); | 606 | mess+= QString::number ( minutes ) + ( " minutes are past!"); |
605 | int min = minutes; | 607 | int min = minutes; |
606 | if ( min % 60 == 0 ) | 608 | if ( min % 60 == 0 ) |
607 | mRunningTimerText = QString::number ( min/60 ) + ( " hours"); | 609 | mRunningTimerText = QString::number ( min/60 ) + ( " hours"); |
608 | else | 610 | else |
609 | mRunningTimerText = QString::number ( minutes ) + ( " minutes"); | 611 | mRunningTimerText = QString::number ( minutes ) + ( " minutes"); |
610 | } | 612 | } |
611 | } | 613 | } |
612 | //minutes = 1; | 614 | //minutes = 1; |
613 | 615 | ||
614 | mRunningTimer = QDateTime::currentDateTime().addSecs( minutes * 60 ); | 616 | mRunningTimer = QDateTime::currentDateTime().addSecs( minutes * 60 ); |
615 | timerMesssage = mess; | 617 | timerMesssage = mess; |
616 | AlarmServer::addAlarm ( mRunningTimer,"koalarm",timerMesssage.latin1()); | 618 | AlarmServer::addAlarm ( mRunningTimer,"koalarm",timerMesssage.latin1()); |
617 | mTimerTime = 1; | 619 | mTimerTime = 1; |
618 | } | 620 | } |
619 | 621 | ||
620 | void SimpleAlarmDaemonImpl::writeFile() | 622 | void SimpleAlarmDaemonImpl::writeFile() |
621 | { | 623 | { |
622 | QCopEnvelope e("QPE/Application/kopi", "-writeFile"); | 624 | QCopEnvelope e("QPE/Application/kopi", "-writeFileSilent"); |
625 | //QCopEnvelope e("QPE/Application/kopi", "-writeFile"); | ||
623 | } | 626 | } |
624 | void SimpleAlarmDaemonImpl::showWN() | 627 | void SimpleAlarmDaemonImpl::showWN() |
625 | { | 628 | { |
626 | QCopEnvelope e("QPE/Application/kopi", "-showWN"); | 629 | QCopEnvelope e("QPE/Application/kopi", "-showWN"); |
627 | } | 630 | } |
628 | void SimpleAlarmDaemonImpl::newTodo() | 631 | void SimpleAlarmDaemonImpl::newTodo() |
629 | { | 632 | { |
630 | QCopEnvelope e("QPE/Application/kopi", "-newTodo"); | 633 | QCopEnvelope e("QPE/Application/kopi", "-newTodo"); |
631 | } | 634 | } |
632 | 635 | ||
633 | void SimpleAlarmDaemonImpl::newEvent() | 636 | void SimpleAlarmDaemonImpl::newEvent() |
634 | { | 637 | { |
635 | QCopEnvelope e("QPE/Application/kopi", "-newEvent"); | 638 | QCopEnvelope e("QPE/Application/kopi", "-newEvent"); |
636 | 639 | ||
637 | } | 640 | } |
638 | void SimpleAlarmDaemonImpl::newMail() | 641 | void SimpleAlarmDaemonImpl::newMail() |
639 | { | 642 | { |
640 | QCopEnvelope e("QPE/Application/ompi", "newMail()"); | 643 | QCopEnvelope e("QPE/Application/ompi", "newMail()"); |
641 | } | 644 | } |
642 | void SimpleAlarmDaemonImpl::showAdd() | 645 | void SimpleAlarmDaemonImpl::showAdd() |
643 | { | 646 | { |
644 | QCopEnvelope e("QPE/Application/kapi", "raise()"); | 647 | QCopEnvelope e("QPE/Application/kapi", "raise()"); |
645 | } | 648 | } |
646 | void SimpleAlarmDaemonImpl::ringSync() | 649 | void SimpleAlarmDaemonImpl::ringSync() |
647 | { | 650 | { |
648 | QCopEnvelope e("QPE/Application/kopi", "-ringSync"); | 651 | QCopEnvelope e("QPE/Application/kopi", "-ringSync"); |
649 | 652 | ||
650 | } | 653 | } |
651 | void SimpleAlarmDaemonImpl::newCountdown() | 654 | void SimpleAlarmDaemonImpl::newCountdown() |
652 | { | 655 | { |
653 | //recieve("cal_alarm", 10 ); | 656 | //recieve("cal_alarm", 10 ); |
654 | } | 657 | } |
655 | void SimpleAlarmDaemonImpl::simulate() | 658 | void SimpleAlarmDaemonImpl::simulate() |
656 | { | 659 | { |
657 | writeFile(); | 660 | writeFile(); |
658 | QString filename = getenv("QPEDIR") ; | 661 | QString filename = getenv("QPEDIR") ; |
659 | filename += "/pics/kdepim/korganizer/koalarm.wav"; | 662 | filename += "/pics/kdepim/korganizer/koalarm.wav"; |
660 | startAlarm("Alarm simulation", filename ); | 663 | startAlarm("Alarm simulation", filename ); |
661 | } | 664 | } |
662 | void SimpleAlarmDaemonImpl::showKO() | 665 | void SimpleAlarmDaemonImpl::showKO() |
663 | { | 666 | { |
664 | QCopEnvelope e("QPE/Application/kopi", "-showKO"); | 667 | QCopEnvelope e("QPE/Application/kopi", "-showKO"); |
665 | // testing only | 668 | // testing only |
666 | //QCopEnvelope e("QPE/Application/kopi", "nextView()"); | 669 | //QCopEnvelope e("QPE/Application/kopi", "nextView()"); |
667 | 670 | ||
668 | } | 671 | } |
669 | void SimpleAlarmDaemonImpl::showTodo() | 672 | void SimpleAlarmDaemonImpl::showTodo() |
670 | { | 673 | { |