Diffstat (limited to 'korganizer/koeditorgeneralevent.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r-- | korganizer/koeditorgeneralevent.cpp | 31 |
1 files changed, 19 insertions, 12 deletions
diff --git a/korganizer/koeditorgeneralevent.cpp b/korganizer/koeditorgeneralevent.cpp index 2a49528..d4aa78c 100644 --- a/korganizer/koeditorgeneralevent.cpp +++ b/korganizer/koeditorgeneralevent.cpp @@ -315,113 +315,120 @@ void KOEditorGeneralEvent::writeEvent(Event *event) } else { event->setFloats(false); // set date/time end tmpDate = mEndDateEdit->date(); tmpTime = mEndTimeEdit->getTime(); tmpDT.setDate(tmpDate); tmpDT.setTime(tmpTime); event->setDtEnd(tmpDT); // set date/time start tmpDate = mStartDateEdit->date(); tmpTime = mStartTimeEdit->getTime(); tmpDT.setDate(tmpDate); tmpDT.setTime(tmpTime); event->setDtStart(tmpDT); } // check for float mSummaryEdit->save(KOLocationBox::SUMMARYEVENT); event->setTransparency(mFreeTimeCombo->currentItem() > 0 ? KCal::Event::Transparent : KCal::Event::Opaque); // kdDebug() << "KOEditorGeneralEvent::writeEvent() done" << endl; } void KOEditorGeneralEvent::setDuration() { QString tmpStr = "", catStr; int hourdiff, minutediff; // end<date is an accepted temporary state while typing, but don't show // any duration if this happens if(mCurrEndDateTime >= mCurrStartDateTime) { if (mNoTimeButton->isChecked()) { int daydiff = mCurrStartDateTime.date().daysTo(mCurrEndDateTime.date()) + 1; tmpStr = i18n("Duration: "); tmpStr.append(i18n("1 Day","%n Days",daydiff)); } else { int secto = mCurrStartDateTime.secsTo( mCurrEndDateTime ); hourdiff = secto / 3600; minutediff = (secto/60 ) % 60; if (hourdiff || minutediff){ tmpStr = i18n("Duration: "); if (hourdiff){ catStr = i18n("1 h","%n h",hourdiff); tmpStr.append(catStr); } if (hourdiff && minutediff){ tmpStr += i18n(", "); } if (minutediff){ catStr = i18n("1 min","%n min",minutediff); tmpStr += catStr; } } else tmpStr = ""; } } mDurationLabel->setText(tmpStr); } void KOEditorGeneralEvent::emitDateTimeStr() { KLocale *l = KGlobal::locale(); - - QString from,to; - if (mNoTimeButton->isChecked()) { - from = l->formatDate(mCurrStartDateTime.date()); - to = l->formatDate(mCurrEndDateTime.date()); + QString startString = ""; + if ( mCurrStartDateTime.date() < mCurrEndDateTime.date() ) { + if ( mNoTimeButton->isChecked() ) { + startString = i18n("From: ") + l->formatDate(mCurrStartDateTime.date() ); + startString += "\n"+i18n("To: ")+ l->formatDate(mCurrEndDateTime.date()); + + } else { + startString = i18n("From: ") +l->formatDateTime(mCurrStartDateTime, false); + startString += "\n"+i18n("To: ")+l->formatDateTime(mCurrEndDateTime, false); + } } else { - from = l->formatDateTime(mCurrStartDateTime); - to = l->formatDateTime(mCurrEndDateTime); + if ( mNoTimeButton->isChecked() ) { + startString = i18n("On: ") + l->formatDate(mCurrStartDateTime.date() ); + } else { + startString = i18n("From: ") + KGlobal::locale()->formatTime(mCurrStartDateTime.time())+ + "-"+KGlobal::locale()->formatTime(mCurrEndDateTime.time()); + startString += i18n(" on ")+KGlobal::locale()->formatDate( mCurrStartDateTime.date(), true); + } } - - QString str = i18n("From: %1 To: %2 %3").arg(from).arg(to) - .arg(mDurationLabel->text()); - - emit dateTimeStrChanged(str); + startString +="\n"+mDurationLabel->text(); + emit dateTimeStrChanged(startString); } bool KOEditorGeneralEvent::validateInput() { if (!mStartDateEdit->inputIsValid()) { KMessageBox::sorry( 0, i18n("Please specify a valid start date,\nfor example '%1'.") .arg( KGlobal::locale()->formatDate( QDate::currentDate(), true ) ) ); return false; } if (!mEndDateEdit->inputIsValid()) { KMessageBox::sorry( 0, i18n("Please specify a valid end date,\nfor example '%1'.") .arg( KGlobal::locale()->formatDate( QDate::currentDate(), true ) ) ); return false; } QDateTime startDt,endDt; startDt.setDate(mStartDateEdit->date()); endDt.setDate(mEndDateEdit->date()); if (!mNoTimeButton->isChecked()) { startDt.setTime(mStartTimeEdit->getTime()); endDt.setTime(mEndTimeEdit->getTime()); } if (startDt > endDt) { KMessageBox::sorry(0,i18n("The event ends before it starts.\n" "Please correct dates and times.")); return false; } return KOEditorGeneral::validateInput(); } |