-rw-r--r-- | kalarmd/alarmdialog.cpp | 36 | ||||
-rw-r--r-- | kalarmd/alarmdialog.h | 2 | ||||
-rw-r--r-- | kalarmd/simplealarmdaemonimpl.cpp | 5 |
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 @@ -88,57 +88,58 @@ AlarmDialog::AlarmDialog(QWidget *parent,const char *name) 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 @@ -232,65 +233,70 @@ bool AlarmDialog::eventNotification( QString mess, int replay , QString fn, boo 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 diff --git a/kalarmd/alarmdialog.h b/kalarmd/alarmdialog.h index 1e4636c..52e681a 100644 --- a/kalarmd/alarmdialog.h +++ b/kalarmd/alarmdialog.h @@ -41,37 +41,39 @@ 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; diff --git a/kalarmd/simplealarmdaemonimpl.cpp b/kalarmd/simplealarmdaemonimpl.cpp index 294ce7d..2a463b3 100644 --- a/kalarmd/simplealarmdaemonimpl.cpp +++ b/kalarmd/simplealarmdaemonimpl.cpp @@ -296,25 +296,27 @@ void SimpleAlarmDaemonImpl::recieve( const QCString& msg, const QByteArray& ) 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; @@ -610,25 +612,26 @@ void SimpleAlarmDaemonImpl::confTimer( int time ) } } //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() { |