-rw-r--r-- | korganizer/calendarview.cpp | 28 | ||||
-rw-r--r-- | korganizer/koagendaview.cpp | 27 | ||||
-rw-r--r-- | korganizer/mainwindow.cpp | 8 |
3 files changed, 43 insertions, 20 deletions
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() ); |