-rw-r--r-- | korganizer/koagendaitem.cpp | 3 |
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> |
54 | extern int globalFlagBlockAgenda; | 54 | extern int globalFlagBlockAgenda; |
55 | extern int globalFlagBlockAgendaItemPaint; | 55 | extern int globalFlagBlockAgendaItemPaint; |
56 | extern int globalFlagBlockAgendaItemUpdate; | 56 | extern 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 | ||
66 | QToolTipGroup *KOAgendaItem::mToolTipGroup = 0; | 66 | QToolTipGroup *KOAgendaItem::mToolTipGroup = 0; |
67 | 67 | ||
68 | //-------------------------------------------------------------------------- | 68 | //-------------------------------------------------------------------------- |
69 | 69 | ||
70 | class KOAgendaItemWhatsThis :public Q3WhatsThis | 70 | class KOAgendaItemWhatsThis :public Q3WhatsThis |
71 | { | 71 | { |
72 | public: | 72 | public: |
73 | KOAgendaItemWhatsThis( KOAgendaItem* view ) : Q3WhatsThis( view ),_view (view) { }; | 73 | KOAgendaItemWhatsThis( KOAgendaItem* view ) : Q3WhatsThis( view ),_view (view) { }; |
74 | 74 | ||
75 | protected: | 75 | protected: |
76 | virtual QString text( const QPoint& ) | 76 | virtual QString text( const QPoint& ) |
77 | { | 77 | { |
78 | return _view->getWhatsThisText() ; | 78 | return _view->getWhatsThisText() ; |
79 | } | 79 | } |
80 | private: | 80 | private: |
81 | KOAgendaItem * _view; | 81 | KOAgendaItem * _view; |
82 | }; | 82 | }; |
83 | 83 | ||
84 | KOAgendaItem::KOAgendaItem(Incidence *incidence, QDate qd, QWidget *parent,bool allday, | 84 | KOAgendaItem::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 | } |
101 | QString KOAgendaItem::getWhatsThisText() | 101 | QString 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 | ||
111 | void KOAgendaItem::initColor () | 111 | void 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 | } |
149 | void KOAgendaItem::init ( Incidence *incidence, QDate qd ) | 150 | void 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 | ||
175 | KOAgendaItem::~KOAgendaItem() | 176 | KOAgendaItem::~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 | ||
185 | void KOAgendaItem::recreateIncidence() | 186 | void 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 | } |
201 | bool KOAgendaItem::updateIcons(QPainter * p, bool horLayout) | 202 | bool 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() ) ); |