-rw-r--r-- | bin/kdepim/korganizer/germantranslation.txt | 13 | ||||
-rw-r--r-- | kalarmd/alarmdialog.cpp | 4 | ||||
-rw-r--r-- | korganizer/calendarview.cpp | 28 | ||||
-rw-r--r-- | korganizer/koagendaview.cpp | 27 | ||||
-rw-r--r-- | korganizer/mainwindow.cpp | 8 | ||||
-rw-r--r-- | libkcal/calendarlocal.cpp | 1 |
6 files changed, 59 insertions, 22 deletions
diff --git a/bin/kdepim/korganizer/germantranslation.txt b/bin/kdepim/korganizer/germantranslation.txt index ce55780..5ef60be 100644 --- a/bin/kdepim/korganizer/germantranslation.txt +++ b/bin/kdepim/korganizer/germantranslation.txt @@ -1303,14 +1303,23 @@ { "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)" }, +{ "The next alarm is in:\n","Der nächste Alarm ist in:\n" }, +{ "%1 days\n","%1 Tagen\n" }, +{ "1 day\n","1 Tag\n" }, +{ "%1 hours\n","%1 Stunden\n" }, +{ "1 hour\n","1 Stunde\n" }, +{ "%1 minutes\n","%1 Minuten\n" }, +{ "1 minute\n","1 Minute\n" }, { "","" }, { "","" }, { "","" }, { "","" }, { "","" }, { "","" }, -
\ No newline at end of file +{ "","" }, +{ "","" }, +{ "","" }, +{ "","" },
\ No newline at end of file diff --git a/kalarmd/alarmdialog.cpp b/kalarmd/alarmdialog.cpp index 7ead3b9..7b888ab 100644 --- a/kalarmd/alarmdialog.cpp +++ b/kalarmd/alarmdialog.cpp @@ -29,15 +29,19 @@ #include <qlabel.h> #include <qlayout.h> #include <qfile.h> #include <qtimer.h> #include <qsound.h> #include <qpushbutton.h> +#ifndef DESKTOP_VERSION #define protected public #include <qspinbox.h> #undef protected +#else +#include <qspinbox.h> +#endif #include <stdlib.h> #ifndef _WIN32_ #include <unistd.h> #include <sys/ioctl.h> #endif #include <stdio.h> diff --git a/korganizer/calendarview.cpp b/korganizer/calendarview.cpp index 73aa733..a330414 100644 --- a/korganizer/calendarview.cpp +++ b/korganizer/calendarview.cpp @@ -4066,17 +4066,39 @@ void CalendarView::resetFocus() mViewerCallerIsSearchDialog = false; } void CalendarView::showNextAlarms() { QString message; - if ( mNextAlarmDateTime > QDateTime::currentDateTime() ) { + QDateTime nextAl = mCalendar->nextAlarmEventDateTime(); + if ( nextAl.isValid() && 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)) ; + QDateTime cur = QDateTime::currentDateTime(); + int secs = cur.secsTo( nextA ); + int min = secs /60; + int hours = min /60; + min = min % 60; + int days = hours /24; + hours = hours % 24; + + message = i18n("The next alarm is in:\n"); + if ( days > 1 ) + message += i18n("%1 days\n").arg( days ); + else if ( days == 1 ) + message += i18n("1 day\n"); + if ( hours > 1 ) + message += i18n("%1 hours\n").arg( hours ); + else if ( hours == 1 ) + message += i18n("1 hour\n"); + if ( min > 1 ) + message += i18n("%1 minutes\n").arg( min ); + else if ( min == 1 ) + message += i18n("1 minute\n"); + + message += i18n("\n(%1)\n\n%2\n(%3)\n").arg( KGlobal::locale()->formatDateTime(nextA , 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/koagendaview.cpp b/korganizer/koagendaview.cpp index 18f242c..f6f390b 100644 --- a/korganizer/koagendaview.cpp +++ b/korganizer/koagendaview.cpp @@ -122,13 +122,12 @@ void TimeLabels::drawContents(QPainter *p,int cx, int cy, int cw, int ch) int cell = ((int)(cy/mCellHeight)); int y = cell * mCellHeight; QFontMetrics fm = fontMetrics(); QString hour; QString suffix; - QString fullTime; int tW = fm.width("24:00i"); int timeHeight = fm.height(); //timeHeight -= (timeHeight/4-2); int borderWidth = 0; QFont nFont = p->font(); @@ -152,13 +151,14 @@ void TimeLabels::drawContents(QPainter *p,int cx, int cy, int cw, int ch) } timeHeight -= (timeHeight/4-2); QFont sFont = nFont; sFont.setPointSize( sFont.pointSize()/2+2 ); QFontMetrics fmS( sFont ); int sHei = fmS.height(); - + sHei -= (sHei/4-2); + int startW = this->width() - frameWidth(); while (y < cy + ch) { p->drawLine(cx,y,cx+tW,y); hour.setNum(cell); // handle 24h and am/pm time formats if (KGlobal::locale()->use12Clock()) { @@ -166,23 +166,20 @@ void TimeLabels::drawContents(QPainter *p,int cx, int cy, int cw, int ch) else suffix = "am"; if (cell == 0) hour.setNum(12); if (cell > 12) hour.setNum(cell - 12); } - // create string in format of "XX:XX" or "XXpm/am" - fullTime = hour;// + suffix; - // center and draw the time label - int timeWidth = fm.width(fullTime+"i"); + int timeWidth = fm.width(hour+"i"); int tw2 = fm.width(suffix); - int offset = this->width() - timeWidth - tw2; + int offset = startW - timeWidth - tw2 ; p->setFont( nFont ); - p->drawText(cx - borderWidth + offset, y+ timeHeight, fullTime); + p->drawText(cx - borderWidth + offset, y+ timeHeight, hour); p->setFont( sFont ); - offset += timeWidth; + offset = startW - tw2-1; p->drawText(cx - borderWidth + offset, y+ sHei, suffix); // increment indices y += mCellHeight; cell++; } @@ -200,13 +197,16 @@ int TimeLabels::minimumWidth() const void TimeLabels::updateConfig() { // set the font // config->setGroup("Fonts"); // QFont font = config->readFontEntry("TimeBar Font"); setFont(KOPrefs::instance()->mTimeBarFont); - mMiniWidth = fontMetrics().width("88:88") + 2 ; + QString test = "88:88"; + if (KGlobal::locale()->use12Clock()) + test += "i"; + mMiniWidth = fontMetrics().width(test) + frameWidth()*2 +1 ; // update geometry restrictions based on new settings setFixedWidth(minimumWidth()); // update HourSize mCellHeight = KOPrefs::instance()->mHourSize*4; resizeContents(50,mRows * mCellHeight); @@ -833,17 +833,14 @@ void KOAgendaView::createDayLabels() while ( dayLabel ) { //qDebug("!dayLabel %d",dayLabel ); dayLabel->hide(); dayLabel = mDayLabelsList.next(); } } - //mDayLabelsFrame->show(); - //mDayLabels->show(); - //qDebug("heigt %d %d %d ",mDayLabelsFrame->height(), mDayLabelsFrame->sizeHint().height(), newHight); - //mDayLabelsFrame->resize( mAgenda->visibleWidth(), newHight ); - mDayLabelsFrame->setFixedHeight( newHight ); + + mDayLabelsFrame->setFixedHeight( newHight + 4 ); } int KOAgendaView::maxDatesHint() { // Not sure about the max number of events, so return 0 for now. return 0; diff --git a/korganizer/mainwindow.cpp b/korganizer/mainwindow.cpp index 7a4275b..ca0d542 100644 --- a/korganizer/mainwindow.cpp +++ b/korganizer/mainwindow.cpp @@ -1720,14 +1720,18 @@ void MainWindow::keyPressEvent ( QKeyEvent * e ) mView->viewManager()->showWhatsNextView(); break; case Qt::Key_L: mView->viewManager()->showListView(); break; case Qt::Key_N: - mView->viewManager()->showNextXView(); - showSelectedDates = true; + if ( e->state() == Qt::ControlButton || e->state() == Qt::ShiftButton) + mView->viewManager()->showNextView(); + else { + mView->viewManager()->showNextXView(); + showSelectedDates = true; + } break; case Qt::Key_V: mView->viewManager()->showTodoView(); break; case Qt::Key_C: mView->viewManager()->agendaView()->setStartHour( QTime::currentTime ().hour() ); diff --git a/libkcal/calendarlocal.cpp b/libkcal/calendarlocal.cpp index 52c298b..5c889c3 100644 --- a/libkcal/calendarlocal.cpp +++ b/libkcal/calendarlocal.cpp @@ -295,12 +295,13 @@ void CalendarLocal::checkAlarmForIncidence( Incidence * incidence, bool deleted bool computeNextAlarm = false; bool ok; int offset; QDateTime nextA; // QString nextSum; //QDateTime nextEvent; + mNextAlarmEventDateTime = QDateTime(); if ( mNextAlarmIncidence == 0 || incidence == 0 ) { computeNextAlarm = true; } else { if ( ! deleted ) { nextA = incidence->getNextAlarmDateTime(& ok, &offset ) ; if ( ok ) { |