summaryrefslogtreecommitdiffabout
path: root/korganizer/kolistview.cpp
Unidiff
Diffstat (limited to 'korganizer/kolistview.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--korganizer/kolistview.cpp11
1 files changed, 11 insertions, 0 deletions
diff --git a/korganizer/kolistview.cpp b/korganizer/kolistview.cpp
index 0b2f9a4..22d9ac0 100644
--- a/korganizer/kolistview.cpp
+++ b/korganizer/kolistview.cpp
@@ -202,96 +202,97 @@ bool ListItemVisitor::visit(Todo *t)
202 d = t->dtDue().date(); 202 d = t->dtDue().date();
203 QTime tm = t->doesFloat() ? QTime(0,0) : t->dtDue().time(); 203 QTime tm = t->doesFloat() ? QTime(0,0) : t->dtDue().time();
204 key.sprintf("%04d%02d%02d%02d%02d",d.year(),d.month(),d.day(),tm.hour(),tm.minute()); 204 key.sprintf("%04d%02d%02d%02d%02d",d.year(),d.month(),d.day(),tm.hour(),tm.minute());
205 mItem->setSortKey(7,key); 205 mItem->setSortKey(7,key);
206 } 206 }
207 if ( t->hasStartDate() ) { 207 if ( t->hasStartDate() ) {
208 d = t->dtStart().date(); 208 d = t->dtStart().date();
209 QTime tm = t->doesFloat() ? QTime(0,0) : t->dtStart().time(); 209 QTime tm = t->doesFloat() ? QTime(0,0) : t->dtStart().time();
210 key.sprintf("%04d%02d%02d%02d%02d",d.year(),d.month(),d.day(),tm.hour(),tm.minute()); 210 key.sprintf("%04d%02d%02d%02d%02d",d.year(),d.month(),d.day(),tm.hour(),tm.minute());
211 mItem->setSortKey(1,key); 211 mItem->setSortKey(1,key);
212 } 212 }
213 return true; 213 return true;
214} 214}
215 215
216bool ListItemVisitor::visit(Journal * j) 216bool ListItemVisitor::visit(Journal * j)
217{ 217{
218 QString des = j->description().left(30); 218 QString des = j->description().left(30);
219 des = des.simplifyWhiteSpace (); 219 des = des.simplifyWhiteSpace ();
220 des.replace (QRegExp ("\\n"),"" ); 220 des.replace (QRegExp ("\\n"),"" );
221 des.replace (QRegExp ("\\r"),"" ); 221 des.replace (QRegExp ("\\r"),"" );
222 mItem->setText(0,i18n("Journal: ")+des.left(25)); 222 mItem->setText(0,i18n("Journal: ")+des.left(25));
223 mItem->setText(1,j->dtStartDateStr()); 223 mItem->setText(1,j->dtStartDateStr());
224 mItem->setText(2,"---"); 224 mItem->setText(2,"---");
225 mItem->setText(3,"---"); 225 mItem->setText(3,"---");
226 mItem->setText(4,"---"); 226 mItem->setText(4,"---");
227 mItem->setText(5,"---"); 227 mItem->setText(5,"---");
228 mItem->setText(6,"---"); 228 mItem->setText(6,"---");
229 mItem->setText(7,j->dtStartDateStr()); 229 mItem->setText(7,j->dtStartDateStr());
230 mItem->setText(8,"---"); 230 mItem->setText(8,"---");
231 mItem->setText(9,"---"); 231 mItem->setText(9,"---");
232 mItem->setText(10,i18n("Last Modified: ")+ KGlobal::locale()->formatDateTime( j->lastModified() , true) ); 232 mItem->setText(10,i18n("Last Modified: ")+ KGlobal::locale()->formatDateTime( j->lastModified() , true) );
233 mItem->setText(11, KOPrefs::instance()->calName( j->calID() )); 233 mItem->setText(11, KOPrefs::instance()->calName( j->calID() ));
234 234
235 QString key; 235 QString key;
236 QDate d = j->dtStart().date(); 236 QDate d = j->dtStart().date();
237 key.sprintf("%04d%02d%02d",d.year(),d.month(),d.day()); 237 key.sprintf("%04d%02d%02d",d.year(),d.month(),d.day());
238 mItem->setSortKey(1,key); 238 mItem->setSortKey(1,key);
239 mItem->setSortKey(7,key); 239 mItem->setSortKey(7,key);
240 240
241 return true; 241 return true;
242} 242}
243 243
244KOListView::KOListView(Calendar *calendar, QWidget *parent, 244KOListView::KOListView(Calendar *calendar, QWidget *parent,
245 const char *name) 245 const char *name)
246 : KOEventView(calendar, parent, name) 246 : KOEventView(calendar, parent, name)
247{ 247{
248 248
249 mActiveItem = 0; 249 mActiveItem = 0;
250 mForceShowCompletedTodos = false;
250 mListView = new KOListViewListView(this); 251 mListView = new KOListViewListView(this);
251 mListView->addColumn(i18n("Summary")); 252 mListView->addColumn(i18n("Summary"));
252 mListView->addColumn(i18n("Start Date")); 253 mListView->addColumn(i18n("Start Date"));
253 mListView->addColumn(i18n("Start Time")); 254 mListView->addColumn(i18n("Start Time"));
254 mListView->addColumn(i18n("End Date")); 255 mListView->addColumn(i18n("End Date"));
255 mListView->addColumn(i18n("End Time")); 256 mListView->addColumn(i18n("End Time"));
256 mListView->addColumn(i18n("Alarm")); // alarm set? 257 mListView->addColumn(i18n("Alarm")); // alarm set?
257 mListView->addColumn(i18n("Recurs")); // recurs? 258 mListView->addColumn(i18n("Recurs")); // recurs?
258 mListView->addColumn(i18n("Due Date")); 259 mListView->addColumn(i18n("Due Date"));
259 mListView->addColumn(i18n("Due Time")); 260 mListView->addColumn(i18n("Due Time"));
260 mListView->addColumn(i18n("Cancelled")); 261 mListView->addColumn(i18n("Cancelled"));
261 mListView->addColumn(i18n("Categories")); 262 mListView->addColumn(i18n("Categories"));
262 mListView->addColumn(i18n("Calendar")); 263 mListView->addColumn(i18n("Calendar"));
263 264
264 mListView->setColumnAlignment(0,AlignLeft); 265 mListView->setColumnAlignment(0,AlignLeft);
265 mListView->setColumnAlignment(1,AlignLeft); 266 mListView->setColumnAlignment(1,AlignLeft);
266 mListView->setColumnAlignment(2,AlignHCenter); 267 mListView->setColumnAlignment(2,AlignHCenter);
267 mListView->setColumnAlignment(3,AlignLeft); 268 mListView->setColumnAlignment(3,AlignLeft);
268 mListView->setColumnAlignment(4,AlignHCenter); 269 mListView->setColumnAlignment(4,AlignHCenter);
269 mListView->setColumnAlignment(5,AlignLeft); 270 mListView->setColumnAlignment(5,AlignLeft);
270 mListView->setColumnAlignment(6,AlignLeft); 271 mListView->setColumnAlignment(6,AlignLeft);
271 mListView->setColumnAlignment(7,AlignLeft); 272 mListView->setColumnAlignment(7,AlignLeft);
272 mListView->setColumnAlignment(8,AlignLeft); 273 mListView->setColumnAlignment(8,AlignLeft);
273 mListView->setColumnAlignment(9,AlignLeft); 274 mListView->setColumnAlignment(9,AlignLeft);
274 mListView->setColumnAlignment(10,AlignLeft); 275 mListView->setColumnAlignment(10,AlignLeft);
275 mListView->setColumnAlignment(11,AlignLeft); 276 mListView->setColumnAlignment(11,AlignLeft);
276 mKOListViewWhatsThis = new KOListViewWhatsThis(mListView->viewport(),this); 277 mKOListViewWhatsThis = new KOListViewWhatsThis(mListView->viewport(),this);
277 278
278 int iii = 0; 279 int iii = 0;
279 for ( iii = 0; iii< 12 ; ++iii ) 280 for ( iii = 0; iii< 12 ; ++iii )
280 mListView->setColumnWidthMode( iii, QListView::Manual ); 281 mListView->setColumnWidthMode( iii, QListView::Manual );
281 282
282 QBoxLayout *layoutTop = new QVBoxLayout(this); 283 QBoxLayout *layoutTop = new QVBoxLayout(this);
283 layoutTop->addWidget(mListView); 284 layoutTop->addWidget(mListView);
284 mListView->setFont ( KOPrefs::instance()->mListViewFont ); 285 mListView->setFont ( KOPrefs::instance()->mListViewFont );
285 mPopupMenu = eventPopup(); 286 mPopupMenu = eventPopup();
286 mPopupMenu->addAdditionalItem(QIconSet(QPixmap()), 287 mPopupMenu->addAdditionalItem(QIconSet(QPixmap()),
287 i18n("Select all"),this, 288 i18n("Select all"),this,
288 SLOT(allSelection()),true); 289 SLOT(allSelection()),true);
289 mPopupMenu->addAdditionalItem(QIconSet(QPixmap()), 290 mPopupMenu->addAdditionalItem(QIconSet(QPixmap()),
290 i18n("Deselect all"),this, 291 i18n("Deselect all"),this,
291 SLOT(clearSelection()),true); 292 SLOT(clearSelection()),true);
292 mPopupMenu->addAdditionalItem(QIconSet(QPixmap()), 293 mPopupMenu->addAdditionalItem(QIconSet(QPixmap()),
293 i18n("Delete all selected"),this, 294 i18n("Delete all selected"),this,
294 SLOT(deleteAll()),true); 295 SLOT(deleteAll()),true);
295 296
296 mPopupMenu->addAdditionalItem(QIconSet(QPixmap()), 297 mPopupMenu->addAdditionalItem(QIconSet(QPixmap()),
297 i18n("Hide all selected"),this, 298 i18n("Hide all selected"),this,
@@ -1002,101 +1003,111 @@ void KOListView::showDates(const QDate &start, const QDate &end)
1002 QPtrList<Journal> j_list; 1003 QPtrList<Journal> j_list;
1003 while( date <= end ) { 1004 while( date <= end ) {
1004 addEvents(calendar()->events(date)); 1005 addEvents(calendar()->events(date));
1005 addTodos(calendar()->todos(date)); 1006 addTodos(calendar()->todos(date));
1006 Journal* jo = calendar()->journal(date); 1007 Journal* jo = calendar()->journal(date);
1007 if ( jo ) 1008 if ( jo )
1008 j_list.append( jo ); 1009 j_list.append( jo );
1009 date = date.addDays( 1 ); 1010 date = date.addDays( 1 );
1010 } 1011 }
1011 addJournals(j_list); 1012 addJournals(j_list);
1012 emit incidenceSelected( 0 ); 1013 emit incidenceSelected( 0 );
1013 updateView(); 1014 updateView();
1014 1015
1015} 1016}
1016 1017
1017void KOListView::addEvents(QPtrList<Event> eventList) 1018void KOListView::addEvents(QPtrList<Event> eventList)
1018{ 1019{
1019 1020
1020 Event *ev; 1021 Event *ev;
1021 for(ev = eventList.first(); ev; ev = eventList.next()) { 1022 for(ev = eventList.first(); ev; ev = eventList.next()) {
1022 addIncidence(ev); 1023 addIncidence(ev);
1023 } 1024 }
1024 if ( !mListView->currentItem() ){ 1025 if ( !mListView->currentItem() ){
1025 updateView(); 1026 updateView();
1026 } 1027 }
1027} 1028}
1028 1029
1029void KOListView::addTodos(QPtrList<Todo> eventList) 1030void KOListView::addTodos(QPtrList<Todo> eventList)
1030{ 1031{
1031 Todo *ev; 1032 Todo *ev;
1032 for(ev = eventList.first(); ev; ev = eventList.next()) { 1033 for(ev = eventList.first(); ev; ev = eventList.next()) {
1033 addIncidence(ev); 1034 addIncidence(ev);
1034 } 1035 }
1035 if ( !mListView->currentItem() ){ 1036 if ( !mListView->currentItem() ){
1036 updateView(); 1037 updateView();
1037 } 1038 }
1038} 1039}
1039void KOListView::addJournals(QPtrList<Journal> eventList) 1040void KOListView::addJournals(QPtrList<Journal> eventList)
1040{ 1041{
1041 Journal *ev; 1042 Journal *ev;
1042 for(ev = eventList.first(); ev; ev = eventList.next()) { 1043 for(ev = eventList.first(); ev; ev = eventList.next()) {
1043 addIncidence(ev); 1044 addIncidence(ev);
1044 } 1045 }
1045 if ( !mListView->currentItem() ){ 1046 if ( !mListView->currentItem() ){
1046 updateView(); 1047 updateView();
1047 } 1048 }
1048} 1049}
1049 1050
1051void KOListView::showCompletedTodos()
1052{
1053 mForceShowCompletedTodos = true;
1054}
1050void KOListView::addIncidence(Incidence *incidence) 1055void KOListView::addIncidence(Incidence *incidence)
1051{ 1056{
1052 if ( mUidDict.find( incidence->uid() ) ) return; 1057 if ( mUidDict.find( incidence->uid() ) ) return;
1053 1058
1054 // mListView->setFont ( KOPrefs::instance()->mListViewFont ); 1059 // mListView->setFont ( KOPrefs::instance()->mListViewFont );
1060 if ( incidence->typeID() == todoID ) {
1061 if ( ! mForceShowCompletedTodos ) {
1062 if ( !KOPrefs::instance()->mShowCompletedTodo && ((Todo*)incidence)->isCompleted() )
1063 return;
1064 }
1065 }
1055 mUidDict.insert( incidence->uid(), incidence ); 1066 mUidDict.insert( incidence->uid(), incidence );
1056 KOListViewItem *item = new KOListViewItem( incidence, mListView ); 1067 KOListViewItem *item = new KOListViewItem( incidence, mListView );
1057 ListItemVisitor v(item, mStartDate ); 1068 ListItemVisitor v(item, mStartDate );
1058 if (incidence->accept(v)) { 1069 if (incidence->accept(v)) {
1059 return; 1070 return;
1060 } 1071 }
1061 else delete item; 1072 else delete item;
1062} 1073}
1063 1074
1064void KOListView::showEvents(QPtrList<Event> eventList) 1075void KOListView::showEvents(QPtrList<Event> eventList)
1065{ 1076{
1066 clear(); 1077 clear();
1067 1078
1068 addEvents(eventList); 1079 addEvents(eventList);
1069 1080
1070 // After new creation of list view no events are selected. 1081 // After new creation of list view no events are selected.
1071 emit incidenceSelected( 0 ); 1082 emit incidenceSelected( 0 );
1072} 1083}
1073int KOListView::count() 1084int KOListView::count()
1074{ 1085{
1075 return mListView->childCount(); 1086 return mListView->childCount();
1076} 1087}
1077 1088
1078void KOListView::changeEventDisplay(Event *event, int action) 1089void KOListView::changeEventDisplay(Event *event, int action)
1079{ 1090{
1080 KOListViewItem *item; 1091 KOListViewItem *item;
1081 1092
1082 switch(action) { 1093 switch(action) {
1083 case KOGlobals::EVENTADDED: 1094 case KOGlobals::EVENTADDED:
1084 addIncidence( event ); 1095 addIncidence( event );
1085 break; 1096 break;
1086 case KOGlobals::EVENTEDITED: 1097 case KOGlobals::EVENTEDITED:
1087 item = getItemForEvent(event); 1098 item = getItemForEvent(event);
1088 if (item) { 1099 if (item) {
1089 mUidDict.remove( event->uid() ); 1100 mUidDict.remove( event->uid() );
1090 delete item; 1101 delete item;
1091 addIncidence( event ); 1102 addIncidence( event );
1092 } 1103 }
1093 break; 1104 break;
1094 case KOGlobals::EVENTDELETED: 1105 case KOGlobals::EVENTDELETED:
1095 item = getItemForEvent(event); 1106 item = getItemForEvent(event);
1096 if (item) { 1107 if (item) {
1097 mUidDict.remove( event->uid() ); 1108 mUidDict.remove( event->uid() );
1098 delete item; 1109 delete item;
1099 } 1110 }
1100 break; 1111 break;
1101 default: 1112 default:
1102 ; 1113 ;