-rw-r--r-- | bin/kdepim/WhatsNew.txt | 12 | ||||
-rw-r--r-- | bin/kdepim/korganizer/germantranslation.txt | 5 | ||||
-rw-r--r-- | kalarmd/alarmdialog.cpp | 52 | ||||
-rw-r--r-- | korganizer/calendarview.cpp | 18 | ||||
-rw-r--r-- | korganizer/calendarview.h | 2 | ||||
-rw-r--r-- | korganizer/mainwindow.cpp | 19 | ||||
-rw-r--r-- | korganizer/mainwindow.h | 1 |
7 files changed, 95 insertions, 14 deletions
diff --git a/bin/kdepim/WhatsNew.txt b/bin/kdepim/WhatsNew.txt index d4ec863..4250fb3 100644 --- a/bin/kdepim/WhatsNew.txt +++ b/bin/kdepim/WhatsNew.txt @@ -13,12 +13,24 @@ Made first datenavigator repainting faster. Changed the title of the event/todo edit dialogs. Timelabels in agenga changed from 22:00 to 22 oo. ( the oo higher, of course). Many small usebility fixes in KO/Pi. Pressing the "Calendar" button on the Z switches now to the next view in KO/Pi. The set of possible "next views" are the views you have toolbar buttons for. +Made alarm sound working on Linux. + +KO/Pi alarm applet changed: +Made buttons in alarm dialog much bigger. +Made setting of timer more user friendly by showing the actual timer fire time and making the buttons in the timer settings much bigger. +The goal was it to make it possible to use a finger tip ( and not the stylus ) on the touchscreen to adjust the settings. + +And because this version is realeased at Easter, I added an Easter-egg: +With a new undocumented command you can get a message box about the next alarm. +Good luck to find it! + + ********** VERSION 2.0.20 ************ Two small fixes in OM/Pi. Better resizing of the new datenavigator in KO/Pi. diff --git a/bin/kdepim/korganizer/germantranslation.txt b/bin/kdepim/korganizer/germantranslation.txt index b6293b5..ce55780 100644 --- a/bin/kdepim/korganizer/germantranslation.txt +++ b/bin/kdepim/korganizer/germantranslation.txt @@ -1301,13 +1301,16 @@ { "As vCal (vcs) file...","Als vCal (vcs) Datei..." }, { "Journal/Details...","Journale/Details..." }, { "Agenda View","Agenda Ansicht" }, { "Show current time","Zeige aktuelle Zeit" }, { "Edit new item","Bearbeite neuen Eintrag" }, { "Please select at least one\nof the types to search for:\n\nEvents\nTodos\nJournals","Bitte wählen Sie mindestens\neinen dieser Typen\num darin zu suchen:\n\nTermine\nTodos\nJournale" }, +{ "There is no next alarm.","Es gibt keinen nächsten Alarm." }, +{ "%1 %2 - %3 (next event/todo with alarm)","%1 %2 - %3 (nächster Termin/Todo mit Alarm)" }, +{ "The next alarm is on:\n%1\nat: %2\n\n%3\n(%4)","Der nächste Alarm in am:\n%1\num: %2\n\n%3\n(%4)" }, { "","" }, { "","" }, { "","" }, { "","" }, { "","" }, { "","" }, -{ "","" }, +
\ No newline at end of file diff --git a/kalarmd/alarmdialog.cpp b/kalarmd/alarmdialog.cpp index c939ae0..7ead3b9 100644 --- a/kalarmd/alarmdialog.cpp +++ b/kalarmd/alarmdialog.cpp @@ -44,12 +44,13 @@ #include <fcntl.h> #ifndef DESKTOP_VERSION #include <qtopia/alarmserver.h> #include <qpe/resource.h> #include <qtopia/sound.h> + #endif #include "alarmdialog.h" AlarmDialog::AlarmDialog(QWidget *parent,const char *name) @@ -88,34 +89,42 @@ AlarmDialog::AlarmDialog(QWidget *parent,const char *name) 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); + + QLabel* labb = new QLabel("Suspend duration (minutes):",this); labb->setAlignment(AlignCenter); + layout->addWidget ( labb ); fo = font(); - fo.setPointSize( 36 ); - mSuspendSpin = new QSpinBox(1,1440,1,suspendBox); + int pointSize = 36; + if ( QApplication::desktop()->width() <= 320 ) + pointSize = 24; + 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( 48, 30 )); mSuspendSpin->downButton ()->setFixedSize( QSize( 48, 30 )); #endif mSuspendSpin->setFixedSize( 100,62 ); - mSuspendSpin->setButtonSymbols( QSpinBox::PlusMinus ); + mSuspendSpin->setButtonSymbols( QSpinBox::PlusMinus ); + QHBoxLayout* layoutSpin = new QHBoxLayout( layout ); + layoutSpin->addStretch (); + 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); mSuspendButton->setFont( fo ); silen->setFont( fo ); okbut->setFont( fo ); @@ -256,21 +265,44 @@ void AlarmDialog::playSound () mSuspendSpin->setFocus(); raise(); qApp->processEvents(); if ( alarmCounter < maxAlarmReplay && ! mSilent) { ++alarmCounter; +#ifdef DESKTOP_VERSION + mPlayWav = true; +#endif if ( !mPlayWav || mFileName.length() < 2 ) { -#ifndef DESKTOP_VERSION +#ifdef DESKTOP_VERSION + qDebug("Sound play not possible - file not found"); +#else Sound::soundAlarm (); #endif - } else { + } 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 ) { + qDebug("Sound play command failed: %s ",command.latin1() ); + } + +#endif + +#else QSound::play ( mFileName ); +#endif //qDebug("BEEP!"); - } + } } else { if ( ! mSilent && mSuspendCounter > 0 ) { --mSuspendCounter; reject (); hide(); return; diff --git a/korganizer/calendarview.cpp b/korganizer/calendarview.cpp index 3a16fe6..73aa733 100644 --- a/korganizer/calendarview.cpp +++ b/korganizer/calendarview.cpp @@ -232,13 +232,13 @@ CalendarView::CalendarView( Calendar *calendar, mTodoEditor = 0; init(); } void CalendarView::init() { - + mNextAlarmDateTime = QDateTime::currentDateTime(); setFocusPolicy ( WheelFocus ); mViewerCallerIsSearchDialog = false; mBlockShowDates = false; beamDialog = new KOBeamPrefs(); mDatePickerMode = 0; mCurrentSyncDevice = ""; @@ -639,12 +639,13 @@ void CalendarView::addSuspendAlarm(const QDateTime &qdt, const QString ¬i ) mSuspendTimer->start( ms , true ); } void CalendarView::addAlarm(const QDateTime &qdt, const QString ¬i ) { + mNextAlarmDateTime = qdt; //qDebug("+++++addAlarm %s %s ", qdt.toString().latin1() , noti.latin1() ); if ( ! KOPrefs::instance()->mUseInternalAlarmNotification ) { #ifndef DESKTOP_VERSION AlarmServer::addAlarm ( qdt,"koalarm", noti.latin1() ); #endif return; @@ -4061,6 +4062,21 @@ void CalendarView::resetFocus() topLevelWidget()->raise(); setActiveWindow(); //setFocus(); } mViewerCallerIsSearchDialog = false; } + +void CalendarView::showNextAlarms() +{ + QString message; + if ( mNextAlarmDateTime > QDateTime::currentDateTime() ) { + QString sum = mCalendar->nextSummary(); + QDateTime nextA = mNextAlarmDateTime; + QDateTime nextAl = mCalendar->nextAlarmEventDateTime(); + message = i18n("The next alarm is on:\n%1\nat: %2\n\n%3\n(%4)").arg( KGlobal::locale()->formatDate(nextA.date() , false)).arg( KGlobal::locale()->formatTime(nextA.time() , false)).arg(sum ).arg( KGlobal::locale()->formatDateTime(nextAl , false)) ; + } else { + message = i18n("There is no next alarm."); + + } + KMessageBox::information( this, message); +} diff --git a/korganizer/calendarview.h b/korganizer/calendarview.h index 16e671f..9782ffe 100644 --- a/korganizer/calendarview.h +++ b/korganizer/calendarview.h @@ -173,12 +173,13 @@ class CalendarView : public KOrg::CalendarViewBase, public KCal::Calendar::Obser void calendarViewExpanded( bool ); void updateSearchDialog(); public slots: + void showNextAlarms(); void showOpenError(); void watchSavedFile(); void recheckTimerAlarm(); void checkNextTimerAlarm(); void addAlarm(const QDateTime &qdt, const QString ¬i ); void addSuspendAlarm(const QDateTime &qdt, const QString ¬i ); @@ -496,12 +497,13 @@ class CalendarView : public KOrg::CalendarViewBase, public KCal::Calendar::Obser void showEventEditor(); void showTodoEditor(); void writeLocale(); Todo *selectedTodo(); private: + QDateTime mNextAlarmDateTime; bool mViewerCallerIsSearchDialog; bool mBlockShowDates; KSyncManager* mSyncManager; AlarmDialog * mAlarmDialog; QString mAlarmNotification; QString mSuspendAlarmNotification; diff --git a/korganizer/mainwindow.cpp b/korganizer/mainwindow.cpp index 95b836c..7a4275b 100644 --- a/korganizer/mainwindow.cpp +++ b/korganizer/mainwindow.cpp @@ -587,13 +587,13 @@ void MainWindow::initActions() int fontWid = f.width( "30" ); while ( fontWid > pixWid ) { --fontPoint; mWeekFont.setPointSize( fontPoint ); QFontMetrics f( mWeekFont ); fontWid = f.width( "30" ); - qDebug("dec-- "); + //qDebug("dec-- "); } connect( mWeekAction, SIGNAL( activated() ), this, SLOT( weekAction() ) ); connect( this, SIGNAL( selectWeek ( int ) ), mView->dateNavigator(), SLOT( selectWeek ( int ) ) ); @@ -1745,13 +1745,16 @@ void MainWindow::keyPressEvent ( QKeyEvent * e ) mView->toggleDateNavigatorWidget(); break; case Qt::Key_Space: mView->toggleExpand(); break; case Qt::Key_A: - mView->toggleAllDaySize(); + if ( e->state() == Qt::ControlButton || e->state() == Qt::ShiftButton ) + mView->showNextAlarms(); + else + mView->toggleAllDaySize(); break; case Qt::Key_T: if ( e->state() == Qt::ControlButton|| e->state() == Qt::ShiftButton ) mView->newTodo(); else { mView->goToday(); @@ -2130,6 +2133,18 @@ void MainWindow::weekAction() month = picker->getResult(); emit selectWeek ( month ); //qDebug("weekSelected %d ", month); } delete popup; } + +void MainWindow::hideEvent ( QHideEvent * ) +{ + QString message; + QDateTime nextA = mCalendar->nextAlarmEventDateTime(); + if ( nextA.isValid() ) { + QString sum = mCalendar->nextSummary(); + + message = i18n("%1 %2 - %3 (next event/todo with alarm)").arg( KGlobal::locale()->formatTime(nextA.time() , false)).arg(sum ).arg( KGlobal::locale()->formatDate(nextA.date() , false)); + setCaption( message ); + } +} diff --git a/korganizer/mainwindow.h b/korganizer/mainwindow.h index 7604529..b3041dc 100644 --- a/korganizer/mainwindow.h +++ b/korganizer/mainwindow.h @@ -101,12 +101,13 @@ class MainWindow : public QMainWindow private slots: void showConfigureAgenda(); void getFile( bool ); void syncFileRequest(); protected: + void hideEvent ( QHideEvent * ); QString sentSyncFile(); void displayText( QString, QString); void enableIncidenceActions( bool ); private: bool mBRdisabled; |