summaryrefslogtreecommitdiffabout
authorzautrix <zautrix>2005-02-19 15:39:43 (UTC)
committer zautrix <zautrix>2005-02-19 15:39:43 (UTC)
commit4858dcb045afc57ce98877cca787c4430146bea8 (patch) (side-by-side diff)
tree9c9ea4b6d93a34d4bea97d7cea0b294c9c8665de
parentd2ed2aaddb88f39f8b2ced18a4ea7f06a63237d3 (diff)
downloadkdepimpi-4858dcb045afc57ce98877cca787c4430146bea8.zip
kdepimpi-4858dcb045afc57ce98877cca787c4430146bea8.tar.gz
kdepimpi-4858dcb045afc57ce98877cca787c4430146bea8.tar.bz2
multiday fixes in monthview
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--korganizer/komonthview.cpp91
-rw-r--r--korganizer/komonthview.h2
2 files changed, 69 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
@@ -220,10 +220,12 @@ void MonthViewItem::paint(QPainter *p)
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 );
@@ -242,6 +244,36 @@ void MonthViewItem::paint(QPainter *p)
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;
@@ -261,7 +293,9 @@ 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
@@ -270,17 +304,22 @@ int MonthViewItem::width(const QListBox *lb) const
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 );
@@ -464,33 +503,36 @@ void MonthViewCell::insertEvent(Event *event)
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();
@@ -529,19 +571,20 @@ void MonthViewCell::insertEvent(Event *event)
}
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";
}
diff --git a/korganizer/komonthview.h b/korganizer/komonthview.h
index 2f6f5dc..b79a41f 100644
--- a/korganizer/komonthview.h
+++ b/korganizer/komonthview.h
@@ -97,6 +97,7 @@ class MonthViewItem: public QListBoxItem
void setAlarm(bool on) { mAlarm = on; }
void setReply(bool on) { mReply = on; }
void setMoreInfo(bool on) { mInfo = on; }
+ void setMultiDay(int type) { mMultiday = type; }
void setPalette(const QPalette &p) { mPalette = p; }
@@ -111,6 +112,7 @@ class MonthViewItem: public QListBoxItem
virtual int width(const QListBox *) const;
private:
+ int mMultiday;
bool mRecur;
bool mAlarm;
bool mReply;