-rw-r--r-- | bin/kdepim/korganizer/germantranslation.txt | 10 | ||||
-rw-r--r-- | korganizer/koeventviewer.cpp | 14 | ||||
-rw-r--r-- | korganizer/kolistview.cpp | 14 | ||||
-rw-r--r-- | korganizer/kotodoview.cpp | 26 | ||||
-rw-r--r-- | libkcal/alarm.cpp | 24 | ||||
-rw-r--r-- | libkcal/alarm.h | 1 | ||||
-rw-r--r-- | libkcal/kincidenceformatter.cpp | 14 |
7 files changed, 83 insertions, 20 deletions
diff --git a/bin/kdepim/korganizer/germantranslation.txt b/bin/kdepim/korganizer/germantranslation.txt index fbab7dd..6b739ba 100644 --- a/bin/kdepim/korganizer/germantranslation.txt +++ b/bin/kdepim/korganizer/germantranslation.txt | |||
@@ -1328,6 +1328,10 @@ | |||
1328 | { "Filter menu icon","Filtermenu Icon" }, | 1328 | { "Filter menu icon","Filtermenu Icon" }, |
1329 | { "<p><b>A+(shift or ctrl)</b>: Show occurence of next alarm</p>\n","<p><b>A+(shift oder ctrl)</b>: Zeige Zeit bis zum nächsten Alarm</p>\n" }, | 1329 | { "<p><b>A+(shift or ctrl)</b>: Show occurence of next alarm</p>\n","<p><b>A+(shift oder ctrl)</b>: Zeige Zeit bis zum nächsten Alarm</p>\n" }, |
1330 | { "<p><b>N</b>: Switch to next view which has a toolbar icon</p>\n","<p><b>N</b>: Wechsle zur nächsten Ansicht, die ein Icon in der Toolbar hat</p>\n" }, | 1330 | { "<p><b>N</b>: Switch to next view which has a toolbar icon</p>\n","<p><b>N</b>: Wechsle zur nächsten Ansicht, die ein Icon in der Toolbar hat</p>\n" }, |
1331 | { "%1d","%1t" }, | ||
1332 | { "%1h","%1std" }, | ||
1333 | { "%1min","%1min" }, | ||
1334 | { "( %1 before )","( %1 vorher )" }, | ||
1331 | { "","" }, | 1335 | { "","" }, |
1332 | { "","" }, | 1336 | { "","" }, |
1333 | { "","" }, | 1337 | { "","" }, |
@@ -1336,8 +1340,4 @@ | |||
1336 | { "","" }, | 1340 | { "","" }, |
1337 | { "","" }, | 1341 | { "","" }, |
1338 | { "","" }, | 1342 | { "","" }, |
1339 | { "","" }, | 1343 | { "","" } \ No newline at end of file |
1340 | { "","" }, | ||
1341 | { "","" }, | ||
1342 | { "","" }, | ||
1343 | { "","" }, \ No newline at end of file | ||
diff --git a/korganizer/koeventviewer.cpp b/korganizer/koeventviewer.cpp index dbe0668..bdad248 100644 --- a/korganizer/koeventviewer.cpp +++ b/korganizer/koeventviewer.cpp | |||
@@ -370,8 +370,7 @@ void KOEventViewer::appendEvent(Event *event, int mode ) | |||
370 | if (event->isAlarmEnabled()) { | 370 | if (event->isAlarmEnabled()) { |
371 | Alarm *alarm =event->alarms().first() ; | 371 | Alarm *alarm =event->alarms().first() ; |
372 | QDateTime t = alarm->time(); | 372 | QDateTime t = alarm->time(); |
373 | int min = t.secsTo( event->dtStart() )/60; | 373 | QString s =i18n("( %1 before )").arg( alarm->offsetText() ); |
374 | QString s =i18n("( %1 min before )").arg( min ); | ||
375 | addTag("p",i18n("<b>Alarm on: ") + s +" </b>"); | 374 | addTag("p",i18n("<b>Alarm on: ") + s +" </b>"); |
376 | addTag("p", KGlobal::locale()->formatDateTime( t, shortDate )); | 375 | addTag("p", KGlobal::locale()->formatDateTime( t, shortDate )); |
377 | //addTag("p",s); | 376 | //addTag("p",s); |
@@ -469,6 +468,17 @@ void KOEventViewer::appendTodo(Todo *event, int mode ) | |||
469 | mText.append(i18n("<p><b>Due on:</b> %1</p>").arg(event->dtDueStr(KOPrefs::instance()->mShortDateInViewer))); | 468 | mText.append(i18n("<p><b>Due on:</b> %1</p>").arg(event->dtDueStr(KOPrefs::instance()->mShortDateInViewer))); |
470 | mMailSubject += i18n(" - " )+event->dtDueStr( true ); | 469 | mMailSubject += i18n(" - " )+event->dtDueStr( true ); |
471 | } | 470 | } |
471 | |||
472 | |||
473 | if (event->isAlarmEnabled()) { | ||
474 | Alarm *alarm =event->alarms().first() ; | ||
475 | QDateTime t = alarm->time(); | ||
476 | QString s =i18n("( %1 before )").arg( alarm->offsetText() ); | ||
477 | addTag("p",i18n("<b>Alarm on: ") + s +" </b>"); | ||
478 | addTag("p", KGlobal::locale()->formatDateTime( t, shortDate )); | ||
479 | //addTag("p",s); | ||
480 | } | ||
481 | |||
472 | addTag("b",i18n("Access: ")); | 482 | addTag("b",i18n("Access: ")); |
473 | mText.append(event->secrecyStr()+"<br>"); | 483 | mText.append(event->secrecyStr()+"<br>"); |
474 | if ( KOPrefs::instance()->mEVshowDetails ) { | 484 | if ( KOPrefs::instance()->mEVshowDetails ) { |
diff --git a/korganizer/kolistview.cpp b/korganizer/kolistview.cpp index 15e094d..e0e138e 100644 --- a/korganizer/kolistview.cpp +++ b/korganizer/kolistview.cpp | |||
@@ -120,7 +120,11 @@ bool ListItemVisitor::visit(Event *e) | |||
120 | mItem->setText(2,e->dtStartTimeStr()); | 120 | mItem->setText(2,e->dtStartTimeStr()); |
121 | mItem->setText(3,end); | 121 | mItem->setText(3,end); |
122 | mItem->setText(4,e->dtEndTimeStr()); | 122 | mItem->setText(4,e->dtEndTimeStr()); |
123 | mItem->setText(5,e->isAlarmEnabled() ? i18n("Yes") : i18n("No")); | 123 | if ( e->isAlarmEnabled() ) { |
124 | mItem->setText(5,e->alarms().first()->offsetText() ); | ||
125 | } else { | ||
126 | mItem->setText(5, i18n("No")); | ||
127 | } | ||
124 | mItem->setText(6, e->recurrence()->recurrenceText()); | 128 | mItem->setText(6, e->recurrence()->recurrenceText()); |
125 | mItem->setText(7,"---"); | 129 | mItem->setText(7,"---"); |
126 | mItem->setText(8,"---"); | 130 | mItem->setText(8,"---"); |
@@ -154,8 +158,12 @@ bool ListItemVisitor::visit(Todo *t) | |||
154 | mItem->setText(2,"---"); | 158 | mItem->setText(2,"---"); |
155 | } | 159 | } |
156 | mItem->setText(3,"---"); | 160 | mItem->setText(3,"---"); |
157 | mItem->setText(4,"---"); | 161 | mItem->setText(4,"---"); |
158 | mItem->setText(5,t->isAlarmEnabled() ? i18n("Yes") : i18n("No")); | 162 | if ( t->isAlarmEnabled() ) { |
163 | mItem->setText(5,t->alarms().first()->offsetText() ); | ||
164 | } else { | ||
165 | mItem->setText(5, i18n("No")); | ||
166 | } | ||
159 | mItem->setText(6, t->recurrence()->recurrenceText()); | 167 | mItem->setText(6, t->recurrence()->recurrenceText()); |
160 | if (t->hasDueDate()) { | 168 | if (t->hasDueDate()) { |
161 | mItem->setText(7,t->dtDueDateStr()); | 169 | mItem->setText(7,t->dtDueDateStr()); |
diff --git a/korganizer/kotodoview.cpp b/korganizer/kotodoview.cpp index 0a315cb..01cf0ff 100644 --- a/korganizer/kotodoview.cpp +++ b/korganizer/kotodoview.cpp | |||
@@ -218,10 +218,12 @@ void KOTodoListView::contentsMousePressEvent(QMouseEvent* e) | |||
218 | //qDebug("%d %d %d", X, header()->sectionPos(0), treeStepSize() ); | 218 | //qDebug("%d %d %d", X, header()->sectionPos(0), treeStepSize() ); |
219 | if (X > header()->sectionPos(0) + | 219 | if (X > header()->sectionPos(0) + |
220 | treeStepSize() * (i->depth() + (rootIsDecorated() ? 1 : 0)) + | 220 | treeStepSize() * (i->depth() + (rootIsDecorated() ? 1 : 0)) + |
221 | itemMargin() || | 221 | itemMargin() +i->height()|| |
222 | X < header()->sectionPos(0)) { | 222 | X < header()->sectionPos(0)) { |
223 | rootClicked = false; | 223 | rootClicked = false; |
224 | } | 224 | } |
225 | } else { | ||
226 | rootClicked = false; | ||
225 | } | 227 | } |
226 | #ifndef KORG_NODND | 228 | #ifndef KORG_NODND |
227 | mMousePressed = false; | 229 | mMousePressed = false; |
@@ -730,9 +732,9 @@ void KOTodoView::storeCurrentItem() | |||
730 | KOTodoViewItem* activeItemAbove = (KOTodoViewItem*)mActiveItem->itemAbove (); | 732 | KOTodoViewItem* activeItemAbove = (KOTodoViewItem*)mActiveItem->itemAbove (); |
731 | if ( activeItemAbove ) | 733 | if ( activeItemAbove ) |
732 | mCurItemAbove = activeItemAbove->todo(); | 734 | mCurItemAbove = activeItemAbove->todo(); |
733 | while ( mActiveItem->parent() != 0 ) | 735 | mCurItemRootParent = mCurItem; |
734 | mActiveItem = (KOTodoViewItem*)mActiveItem->parent(); | 736 | while ( mCurItemRootParent->relatedTo() != 0 ) |
735 | mCurItemRootParent = mActiveItem->todo(); | 737 | mCurItemRootParent = mCurItemRootParent->relatedTo(); |
736 | } | 738 | } |
737 | mActiveItem = 0; | 739 | mActiveItem = 0; |
738 | } | 740 | } |
@@ -759,10 +761,10 @@ void KOTodoView::resetCurrentItem() | |||
759 | item = (KOTodoViewItem*)item->itemBelow(); | 761 | item = (KOTodoViewItem*)item->itemBelow(); |
760 | } | 762 | } |
761 | if ( ! foundItem ) { | 763 | if ( ! foundItem ) { |
762 | if ( foundItemAbove ) | 764 | if ( foundItemRoot ) |
763 | foundItem = foundItemAbove; | ||
764 | else | ||
765 | foundItem = foundItemRoot; | 765 | foundItem = foundItemRoot; |
766 | else | ||
767 | foundItem = foundItemAbove; | ||
766 | } | 768 | } |
767 | } | 769 | } |
768 | if ( foundItem ) { | 770 | if ( foundItem ) { |
@@ -1205,8 +1207,11 @@ void KOTodoView::setAllOpen() | |||
1205 | isFlatDisplay = false; | 1207 | isFlatDisplay = false; |
1206 | mPopupMenu->setItemChecked( 8,false ); | 1208 | mPopupMenu->setItemChecked( 8,false ); |
1207 | updateView(); | 1209 | updateView(); |
1210 | } else { | ||
1211 | storeCurrentItem(); | ||
1208 | } | 1212 | } |
1209 | setOpen(mTodoListView->firstChild(), true); | 1213 | setOpen(mTodoListView->firstChild(), true); |
1214 | resetCurrentItem(); | ||
1210 | } | 1215 | } |
1211 | void KOTodoView::setAllClose() | 1216 | void KOTodoView::setAllClose() |
1212 | { | 1217 | { |
@@ -1214,8 +1219,11 @@ void KOTodoView::setAllClose() | |||
1214 | isFlatDisplay = false; | 1219 | isFlatDisplay = false; |
1215 | mPopupMenu->setItemChecked( 8,false ); | 1220 | mPopupMenu->setItemChecked( 8,false ); |
1216 | updateView(); | 1221 | updateView(); |
1222 | } else { | ||
1223 | storeCurrentItem(); | ||
1217 | } | 1224 | } |
1218 | setOpen(mTodoListView->firstChild(), false); | 1225 | setOpen(mTodoListView->firstChild(), false); |
1226 | resetCurrentItem(); | ||
1219 | } | 1227 | } |
1220 | void KOTodoView::setOpen( QListViewItem* item, bool setOpenI) | 1228 | void KOTodoView::setOpen( QListViewItem* item, bool setOpenI) |
1221 | { | 1229 | { |
@@ -1254,8 +1262,10 @@ void KOTodoView::setAllFlat() | |||
1254 | mPopupMenu->setItemChecked( 8,false ); | 1262 | mPopupMenu->setItemChecked( 8,false ); |
1255 | updateView(); | 1263 | updateView(); |
1256 | return; | 1264 | return; |
1257 | } | 1265 | } |
1266 | storeCurrentItem(); | ||
1258 | displayAllFlat(); | 1267 | displayAllFlat(); |
1268 | resetCurrentItem(); | ||
1259 | } | 1269 | } |
1260 | 1270 | ||
1261 | void KOTodoView::purgeCompleted() | 1271 | void KOTodoView::purgeCompleted() |
diff --git a/libkcal/alarm.cpp b/libkcal/alarm.cpp index 1fc7169..d8f15b5 100644 --- a/libkcal/alarm.cpp +++ b/libkcal/alarm.cpp | |||
@@ -20,6 +20,7 @@ | |||
20 | */ | 20 | */ |
21 | 21 | ||
22 | #include <kdebug.h> | 22 | #include <kdebug.h> |
23 | #include <klocale.h> | ||
23 | 24 | ||
24 | #include "incidence.h" | 25 | #include "incidence.h" |
25 | #include "todo.h" | 26 | #include "todo.h" |
@@ -349,6 +350,29 @@ int Alarm::offset() | |||
349 | } | 350 | } |
350 | 351 | ||
351 | } | 352 | } |
353 | QString Alarm::offsetText() | ||
354 | { | ||
355 | int min = -offset()/60; | ||
356 | int hours = min /60; | ||
357 | min = min % 60; | ||
358 | int days = hours /24; | ||
359 | hours = hours % 24; | ||
360 | QString message; | ||
361 | qDebug("%d %d %d ", days, hours, min ); | ||
362 | if ( days > 0 ) | ||
363 | message += i18n("%1d").arg( days ); | ||
364 | if ( hours > 0 ) { | ||
365 | if ( !message.isEmpty() ) message += "/"; | ||
366 | message += i18n("%1h").arg( hours ); | ||
367 | } | ||
368 | if ( min > 0 ) { | ||
369 | if ( !message.isEmpty() ) message += "/"; | ||
370 | message += i18n("%1min").arg( min ); | ||
371 | } | ||
372 | if ( message.isEmpty() ) | ||
373 | message = i18n("%1min").arg( 0 ); | ||
374 | return message; | ||
375 | } | ||
352 | 376 | ||
353 | 377 | ||
354 | QDateTime Alarm::time() const | 378 | QDateTime Alarm::time() const |
diff --git a/libkcal/alarm.h b/libkcal/alarm.h index 682b626..ac6ea0d 100644 --- a/libkcal/alarm.h +++ b/libkcal/alarm.h | |||
@@ -59,6 +59,7 @@ class Alarm : public CustomProperties | |||
59 | /** Return the type of the alarm */ | 59 | /** Return the type of the alarm */ |
60 | Type type() const; | 60 | Type type() const; |
61 | int offset(); | 61 | int offset(); |
62 | QString offsetText(); | ||
62 | /** Set the alarm to be a display alarm. | 63 | /** Set the alarm to be a display alarm. |
63 | @param text text to display when the alarm is triggered. | 64 | @param text text to display when the alarm is triggered. |
64 | */ | 65 | */ |
diff --git a/libkcal/kincidenceformatter.cpp b/libkcal/kincidenceformatter.cpp index e506a96..d67ad52 100644 --- a/libkcal/kincidenceformatter.cpp +++ b/libkcal/kincidenceformatter.cpp | |||
@@ -131,13 +131,14 @@ void KIncidenceFormatter::setEvent(Event *event) | |||
131 | if (event->isAlarmEnabled()) { | 131 | if (event->isAlarmEnabled()) { |
132 | Alarm *alarm =event->alarms().first() ; | 132 | Alarm *alarm =event->alarms().first() ; |
133 | QDateTime t = alarm->time(); | 133 | QDateTime t = alarm->time(); |
134 | int min = t.secsTo( event->dtStart() )/60; | 134 | QString s =i18n("( %1 before )").arg( alarm->offsetText() ); |
135 | QString s =i18n("(%1 min before)").arg( min ); | ||
136 | addTag("p",i18n("<b>Alarm on: </b>") + s + ": "+KGlobal::locale()->formatDateTime( t, shortDate )); | 135 | addTag("p",i18n("<b>Alarm on: </b>") + s + ": "+KGlobal::locale()->formatDateTime( t, shortDate )); |
137 | //addTag("p", KGlobal::locale()->formatDateTime( t, shortDate )); | 136 | //addTag("p", KGlobal::locale()->formatDateTime( t, shortDate )); |
138 | //addTag("p",s); | 137 | //addTag("p",s); |
139 | } | 138 | } |
140 | 139 | ||
140 | |||
141 | |||
141 | addTag("p",i18n("<b>Access: </b>") +event->secrecyStr() ); | 142 | addTag("p",i18n("<b>Access: </b>") +event->secrecyStr() ); |
142 | // mText.append(event->secrecyStr()+"<br>"); | 143 | // mText.append(event->secrecyStr()+"<br>"); |
143 | formatCategories(event); | 144 | formatCategories(event); |
@@ -224,6 +225,15 @@ void KIncidenceFormatter::setTodo(Todo *event ) | |||
224 | mText.append(i18n("<p><b>Priority:</b> %2</p>") | 225 | mText.append(i18n("<p><b>Priority:</b> %2</p>") |
225 | .arg(QString::number(event->priority()))); | 226 | .arg(QString::number(event->priority()))); |
226 | 227 | ||
228 | if (event->isAlarmEnabled()) { | ||
229 | Alarm *alarm =event->alarms().first() ; | ||
230 | QDateTime t = alarm->time(); | ||
231 | QString s =i18n("( %1 before )").arg( alarm->offsetText() ); | ||
232 | addTag("p",i18n("<b>Alarm on: ") + s +" </b>"); | ||
233 | addTag("p", KGlobal::locale()->formatDateTime( t, shortDate )); | ||
234 | //addTag("p",s); | ||
235 | } | ||
236 | |||
227 | addTag("p",i18n("<b>Access: </b>") +event->secrecyStr() ); | 237 | addTag("p",i18n("<b>Access: </b>") +event->secrecyStr() ); |
228 | formatCategories(event); | 238 | formatCategories(event); |
229 | if ( mDetails ) { | 239 | if ( mDetails ) { |