summaryrefslogtreecommitdiffabout
path: root/kalarmd/alarmdialog.cpp
authorzautrix <zautrix>2005-03-27 00:21:16 (UTC)
committer zautrix <zautrix>2005-03-27 00:21:16 (UTC)
commitee6f7d5329658c567882e8e496c65eef8874496e (patch) (unidiff)
tree889427dab3f5f935a9c7474c43b1f87a2f3adb3a /kalarmd/alarmdialog.cpp
parent1ec37e1988d32ed65fa1afa001eff8fc105fbbbc (diff)
downloadkdepimpi-ee6f7d5329658c567882e8e496c65eef8874496e.zip
kdepimpi-ee6f7d5329658c567882e8e496c65eef8874496e.tar.gz
kdepimpi-ee6f7d5329658c567882e8e496c65eef8874496e.tar.bz2
compile fix
Diffstat (limited to 'kalarmd/alarmdialog.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--kalarmd/alarmdialog.cpp2
1 files changed, 2 insertions, 0 deletions
diff --git a/kalarmd/alarmdialog.cpp b/kalarmd/alarmdialog.cpp
index d6feedc..c939ae0 100644
--- a/kalarmd/alarmdialog.cpp
+++ b/kalarmd/alarmdialog.cpp
@@ -1,278 +1,280 @@
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
55AlarmDialog::AlarmDialog(QWidget *parent,const char *name) 55AlarmDialog::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 layout->addWidget ( mMessage ); 82 layout->addWidget ( mMessage );
83 mMissedAlarms= new QLabel ( "(No missed Alarms)", this ); 83 mMissedAlarms= new QLabel ( "(No missed Alarms)", this );
84 mMissedAlarms->setAlignment( AlignCenter); 84 mMissedAlarms->setAlignment( AlignCenter);
85 85
86 playSoundTimer = new QTimer( this ); 86 playSoundTimer = new QTimer( this );
87 connect ( playSoundTimer, SIGNAL( timeout() ), this, SLOT (playSound() ) ); 87 connect ( playSoundTimer, SIGNAL( timeout() ), this, SLOT (playSound() ) );
88 88
89 playSoundTimer->stop(); 89 playSoundTimer->stop();
90 90
91 layout->addWidget ( mMissedAlarms ); 91 layout->addWidget ( mMissedAlarms );
92 mMissedAlarmsCombo = new QComboBox ( this ); 92 mMissedAlarmsCombo = new QComboBox ( this );
93 layout->addWidget ( mMissedAlarmsCombo ); 93 layout->addWidget ( mMissedAlarmsCombo );
94 QVBox *suspendBox = new QVBox( this ); 94 QVBox *suspendBox = new QVBox( this );
95 suspendBox->setSpacing(3); 95 suspendBox->setSpacing(3);
96 layout->addWidget ( suspendBox ); 96 layout->addWidget ( suspendBox );
97 QLabel* labb = new QLabel("Suspend duration (minutes):",suspendBox); 97 QLabel* labb = new QLabel("Suspend duration (minutes):",suspendBox);
98 labb->setAlignment(AlignCenter); 98 labb->setAlignment(AlignCenter);
99 fo = font(); 99 fo = font();
100 fo.setPointSize( 36 ); 100 fo.setPointSize( 36 );
101 mSuspendSpin = new QSpinBox(1,1440,1,suspendBox); 101 mSuspendSpin = new QSpinBox(1,1440,1,suspendBox);
102 mSuspendSpin->setFont( fo ); 102 mSuspendSpin->setFont( fo );
103 mSuspendSpin->setValue(7); // default suspend duration 103 mSuspendSpin->setValue(7); // default suspend duration
104 mSuspendSpin->setButtonSymbols( QSpinBox::PlusMinus ); 104 mSuspendSpin->setButtonSymbols( QSpinBox::PlusMinus );
105 mSuspendSpin->setButtonSymbols( QSpinBox::PlusMinus ); 105 mSuspendSpin->setButtonSymbols( QSpinBox::PlusMinus );
106#if QT_VERSION < 0x030000
106 mSuspendSpin->upButton ()->setFixedSize( QSize( 48, 30 )); 107 mSuspendSpin->upButton ()->setFixedSize( QSize( 48, 30 ));
107 mSuspendSpin->downButton ()->setFixedSize( QSize( 48, 30 )); 108 mSuspendSpin->downButton ()->setFixedSize( QSize( 48, 30 ));
109#endif
108 mSuspendSpin->setFixedSize( 100,62 ); 110 mSuspendSpin->setFixedSize( 100,62 );
109 mSuspendSpin->setButtonSymbols( QSpinBox::PlusMinus ); 111 mSuspendSpin->setButtonSymbols( QSpinBox::PlusMinus );
110 112
111 QVBox * bbox = new QVBox ( this ); 113 QVBox * bbox = new QVBox ( this );
112 layout->addWidget ( bbox ); 114 layout->addWidget ( bbox );
113 bbox->layout()->setSpacing( 2 ); 115 bbox->layout()->setSpacing( 2 );
114 mSuspendButton = new QPushButton( "Suspend", bbox); 116 mSuspendButton = new QPushButton( "Suspend", bbox);
115 QPushButton* silen = new QPushButton( " Stop sound ", bbox); 117 QPushButton* silen = new QPushButton( " Stop sound ", bbox);
116 QPushButton* okbut = new QPushButton( "Ok", bbox); 118 QPushButton* okbut = new QPushButton( "Ok", bbox);
117 mSuspendButton->setFont( fo ); 119 mSuspendButton->setFont( fo );
118 silen->setFont( fo ); 120 silen->setFont( fo );
119 okbut->setFont( fo ); 121 okbut->setFont( fo );
120 okbut->setDefault( true ); 122 okbut->setDefault( true );
121 connect (silen , SIGNAL( clicked() ), this, SLOT (silent() ) ); 123 connect (silen , SIGNAL( clicked() ), this, SLOT (silent() ) );
122 connect (mSuspendButton, SIGNAL( clicked() ), this, SLOT (slotSuspend() ) ); 124 connect (mSuspendButton, SIGNAL( clicked() ), this, SLOT (slotSuspend() ) );
123 connect (okbut , SIGNAL( clicked() ), this, SLOT (slotOk() ) ); 125 connect (okbut , SIGNAL( clicked() ), this, SLOT (slotOk() ) );
124#ifndef _WIN32_ 126#ifndef _WIN32_
125 if ( QFile::exists ( "/dev/sharp_led" ) ) 127 if ( QFile::exists ( "/dev/sharp_led" ) )
126 fd_led = open ( "/dev/sharp_led", O_RDWR|O_NONBLOCK ); 128 fd_led = open ( "/dev/sharp_led", O_RDWR|O_NONBLOCK );
127 else 129 else
128#endif 130#endif
129 fd_led = 0; 131 fd_led = 0;
130 statusLED.which = SHARP_LED_SALARM; 132 statusLED.which = SHARP_LED_SALARM;
131 mSilent = false; 133 mSilent = false;
132 mSuspendCounter = 0; 134 mSuspendCounter = 0;
133 setServerNotification( true ); 135 setServerNotification( true );
134} 136}
135void AlarmDialog::reject () 137void AlarmDialog::reject ()
136{ 138{
137 QTimer::singleShot ( 3000, this, SLOT (suspend()) ); 139 QTimer::singleShot ( 3000, this, SLOT (suspend()) );
138 slotSuspend(); 140 slotSuspend();
139} 141}
140AlarmDialog::~AlarmDialog() 142AlarmDialog::~AlarmDialog()
141{ 143{
142} 144}
143void AlarmDialog::silent () 145void AlarmDialog::silent ()
144{ 146{
145 mSilent = true; 147 mSilent = true;
146} 148}
147void AlarmDialog::accept() 149void AlarmDialog::accept()
148{ 150{
149 slotOk(); 151 slotOk();
150} 152}
151 153
152void AlarmDialog::suspend() 154void AlarmDialog::suspend()
153{ 155{
154#ifdef DESKTOP_VERSION 156#ifdef DESKTOP_VERSION
155 157
156#else 158#else
157 Sound::soundAlarm (); 159 Sound::soundAlarm ();
158#endif 160#endif
159} 161}
160void AlarmDialog::slotOk() 162void AlarmDialog::slotOk()
161{ 163{
162 mStopAlarm = true; 164 mStopAlarm = true;
163 mMissedAlarms->setText("(No missed Alarms)"); 165 mMissedAlarms->setText("(No missed Alarms)");
164 mMessage->setText(""); 166 mMessage->setText("");
165 mMissedAlarmsCombo->clear(); 167 mMissedAlarmsCombo->clear();
166#ifndef _WIN32_ 168#ifndef _WIN32_
167 if ( fd_led > 0 ) { 169 if ( fd_led > 0 ) {
168 statusLED.status = LED_SALARM_OFF ; 170 statusLED.status = LED_SALARM_OFF ;
169 ioctl (fd_led, SHARP_LED_SETSTATUS, &statusLED); 171 ioctl (fd_led, SHARP_LED_SETSTATUS, &statusLED);
170 } 172 }
171#endif 173#endif
172 QDialog::accept(); 174 QDialog::accept();
173} 175}
174 176
175void AlarmDialog::slotSuspend() 177void AlarmDialog::slotSuspend()
176{ 178{
177 //qDebug("AlarmDialog::suspend() "); // emit suspendSignal(mSuspendSpin->value()); 179 //qDebug("AlarmDialog::suspend() "); // emit suspendSignal(mSuspendSpin->value());
178 mStopAlarm = true; 180 mStopAlarm = true;
179 QDateTime nextA = QDateTime::currentDateTime().addSecs( mSuspendSpin->value() * 60 ); 181 QDateTime nextA = QDateTime::currentDateTime().addSecs( mSuspendSpin->value() * 60 );
180 QString mess = "suspend_alarm" +mFileName+"+++" ; 182 QString mess = "suspend_alarm" +mFileName+"+++" ;
181 if ( mMessage->text().left( 10 ) !="Suspended:" ) 183 if ( mMessage->text().left( 10 ) !="Suspended:" )
182 mess += "Suspended:\n"; 184 mess += "Suspended:\n";
183 mess +=mMessage->text(); 185 mess +=mMessage->text();
184#ifndef DESKTOP_VERSION 186#ifndef DESKTOP_VERSION
185 if ( mServerNotification ) 187 if ( mServerNotification )
186 AlarmServer::addAlarm ( nextA,"koalarm",mess.latin1()); 188 AlarmServer::addAlarm ( nextA,"koalarm",mess.latin1());
187#endif 189#endif
188 emit addAlarm( nextA , mess ); 190 emit addAlarm( nextA , mess );
189 slotOk(); 191 slotOk();
190} 192}
191 193
192void AlarmDialog::setServerNotification( bool b ) 194void AlarmDialog::setServerNotification( bool b )
193{ 195{
194 mServerNotification = b; 196 mServerNotification = b;
195} 197}
196int AlarmDialog::getSuspendTime( ) 198int AlarmDialog::getSuspendTime( )
197{ 199{
198 return mSuspendSpin->value(); 200 return mSuspendSpin->value();
199 201
200} 202}
201void AlarmDialog::setSuspendTime( int val ) 203void AlarmDialog::setSuspendTime( int val )
202{ 204{
203 mSuspendSpin->setValue( val ); 205 mSuspendSpin->setValue( val );
204} 206}
205bool AlarmDialog::eventNotification( QString mess, int replay , QString fn, bool playwav, int pause , int suspendtimes) 207bool AlarmDialog::eventNotification( QString mess, int replay , QString fn, bool playwav, int pause , int suspendtimes)
206{ 208{
207 if ( mess.left( 9) != "Suspended" ) 209 if ( mess.left( 9) != "Suspended" )
208 mSuspendCounter = suspendtimes; 210 mSuspendCounter = suspendtimes;
209 mPauseCount = pause; 211 mPauseCount = pause;
210 mFileName = fn; 212 mFileName = fn;
211 mPlayWav = playwav; 213 mPlayWav = playwav;
212 if ( !QFile::exists( fn ) ) 214 if ( !QFile::exists( fn ) )
213 mFileName = ""; 215 mFileName = "";
214 alarmCounter = 0 ; 216 alarmCounter = 0 ;
215 maxAlarmReplay = replay ; 217 maxAlarmReplay = replay ;
216 mStopAlarm = false; 218 mStopAlarm = false;
217 mSilent = false; 219 mSilent = false;
218 if ( !mMessage->text().stripWhiteSpace().isEmpty() ) { 220 if ( !mMessage->text().stripWhiteSpace().isEmpty() ) {
219 mMissedAlarmsCombo->show(); 221 mMissedAlarmsCombo->show();
220 mMissedAlarmsCombo->insertItem( mMessage->text().stripWhiteSpace() ); 222 mMissedAlarmsCombo->insertItem( mMessage->text().stripWhiteSpace() );
221 mMissedAlarms->setText( "Missed alarms:"); 223 mMissedAlarms->setText( "Missed alarms:");
222 } else 224 } else
223 mMissedAlarmsCombo->hide(); 225 mMissedAlarmsCombo->hide();
224 mMessage->setText(mess); 226 mMessage->setText(mess);
225 int w =sizeHint().width() ; 227 int w =sizeHint().width() ;
226 int h = sizeHint().height() ; 228 int h = sizeHint().height() ;
227 int dw = QApplication::desktop()->width(); 229 int dw = QApplication::desktop()->width();
228 int dh = QApplication::desktop()->height(); 230 int dh = QApplication::desktop()->height();
229 setGeometry( (dw-w)/2, (dh - h )/2 ,w,h ); 231 setGeometry( (dw-w)/2, (dh - h )/2 ,w,h );
230 show(); 232 show();
231 raise(); 233 raise();
232 qApp->processEvents(); 234 qApp->processEvents();
233 repaint(); 235 repaint();
234 qApp->processEvents(); 236 qApp->processEvents();
235 237
236#ifndef _WIN32_ 238#ifndef _WIN32_
237 if ( fd_led > 0 ) { 239 if ( fd_led > 0 ) {
238 statusLED.status = LED_SALARM_ON ; 240 statusLED.status = LED_SALARM_ON ;
239 ioctl (fd_led, SHARP_LED_SETSTATUS, &statusLED); 241 ioctl (fd_led, SHARP_LED_SETSTATUS, &statusLED);
240 } 242 }
241#endif 243#endif
242 playSoundTimer->start( 1000, true ); 244 playSoundTimer->start( 1000, true );
243 return true; 245 return true;
244 246
245} 247}
246 248
247 249
248void AlarmDialog::playSound () 250void AlarmDialog::playSound ()
249{ 251{
250 if (mStopAlarm ) 252 if (mStopAlarm )
251 return; 253 return;
252 showNormal(); 254 showNormal();
253 setActiveWindow(); 255 setActiveWindow();
254 mSuspendSpin->setFocus(); 256 mSuspendSpin->setFocus();
255 raise(); 257 raise();
256 258
257 qApp->processEvents(); 259 qApp->processEvents();
258 if ( alarmCounter < maxAlarmReplay && ! mSilent) { 260 if ( alarmCounter < maxAlarmReplay && ! mSilent) {
259 ++alarmCounter; 261 ++alarmCounter;
260 if ( !mPlayWav || mFileName.length() < 2 ) { 262 if ( !mPlayWav || mFileName.length() < 2 ) {
261 263
262#ifndef DESKTOP_VERSION 264#ifndef DESKTOP_VERSION
263 Sound::soundAlarm (); 265 Sound::soundAlarm ();
264#endif 266#endif
265 } else { 267 } else {
266 QSound::play ( mFileName ); 268 QSound::play ( mFileName );
267 //qDebug("BEEP!"); 269 //qDebug("BEEP!");
268 } 270 }
269 } else { 271 } else {
270 if ( ! mSilent && mSuspendCounter > 0 ) { 272 if ( ! mSilent && mSuspendCounter > 0 ) {
271 --mSuspendCounter; 273 --mSuspendCounter;
272 reject (); 274 reject ();
273 hide(); 275 hide();
274 return; 276 return;
275 } 277 }
276 } 278 }
277 playSoundTimer->start( mPauseCount * 1000, true ); 279 playSoundTimer->start( mPauseCount * 1000, true );
278} 280}