-rw-r--r-- | korganizer/komonthview.cpp | 27 |
1 files changed, 21 insertions, 6 deletions
diff --git a/korganizer/komonthview.cpp b/korganizer/komonthview.cpp index 2150654..475bb4a 100644 --- a/korganizer/komonthview.cpp +++ b/korganizer/komonthview.cpp @@ -314,26 +314,33 @@ void MonthViewItem::paint(QPainter *p) bool sel = isSelected(); #else bool sel = selected(); #endif + int heihei = height( listBox () ); + int x = 1; if (KOPrefs::instance()->mMonthViewUsesCategoryColor) { p->setBackgroundColor( palette().color( QPalette::Normal, \ sel ? QColorGroup::Highlight : QColorGroup::Background ) ); - p->eraseRect( 0, 0, listBox()->maxItemWidth(), height( listBox() ) ); + p->eraseRect( 0, 0, listBox()->maxItemWidth(), heihei ); } - int x = 1; + //int y = 3;//(height() - mRecurPixmap.height()) /2; int size = PIXMAP_SIZE; if ( QApplication::desktop()->width() < 300 ) size = 3; - int heihei = height( listBox () ); int y = (heihei - size -1 ) /2; + if ( mIncidence->calID() > 1 ) { + p->fillRect ( x, y-2,size,size+4, KOPrefs::instance()->defaultColor( mIncidence->calID() ) ); + p->drawRect ( x, y-2,size,size+4); + x += size + 1; + } + if ( KOPrefs::instance()->mMonthShowIcons ) { if ( mInfo ) { p->fillRect ( x, y,size,size, Qt::darkGreen ); x += size + 1; } if ( mRecur ) { @@ -607,12 +614,13 @@ void MonthViewCell::startUpdateCell() mitem = (MonthViewItem *)mitem->next(); } if ( mAvailItemList.count() > 20 ) { mAvailItemList.setAutoDelete( true ); mAvailItemList.clear(); mAvailItemList.setAutoDelete( false ); + clear(); } setPrimary( mDate.month()%2 ); setHoliday( KOGlobals::self()->calendarSystem()->dayOfWeek(mDate) == KOGlobals::self()->calendarSystem()->weekDayOfPray() || ( mDate.dayOfWeek() == 6 ) && KOPrefs::instance()-> mExcludeSaturdays); if ( mDate == QDate::currentDate() ) { setLineWidth( 3 ); @@ -760,20 +768,27 @@ int MonthViewCell::insertEvent(Event *event) item->setReply(true && multiday < 2); else item->setReply(false); } else item->setReply(false); #endif + item->setMultiDay( multiday ); if ( multiday ) { insertItem( item ,mdayCount); ++mdayCount; } else { - uint i; - int pos = mdayCount; - for ( i = mdayCount; i < count();++i ) { + uint i = mdayCount; + uint pos = mdayCount; + uint itcount = count(); + if ( itcount > 1000 ) { + qDebug("KO: Bug in MonthViewCell::insertEvent %u ", itcount); + itcount = 0; + } + for ( i = pos; i < itcount;++i ) { + // qDebug("i %d mday %u count %d ",i,itcount,mdayCount ); QListBoxItem* it = this->item ( i ); if ( it && text < it->text() ) { pos = i; break; } ++pos; |