-rw-r--r-- | bin/kdepim/WhatsNew.txt | 1 | ||||
-rw-r--r-- | korganizer/koagenda.cpp | 31 | ||||
-rw-r--r-- | korganizer/koagendaitem.cpp | 1 |
3 files changed, 31 insertions, 2 deletions
diff --git a/bin/kdepim/WhatsNew.txt b/bin/kdepim/WhatsNew.txt index 05c1afd..28029ee 100644 --- a/bin/kdepim/WhatsNew.txt +++ b/bin/kdepim/WhatsNew.txt @@ -4,4 +4,5 @@ Info about the changes in new versions of KDE-Pim/Pi Fixed a bug in todo start/due date handling for non recurring todos with a start and due date. +Fixed some layout problems in the KO/Pi agenda view when there were many conflicting itmes. diff --git a/korganizer/koagenda.cpp b/korganizer/koagenda.cpp index a72e470..195b1fa 100644 --- a/korganizer/koagenda.cpp +++ b/korganizer/koagenda.cpp @@ -1080,5 +1080,5 @@ void KOAgenda::placeSubCells(KOAgendaItem *placeItem) - // Adjust sub cell geometry of all items + // Adjust sub cell geometry of all direct conflict items for ( item=conflictItems.first(); item != 0; item=conflictItems.next() ) { @@ -1100,5 +1100,32 @@ void KOAgenda::placeSubCells(KOAgendaItem *placeItem) //item->updateItem(); } - + // Adjust sub cell geometry of all conflict items of all conflict items + for ( item=conflictItems.first(); item != 0; + item=conflictItems.next() ) { + if ( placeItem != item ) { + KOAgendaItem *item2; + QPtrList<KOAgendaItem> conflictItems2 = item->conflictItems(); + for ( item2=conflictItems2.first(); item2 != 0; + item2=conflictItems2.next() ) { + if ( item2->subCells() != maxSubCells) { + item2->setSubCells(maxSubCells); + if (mAllDayMode) { + item2->resize(item2->cellWidth() * mGridSpacingX, newSubCellWidth); + } else { + item2->resize(newSubCellWidth, item2->cellHeight() * mGridSpacingY); + } + int x,y; + gridToContents(item2->cellX(),item2->cellYTop(),x,y); + if (mAllDayMode) { + y += item2->subCell() * newSubCellWidth; + } else { + x += item2->subCell() * newSubCellWidth; + } + moveChild(item2,x,y); + //qDebug("setttttt %d %s",maxSubCells, item2->text().latin1() ); + } + } + } + } } else { placeItem->setSubCell(0); diff --git a/korganizer/koagendaitem.cpp b/korganizer/koagendaitem.cpp index d0a7b07..38bd93a 100644 --- a/korganizer/koagendaitem.cpp +++ b/korganizer/koagendaitem.cpp @@ -136,4 +136,5 @@ void KOAgendaItem::init ( Incidence *incidence, QDate qd ) setBackgroundColor( mBackgroundColor ); + mConflictItems.clear(); setCellXY(0,0,1); setCellXWidth(0); |