summaryrefslogtreecommitdiffabout
Side-by-side diff
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--kalarmd/alarmdialog.cpp36
-rw-r--r--kalarmd/alarmdialog.h2
-rw-r--r--kalarmd/simplealarmdaemonimpl.cpp5
3 files changed, 27 insertions, 16 deletions
diff --git a/kalarmd/alarmdialog.cpp b/kalarmd/alarmdialog.cpp
index 65073f6..d72a8c2 100644
--- a/kalarmd/alarmdialog.cpp
+++ b/kalarmd/alarmdialog.cpp
@@ -76,81 +76,82 @@ AlarmDialog::AlarmDialog(QWidget *parent,const char *name)
baseSize = 4;
}
layout->setSpacing( 3 );
layout->setMargin( 3 );
QFont fo = QApplication::font();
fo.setBold( true );
fo.setPointSize( fs2 );
l->setFont( fo );
fo.setPointSize( fs );
mMessage->setFont(fo );
mMessage->setAlignment( AlignCenter);
layout->addWidget ( mMessage );
mMissedAlarms= new QLabel ( "(No missed Alarms)", this );
mMissedAlarms->setAlignment( AlignCenter);
playSoundTimer = new QTimer( this );
connect ( playSoundTimer, SIGNAL( timeout() ), this, SLOT (playSound() ) );
playSoundTimer->stop();
layout->addWidget ( mMissedAlarms );
mMissedAlarmsCombo = new QComboBox ( this );
layout->addWidget ( mMissedAlarmsCombo );
- QLabel* labb = new QLabel("Suspend duration (minutes):",this);
+ QLabel* labb = new QLabel("Suspend\nduration\n(minutes):",this);
labb->setAlignment(AlignCenter);
- layout->addWidget ( labb );
+ //layout->addWidget ( labb );
fo = font();
int pointSize = 36;
if ( QApplication::desktop()->width() <= 320 )
pointSize = 18;
fo.setPointSize( pointSize );
mSuspendSpin = new QSpinBox(1,1440,1,this);
mSuspendSpin->setFont( fo );
mSuspendSpin->setValue(7); // default suspend duration
mSuspendSpin->setButtonSymbols( QSpinBox::PlusMinus );
mSuspendSpin->setButtonSymbols( QSpinBox::PlusMinus );
#if QT_VERSION < 0x030000
mSuspendSpin->upButton ()->setFixedSize( QSize( 8*baseSize, 5*baseSize ));
mSuspendSpin->downButton ()->setFixedSize( QSize( 8*baseSize, 5*baseSize ));
#endif
mSuspendSpin->setFixedSize( 18*baseSize, 10*baseSize+2 );
mSuspendSpin->setButtonSymbols( QSpinBox::PlusMinus );
QHBoxLayout* layoutSpin = new QHBoxLayout( layout );
layoutSpin->addStretch ();
+ layoutSpin->addWidget ( labb );
layoutSpin->addWidget ( mSuspendSpin );
layoutSpin->addStretch ();
QVBox * bbox = new QVBox ( this );
layout->addWidget ( bbox );
bbox->layout()->setSpacing( 2 );
labb = new QLabel("Press \"Cancel\" or \"Esc\" to suspend!",bbox);
labb->setAlignment(AlignCenter);
mSuspendButton = new QPushButton( "Suspend", bbox);
QPushButton* silen = new QPushButton( " Stop sound ", bbox);
- QPushButton* okbut = new QPushButton( "Ok", bbox);
+ okbut = new QPushButton( "Ok", bbox);
mSuspendButton->setFont( fo );
silen->setFont( fo );
okbut->setFont( fo );
okbut->setDefault( true );
connect (silen , SIGNAL( clicked() ), this, SLOT (silent() ) );
connect (mSuspendButton, SIGNAL( clicked() ), this, SLOT (slotSuspend() ) );
connect (okbut , SIGNAL( clicked() ), this, SLOT (slotOk() ) );
connect (mSuspendSpin , SIGNAL( valueChanged ( int ) ), this, SLOT ( spinBoxChanged( int ) ) );
#ifndef _WIN32_
if ( QFile::exists ( "/dev/sharp_led" ) )
fd_led = open ( "/dev/sharp_led", O_RDWR|O_NONBLOCK );
else
#endif
fd_led = 0;
statusLED.which = SHARP_LED_SALARM;
mSilent = false;
mSuspendCounter = 0;
setServerNotification( true );
}
void AlarmDialog::reject ()
{
QTimer::singleShot ( 3000, this, SLOT (suspend()) );
slotSuspend();
}
@@ -220,89 +221,94 @@ void AlarmDialog::setSuspendTime( int val )
mSuspendSpin->setValue( val );
}
bool AlarmDialog::eventNotification( QString mess, int replay , QString fn, bool playwav, int pause , int suspendtimes)
{
if ( mess.left( 9) != "Suspended" )
mSuspendCounter = suspendtimes;
mPauseCount = pause;
mFileName = fn;
mPlayWav = playwav;
if ( !QFile::exists( fn ) )
mFileName = "";
alarmCounter = 0 ;
maxAlarmReplay = replay ;
mStopAlarm = false;
mSilent = false;
if ( !mMessage->text().stripWhiteSpace().isEmpty() ) {
mMissedAlarmsCombo->show();
QString newItem = mMessage->text().stripWhiteSpace();
newItem.replace( QRegExp("\n"), QString(" ") );
mMissedAlarmsCombo->insertItem( newItem );
mMissedAlarms->setText( "Missed alarms:");
} else
mMissedAlarmsCombo->hide();
mMessage->setText(mess);
- int w =sizeHint().width() ;
- int h = sizeHint().height() ;
+ int w = minimumSizeHint().width() ;
+ int h = minimumSizeHint().height() ;
int dw = QApplication::desktop()->width();
int dh = QApplication::desktop()->height();
setGeometry( (dw-w)/2, (dh - h )/2 ,w,h );
- show();
- raise();
- //qApp->processEvents();
- //repaint();
- qApp->processEvents();
+ hide();
#ifndef _WIN32_
if ( fd_led > 0 ) {
statusLED.status = LED_SALARM_ON ;
ioctl (fd_led, SHARP_LED_SETSTATUS, &statusLED);
}
#endif
- playSoundTimer->start( 1000, true );
+ okbut->setDefault( true );
+ QTimer::singleShot( 1, this, SLOT ( forceRepaint() ) );
+ // playSoundTimer->start( 1000, true );
return true;
}
-void AlarmDialog::spinBoxChanged( int )
+void AlarmDialog::forceRepaint()
+{
+
+ showNormal();
+ setActiveWindow();
+ raise();
+ playSoundTimer->start( 1000, true );
+
+}
+void AlarmDialog::spinBoxChanged( int v )
{
+ okbut->setDefault( false );
mSilent = true;
}
void AlarmDialog::playSound ()
{
if (mStopAlarm )
return;
if ( mSilent )
return;
showNormal();
setActiveWindow();
raise();
mSuspendSpin->setFocus();
-
-
- qApp->processEvents();
if ( alarmCounter < maxAlarmReplay && ! mSilent) {
++alarmCounter;
#ifdef DESKTOP_VERSION
mPlayWav = true;
#endif
if ( !mPlayWav || mFileName.length() < 2 ) {
#ifdef DESKTOP_VERSION
qDebug("Sound play not possible - file not found");
#else
Sound::soundAlarm ();
#endif
} else
{
#ifdef DESKTOP_VERSION
#ifdef _WIN32_
QSound::play ( mFileName );
#else
QString command = "playwave -r 22050 " + mFileName;
qDebug("KO: Playing file %s with 22kHz",mFileName.latin1() );
int ret = system ( command.latin1() );
if ( ret != 0 ) {
diff --git a/kalarmd/alarmdialog.h b/kalarmd/alarmdialog.h
index 1e4636c..52e681a 100644
--- a/kalarmd/alarmdialog.h
+++ b/kalarmd/alarmdialog.h
@@ -29,57 +29,59 @@
#include <qdatetime.h>
#include <qstring.h>
#include <qcombobox.h>
#include <qpushbutton.h>
#include "sharp_char.h"
class QSpinBox;
class QLabel;
class QString;
class AlarmDialog : public QDialog {
Q_OBJECT
public:
AlarmDialog( QWidget *parent = 0, const char *name = 0 );
virtual ~AlarmDialog();
bool eventNotification(QString m, int replay , QString m2 , bool, int, int );
int getSuspendTime( );
void setSuspendTime( int );
void setServerNotification( bool b );
public slots:
+ void forceRepaint();
void spinBoxChanged( int );
void slotOk();
void slotSuspend();
void reject () ;
void silent () ;
void accept();
void suspend();
void playSound ();
signals:
// void suspendSignal(int duration);
void addAlarm(const QDateTime &, const QString & );
private:
+ QPushButton* okbut;
int alarmCounter;
int mPauseCount;
int mSuspendCounter;
int maxAlarmReplay;
QTimer* playSoundTimer;
bool mStopAlarm;
bool mSilent;
bool mPlayWav;
bool mServerNotification;
QLabel* mMessage;
QLabel* mMissedAlarms;
QSpinBox *mSuspendSpin;
QComboBox *mMissedAlarmsCombo;
QPushButton* mSuspendButton;
QString mFileName;
int fd_led;
sharp_led_status statusLED;
};
#endif
diff --git a/kalarmd/simplealarmdaemonimpl.cpp b/kalarmd/simplealarmdaemonimpl.cpp
index 294ce7d..2a463b3 100644
--- a/kalarmd/simplealarmdaemonimpl.cpp
+++ b/kalarmd/simplealarmdaemonimpl.cpp
@@ -284,49 +284,51 @@ void SimpleAlarmDaemonImpl::recieve( const QCString& msg, const QByteArray& )
mAlarmMessage = mess.mid( 13+len+3 );
//qDebug("suspend file %s ",tempfilename.latin1() );
startAlarm( mAlarmMessage, filename);
return;
}
if ( mess.left( 11 ) == "timer_alarm") {
mTimerTime = 0;
startAlarm( mess.mid( 11 ), filename );
return;
}
if ( mess.left( 10 ) == "proc_alarm") {
bool error = false;
int len = mess.mid( 10 ).find("+++");
if ( len < 2 )
error = true;
else {
tempfilename = mess.mid( 10, len );
if ( !QFile::exists( tempfilename ) )
error = true;
}
if ( error ) {
mAlarmMessage = "Procedure Alarm\nError - File not found\n";
mAlarmMessage += mess.mid( 10+len+3+9 );
} else {
+ {
QCopEnvelope e("QPE/Application/kopi", "-writeFileSilent");
+ }
//qDebug("-----system command %s ",tempfilename.latin1() );
if ( vfork () == 0 ) {
execl ( tempfilename.latin1(), 0 );
return;
}
return;
}
//qDebug("+++++++system command %s ",tempfilename.latin1() );
}
if ( mess.left( 11 ) == "audio_alarm") {
bool error = false;
int len = mess.mid( 11 ).find("+++");
if ( len < 2 )
error = true;
else {
tempfilename = mess.mid( 11, len );
if ( !QFile::exists( tempfilename ) )
error = true;
}
if ( ! error ) {
filename = tempfilename;
}
mAlarmMessage = mess.mid( 11+len+3+9 );
@@ -598,49 +600,50 @@ void SimpleAlarmDaemonImpl::confTimer( int time )
minutes = mCustomMinutes;
mRunningTimerText = mCustomText.stripWhiteSpace ();
int in = mRunningTimerText.find( " " );
mRunningTimerText = mRunningTimerText.left ( in );
}
else {
mess+= QString::number ( minutes ) + ( " minutes are past!");
int min = minutes;
if ( min % 60 == 0 )
mRunningTimerText = QString::number ( min/60 ) + ( " hours");
else
mRunningTimerText = QString::number ( minutes ) + ( " minutes");
}
}
//minutes = 1;
mRunningTimer = QDateTime::currentDateTime().addSecs( minutes * 60 );
timerMesssage = mess;
AlarmServer::addAlarm ( mRunningTimer,"koalarm",timerMesssage.latin1());
mTimerTime = 1;
}
void SimpleAlarmDaemonImpl::writeFile()
{
- QCopEnvelope e("QPE/Application/kopi", "-writeFile");
+ QCopEnvelope e("QPE/Application/kopi", "-writeFileSilent");
+ //QCopEnvelope e("QPE/Application/kopi", "-writeFile");
}
void SimpleAlarmDaemonImpl::showWN()
{
QCopEnvelope e("QPE/Application/kopi", "-showWN");
}
void SimpleAlarmDaemonImpl::newTodo()
{
QCopEnvelope e("QPE/Application/kopi", "-newTodo");
}
void SimpleAlarmDaemonImpl::newEvent()
{
QCopEnvelope e("QPE/Application/kopi", "-newEvent");
}
void SimpleAlarmDaemonImpl::newMail()
{
QCopEnvelope e("QPE/Application/ompi", "newMail()");
}
void SimpleAlarmDaemonImpl::showAdd()
{
QCopEnvelope e("QPE/Application/kapi", "raise()");
}
void SimpleAlarmDaemonImpl::ringSync()