summaryrefslogtreecommitdiffabout
path: root/korganizer/koeditorgeneralevent.cpp
Side-by-side diff
Diffstat (limited to 'korganizer/koeditorgeneralevent.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--korganizer/koeditorgeneralevent.cpp8
1 files changed, 4 insertions, 4 deletions
diff --git a/korganizer/koeditorgeneralevent.cpp b/korganizer/koeditorgeneralevent.cpp
index adc733b..2a49528 100644
--- a/korganizer/koeditorgeneralevent.cpp
+++ b/korganizer/koeditorgeneralevent.cpp
@@ -208,220 +208,220 @@ void KOEditorGeneralEvent::startTimeChanged(QTime newtime)
emit dateTimesChanged(mCurrStartDateTime,mCurrEndDateTime);
}
void KOEditorGeneralEvent::endTimeChanged(QTime newtime)
{
// kdDebug() << "KOEditorGeneralEvent::endTimeChanged " << newtime.toString() << endl;
QDateTime newdt(mCurrEndDateTime.date(), newtime);
mCurrEndDateTime = newdt;
emit dateTimesChanged(mCurrStartDateTime,mCurrEndDateTime);
}
void KOEditorGeneralEvent::startDateChanged(QDate newdate)
{
int daysep = mCurrStartDateTime.daysTo(mCurrEndDateTime);
mCurrStartDateTime.setDate(newdate);
// adjust end date so that the event has the same duration as before
mCurrEndDateTime.setDate(mCurrStartDateTime.date().addDays(daysep));
mEndDateEdit->setDate(mCurrEndDateTime.date());
emit dateTimesChanged(mCurrStartDateTime,mCurrEndDateTime);
}
void KOEditorGeneralEvent::endDateChanged(QDate newdate)
{
QDateTime newdt(newdate, mCurrEndDateTime.time());
if(newdt < mCurrStartDateTime) {
// oops, we can't let that happen.
newdt = mCurrStartDateTime;
mEndDateEdit->setDate(newdt.date());
mEndTimeEdit->setTime(newdt.time());
}
mCurrEndDateTime = newdt;
emit dateTimesChanged(mCurrStartDateTime,mCurrEndDateTime);
}
void KOEditorGeneralEvent::setDefaults(QDateTime from,QDateTime to,bool allDay)
{
mSummaryEdit->load(KOLocationBox::SUMMARYEVENT);
mLocationEdit->load(KOLocationBox::LOCATION);
KOEditorGeneral::setDefaults(allDay);
mNoTimeButton->setChecked(allDay);
timeStuffDisable(allDay);
mFreeTimeCombo->setCurrentItem( 0 );
setDateTimes(from,to);
}
void KOEditorGeneralEvent::readEvent( Event *event, bool tmpl )
{
QString tmpStr;
mTemplate = tmpl;
// the rest is for the events only
mNoTimeButton->setChecked(event->doesFloat());
timeStuffDisable(event->doesFloat());
setDateTimes(event->dtStart(),event->dtEnd());
mTemplate = false;
switch( event->transparency() ) {
case Event::Transparent:
mFreeTimeCombo->setCurrentItem(1);
break;
case Event::Opaque:
mFreeTimeCombo->setCurrentItem(0);
break;
}
mSummaryEdit->load(KOLocationBox::SUMMARYEVENT);
mLocationEdit->load(KOLocationBox::LOCATION);
readIncidence(event);
}
void KOEditorGeneralEvent::writeEvent(Event *event)
{
// kdDebug() << "KOEditorGeneralEvent::writeEvent()" << endl;
writeIncidence(event);
QDate tmpDate;
QTime tmpTime;
QDateTime tmpDT;
// temp. until something better happens.
QString tmpStr;
if (mNoTimeButton->isChecked()) {
event->setFloats(true);
// need to change this.
tmpDate = mStartDateEdit->date();
tmpTime.setHMS(0,0,0);
tmpDT.setDate(tmpDate);
tmpDT.setTime(tmpTime);
event->setDtStart(tmpDT);
tmpDate = mEndDateEdit->date();
tmpTime.setHMS(0,0,0);
tmpDT.setDate(tmpDate);
tmpDT.setTime(tmpTime);
event->setDtEnd(tmpDT);
} 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());
} else {
from = l->formatDateTime(mCurrStartDateTime);
to = l->formatDateTime(mCurrEndDateTime);
}
QString str = i18n("From: %1 To: %2 %3").arg(from).arg(to)
.arg(mDurationLabel->text());
emit dateTimeStrChanged(str);
}
bool KOEditorGeneralEvent::validateInput()
{
if (!mStartDateEdit->inputIsValid()) {
KMessageBox::sorry( 0,
- i18n("Please specify a valid start date, for example '%1'.")
- .arg( KGlobal::locale()->formatDate( QDate::currentDate() ) ) );
+ 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, for example '%1'.")
- .arg( KGlobal::locale()->formatDate( QDate::currentDate() ) ) );
+ 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();
}