-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 @@ -66,73 +66,73 @@ AlarmDialog::AlarmDialog(QWidget *parent,const char *name) if ( QApplication::desktop()->width() < 480 ) { setMaximumSize(220, 260); fs2 = 10; } else { setMaximumSize(440, 440); } 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); - l = new QLabel("Missed Alarms:",this); - l->setAlignment( AlignCenter); layout->addWidget ( mMessage ); - layout->addWidget ( l ); - mMissedAlarms= new QLabel ( "", this ); + 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 ); QVBox *suspendBox = new QVBox( this ); suspendBox->setSpacing(3); layout->addWidget ( suspendBox ); QLabel* labb = new QLabel("Suspend duration (minutes):",suspendBox); labb->setAlignment(AlignCenter); fo = font(); fo.setPointSize( 36 ); mSuspendSpin = new QSpinBox(1,1440,1,suspendBox); mSuspendSpin->setFont( fo ); mSuspendSpin->setValue(7); // default suspend duration mSuspendSpin->setButtonSymbols( QSpinBox::PlusMinus ); mSuspendSpin->setButtonSymbols( QSpinBox::PlusMinus ); mSuspendSpin->upButton ()->setFixedSize( QSize( 48, 30 )); mSuspendSpin->downButton ()->setFixedSize( QSize( 48, 30 )); mSuspendSpin->setFixedSize( 100,62 ); mSuspendSpin->setButtonSymbols( QSpinBox::PlusMinus ); QVBox * bbox = new QVBox ( this ); layout->addWidget ( bbox ); bbox->layout()->setSpacing( 2 ); - QPushButton* suspend = new QPushButton( "Suspend", bbox); + mSuspendButton = new QPushButton( "Suspend", bbox); QPushButton* silen = new QPushButton( " Stop sound ", bbox); QPushButton* okbut = new QPushButton( "Ok", bbox); - suspend->setFont( fo ); + mSuspendButton->setFont( fo ); silen->setFont( fo ); okbut->setFont( fo ); + okbut->setDefault( true ); connect (silen , SIGNAL( clicked() ), this, SLOT (silent() ) ); - connect (suspend , SIGNAL( clicked() ), this, SLOT (slotSuspend() ) ); + connect (mSuspendButton, SIGNAL( clicked() ), this, SLOT (slotSuspend() ) ); connect (okbut , SIGNAL( clicked() ), this, SLOT (slotOk() ) ); #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(); @@ -147,34 +147,35 @@ void AlarmDialog::silent () void AlarmDialog::accept() { slotOk(); } void AlarmDialog::suspend() { #ifdef DESKTOP_VERSION #else Sound::soundAlarm (); #endif } void AlarmDialog::slotOk() { mStopAlarm = true; - mMissedAlarms->setText(""); + mMissedAlarms->setText("(No missed Alarms)"); mMessage->setText(""); + mMissedAlarmsCombo->clear(); #ifndef _WIN32_ if ( fd_led > 0 ) { statusLED.status = LED_SALARM_OFF ; ioctl (fd_led, SHARP_LED_SETSTATUS, &statusLED); } #endif QDialog::accept(); } void AlarmDialog::slotSuspend() { //qDebug("AlarmDialog::suspend() "); // emit suspendSignal(mSuspendSpin->value()); mStopAlarm = true; QDateTime nextA = QDateTime::currentDateTime().addSecs( mSuspendSpin->value() * 60 ); QString mess = "suspend_alarm" +mFileName+"+++" ; if ( mMessage->text().left( 10 ) !="Suspended:" ) @@ -201,69 +202,69 @@ 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 ( mMissedAlarms->text() == "" ) - mMissedAlarms->setText( mMessage->text()); - else - mMissedAlarms->setText( mMessage->text()+ "\n" + mMissedAlarms->text() ); - if ( mMissedAlarms->text().length() > 180 ) - mMissedAlarms->setText(mMissedAlarms->text().left ( 180 )); + if ( !mMessage->text().stripWhiteSpace().isEmpty() ) { + mMissedAlarmsCombo->show(); + mMissedAlarmsCombo->insertItem( mMessage->text().stripWhiteSpace() ); + mMissedAlarms->setText( "Missed alarms:"); + } else + mMissedAlarmsCombo->hide(); mMessage->setText(mess); int w =sizeHint().width() ; int h = sizeHint().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(); #ifndef _WIN32_ if ( fd_led > 0 ) { statusLED.status = LED_SALARM_ON ; ioctl (fd_led, SHARP_LED_SETSTATUS, &statusLED); } #endif playSoundTimer->start( 1000, true ); return true; } void AlarmDialog::playSound () { if (mStopAlarm ) return; showNormal(); setActiveWindow(); - setFocus(); + mSuspendSpin->setFocus(); raise(); qApp->processEvents(); if ( alarmCounter < maxAlarmReplay && ! mSilent) { ++alarmCounter; if ( !mPlayWav || mFileName.length() < 2 ) { #ifndef DESKTOP_VERSION Sound::soundAlarm (); #endif } else { QSound::play ( mFileName ); //qDebug("BEEP!"); } } else { if ( ! mSilent && mSuspendCounter > 0 ) { diff --git a/kalarmd/alarmdialog.h b/kalarmd/alarmdialog.h index 3155f18..896cf60 100644 --- a/kalarmd/alarmdialog.h +++ b/kalarmd/alarmdialog.h @@ -15,32 +15,34 @@ You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. As a special exception, permission is given to link this program with any edition of Qt, and distribute the resulting executable, without including the source code for Qt in the source distribution. */ #ifndef ALARMDIALOG_H #define ALARMDIALOG_H #include <qdialog.h> #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( ); @@ -59,22 +61,24 @@ class AlarmDialog : public QDialog { // void suspendSignal(int duration); void addAlarm(const QDateTime &, const QString & ); private: 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 e8ec033..b3da428 100644 --- a/kalarmd/simplealarmdaemonimpl.cpp +++ b/kalarmd/simplealarmdaemonimpl.cpp @@ -348,52 +348,52 @@ int SimpleAlarmDaemonImpl::getFileNameLen( QString mess ) void SimpleAlarmDaemonImpl::startAlarm( QString mess, QString filename ) { //mAlarmDialog->show(); //mAlarmDialog->raise(); mAlarmDialog->eventNotification( mess, mPlayBeeps, filename, wavAlarm,mPausePlay ,mSuspend ); } void SimpleAlarmDaemonImpl::fillTimerPopUp() { // qDebug(" timer %d %d ",mTimerPopupConf, mTimerTime ); if ( mTimerPopupConf == mTimerTime ) { if ( mTimerTime ) { int secs = QDateTime::currentDateTime().secsTo ( mRunningTimer ); QTime t ( secs/3600, (secs/60)%60, secs%60 ); - mTimerPopUp->changeItem ( 1 , t.toString() + " (remaining time)"); + mTimerPopUp->changeItem ( 1 , t.toString() + " (countdown)"); } else { QString text = mCustomText.stripWhiteSpace (); int in = text.find( " " ); text = text.left ( in ); mTimerPopUp->changeItem ( 3, text ); } return; } mTimerPopupConf = mTimerTime; mTimerPopUp->clear(); if ( mTimerTime ) { int secs = QDateTime::currentDateTime().secsTo ( mRunningTimer ); QTime t ( secs/3600, (secs/60)%60, secs%60 ); mTimerPopUp->insertItem( "Stop timer "+ mRunningTimerText , 0 ); - mTimerPopUp->insertItem( t.toString() + " (remaining time)",1); - mTimerPopUp->insertItem( mRunningTimer.time().toString() + " (alarm time)",2); + mTimerPopUp->insertItem( t.toString() + " (countdown)",1); + mTimerPopUp->insertItem( mRunningTimer.time().toString() + " (alarm)",2); } else { QString fileName = QDir::homeDirPath() +"/.kopialarmtimerrc"; QFile file( fileName ); if( !QFile::exists( fileName) ) { // write defaults if (!file.open( IO_WriteOnly ) ) { return; } QString configString ; configString += "#config file for kopi alarm timer\n"; configString += "#format: <Text for popup menu>;<timer countdown in minutes>\n"; configString += "#NOTE: minimum value for timer are 3 minutes!\n"; configString += "24 h; 1440\n"; configString += " 8 h; 480\n"; configString += " 5 h; 300\n"; @@ -547,80 +547,83 @@ void SimpleAlarmDaemonImpl::confTimer( int time ) QHBox hbox ( &dia ); QSpinBox spinh( 0, 24, 1,& hbox ); QFont fo = dia.font(); fo.setPointSize( 36 ); QSpinBox spinm( 0, 59, 1,&hbox ); spinm.setFont( fo ); spinh.setFont( fo ); spinh.setButtonSymbols( QSpinBox::PlusMinus ); spinm.setButtonSymbols( QSpinBox::PlusMinus ); spinh.upButton ()->setFixedSize( QSize( 48, 30 )); spinh.downButton ()->setFixedSize( QSize( 48, 30 )); //spinh.editor ()->setFixedSize( QSize( 50, 100 )); spinh.setFixedSize( 100,62 ); spinm.upButton ()->setFixedSize( QSize( 48, 30 )); spinm.downButton ()->setFixedSize( QSize( 48, 30 )); spinm.downButton ()->setGeometry( 50,50,50,50); - spinm.setSuffix( " m" ); - spinh.setSuffix( " h" ); + // spinm.setSuffix( " m" ); + //spinh.setSuffix( " h" ); spinm.setWrapping ( true ); //spinm.editor ()->setFixedSize( QSize( 50, 100 )); spinm.setLineStep( 1 ); spinm.setFixedSize( 110,62 ); lay.addWidget( &hbox); QLabel lab5 ("Timer fires at:", &dia ); lab5.setAlignment( AlignCenter ); lay.addWidget( &lab5); KODateLabel dl ( &dia ); dl.setAlignment( AlignCenter ); dl.setFont( fo ); connect ( &spinh, SIGNAL ( valueChanged (int)), &dl, SLOT ( slot_hours( int ) ) ); connect ( &spinm, SIGNAL ( valueChanged (int)), &dl, SLOT ( slot_minutes( int ) ) ); lay.addWidget( &dl); spinh.setValue( mCustomMinutes/60 ); spinm.setValue( mCustomMinutes%60 ); QPushButton ok ( "Start timer", &dia); + ok.setDefault( true ); ok.setFont( fo ); + spinh.setFocus(); lay.addWidget( &ok); connect ( &ok, SIGNAL (clicked()), &dia, SLOT ( accept() ) ); dia.resize( dia.sizeHint().width(), dia.sizeHint().height() ); if ( !dia.exec() ) return; mCustomText = lEdit.text(); mCustomMinutes = spinh.value()*60+spinm.value(); if ( mCustomMinutes == 0 ) mCustomMinutes = 1; if ( mCustomMinutes > 1440 ) mCustomMinutes = 1440; mess += mCustomText; 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"); } void SimpleAlarmDaemonImpl::showWN() { QCopEnvelope e("QPE/Application/kopi", "-showWN"); } void SimpleAlarmDaemonImpl::newTodo() { |