summaryrefslogtreecommitdiffabout
path: root/korganizer/komonthview.cpp
Side-by-side diff
Diffstat (limited to 'korganizer/komonthview.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--korganizer/komonthview.cpp91
1 files changed, 67 insertions, 24 deletions
diff --git a/korganizer/komonthview.cpp b/korganizer/komonthview.cpp
index 2fe80af..f558084 100644
--- a/korganizer/komonthview.cpp
+++ b/korganizer/komonthview.cpp
@@ -219,12 +219,14 @@ void MonthViewItem::paint(QPainter *p)
sel ? QColorGroup::Highlight : QColorGroup::Background ) );
p->eraseRect( 0, 0, listBox()->maxItemWidth(), height( listBox() ) );
}
int x = 1;
- int y = 3;//(height() - mRecurPixmap.height()) /2;
+ //int y = 3;//(height() - mRecurPixmap.height()) /2;
int size = PIXMAP_SIZE;
if ( QApplication::desktop()->width() < 300 )
size = 3;
+ int y = (height( listBox () ) - size -1 ) /2;
+
if ( KOPrefs::instance()->mMonthShowIcons ) {
if ( mInfo ) {
p->fillRect ( x, y,size,size, Qt::darkGreen );
x += size + 1;
@@ -241,8 +243,38 @@ void MonthViewItem::paint(QPainter *p)
p->fillRect ( x, y,size,size, Qt::yellow );
x += size + 1;
}
}
+ if ( mMultiday ) {
+ int yyy = y+(size/2);
+ int sizeM = size+2;
+ p->setBrush( QBrush::SolidPattern );
+ p->drawLine ( x+sizeM/2, yyy, x +sizeM +sizeM/2-2, yyy ) ;
+ if ( mMultiday == 2 || mMultiday == 3 ) {
+ QPointArray pa ( 3 );
+ pa.setPoint (0, x, yyy );
+ pa.setPoint (1, x+sizeM/2, yyy+sizeM/2 );
+ pa.setPoint (2, x+sizeM/2, yyy-sizeM/2 );
+ p->drawPolygon( pa );
+ }
+ if ( mMultiday == 2 || mMultiday == 1 ) {
+ QPointArray pa ( 3 );
+ pa.setPoint (0, x+sizeM +sizeM/2, yyy );
+ pa.setPoint (1, x+sizeM, yyy+sizeM/2 );
+ pa.setPoint (2, x+sizeM, yyy-sizeM/2 );
+ p->drawPolygon( pa );
+ }
+ if ( mMultiday == 1 ) {
+ p->fillRect ( x, yyy-sizeM/2+1, sizeM/2, size, QBrush ( QBrush::SolidPattern ) );
+
+ }
+ if ( mMultiday == 3 ) {
+ p->fillRect ( x+sizeM, yyy-sizeM/2+1, sizeM/2, size, QBrush ( QBrush::SolidPattern ) );
+
+ }
+ x += sizeM/2 + 1;
+ x += sizeM + 1;
+ }
QFontMetrics fm = p->fontMetrics();
int yPos;
int pmheight = size;
if( pmheight < fm.height() )
@@ -260,28 +292,35 @@ void MonthViewItem::paint(QPainter *p)
}
int MonthViewItem::height(const QListBox *lb) const
{
- return lb->fontMetrics().lineSpacing()+1;
+ if ( lb )
+ return lb->fontMetrics().lineSpacing()+1;
+ return 10;
}
int MonthViewItem::width(const QListBox *lb) const
{
int size = PIXMAP_SIZE;
if ( QApplication::desktop()->width() < 300 )
size = 3;
int x = 1;
- if ( mInfo ) {
- x += size + 1;
- }
- if( mRecur ) {
- x += size+1;
- }
- if( mAlarm ) {
- x += size+1;
+ if ( KOPrefs::instance()->mMonthShowIcons ) {
+ if ( mInfo ) {
+ x += size + 1;
+ }
+ if( mRecur ) {
+ x += size+1;
+ }
+ if( mAlarm ) {
+ x += size+1;
+ }
+ if( mReply ) {
+ x += size+1;
+ }
}
- if( mReply ) {
- x += size+1;
+ if( mMultiday ) {
+ x += size+1+2+size/2;
}
return( x + lb->fontMetrics().width( text() ) + 1 );
}
@@ -463,35 +502,38 @@ void MonthViewCell::insertEvent(Event *event)
if ( mDate.dayOfWeek() == 7 )
mItemList->setLineWidth( 3 );
}
QString text;
+ int multiday = 0;// 1 = start, 2 = midddle, 3 = end day
if (event->isMultiDay()) {
- QString prefix = "<->";
+ QString prefix = "<->";multiday = 2;
+ QString time;
if ( event->doesRecur() ) {
- if ( event->recursOn( mDate) )
- prefix ="->" ;
+ if ( event->recursOn( mDate) ) {
+ prefix ="->" ;multiday = 1;
+ }
else {
int days = event->dtStart().date().daysTo ( event->dtEnd().date() );
if ( event->recursOn( mDate.addDays( -days)) )
- prefix ="<-" ;
+ prefix ="<-" ;multiday = 3;
}
} else {
if (mDate == event->dtStart().date()) {
- prefix ="->" ;
+ prefix ="->" ;multiday = 1;
} else if (mDate == event->dtEnd().date()) {
- prefix ="<-" ;
+ prefix ="<-" ;multiday = 3;
}
}
if ( !event->doesFloat() ) {
if ( mDate == event->dtStart().date () )
- prefix += KGlobal::locale()->formatTime(event->dtStart().time())+" ";
+ time = KGlobal::locale()->formatTime(event->dtStart().time())+" ";
else if ( mDate == event->dtEnd().date () )
- prefix += KGlobal::locale()->formatTime(event->dtEnd().time())+" ";
+ time = KGlobal::locale()->formatTime(event->dtEnd().time())+" ";
}
- text = prefix + event->summary();
- mToolTip += text;
+ text = time + event->summary();
+ mToolTip += prefix + text;
} else {
if (event->doesFloat()) {
text = event->summary();
mToolTip += text;
@@ -528,21 +570,22 @@ void MonthViewCell::insertEvent(Event *event)
pal = mStandardPalette ;
}
item->setPalette( pal );
item->setRecur( event->recurrence()->doesRecur() );
- item->setAlarm( event->isAlarmEnabled() );
+ item->setAlarm( event->isAlarmEnabled() && multiday < 2 );
item->setMoreInfo( event->description().length() > 0 );
#ifdef DESKTOP_VERSION
Attendee *me = event->attendeeByMails(KOPrefs::instance()->mAdditionalMails,
KOPrefs::instance()->email());
if ( me != 0 ) {
if ( me->status() == Attendee::NeedsAction && me->RSVP())
- item->setReply(true);
+ item->setReply(true && multiday < 2);
else
item->setReply(false);
} else
item->setReply(false);
#endif
+ item->setMultiDay( multiday );
mItemList->insertItem( item );
mToolTip += "\n";
}
void MonthViewCell::insertTodo(Todo *todo)