summaryrefslogtreecommitdiffabout
path: root/korganizer/koagendaitem.cpp
Unidiff
Diffstat (limited to 'korganizer/koagendaitem.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--korganizer/koagendaitem.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/korganizer/koagendaitem.cpp b/korganizer/koagendaitem.cpp
index 0f9a38f..d38cb00 100644
--- a/korganizer/koagendaitem.cpp
+++ b/korganizer/koagendaitem.cpp
@@ -27,193 +27,194 @@
27#include <qdrawutil.h> 27#include <qdrawutil.h>
28#include <qpainter.h> 28#include <qpainter.h>
29#include <QDesktopWidget> 29#include <QDesktopWidget>
30//Added by qt3to4: 30//Added by qt3to4:
31#include <Q3PtrList> 31#include <Q3PtrList>
32#include <QPixmap> 32#include <QPixmap>
33#include <QDragEnterEvent> 33#include <QDragEnterEvent>
34#include <QDropEvent> 34#include <QDropEvent>
35#include <QResizeEvent> 35#include <QResizeEvent>
36#include <QMouseEvent> 36#include <QMouseEvent>
37#include <QEvent> 37#include <QEvent>
38#include <QPaintEvent> 38#include <QPaintEvent>
39 39
40#include <kiconloader.h> 40#include <kiconloader.h>
41#include <kdebug.h> 41#include <kdebug.h>
42#include <kglobal.h> 42#include <kglobal.h>
43#include <klocale.h> 43#include <klocale.h>
44#ifndef DESKTOP_VERSION 44#ifndef DESKTOP_VERSION
45#include <qpe/qpeapplication.h> 45#include <qpe/qpeapplication.h>
46#define AGENDA_ICON_SIZE 5 46#define AGENDA_ICON_SIZE 5
47#else 47#else
48#include <qapplication.h> 48#include <qapplication.h>
49#define AGENDA_ICON_SIZE 7 49#define AGENDA_ICON_SIZE 7
50#endif 50#endif
51#include <libkcal/icaldrag.h> 51#include <libkcal/icaldrag.h>
52#include <libkcal/vcaldrag.h> 52#include <libkcal/vcaldrag.h>
53#include <libkcal/kincidenceformatter.h> 53#include <libkcal/kincidenceformatter.h>
54extern int globalFlagBlockAgenda; 54extern int globalFlagBlockAgenda;
55extern int globalFlagBlockAgendaItemPaint; 55extern int globalFlagBlockAgendaItemPaint;
56extern int globalFlagBlockAgendaItemUpdate; 56extern int globalFlagBlockAgendaItemUpdate;
57 57
58#include "koprefs.h" 58#include "koprefs.h"
59 59
60#include "koagendaitem.h" 60#include "koagendaitem.h"
61//#include "koagendaitem.moc" 61//#include "koagendaitem.moc"
62 62
63 63
64//-------------------------------------------------------------------------- 64//--------------------------------------------------------------------------
65 65
66QToolTipGroup *KOAgendaItem::mToolTipGroup = 0; 66QToolTipGroup *KOAgendaItem::mToolTipGroup = 0;
67 67
68//-------------------------------------------------------------------------- 68//--------------------------------------------------------------------------
69 69
70class KOAgendaItemWhatsThis :public Q3WhatsThis 70class KOAgendaItemWhatsThis :public Q3WhatsThis
71{ 71{
72public: 72public:
73 KOAgendaItemWhatsThis( KOAgendaItem* view ) : Q3WhatsThis( view ),_view (view) { }; 73 KOAgendaItemWhatsThis( KOAgendaItem* view ) : Q3WhatsThis( view ),_view (view) { };
74 74
75protected: 75protected:
76 virtual QString text( const QPoint& ) 76 virtual QString text( const QPoint& )
77 { 77 {
78 return _view->getWhatsThisText() ; 78 return _view->getWhatsThisText() ;
79 } 79 }
80private: 80private:
81 KOAgendaItem * _view; 81 KOAgendaItem * _view;
82}; 82};
83 83
84KOAgendaItem::KOAgendaItem(Incidence *incidence, QDate qd, QWidget *parent,bool allday, 84KOAgendaItem::KOAgendaItem(Incidence *incidence, QDate qd, QWidget *parent,bool allday,
85 const char *name,Qt::WFlags) : 85 const char *name,Qt::WFlags) :
86 QWidget(parent, name), mIncidence(incidence), mDate(qd) 86 QWidget(parent, name), mIncidence(incidence), mDate(qd)
87{ 87{
88#ifndef DESKTOP_VERSION 88#ifndef DESKTOP_VERSION
89 //QPEApplication::setStylusOperation( this, QPEApplication::RightOnHold ); 89 //QPEApplication::setStylusOperation( this, QPEApplication::RightOnHold );
90#endif 90#endif
91 mKOAgendaItemWhatsThis = new KOAgendaItemWhatsThis(this); 91 mKOAgendaItemWhatsThis = new KOAgendaItemWhatsThis(this);
92 Qt::WindowFlags wflags = windowFlags() |Qt::WRepaintNoErase;// WResizeNoErase 92 Qt::WindowFlags wflags = windowFlags() |Qt::WRepaintNoErase;// WResizeNoErase
93 setWindowFlags ( wflags); 93 setWindowFlags ( wflags);
94 mAllDay = allday; 94 mAllDay = allday;
95 init ( incidence, qd ); 95 init ( incidence, qd );
96 //setMouseTracking(true); 96 //setMouseTracking(true);
97 //setAcceptDrops(true); 97 //setAcceptDrops(true);
98 xPaintCoord = -1; 98 xPaintCoord = -1;
99 yPaintCoord = -1; 99 yPaintCoord = -1;
100} 100}
101QString KOAgendaItem::getWhatsThisText() 101QString KOAgendaItem::getWhatsThisText()
102{ 102{
103 if ( mIncidence ) 103 if ( mIncidence )
104 return KIncidenceFormatter::instance()->getFormattedText( mIncidence, 104 return KIncidenceFormatter::instance()->getFormattedText( mIncidence,
105 KOPrefs::instance()->mWTshowDetails, 105 KOPrefs::instance()->mWTshowDetails,
106 KOPrefs::instance()->mWTshowCreated, 106 KOPrefs::instance()->mWTshowCreated,
107 KOPrefs::instance()->mWTshowChanged); 107 KOPrefs::instance()->mWTshowChanged);
108 return "KOAgendaItem::getWhatsThisText()::internal error"; 108 return "KOAgendaItem::getWhatsThisText()::internal error";
109} 109}
110 110
111void KOAgendaItem::initColor () 111void KOAgendaItem::initColor ()
112{ 112{
113 if ( (mIncidence->typeID() == todoID ) && 113 if ( (mIncidence->typeID() == todoID ) &&
114 ( !((static_cast<Todo*>(mIncidence))->isCompleted()) && 114 ( !((static_cast<Todo*>(mIncidence))->isCompleted()) &&
115 ((static_cast<Todo*>(mIncidence))->dtDue().date() <= QDate::currentDate()) ) ) { 115 ((static_cast<Todo*>(mIncidence))->dtDue().date() <= QDate::currentDate()) ) ) {
116 if ( (static_cast<Todo*>(mIncidence))->dtDue() < (QDateTime)QDateTime::currentDateTime().date()) 116 if ( (static_cast<Todo*>(mIncidence))->dtDue() < (QDateTime)QDateTime::currentDateTime().date())
117 mBackgroundColor = KOPrefs::instance()->mTodoOverdueColor ; 117 mBackgroundColor = KOPrefs::instance()->mTodoOverdueColor ;
118 else 118 else
119 mBackgroundColor = KOPrefs::instance()->mTodoDueTodayColor; 119 mBackgroundColor = KOPrefs::instance()->mTodoDueTodayColor;
120 } 120 }
121 else { 121 else {
122 QStringList categories = mIncidence->categories(); 122 QStringList categories = mIncidence->categories();
123 QString cat = categories.first(); 123 QString cat;
124 if(!categories.isEmpty()) cat = categories.first();
124 if (cat.isEmpty()) { 125 if (cat.isEmpty()) {
125 if ( (mIncidence->typeID() == todoID ) &&((static_cast<Todo*>(mIncidence))->isCompleted()) ) 126 if ( (mIncidence->typeID() == todoID ) &&((static_cast<Todo*>(mIncidence))->isCompleted()) )
126 mBackgroundColor =KOPrefs::instance()->mTodoDoneColor; 127 mBackgroundColor =KOPrefs::instance()->mTodoDoneColor;
127 else 128 else
128 mBackgroundColor =KOPrefs::instance()->defaultColor( mIncidence->calID() ); 129 mBackgroundColor =KOPrefs::instance()->defaultColor( mIncidence->calID() );
129 } else { 130 } else {
130 mBackgroundColor = *KOPrefs::instance()->categoryColor(cat); 131 mBackgroundColor = *KOPrefs::instance()->categoryColor(cat);
131 if ( (mIncidence->typeID() == todoID ) &&((static_cast<Todo*>(mIncidence))->isCompleted()) ) { 132 if ( (mIncidence->typeID() == todoID ) &&((static_cast<Todo*>(mIncidence))->isCompleted()) ) {
132 if ( mBackgroundColor == KOPrefs::instance()->mEventColor ) 133 if ( mBackgroundColor == KOPrefs::instance()->mEventColor )
133 mBackgroundColor = KOPrefs::instance()->mTodoDoneColor; 134 mBackgroundColor = KOPrefs::instance()->mTodoDoneColor;
134 } 135 }
135 } 136 }
136 137
137 } 138 }
138 139
139 QColor BackgroundColor ( mBackgroundColor ); 140 QColor BackgroundColor ( mBackgroundColor );
140 if ( mIncidence->calID() > 1 ) { 141 if ( mIncidence->calID() > 1 ) {
141 //BackgroundColor = KOPrefs::instance()->defaultColor( mIncidence->calID() ); 142 //BackgroundColor = KOPrefs::instance()->defaultColor( mIncidence->calID() );
142 } 143 }
143 mColorGroup = QColorGroup( BackgroundColor.light(), 144 mColorGroup = QColorGroup( BackgroundColor.light(),
144 BackgroundColor.dark(),BackgroundColor.light(), 145 BackgroundColor.dark(),BackgroundColor.light(),
145 BackgroundColor.dark(),BackgroundColor, Qt::black, BackgroundColor) ; 146 BackgroundColor.dark(),BackgroundColor, Qt::black, BackgroundColor) ;
146 setBackgroundColor( mBackgroundColor ); 147 setBackgroundColor( mBackgroundColor );
147 mWhiteText = (mBackgroundColor.red() + mBackgroundColor.green() + mBackgroundColor.blue() < 250); 148 mWhiteText = (mBackgroundColor.red() + mBackgroundColor.green() + mBackgroundColor.blue() < 250);
148} 149}
149void KOAgendaItem::init ( Incidence *incidence, QDate qd ) 150void KOAgendaItem::init ( Incidence *incidence, QDate qd )
150{ 151{
151 mIncidence = incidence; 152 mIncidence = incidence;
152 mDate = qd; 153 mDate = qd;
153 mFirstMultiItem = 0; 154 mFirstMultiItem = 0;
154 mNextMultiItem = 0; 155 mNextMultiItem = 0;
155 mLastMultiItem = 0; 156 mLastMultiItem = 0;
156 computeText(); 157 computeText();
157 initColor(); 158 initColor();
158 mConflictItems.clear(); 159 mConflictItems.clear();
159 setCellXY(0,0,1); 160 setCellXY(0,0,1);
160 setCellXWidth(0); 161 setCellXWidth(0);
161 setSubCell(0); 162 setSubCell(0);
162 setSubCells(1); 163 setSubCells(1);
163 setMultiItem(0,0,0); 164 setMultiItem(0,0,0);
164 startMove(); 165 startMove();
165 mSelected = true; 166 mSelected = true;
166 select(false); 167 select(false);
167 QFontMetrics fontinf(KOPrefs::instance()->mAgendaViewFont); 168 QFontMetrics fontinf(KOPrefs::instance()->mAgendaViewFont);
168 mFontPixelSize = fontinf.height();; 169 mFontPixelSize = fontinf.height();;
169 hide(); 170 hide();
170 xPaintCoord = -1; 171 xPaintCoord = -1;
171 yPaintCoord = -1; 172 yPaintCoord = -1;
172} 173}
173 174
174 175
175KOAgendaItem::~KOAgendaItem() 176KOAgendaItem::~KOAgendaItem()
176{ 177{
177#if QT_VERSION >= 0x030000 178#if QT_VERSION >= 0x030000
178 179
179#else 180#else
180 delete mKOAgendaItemWhatsThis; 181 delete mKOAgendaItemWhatsThis;
181#endif 182#endif
182 183
183} 184}
184 185
185void KOAgendaItem::recreateIncidence() 186void KOAgendaItem::recreateIncidence()
186{ 187{
187#if 0 188#if 0
188 Incidence* newInc = mIncidence->clone(); 189 Incidence* newInc = mIncidence->clone();
189 newInc->recreate(); 190 newInc->recreate();
190 if ( mIncidence->doesRecur() ) { 191 if ( mIncidence->doesRecur() ) {
191 mIncidence->addExDate( mDate ); 192 mIncidence->addExDate( mDate );
192 newInc->recurrence()->unsetRecurs(); 193 newInc->recurrence()->unsetRecurs();
193 int len = mIncidence->dtStart().secsTo( ((Event*)mIncidence)->dtEnd()); 194 int len = mIncidence->dtStart().secsTo( ((Event*)mIncidence)->dtEnd());
194 QTime tim = mIncidence->dtStart().time(); 195 QTime tim = mIncidence->dtStart().time();
195 newInc->setDtStart( QDateTime(mDate, tim) ); 196 newInc->setDtStart( QDateTime(mDate, tim) );
196 ((Event*)newInc)->setDtEnd( newInc->dtStart().addSecs( len ) ); 197 ((Event*)newInc)->setDtEnd( newInc->dtStart().addSecs( len ) );
197 } 198 }
198#endif 199#endif
199 mIncidence = mIncidence->recreateCloneException( mDate ); 200 mIncidence = mIncidence->recreateCloneException( mDate );
200} 201}
201bool KOAgendaItem::updateIcons(QPainter * p, bool horLayout) 202bool KOAgendaItem::updateIcons(QPainter * p, bool horLayout)
202{ 203{
203 int size = AGENDA_ICON_SIZE; 204 int size = AGENDA_ICON_SIZE;
204 205
205 int yOff = 0; 206 int yOff = 0;
206 int xOff = 0; 207 int xOff = 0;
207 int x = pos().x(); 208 int x = pos().x();
208 209
209 if ( x < 0 ) x = 0; 210 if ( x < 0 ) x = 0;
210 x += 3; 211 x += 3;
211 int y; 212 int y;
212 if ( mAllDay ) 213 if ( mAllDay )
213 y = pos().y()+3; 214 y = pos().y()+3;
214 else 215 else
215 y = mCellYTop * ( height() / cellHeight() ) +3; 216 y = mCellYTop * ( height() / cellHeight() ) +3;
216 217
217 218
218 if ( mIncidence->calID() > 1 ) { 219 if ( mIncidence->calID() > 1 ) {
219 p->fillRect ( xOff*( 1 +AGENDA_ICON_SIZE )+x, yOff*( 1 +AGENDA_ICON_SIZE)+y, AGENDA_ICON_SIZE, AGENDA_ICON_SIZE, KOPrefs::instance()->defaultColor( mIncidence->calID() ) ); 220 p->fillRect ( xOff*( 1 +AGENDA_ICON_SIZE )+x, yOff*( 1 +AGENDA_ICON_SIZE)+y, AGENDA_ICON_SIZE, AGENDA_ICON_SIZE, KOPrefs::instance()->defaultColor( mIncidence->calID() ) );