summaryrefslogtreecommitdiffabout
authorzautrix <zautrix>2005-07-02 17:31:20 (UTC)
committer zautrix <zautrix>2005-07-02 17:31:20 (UTC)
commit0233482f5f4baf7a0af45229b02c5deaab17a412 (patch) (unidiff)
treef22927da2ae116c53dc87026ce60b56704309e56
parent78866028c185f4227bfb653ee2050d7feb2e2b78 (diff)
downloadkdepimpi-0233482f5f4baf7a0af45229b02c5deaab17a412.zip
kdepimpi-0233482f5f4baf7a0af45229b02c5deaab17a412.tar.gz
kdepimpi-0233482f5f4baf7a0af45229b02c5deaab17a412.tar.bz2
mv warnings removed
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--korganizer/kolistview.cpp10
-rw-r--r--korganizer/kolistview.h1
-rw-r--r--korganizer/komonthview.cpp35
-rw-r--r--korganizer/komonthview.h6
4 files changed, 35 insertions, 17 deletions
diff --git a/korganizer/kolistview.cpp b/korganizer/kolistview.cpp
index 1b4397f..db3f802 100644
--- a/korganizer/kolistview.cpp
+++ b/korganizer/kolistview.cpp
@@ -279,152 +279,162 @@ KOListView::KOListView(Calendar *calendar, QWidget *parent,
279 mListView->setColumnAlignment(8,AlignLeft); 279 mListView->setColumnAlignment(8,AlignLeft);
280 mListView->setColumnAlignment(9,AlignLeft); 280 mListView->setColumnAlignment(9,AlignLeft);
281 mListView->setColumnAlignment(10,AlignLeft); 281 mListView->setColumnAlignment(10,AlignLeft);
282 mListView->setColumnAlignment(11,AlignLeft); 282 mListView->setColumnAlignment(11,AlignLeft);
283 mKOListViewWhatsThis = new KOListViewWhatsThis(mListView->viewport(),this); 283 mKOListViewWhatsThis = new KOListViewWhatsThis(mListView->viewport(),this);
284 284
285 int iii = 0; 285 int iii = 0;
286 for ( iii = 0; iii< 12 ; ++iii ) 286 for ( iii = 0; iii< 12 ; ++iii )
287 mListView->setColumnWidthMode( iii, QListView::Manual ); 287 mListView->setColumnWidthMode( iii, QListView::Manual );
288 288
289 QBoxLayout *layoutTop = new QVBoxLayout(this); 289 QBoxLayout *layoutTop = new QVBoxLayout(this);
290 layoutTop->addWidget(mListView); 290 layoutTop->addWidget(mListView);
291 mListView->setFont ( KOPrefs::instance()->mListViewFont ); 291 mListView->setFont ( KOPrefs::instance()->mListViewFont );
292 mPopupMenu = eventPopup(); 292 mPopupMenu = eventPopup();
293 QPopupMenu* selPopup = new QPopupMenu ( this ); 293 QPopupMenu* selPopup = new QPopupMenu ( this );
294 mPopupMenu->insertSeparator(); 294 mPopupMenu->insertSeparator();
295 295
296 selPopup->insertItem(i18n("All"),this, 296 selPopup->insertItem(i18n("All"),this,
297 SLOT(allSelection())); 297 SLOT(allSelection()));
298 selPopup->insertItem(i18n("None"),this, 298 selPopup->insertItem(i18n("None"),this,
299 SLOT(clearSelection())); 299 SLOT(clearSelection()));
300 selPopup->insertItem(i18n("Delete selected..."),this, 300 selPopup->insertItem(i18n("Delete selected..."),this,
301 SLOT(deleteAll())); 301 SLOT(deleteAll()));
302 mPopupMenu->insertItem(i18n("Selection"), selPopup ); 302 mPopupMenu->insertItem(i18n("Selection"), selPopup );
303 mPopupMenu->addAdditionalItem(QIconSet(QPixmap()), 303 mPopupMenu->addAdditionalItem(QIconSet(QPixmap()),
304 i18n("Hide all selected"),this, 304 i18n("Hide all selected"),this,
305 SLOT(hideAll()),true); 305 SLOT(hideAll()),true);
306 306
307 mPopupMenu->insertSeparator(); 307 mPopupMenu->insertSeparator();
308#ifdef DESKTOP_VERSION 308#ifdef DESKTOP_VERSION
309 mPopupMenu->addAdditionalItem(QIconSet(QPixmap()), 309 mPopupMenu->addAdditionalItem(QIconSet(QPixmap()),
310 i18n("Print complete list"),this, 310 i18n("Print complete list"),this,
311 SLOT(printList()),true); 311 SLOT(printList()),true);
312 mPopupMenu->insertSeparator(); 312 mPopupMenu->insertSeparator();
313#endif 313#endif
314 mCalPopup = new QPopupMenu ( this ); 314 mCalPopup = new QPopupMenu ( this );
315 mPopupMenu->insertItem( i18n("Set Calendar"), mCalPopup ); 315 mPopupMenu->insertItem( i18n("Set Calendar"), mCalPopup );
316 316
317 mPopupMenu->addAdditionalItem(QIconSet(QPixmap()), 317 mPopupMenu->addAdditionalItem(QIconSet(QPixmap()),
318 i18n("Set categories")+"...",this, 318 i18n("Set categories")+"...",this,
319 SLOT(setCat()),true); 319 SLOT(setCat()),true);
320 mPopupMenu->addAdditionalItem(QIconSet(QPixmap()), 320 mPopupMenu->addAdditionalItem(QIconSet(QPixmap()),
321 i18n("Set alarm..."),this, 321 i18n("Set alarm..."),this,
322 SLOT(setAlarm()),true); 322 SLOT(setAlarm()),true);
323 QObject::connect(mCalPopup,SIGNAL(aboutToShow()),this, 323 QObject::connect(mCalPopup,SIGNAL(aboutToShow()),this,
324 SLOT( populateCalPopup() )); 324 SLOT( populateCalPopup() ));
325 QObject::connect(mCalPopup,SIGNAL(activated( int )),this, 325 QObject::connect(mCalPopup,SIGNAL(activated( int )),this,
326 SLOT( setCalendar( int ) )); 326 SLOT( setCalendar( int ) ));
327 QObject::connect(mPopupMenu,SIGNAL(categoryChanged( Incidence * )),this,
328 SLOT( catChanged( Incidence * ) ));
327 QPopupMenu * exportPO = new QPopupMenu ( this ); 329 QPopupMenu * exportPO = new QPopupMenu ( this );
328 mPopupMenu->insertItem( i18n("Export"), exportPO ); 330 mPopupMenu->insertItem( i18n("Export"), exportPO );
329 exportPO->insertItem( i18n("As iCal (ics) file..."),this, 331 exportPO->insertItem( i18n("As iCal (ics) file..."),this,
330 SLOT(saveToFile())); 332 SLOT(saveToFile()));
331 exportPO->insertItem( i18n("As vCal (vcs) file..."),this, 333 exportPO->insertItem( i18n("As vCal (vcs) file..."),this,
332 SLOT(saveToFileVCS())); 334 SLOT(saveToFileVCS()));
333 exportPO->insertItem( i18n("Journal/Details..."),this, 335 exportPO->insertItem( i18n("Journal/Details..."),this,
334 SLOT(saveDescriptionToFile())); 336 SLOT(saveDescriptionToFile()));
335 // mPopupMenu->insertSeparator(); 337 // mPopupMenu->insertSeparator();
336 // mPopupMenu->addAdditionalItem(QIconSet(QPixmap()), 338 // mPopupMenu->addAdditionalItem(QIconSet(QPixmap()),
337 // i18n("Add Categ. to selected..."),this, 339 // i18n("Add Categ. to selected..."),this,
338 // SLOT(addCat()),true); 340 // SLOT(addCat()),true);
339 //mPopupMenu->insertSeparator(); 341 //mPopupMenu->insertSeparator();
340#ifndef DESKTOP_VERSION 342#ifndef DESKTOP_VERSION
341 mPopupMenu->insertSeparator(); 343 mPopupMenu->insertSeparator();
342 mPopupMenu->addAdditionalItem(QIconSet(QPixmap()), 344 mPopupMenu->addAdditionalItem(QIconSet(QPixmap()),
343 i18n("Beam via IR"),this, 345 i18n("Beam via IR"),this,
344 SLOT(beamSelected()),true); 346 SLOT(beamSelected()),true);
345#endif 347#endif
346 /* 348 /*
347 mPopupMenu = new QPopupMenu; 349 mPopupMenu = new QPopupMenu;
348 mPopupMenu->insertItem(i18n("Edit Event"), this, 350 mPopupMenu->insertItem(i18n("Edit Event"), this,
349 SLOT (editEvent())); 351 SLOT (editEvent()));
350 mPopupMenu->insertItem(SmallIcon("delete"), i18n("Delete Event"), this, 352 mPopupMenu->insertItem(SmallIcon("delete"), i18n("Delete Event"), this,
351 SLOT (deleteEvent())); 353 SLOT (deleteEvent()));
352 mPopupMenu->insertSeparator(); 354 mPopupMenu->insertSeparator();
353 mPopupMenu->insertItem(i18n("Show Dates"), this, 355 mPopupMenu->insertItem(i18n("Show Dates"), this,
354 SLOT(showDates())); 356 SLOT(showDates()));
355 mPopupMenu->insertItem(i18n("Hide Dates"), this, 357 mPopupMenu->insertItem(i18n("Hide Dates"), this,
356 SLOT(hideDates())); 358 SLOT(hideDates()));
357 */ 359 */
358 QObject::connect(mListView,SIGNAL( newEvent()), 360 QObject::connect(mListView,SIGNAL( newEvent()),
359 this,SIGNAL(signalNewEvent())); 361 this,SIGNAL(signalNewEvent()));
360 QObject::connect(mListView,SIGNAL(doubleClicked(QListViewItem *)), 362 QObject::connect(mListView,SIGNAL(doubleClicked(QListViewItem *)),
361 this,SLOT(defaultItemAction(QListViewItem *))); 363 this,SLOT(defaultItemAction(QListViewItem *)));
362 QObject::connect(mListView,SIGNAL(rightButtonPressed( QListViewItem *, 364 QObject::connect(mListView,SIGNAL(rightButtonPressed( QListViewItem *,
363 const QPoint &, int )), 365 const QPoint &, int )),
364 this,SLOT(popupMenu(QListViewItem *,const QPoint &,int))); 366 this,SLOT(popupMenu(QListViewItem *,const QPoint &,int)));
365 QObject::connect(mListView,SIGNAL(currentChanged(QListViewItem *)), 367 QObject::connect(mListView,SIGNAL(currentChanged(QListViewItem *)),
366 SLOT(processSelectionChange(QListViewItem *))); 368 SLOT(processSelectionChange(QListViewItem *)));
367 QObject::connect(mListView,SIGNAL(showIncidence(Incidence *)), 369 QObject::connect(mListView,SIGNAL(showIncidence(Incidence *)),
368 SIGNAL(showIncidenceSignal(Incidence *)) ); 370 SIGNAL(showIncidenceSignal(Incidence *)) );
369 371
370 readSettings(KOGlobals::config(),"KOListView Layout"); 372 readSettings(KOGlobals::config(),"KOListView Layout");
371} 373}
372 374
373KOListView::~KOListView() 375KOListView::~KOListView()
374{ 376{
375 delete mPopupMenu; 377 delete mPopupMenu;
376#if QT_VERSION >= 0x030000 378#if QT_VERSION >= 0x030000
377 379
378#else 380#else
379 delete mKOListViewWhatsThis; 381 delete mKOListViewWhatsThis;
380#endif 382#endif
381} 383}
382 384
385void KOListView::catChanged( Incidence* inc)
386{
387 KOListViewItem* item = getItemForEvent(inc);
388 if (item) {
389 ListItemVisitor v(item, mStartDate );
390 inc->accept(v);
391 }
392}
383QString KOListView::getWhatsThisText(QPoint p) 393QString KOListView::getWhatsThisText(QPoint p)
384{ 394{
385 KOListViewItem* item = ( KOListViewItem* ) mListView->itemAt( p ); 395 KOListViewItem* item = ( KOListViewItem* ) mListView->itemAt( p );
386 if ( item ) 396 if ( item )
387 return KIncidenceFormatter::instance()->getFormattedText( item->data(), 397 return KIncidenceFormatter::instance()->getFormattedText( item->data(),
388 KOPrefs::instance()->mWTshowDetails, 398 KOPrefs::instance()->mWTshowDetails,
389 KOPrefs::instance()->mWTshowCreated, 399 KOPrefs::instance()->mWTshowCreated,
390 KOPrefs::instance()->mWTshowChanged); 400 KOPrefs::instance()->mWTshowChanged);
391 return i18n("That is the list view" ); 401 return i18n("That is the list view" );
392 402
393} 403}
394 404
395void KOListView::setCalendar( int c ) 405void KOListView::setCalendar( int c )
396{ 406{
397 int result = QMessageBox::warning( this, i18n("KO/Pi: Information!"), 407 int result = QMessageBox::warning( this, i18n("KO/Pi: Information!"),
398 i18n("This adds the selected\nitems to the calendar\n%1\nand removes them from\ntheir current calendar!").arg( KOPrefs::instance()->calName( c ) ), 408 i18n("This adds the selected\nitems to the calendar\n%1\nand removes them from\ntheir current calendar!").arg( KOPrefs::instance()->calName( c ) ),
399 i18n("Continue"), i18n("Cancel"), 0, 409 i18n("Continue"), i18n("Cancel"), 0,
400 0, 1 ); 410 0, 1 );
401 if ( result != 0 ) { 411 if ( result != 0 ) {
402 return; 412 return;
403 } 413 }
404 414
405 QPtrList<Incidence> delSel = getSelectedIncidences() ; 415 QPtrList<Incidence> delSel = getSelectedIncidences() ;
406 int icount = delSel.count(); 416 int icount = delSel.count();
407 if ( icount ) { 417 if ( icount ) {
408 Incidence *incidence = delSel.first(); 418 Incidence *incidence = delSel.first();
409 while ( incidence ) { 419 while ( incidence ) {
410 incidence->setCalID( c ); 420 incidence->setCalID( c );
411 KOListViewItem * item = getItemForEvent( incidence ); 421 KOListViewItem * item = getItemForEvent( incidence );
412 if ( item ) { 422 if ( item ) {
413 ListItemVisitor v(item, mStartDate ); 423 ListItemVisitor v(item, mStartDate );
414 incidence->accept(v); 424 incidence->accept(v);
415 } 425 }
416 incidence = delSel.next(); 426 incidence = delSel.next();
417 } 427 }
418 } 428 }
419 QPtrList<KopiCalendarFile> calendars = KOPrefs::instance()->mCalendars; 429 QPtrList<KopiCalendarFile> calendars = KOPrefs::instance()->mCalendars;
420 KopiCalendarFile * cal = calendars.first(); 430 KopiCalendarFile * cal = calendars.first();
421 while ( cal ) { 431 while ( cal ) {
422 mCalendar->setCalendarEnabled( cal->mCalNumber,cal->isEnabled ); 432 mCalendar->setCalendarEnabled( cal->mCalNumber,cal->isEnabled );
423 mCalendar->setAlarmEnabled( cal->mCalNumber, cal->isAlarmEnabled ); 433 mCalendar->setAlarmEnabled( cal->mCalNumber, cal->isAlarmEnabled );
424 mCalendar->setReadOnly( cal->mCalNumber, cal->isReadOnly ); 434 mCalendar->setReadOnly( cal->mCalNumber, cal->isReadOnly );
425 if ( cal->isStandard ) 435 if ( cal->isStandard )
426 mCalendar->setDefaultCalendar( cal->mCalNumber ); 436 mCalendar->setDefaultCalendar( cal->mCalNumber );
427 cal = calendars.next(); 437 cal = calendars.next();
428 } 438 }
429 mCalendar->setSyncEventsReadOnly(); 439 mCalendar->setSyncEventsReadOnly();
430 mCalendar->reInitAlarmSettings(); 440 mCalendar->reInitAlarmSettings();
diff --git a/korganizer/kolistview.h b/korganizer/kolistview.h
index a54b550..99d0561 100644
--- a/korganizer/kolistview.h
+++ b/korganizer/kolistview.h
@@ -249,68 +249,69 @@ class KOListView : public KOEventView
249 void addJournals(QPtrList<Journal> eventList); 249 void addJournals(QPtrList<Journal> eventList);
250 virtual void printPreview(CalPrinter *calPrinter, 250 virtual void printPreview(CalPrinter *calPrinter,
251 const QDate &, const QDate &); 251 const QDate &, const QDate &);
252 252
253 void readSettings(KConfig *config, QString setting = "KOListView Layout"); 253 void readSettings(KConfig *config, QString setting = "KOListView Layout");
254 void writeSettings(KConfig *config, QString setting = "KOListView Layout"); 254 void writeSettings(KConfig *config, QString setting = "KOListView Layout");
255 void updateList(); 255 void updateList();
256 void clearList(); 256 void clearList();
257 void setStartDate(const QDate &start); 257 void setStartDate(const QDate &start);
258 int count(); 258 int count();
259 QString getWhatsThisText(QPoint p); 259 QString getWhatsThisText(QPoint p);
260 QPtrList<Incidence> KOListView::getSelectedIncidences( bool includeEvents = true, bool includeTodos = true , bool includeJournals = true, bool onlyDueTodos = false ); 260 QPtrList<Incidence> KOListView::getSelectedIncidences( bool includeEvents = true, bool includeTodos = true , bool includeJournals = true, bool onlyDueTodos = false );
261 void showCompletedTodos(); 261 void showCompletedTodos();
262 signals: 262 signals:
263 void signalNewEvent(); 263 void signalNewEvent();
264 void beamIncidenceList(QPtrList<Incidence>); 264 void beamIncidenceList(QPtrList<Incidence>);
265 265
266 public slots: 266 public slots:
267 void hideAll(); 267 void hideAll();
268 void printList(); 268 void printList();
269 void resetFocus(); 269 void resetFocus();
270 virtual void updateView(); 270 virtual void updateView();
271 virtual void showDates(const QDate &start, const QDate &end); 271 virtual void showDates(const QDate &start, const QDate &end);
272 virtual void showEvents(QPtrList<Event> eventList); 272 virtual void showEvents(QPtrList<Event> eventList);
273 void clearSelection(); 273 void clearSelection();
274 void allSelection(); 274 void allSelection();
275 275
276 void clear(); 276 void clear();
277 void showDates(); 277 void showDates();
278 void hideDates(); 278 void hideDates();
279 void deleteAll(); 279 void deleteAll();
280 void saveToFile(); 280 void saveToFile();
281 void saveToFileVCS(); 281 void saveToFileVCS();
282 void saveDescriptionToFile(); 282 void saveDescriptionToFile();
283 void beamSelected(); 283 void beamSelected();
284 void updateConfig(); 284 void updateConfig();
285 void setCat(); 285 void setCat();
286 void setAlarm(); 286 void setAlarm();
287 void setCategories( bool removeOld ); 287 void setCategories( bool removeOld );
288 void changeEventDisplay(Event *, int); 288 void changeEventDisplay(Event *, int);
289 289
290 void defaultItemAction(QListViewItem *item); 290 void defaultItemAction(QListViewItem *item);
291 void popupMenu(QListViewItem *item,const QPoint &,int); 291 void popupMenu(QListViewItem *item,const QPoint &,int);
292 void setCalendar( int c ); 292 void setCalendar( int c );
293 void populateCalPopup(); 293 void populateCalPopup();
294 294
295 protected slots: 295 protected slots:
296 void processSelectionChange(QListViewItem *); 296 void processSelectionChange(QListViewItem *);
297 void catChanged( Incidence* );
297 298
298 protected: 299 protected:
299 void writeToFile( bool iCal ); 300 void writeToFile( bool iCal );
300 void addEvents(QPtrList<Event> eventList); 301 void addEvents(QPtrList<Event> eventList);
301 void addIncidence(Incidence *); 302 void addIncidence(Incidence *);
302 KOListViewItem *getItemForEvent(Incidence *event); 303 KOListViewItem *getItemForEvent(Incidence *event);
303 304
304 private: 305 private:
305 bool mForceShowCompletedTodos; 306 bool mForceShowCompletedTodos;
306 QPopupMenu* mCalPopup; 307 QPopupMenu* mCalPopup;
307 KOListViewWhatsThis *mKOListViewWhatsThis; 308 KOListViewWhatsThis *mKOListViewWhatsThis;
308 KOListViewListView *mListView; 309 KOListViewListView *mListView;
309 KOEventPopupMenu *mPopupMenu; 310 KOEventPopupMenu *mPopupMenu;
310 KOListViewItem *mActiveItem; 311 KOListViewItem *mActiveItem;
311 QDict<Incidence> mUidDict; 312 QDict<Incidence> mUidDict;
312 QDate mStartDate; 313 QDate mStartDate;
313 void keyPressEvent ( QKeyEvent * ) ; 314 void keyPressEvent ( QKeyEvent * ) ;
314}; 315};
315 316
316#endif 317#endif
diff --git a/korganizer/komonthview.cpp b/korganizer/komonthview.cpp
index 4fc447e..2289977 100644
--- a/korganizer/komonthview.cpp
+++ b/korganizer/komonthview.cpp
@@ -157,138 +157,138 @@ QString KNoScrollListBox::getWhatsThisText(QPoint p)
157 KOPrefs::instance()->mWTshowChanged); 157 KOPrefs::instance()->mWTshowChanged);
158} 158}
159void KNoScrollListBox::keyPressEvent(QKeyEvent *e) 159void KNoScrollListBox::keyPressEvent(QKeyEvent *e)
160{ 160{
161 //qDebug("KNoScrollListBox::keyPressEvent "); 161 //qDebug("KNoScrollListBox::keyPressEvent ");
162 switch(e->key()) { 162 switch(e->key()) {
163 case Key_Right: 163 case Key_Right:
164 if ( e->state() == Qt::ControlButton|| e->state() == Qt::ShiftButton ) 164 if ( e->state() == Qt::ControlButton|| e->state() == Qt::ShiftButton )
165 { 165 {
166 e->ignore(); 166 e->ignore();
167 return; 167 return;
168 } 168 }
169 scrollBy(10,0); 169 scrollBy(10,0);
170 break; 170 break;
171 case Key_Left: 171 case Key_Left:
172 if (e->state() == Qt::ControlButton|| e->state() == Qt::ShiftButton ) 172 if (e->state() == Qt::ControlButton|| e->state() == Qt::ShiftButton )
173 { 173 {
174 e->ignore(); 174 e->ignore();
175 return; 175 return;
176 } 176 }
177 scrollBy(-10,0); 177 scrollBy(-10,0);
178 break; 178 break;
179 case Key_Up: 179 case Key_Up:
180 if( e->state() == Qt::ControlButton|| e->state() == Qt::ShiftButton) { 180 if( e->state() == Qt::ControlButton|| e->state() == Qt::ShiftButton) {
181 e->ignore(); 181 e->ignore();
182 break; 182 break;
183 } 183 }
184 if ( count() ) { 184 if ( count() ) {
185 if ( currentItem() == 0 ) { 185 if ( currentItem() == 0 ) {
186 emit prevCell(); 186 emit prevCell();
187 } else { 187 } else {
188 setCurrentItem((currentItem()+count()-1)%count()); 188 setCurrentItem((currentItem()+count()-1)%count());
189 if(!itemVisible(currentItem())) { 189 if(!itemVisible(currentItem())) {
190 if((unsigned int) currentItem() == (count()-1)) { 190 if((unsigned int) currentItem() == (count()-1)) {
191 setTopItem(currentItem()-numItemsVisible()+1); 191 setTopItem(currentItem()-numItemsVisible()+1);
192 } else { 192 } else {
193 setTopItem(topItem()-1); 193 setTopItem(topItem()-1);
194 } 194 }
195 } 195 }
196 } 196 }
197 } 197 }
198 break; 198 break;
199 case Key_Down: 199 case Key_Down:
200 if(e->state() == Qt::ControlButton|| e->state() == Qt::ShiftButton) { 200 if(e->state() == Qt::ControlButton|| e->state() == Qt::ShiftButton) {
201 e->ignore(); 201 e->ignore();
202 break; 202 break;
203 } 203 }
204 if ( count () ) { 204 if ( count () ) {
205 if ( currentItem()+1 == count () ) { 205 if ( ((uint)currentItem()+1) == count () ) {
206 emit nextCell(); 206 emit nextCell();
207 } else { 207 } else {
208 setCurrentItem((currentItem()+1)%count()); 208 setCurrentItem((currentItem()+1)%count());
209 if(!itemVisible(currentItem())) { 209 if(!itemVisible(currentItem())) {
210 if(currentItem() == 0) { 210 if(currentItem() == 0) {
211 setTopItem(0); 211 setTopItem(0);
212 } else { 212 } else {
213 setTopItem(topItem()+1); 213 setTopItem(topItem()+1);
214 } 214 }
215 } 215 }
216 } 216 }
217 } 217 }
218 break; 218 break;
219 case Key_I: 219 case Key_I:
220 QTimer::singleShot( 1, this, SLOT ( oneDown() ) ); 220 QTimer::singleShot( 1, this, SLOT ( oneDown() ) );
221 e->ignore(); 221 e->ignore();
222 break; 222 break;
223 case Key_Return: 223 case Key_Return:
224 case Key_Enter: 224 case Key_Enter:
225 { 225 {
226 if ( currentItem() >= 0 ) { 226 if ( currentItem() >= 0 ) {
227 emit doubleClicked( item( currentItem() ) ); 227 emit doubleClicked( item( currentItem() ) );
228 e->accept(); 228 e->accept();
229 } else { 229 } else {
230 e->ignore(); 230 e->ignore();
231 } 231 }
232 } 232 }
233 break; 233 break;
234 case Key_Shift: 234 case Key_Shift:
235 emit shiftDown(); 235 emit shiftDown();
236 break; 236 break;
237 default: 237 default:
238 e->ignore(); 238 e->ignore();
239 break; 239 break;
240 } 240 }
241} 241}
242 242
243void KNoScrollListBox::oneDown() 243void KNoScrollListBox::oneDown()
244{ 244{
245 if ( count () ) { 245 if ( count () ) {
246 if ( currentItem()+1 == count () ) { 246 if ( ((uint)currentItem()+1) == count () ) {
247 emit nextCell(); 247 emit nextCell();
248 } else { 248 } else {
249 resetOnFocusIn = false; 249 resetOnFocusIn = false;
250 setCurrentItem((currentItem()+1)%count()); 250 setCurrentItem((currentItem()+1)%count());
251 if(!itemVisible(currentItem())) { 251 if(!itemVisible(currentItem())) {
252 if(currentItem() == 0) { 252 if(currentItem() == 0) {
253 setTopItem(0); 253 setTopItem(0);
254 } else { 254 } else {
255 setTopItem(topItem()+1); 255 setTopItem(topItem()+1);
256 } 256 }
257 } 257 }
258 } 258 }
259 } 259 }
260} 260}
261void KNoScrollListBox::keyReleaseEvent(QKeyEvent *e) 261void KNoScrollListBox::keyReleaseEvent(QKeyEvent *e)
262{ 262{
263 switch(e->key()) { 263 switch(e->key()) {
264 case Key_Shift: 264 case Key_Shift:
265 emit shiftUp(); 265 emit shiftUp();
266 break; 266 break;
267 default: 267 default:
268 break; 268 break;
269 } 269 }
270} 270}
271 271
272void KNoScrollListBox::mousePressEvent(QMouseEvent *e) 272void KNoScrollListBox::mousePressEvent(QMouseEvent *e)
273{ 273{
274 QListBox::mousePressEvent(e); 274 QListBox::mousePressEvent(e);
275 275
276 if(e->button() == RightButton) { 276 if(e->button() == RightButton) {
277 emit rightClick(); 277 emit rightClick();
278 } 278 }
279} 279}
280 280
281MonthViewItem::MonthViewItem( Incidence *incidence, const QString & s) 281MonthViewItem::MonthViewItem( Incidence *incidence, const QString & s)
282 : QListBoxItem() 282 : QListBoxItem()
283{ 283{
284 mblockRepaint = true; 284 mblockRepaint = true;
285 isWeekItem = KOPrefs::instance()->mMonthViewWeek; 285 isWeekItem = KOPrefs::instance()->mMonthViewWeek;
286 recycle( incidence, s ); 286 recycle( incidence, s );
287} 287}
288void MonthViewItem::recycle( Incidence *incidence, const QString & s) 288void MonthViewItem::recycle( Incidence *incidence, const QString & s)
289{ 289{
290 mDisplayHighlighted = false; 290 mDisplayHighlighted = false;
291 setText( s ); 291 setText( s );
292 mMultiday = 0; 292 mMultiday = 0;
293 mIncidence = incidence; 293 mIncidence = incidence;
294 mRecur = false; 294 mRecur = false;
@@ -1247,484 +1247,488 @@ KOMonthView::KOMonthView(Calendar *calendar, QWidget *parent, const char *name)
1247 mCells.insert( row * mDaysPerWeek + col, cell ); 1247 mCells.insert( row * mDaysPerWeek + col, cell );
1248 1248
1249 connect( cell, SIGNAL( defaultAction( Incidence * ) ), 1249 connect( cell, SIGNAL( defaultAction( Incidence * ) ),
1250 SLOT( defaultAction( Incidence * ) ) ); 1250 SLOT( defaultAction( Incidence * ) ) );
1251 connect( cell, SIGNAL( newEventSignal( QDateTime ) ), 1251 connect( cell, SIGNAL( newEventSignal( QDateTime ) ),
1252 SIGNAL( newEventSignal( QDateTime ) ) ); 1252 SIGNAL( newEventSignal( QDateTime ) ) );
1253 connect( cell, SIGNAL( showDaySignal( QDate ) ), 1253 connect( cell, SIGNAL( showDaySignal( QDate ) ),
1254 SIGNAL( showDaySignal( QDate ) ) ); 1254 SIGNAL( showDaySignal( QDate ) ) );
1255 connect( cell, SIGNAL( nextCell() ), 1255 connect( cell, SIGNAL( nextCell() ),
1256 SLOT( nextCell() ) ); 1256 SLOT( nextCell() ) );
1257 connect( cell, SIGNAL( prevCell() ), 1257 connect( cell, SIGNAL( prevCell() ),
1258 SLOT( prevCell() ) ); 1258 SLOT( prevCell() ) );
1259 connect( cell, SIGNAL( highlightIncidence( Incidence * , MonthViewCell *, int ) ), 1259 connect( cell, SIGNAL( highlightIncidence( Incidence * , MonthViewCell *, int ) ),
1260 SLOT( incidenceHighlighted( Incidence *, MonthViewCell *, int ) )); 1260 SLOT( incidenceHighlighted( Incidence *, MonthViewCell *, int ) ));
1261 } 1261 }
1262 } 1262 }
1263 mCellsW.resize( mDaysPerWeek ); 1263 mCellsW.resize( mDaysPerWeek );
1264 for( col = 0; col < mDaysPerWeek; ++col ) { 1264 for( col = 0; col < mDaysPerWeek; ++col ) {
1265 MonthViewCell *cell = new MonthViewCell( this, mWeekView ); 1265 MonthViewCell *cell = new MonthViewCell( this, mWeekView );
1266 mCellsW.insert( col, cell ); 1266 mCellsW.insert( col, cell );
1267 1267
1268 connect( cell, SIGNAL( defaultAction( Incidence * ) ), 1268 connect( cell, SIGNAL( defaultAction( Incidence * ) ),
1269 SLOT( defaultAction( Incidence * ) ) ); 1269 SLOT( defaultAction( Incidence * ) ) );
1270 connect( cell, SIGNAL( newEventSignal( QDateTime ) ), 1270 connect( cell, SIGNAL( newEventSignal( QDateTime ) ),
1271 SIGNAL( newEventSignal( QDateTime ) ) ); 1271 SIGNAL( newEventSignal( QDateTime ) ) );
1272 connect( cell, SIGNAL( showDaySignal( QDate ) ), 1272 connect( cell, SIGNAL( showDaySignal( QDate ) ),
1273 SIGNAL( showDaySignal( QDate ) ) ); 1273 SIGNAL( showDaySignal( QDate ) ) );
1274 connect( cell, SIGNAL( nextCell() ), 1274 connect( cell, SIGNAL( nextCell() ),
1275 SLOT( nextCell() ) ); 1275 SLOT( nextCell() ) );
1276 connect( cell, SIGNAL( prevCell() ), 1276 connect( cell, SIGNAL( prevCell() ),
1277 SLOT( prevCell() ) ); 1277 SLOT( prevCell() ) );
1278 connect( cell, SIGNAL( highlightIncidence( Incidence * , MonthViewCell *, int ) ), 1278 connect( cell, SIGNAL( highlightIncidence( Incidence * , MonthViewCell *, int ) ),
1279 SLOT( incidenceHighlighted( Incidence *, MonthViewCell *, int ) )); 1279 SLOT( incidenceHighlighted( Incidence *, MonthViewCell *, int ) ));
1280 cell->updateConfig(KOPrefs::instance()->mMonthViewUsesBigFont ); 1280 cell->updateConfig(KOPrefs::instance()->mMonthViewUsesBigFont );
1281 } 1281 }
1282 1282
1283 //connect( mWeekLabels[mNumWeeks], SIGNAL( clicked() ), SLOT( switchView() ) ); 1283 //connect( mWeekLabels[mNumWeeks], SIGNAL( clicked() ), SLOT( switchView() ) );
1284 mContextMenu = eventPopup(); 1284 mContextMenu = eventPopup();
1285 mContextMenu->addAdditionalItem(QIconSet(QPixmap()), 1285 mContextMenu->addAdditionalItem(QIconSet(QPixmap()),
1286 i18n("New Event..."),this, 1286 i18n("New Event..."),this,
1287 SLOT(slotNewEvent()),false); 1287 SLOT(slotNewEvent()),false);
1288 mContextMenu->addAdditionalItem(QIconSet(QPixmap()), 1288 mContextMenu->addAdditionalItem(QIconSet(QPixmap()),
1289 i18n("New Todo..."),this, 1289 i18n("New Todo..."),this,
1290 SLOT(slotNewTodo()),false); 1290 SLOT(slotNewTodo()),false);
1291 mContextMenu->addAdditionalItem(QIconSet(QPixmap()), 1291 mContextMenu->addAdditionalItem(QIconSet(QPixmap()),
1292 i18n("Journal"),this, 1292 i18n("Journal"),this,
1293 SLOT(slotEditJournal()),false); 1293 SLOT(slotEditJournal()),false);
1294 1294
1295 connect (mContextMenu ,SIGNAL(categoryChanged( Incidence * )),this,
1296 SLOT( catChanged( Incidence * ) ));
1295 1297
1296 1298
1297 QString pathString = ""; 1299 QString pathString = "";
1298 if ( !KOPrefs::instance()->mToolBarMiniIcons ) { 1300 if ( !KOPrefs::instance()->mToolBarMiniIcons ) {
1299 if ( QApplication::desktop()->width() < 480 ) 1301 if ( QApplication::desktop()->width() < 480 )
1300 pathString += "icons16/"; 1302 pathString += "icons16/";
1301 } else 1303 } else
1302 pathString += "iconsmini/"; 1304 pathString += "iconsmini/";
1303 mNewItemMenu = new QPopupMenu( this ); 1305 mNewItemMenu = new QPopupMenu( this );
1304 mNewItemMenu->insertItem( SmallIcon( pathString +"newevent" ), i18n("New Event..."),this, SLOT(slotNewEvent())); 1306 mNewItemMenu->insertItem( SmallIcon( pathString +"newevent" ), i18n("New Event..."),this, SLOT(slotNewEvent()));
1305 mNewItemMenu->insertItem( SmallIcon( pathString +"newtodo" ),i18n("New Todo..."),this,SLOT(slotNewTodo()),false); 1307 mNewItemMenu->insertItem( SmallIcon( pathString +"newtodo" ),i18n("New Todo..."),this,SLOT(slotNewTodo()),false);
1306 mNewItemMenu->insertItem( SmallIcon( pathString +"journal" ),i18n("Journal"),this,SLOT(slotEditJournal()),false); 1308 mNewItemMenu->insertItem( SmallIcon( pathString +"journal" ),i18n("Journal"),this,SLOT(slotEditJournal()),false);
1307 1309
1308 // updateConfig(); //useless here... 1310 // updateConfig(); //useless here...
1309 // ... but we need mWidthLongDayLabel computed 1311 // ... but we need mWidthLongDayLabel computed
1310 QFontMetrics fontmetric(mDayLabels[0]->font()); 1312 QFontMetrics fontmetric(mDayLabels[0]->font());
1311 mWidthLongDayLabel = 0; 1313 mWidthLongDayLabel = 0;
1312 for (int i = 0; i < 7; i++) { 1314 for (int i = 0; i < 7; i++) {
1313 int width = fontmetric.width(KOGlobals::self()->calendarSystem()->weekDayName(i+1)); 1315 int width = fontmetric.width(KOGlobals::self()->calendarSystem()->weekDayName(i+1));
1314 if ( width > mWidthLongDayLabel ) mWidthLongDayLabel = width; 1316 if ( width > mWidthLongDayLabel ) mWidthLongDayLabel = width;
1315 } 1317 }
1316 1318
1317 //mWeekLabels[mNumWeeks]->setText( i18n("W")); 1319 //mWeekLabels[mNumWeeks]->setText( i18n("W"));
1318 1320
1319#if 0 1321#if 0
1320 if ( mShowWeekView ) 1322 if ( mShowWeekView )
1321 mWidStack->raiseWidget( mWeekView ); 1323 mWidStack->raiseWidget( mWeekView );
1322 else 1324 else
1323 mWidStack->raiseWidget( mMonthView ); 1325 mWidStack->raiseWidget( mMonthView );
1324#endif 1326#endif
1325 1327
1326 emit incidenceSelected( 0 ); 1328 emit incidenceSelected( 0 );
1327 1329
1328 mComputeLayoutTimer = new QTimer( this ); 1330 mComputeLayoutTimer = new QTimer( this );
1329 connect (mComputeLayoutTimer ,SIGNAL(timeout()), this, SLOT ( slotComputeLayout())); 1331 connect (mComputeLayoutTimer ,SIGNAL(timeout()), this, SLOT ( slotComputeLayout()));
1330 1332
1331 1333
1332#ifndef DESKTOP_VERSION 1334#ifndef DESKTOP_VERSION
1333 resize( QApplication::desktop()->size() ); 1335 resize( QApplication::desktop()->size() );
1334#else 1336#else
1335 resize(640, 480 ); 1337 resize(640, 480 );
1336 updatePossible = true; 1338 updatePossible = true;
1337#endif 1339#endif
1338 computeLayout(); 1340 computeLayout();
1339 1341
1340 if ( mShowWeekView ) 1342 if ( mShowWeekView )
1341 mWidStack->raiseWidget( mWeekView ); 1343 mWidStack->raiseWidget( mWeekView );
1342 else 1344 else
1343 mWidStack->raiseWidget( mMonthView ); 1345 mWidStack->raiseWidget( mMonthView );
1344} 1346}
1345 1347
1346KOMonthView::~KOMonthView() 1348KOMonthView::~KOMonthView()
1347{ 1349{
1348 delete mContextMenu; 1350 delete mContextMenu;
1349} 1351}
1350 1352
1353void KOMonthView::catChanged( Incidence * )
1354{
1355 updateView();
1356}
1351void KOMonthView::incidenceHighlighted( Incidence * inc , MonthViewCell* mc, int mday ) 1357void KOMonthView::incidenceHighlighted( Incidence * inc , MonthViewCell* mc, int mday )
1352{ 1358{
1353 static Incidence * lastInc = 0; 1359 static Incidence * lastInc = 0;
1354 static MonthViewCell * lastCell = 0; 1360 static MonthViewCell * lastCell = 0;
1355 1361
1356 if ( lastInc == inc && lastCell == mc ) 1362 if ( lastInc == inc && lastCell == mc )
1357 return; 1363 return;
1358 lastInc = inc; 1364 lastInc = inc;
1359 lastCell = mc; 1365 lastCell = mc;
1360 //qDebug("KOMonthView::incidenceHighlighted %d %d %d", inc, mc, mday ); 1366 //qDebug("KOMonthView::incidenceHighlighted %d %d %d", inc, mc, mday );
1361 1367
1362 bool weekview = false; 1368 bool weekview = false;
1363 int index = 0; 1369 uint index = 0;
1364 for (uint i = 0; i < mCellsW.count(); ++i) { 1370 for (uint i = 0; i < mCellsW.count(); ++i) {
1365 if ( mCellsW[i] == mc ) { 1371 if ( mCellsW[i] == mc ) {
1366 weekview = true; 1372 weekview = true;
1367 index = i; 1373 index = i;
1368 break; 1374 break;
1369 } 1375 }
1370 } 1376 }
1371 QPtrVector<MonthViewCell> *cells; 1377 QPtrVector<MonthViewCell> *cells;
1372 if ( weekview ) 1378 if ( weekview )
1373 cells = &mCellsW; 1379 cells = &mCellsW;
1374 else { 1380 else {
1375 for (uint i = 0; i < mCells.count(); ++i) { 1381 for (uint i = 0; i < mCells.count(); ++i) {
1376 if ( mCells[i] == mc ) { 1382 if ( mCells[i] == mc ) {
1377 index = i; 1383 index = i;
1378 break; 1384 break;
1379 } 1385 }
1380 } 1386 }
1381 cells = &mCells; 1387 cells = &mCells;
1382 } 1388 }
1383 for (uint i = 0; i < (*cells).count(); ++i) { 1389 for (uint i = 0; i < (*cells).count(); ++i) {
1384 (*cells)[i]->deHighLight(); 1390 (*cells)[i]->deHighLight();
1385 } 1391 }
1386 if ( ! inc ) 1392 if ( ! inc )
1387 return; 1393 return;
1388 1394
1389 int count = (*cells).count(); 1395 uint count = (*cells).count();
1390 bool goLeft = (mday > 1 && index > 0); 1396 bool goLeft = (mday > 1 && index > 0);
1391 bool goRight = (mday < 3 && mday > 0 && index < count -1); 1397 bool goRight = (mday < 3 && mday > 0 && index < count -1);
1392 for (uint iii = 1; iii < count; ++iii) { 1398 for (uint iii = 1; iii < count; ++iii) {
1393 if ( goLeft ) { 1399 if ( goLeft ) {
1394 int left = index - iii; 1400 int left = index - iii;
1395 if ( left >= 0 ) { 1401 if ( left >= 0 ) {
1396 if ( (*cells)[(uint)left]->doHighLight(inc) ) 1402 if ( (*cells)[(uint)left]->doHighLight(inc) )
1397 goLeft = false; 1403 goLeft = false;
1398 } else 1404 } else
1399 goLeft = false; 1405 goLeft = false;
1400 } 1406 }
1401 if ( goRight ) { 1407 if ( goRight ) {
1402 int right = index + iii; 1408 uint right = index + iii;
1403 if ( right < count ) { 1409 if ( right < count ) {
1404 if ( (*cells)[right]->doHighLight(inc) ) 1410 if ( (*cells)[right]->doHighLight(inc) )
1405 goRight = false; 1411 goRight = false;
1406 1412
1407 } else 1413 } else
1408 goRight = false; 1414 goRight = false;
1409 } 1415 }
1410 1416
1411 } 1417 }
1412#if 0 1418#if 0
1413 if ( mday > 1 && index > 0 ) 1419 if ( mday > 1 && index > 0 )
1414 for (int i = index-1; i >= 0; --i) { 1420 for (int i = index-1; i >= 0; --i) {
1415 //qDebug("index %d iii %d ", index, i); 1421 //qDebug("index %d iii %d ", index, i);
1416 if ( (*cells)[(uint)i]->doHighLight(inc) ) 1422 if ( (*cells)[(uint)i]->doHighLight(inc) )
1417 break; 1423 break;
1418 } 1424 }
1419 if ( mday < 3 && mday > 0 && index < (*cells).count()-1) 1425 if ( mday < 3 && mday > 0 && index < (*cells).count()-1)
1420 for (uint i = index+1; i < (*cells).count(); ++i) { 1426 for (uint i = index+1; i < (*cells).count(); ++i) {
1421 if ( (*cells)[i]->doHighLight(inc) ) 1427 if ( (*cells)[i]->doHighLight(inc) )
1422 break; 1428 break;
1423 } 1429 }
1424#endif 1430#endif
1425 1431
1426} 1432}
1427void KOMonthView::selectInternalWeekNum ( int n ) 1433void KOMonthView::selectInternalWeekNum ( int n )
1428{ 1434{
1429 switchView(); 1435 switchView();
1430 if ( !KOPrefs::instance()->mMonthViewWeek ) 1436 if ( !KOPrefs::instance()->mMonthViewWeek )
1431 emit selectMonth (); 1437 emit selectMonth ();
1432 else 1438 else
1433 emit selectWeekNum ( n ); 1439 emit selectWeekNum ( n );
1434} 1440}
1435 1441
1436int KOMonthView::currentWeek() 1442int KOMonthView::currentWeek()
1437{ 1443{
1438 if ( mShowWeekView ) 1444 if ( mShowWeekView )
1439 return mWeekLabelsW[0]->getWeekNum(); 1445 return mWeekLabelsW[0]->getWeekNum();
1440 return mWeekLabels[0]->getWeekNum(); 1446 return mWeekLabels[0]->getWeekNum();
1441} 1447}
1442void KOMonthView::switchView() 1448void KOMonthView::switchView()
1443{ 1449{
1444 if ( selectedCell( ) ) 1450 if ( selectedCell( ) )
1445 selectedCell()->deselect(); 1451 selectedCell()->deselect();
1446 mShowWeekView = !mShowWeekView; 1452 mShowWeekView = !mShowWeekView;
1447 KOPrefs::instance()->mMonthViewWeek = mShowWeekView; 1453 KOPrefs::instance()->mMonthViewWeek = mShowWeekView;
1448 if ( clPending ) { 1454 if ( clPending ) {
1449 computeLayout(); 1455 computeLayout();
1450 updateConfig(); 1456 updateConfig();
1451 } 1457 }
1452 if ( mShowWeekView ) 1458 if ( mShowWeekView )
1453 mWidStack->raiseWidget( mWeekView ); 1459 mWidStack->raiseWidget( mWeekView );
1454 else 1460 else
1455 mWidStack->raiseWidget( mMonthView ); 1461 mWidStack->raiseWidget( mMonthView );
1456 clPending = false; 1462 clPending = false;
1457} 1463}
1458 1464
1459int KOMonthView::maxDatesHint() 1465int KOMonthView::maxDatesHint()
1460{ 1466{
1461 return mNumCells; 1467 return mNumCells;
1462} 1468}
1463 1469
1464int KOMonthView::currentDateCount() 1470int KOMonthView::currentDateCount()
1465{ 1471{
1466 return mNumCells; 1472 return mNumCells;
1467} 1473}
1468 1474
1469QPtrList<Incidence> KOMonthView::selectedIncidences() 1475QPtrList<Incidence> KOMonthView::selectedIncidences()
1470{ 1476{
1471 QPtrList<Incidence> selected; 1477 QPtrList<Incidence> selected;
1472 1478
1473 if ( mSelectedCell ) { 1479 if ( mSelectedCell ) {
1474 Incidence *incidence = mSelectedCell->selectedIncidence(); 1480 Incidence *incidence = mSelectedCell->selectedIncidence();
1475 if ( incidence ) selected.append( incidence ); 1481 if ( incidence ) selected.append( incidence );
1476 } 1482 }
1477 1483
1478 return selected; 1484 return selected;
1479} 1485}
1480 1486
1481DateList KOMonthView::selectedDates() 1487DateList KOMonthView::selectedDates()
1482{ 1488{
1483 DateList selected; 1489 DateList selected;
1484 1490
1485 if ( mSelectedCell ) { 1491 if ( mSelectedCell ) {
1486 QDate qd = mSelectedCell->selectedIncidenceDate(); 1492 QDate qd = mSelectedCell->selectedIncidenceDate();
1487 if ( qd.isValid() ) selected.append( qd ); 1493 if ( qd.isValid() ) selected.append( qd );
1488 } 1494 }
1489 1495
1490 return selected; 1496 return selected;
1491} 1497}
1492 1498#if 0
1493void KOMonthView::printPreview(CalPrinter *calPrinter, const QDate &fd, 1499void KOMonthView::printPreview(CalPrinter *calPrinter, const QDate &fd,
1494 const QDate &td) 1500 const QDate &td)
1495{ 1501{
1496#ifndef KORG_NOPRINTER 1502#ifndef KORG_NOPRINTER
1497 calPrinter->preview(CalPrinter::Month, fd, td); 1503 calPrinter->preview(CalPrinter::Month, fd, td);
1498#endif 1504#endif
1499} 1505}
1500 1506#endif
1501void KOMonthView::updateConfig() 1507void KOMonthView::updateConfig()
1502{ 1508{
1503 1509
1504 int mWeekStartsMonday = KGlobal::locale()->weekStartsMonday(); 1510 int mWeekStartsMonday = KGlobal::locale()->weekStartsMonday();
1505 1511
1506 if ( mShowWeekView || KOPrefs::instance()->mMonthViewSatSunTog ) { 1512 if ( mShowWeekView || KOPrefs::instance()->mMonthViewSatSunTog ) {
1507 mWeekStartsMonday = true; 1513 mWeekStartsMonday = true;
1508 } 1514 }
1509 QFontMetrics fontmetric(mDayLabels[0]->font()); 1515 QFontMetrics fontmetric(mDayLabels[0]->font());
1510 mWidthLongDayLabel = 0; 1516 mWidthLongDayLabel = 0;
1511 1517
1512 for (int i = 0; i < 7; i++) { 1518 for (int i = 0; i < 7; i++) {
1513 int width = fontmetric.width(KOGlobals::self()->calendarSystem()->weekDayName(i+1)); 1519 int width = fontmetric.width(KOGlobals::self()->calendarSystem()->weekDayName(i+1));
1514 if ( width > mWidthLongDayLabel ) mWidthLongDayLabel = width; 1520 if ( width > mWidthLongDayLabel ) mWidthLongDayLabel = width;
1515 } 1521 }
1516 bool temp = mShowSatSunComp ; 1522 bool temp = mShowSatSunComp ;
1517 mShowSatSunComp = KOPrefs::instance()->mMonthViewSatSunTog ; 1523 mShowSatSunComp = KOPrefs::instance()->mMonthViewSatSunTog ;
1518 if ( ! mShowWeekView ) { 1524 if ( ! mShowWeekView ) {
1519 if ( temp != KOPrefs::instance()->mMonthViewSatSunTog ) 1525 if ( temp != KOPrefs::instance()->mMonthViewSatSunTog )
1520 computeLayout(); 1526 computeLayout();
1521 } 1527 }
1522 updateDayLabels(); 1528 updateDayLabels();
1523 //qDebug("KOMonthView::updateConfig() %d %d %d ",height(), mDayLabels[0]->sizeHint().height() ,mNumWeeks); 1529 //qDebug("KOMonthView::updateConfig() %d %d %d ",height(), mDayLabels[0]->sizeHint().height() ,mNumWeeks);
1524 //int cellHeight = (height() - mDayLabels[0]->sizeHint().height()) /mNumWeeks; 1530 //int cellHeight = (height() - mDayLabels[0]->sizeHint().height()) /mNumWeeks;
1525 //resizeEvent( 0 ); 1531 //resizeEvent( 0 );
1526 for (uint i = 0; i < mCells.count(); ++i) { 1532 for (uint i = 0; i < mCells.count(); ++i) {
1527 mCells[i]->updateConfig(); 1533 mCells[i]->updateConfig();
1528 } 1534 }
1529 1535
1530 for (uint i = 0; i < mCellsW.count(); ++i) { 1536 for (uint i = 0; i < mCellsW.count(); ++i) {
1531 mCellsW[i]->updateConfig(KOPrefs::instance()->mMonthViewUsesBigFont); 1537 mCellsW[i]->updateConfig(KOPrefs::instance()->mMonthViewUsesBigFont);
1532 } 1538 }
1533#ifdef DESKTOP_VERSION 1539#ifdef DESKTOP_VERSION
1534 MonthViewCell::toolTipGroup()->setEnabled(KOPrefs::instance()->mEnableToolTips); 1540 MonthViewCell::toolTipGroup()->setEnabled(KOPrefs::instance()->mEnableToolTips);
1535#endif 1541#endif
1536 updateView(); 1542 updateView();
1537} 1543}
1538 1544
1539void KOMonthView::updateDayLabels() 1545void KOMonthView::updateDayLabels()
1540{ 1546{
1541 1547
1542 QPtrVector<QLabel> *mDayLabelsT; 1548 QPtrVector<QLabel> *mDayLabelsT;
1543 1549
1544 mDayLabelsT = &mDayLabelsW; 1550 mDayLabelsT = &mDayLabelsW;
1545 for (int i = 0; i < 7; i++) { 1551 for (int i = 0; i < 7; i++) {
1546 { 1552 {
1547 bool show = mShortDayLabelsW; 1553 bool show = mShortDayLabelsW;
1548 if ( i > 4 && mShowSatSunComp && mWidthLongDayLabel > (*mDayLabelsT)[i]->width() ) 1554 if ( i > 4 && mShowSatSunComp && mWidthLongDayLabel > (*mDayLabelsT)[i]->width() )
1549 show = true; 1555 show = true;
1550 (*mDayLabelsT)[i]->setText(KOGlobals::self()->calendarSystem()->weekDayName(i+1,show)); 1556 (*mDayLabelsT)[i]->setText(KOGlobals::self()->calendarSystem()->weekDayName(i+1,show));
1551 } 1557 }
1552 } 1558 }
1553 mDayLabelsT = &mDayLabels; 1559 mDayLabelsT = &mDayLabels;
1554 for (int i = 0; i < 7; i++) { 1560 for (int i = 0; i < 7; i++) {
1555 if (KGlobal::locale()->weekStartsMonday() || KOPrefs::instance()->mMonthViewSatSunTog ) { 1561 if (KGlobal::locale()->weekStartsMonday() || KOPrefs::instance()->mMonthViewSatSunTog ) {
1556 bool show = mShortDayLabelsM; 1562 bool show = mShortDayLabelsM;
1557 if ( i > 4 && mShowSatSunComp && mWidthLongDayLabel > (*mDayLabelsT)[i]->width() ) 1563 if ( i > 4 && mShowSatSunComp && mWidthLongDayLabel > (*mDayLabelsT)[i]->width() )
1558 show = true; 1564 show = true;
1559 (*mDayLabelsT)[i]->setText(KOGlobals::self()->calendarSystem()->weekDayName(i+1,show)); 1565 (*mDayLabelsT)[i]->setText(KOGlobals::self()->calendarSystem()->weekDayName(i+1,show));
1560 } else { 1566 } else {
1561 if (i==0) (*mDayLabelsT)[i]->setText(KOGlobals::self()->calendarSystem()->weekDayName(7,mShortDayLabelsM)); 1567 if (i==0) (*mDayLabelsT)[i]->setText(KOGlobals::self()->calendarSystem()->weekDayName(7,mShortDayLabelsM));
1562 else (*mDayLabelsT)[i]->setText(KOGlobals::self()->calendarSystem()->weekDayName(i,mShortDayLabelsM)); 1568 else (*mDayLabelsT)[i]->setText(KOGlobals::self()->calendarSystem()->weekDayName(i,mShortDayLabelsM));
1563 1569
1564 } 1570 }
1565 } 1571 }
1566 1572
1567} 1573}
1568 1574
1569void KOMonthView::clearList() 1575void KOMonthView::clearList()
1570{ 1576{
1571 unsigned int i; 1577 unsigned int i;
1572 for( i = 0; i < mCells.size(); ++i ) { 1578 for( i = 0; i < mCells.size(); ++i ) {
1573 mCells[i]->clear(); 1579 mCells[i]->clear();
1574 } 1580 }
1575 for( i = 0; i < mCellsW.size(); ++i ) { 1581 for( i = 0; i < mCellsW.size(); ++i ) {
1576 mCellsW[i]->clear(); 1582 mCellsW[i]->clear();
1577 } 1583 }
1578} 1584}
1579void KOMonthView::showDates(const QDate &start, const QDate &) 1585void KOMonthView::showDates(const QDate &start, const QDate &)
1580{ 1586{
1581 // kdDebug() << "KOMonthView::showDates(): " << start.toString() << endl; 1587 // kdDebug() << "KOMonthView::showDates(): " << start.toString() << endl;
1582 1588
1583 QPtrVector<MonthViewCell> *cells; 1589 QPtrVector<MonthViewCell> *cells;
1584 QPtrVector<QLabel> *dayLabels; 1590 QPtrVector<QLabel> *dayLabels;
1585 QPtrVector<KOWeekButton> *weekLabels; 1591 QPtrVector<KOWeekButton> *weekLabels;
1586 int weekNum = 6; 1592 uint weekNum = 6;
1587 mStartDate = start; 1593 mStartDate = start;
1588 if ( mShowWeekView ) { 1594 if ( mShowWeekView ) {
1589 weekNum = 1; 1595 weekNum = 1;
1590 cells = &mCellsW; 1596 cells = &mCellsW;
1591 dayLabels = &mDayLabelsW; 1597 dayLabels = &mDayLabelsW;
1592 weekLabels = &mWeekLabelsW; 1598 weekLabels = &mWeekLabelsW;
1593 if ( !KGlobal::locale()->weekStartsMonday() ) { 1599 if ( !KGlobal::locale()->weekStartsMonday() ) {
1594 mStartDate = mStartDate.addDays( 1 ); 1600 mStartDate = mStartDate.addDays( 1 );
1595 } 1601 }
1596 } else { 1602 } else {
1597 cells = &mCells; 1603 cells = &mCells;
1598 dayLabels = &mDayLabels; 1604 dayLabels = &mDayLabels;
1599 weekLabels = &mWeekLabels; 1605 weekLabels = &mWeekLabels;
1600 } 1606 }
1601 1607
1602 int mWeekStartsMonday = KGlobal::locale()->weekStartsMonday(); 1608 int mWeekStartsMonday = KGlobal::locale()->weekStartsMonday();
1603 1609
1604 if ( mShowWeekView || KOPrefs::instance()->mMonthViewSatSunTog ) { 1610 if ( mShowWeekView || KOPrefs::instance()->mMonthViewSatSunTog ) {
1605 mWeekStartsMonday = true; 1611 mWeekStartsMonday = true;
1606 } 1612 }
1607 int startWeekDay = mWeekStartsMonday ? 1 : 7; 1613 int startWeekDay = mWeekStartsMonday ? 1 : 7;
1608 1614
1609 while( KOGlobals::self()->calendarSystem()->dayOfWeek(mStartDate) != startWeekDay ) { 1615 while( KOGlobals::self()->calendarSystem()->dayOfWeek(mStartDate) != startWeekDay ) {
1610 mStartDate = mStartDate.addDays( -1 ); 1616 mStartDate = mStartDate.addDays( -1 );
1611 } 1617 }
1612 bool primary = false;
1613 uint i; 1618 uint i;
1614 for( i = 0; i < (*cells).size(); ++i ) { 1619 for( i = 0; i < (*cells).size(); ++i ) {
1615 QDate date = mStartDate.addDays( i ); 1620 QDate date = mStartDate.addDays( i );
1616 (*cells)[i]->setDate( date ); 1621 (*cells)[i]->setDate( date );
1617 1622
1618#ifndef KORG_NOPLUGINS 1623#ifndef KORG_NOPLUGINS
1619 // add holiday, if present 1624 // add holiday, if present
1620 QString hstring(KOCore::self()->holiday(date)); 1625 QString hstring(KOCore::self()->holiday(date));
1621 (*cells)[i]->setHoliday( hstring ); 1626 (*cells)[i]->setHoliday( hstring );
1622#endif 1627#endif
1623 1628
1624 } 1629 }
1625 QDate date = mStartDate.addDays( mWeekStartsMonday ? 3 : 4 ); 1630 QDate date = mStartDate.addDays( mWeekStartsMonday ? 3 : 4 );
1626 for( i = 0; i < weekNum; ++i ) { 1631 for( i = 0; i < weekNum; ++i ) {
1627 int wno; 1632 int wno;
1628 // remember, according to ISO 8601, the first week of the year is the 1633 // remember, according to ISO 8601, the first week of the year is the
1629 // first week that contains a thursday. Thus we must subtract off 4, 1634 // first week that contains a thursday. Thus we must subtract off 4,
1630 // not just 1. 1635 // not just 1.
1631 int dayOfYear = date.dayOfYear(); 1636 int dayOfYear = date.dayOfYear();
1632 if (dayOfYear % 7 != 0) 1637 if (dayOfYear % 7 != 0)
1633 wno = dayOfYear / 7 + 1; 1638 wno = dayOfYear / 7 + 1;
1634 else 1639 else
1635 wno =dayOfYear / 7; 1640 wno =dayOfYear / 7;
1636 (*weekLabels)[i]->setWeekNum( wno ); 1641 (*weekLabels)[i]->setWeekNum( wno );
1637 date = date.addDays( 7 ); 1642 date = date.addDays( 7 );
1638 } 1643 }
1639 updateView(); 1644 updateView();
1640} 1645}
1641 1646
1642void KOMonthView::showEvents(QPtrList<Event>) 1647void KOMonthView::showEvents(QPtrList<Event>)
1643{ 1648{
1644 qDebug("KOMonthView::selectEvents is not implemented yet. "); 1649 qDebug("KOMonthView::selectEvents is not implemented yet. ");
1645} 1650}
1646 1651
1647void KOMonthView::changeEventDisplay(Event *, int) 1652void KOMonthView::changeEventDisplay(Event *, int)
1648{ 1653{
1649 // this should be re-written to be much more efficient, but this 1654 // this should be re-written to be much more efficient, but this
1650 // quick-and-dirty-hack gets the job done for right now. 1655 // quick-and-dirty-hack gets the job done for right now.
1651 //qDebug("KOMonthView::changeEventDisplay "); 1656 //qDebug("KOMonthView::changeEventDisplay ");
1652 updateView(); 1657 updateView();
1653} 1658}
1654 1659
1655void KOMonthView::updateView() 1660void KOMonthView::updateView()
1656{ 1661{
1657 1662
1658 if ( !updatePossible ) 1663 if ( !updatePossible )
1659 return; 1664 return;
1660 //qDebug("UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU "); 1665 //qDebug("UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU ");
1661 //QTime ti; 1666 //QTime ti;
1662 //ti.start(); 1667 //ti.start();
1663 clearSelection(); 1668 clearSelection();
1664 QPtrVector<MonthViewCell> *cells; 1669 QPtrVector<MonthViewCell> *cells;
1665 if ( mShowWeekView ) { 1670 if ( mShowWeekView ) {
1666 cells = &mCellsW; 1671 cells = &mCellsW;
1667 } else { 1672 } else {
1668 cells = &mCells; 1673 cells = &mCells;
1669 } 1674 }
1670#if 1 1675#if 1
1671 int i; 1676 int i;
1672 int timeSpan = (*cells).size()-1; 1677 int timeSpan = (*cells).size()-1;
1673 if ( KOPrefs::instance()->mMonthViewWeek ) 1678 if ( KOPrefs::instance()->mMonthViewWeek )
1674 timeSpan = 6; 1679 timeSpan = 6;
1675 for( i = 0; i < timeSpan + 1; ++i ) { 1680 for( i = 0; i < timeSpan + 1; ++i ) {
1676 (*cells)[i]->startUpdateCell(); 1681 (*cells)[i]->startUpdateCell();
1677 } 1682 }
1678 1683
1679 QPtrList<Event> events = calendar()->events(); 1684 QPtrList<Event> events = calendar()->events();
1680 Event *event; 1685 Event *event;
1681 QDateTime dt; 1686 QDateTime dt;
1682 bool ok;
1683 QDate endDate = mStartDate.addDays( timeSpan ); 1687 QDate endDate = mStartDate.addDays( timeSpan );
1684 for( event = events.first(); event; event = events.next() ) { // for event 1688 for( event = events.first(); event; event = events.next() ) { // for event
1685 if ( event->doesRecur() ) { 1689 if ( event->doesRecur() ) {
1686 bool last; 1690 bool last;
1687 QDateTime incidenceStart = event->recurrence()->getPreviousDateTime( QDateTime( mStartDate ) , &last ); 1691 QDateTime incidenceStart = event->recurrence()->getPreviousDateTime( QDateTime( mStartDate ) , &last );
1688 QDateTime incidenceEnd; 1692 QDateTime incidenceEnd;
1689 int eventlen = event->dtStart().date().daysTo ( event->dtEnd().date() ); 1693 int eventlen = event->dtStart().date().daysTo ( event->dtEnd().date() );
1690 bool invalid = false; 1694 bool invalid = false;
1691 while( true ) { 1695 while( true ) {
1692 if ( incidenceStart.isValid() ) { 1696 if ( incidenceStart.isValid() ) {
1693 incidenceEnd = incidenceStart.addDays( eventlen ); 1697 incidenceEnd = incidenceStart.addDays( eventlen );
1694 int st = incidenceStart.date().daysTo( endDate ); 1698 int st = incidenceStart.date().daysTo( endDate );
1695 if ( st >= 0 ) { // start before timeend 1699 if ( st >= 0 ) { // start before timeend
1696 int end = mStartDate.daysTo( incidenceEnd.date() ); 1700 int end = mStartDate.daysTo( incidenceEnd.date() );
1697 if ( end >= 0 ) { // end after timestart --- got one! 1701 if ( end >= 0 ) { // end after timestart --- got one!
1698 //normalize 1702 //normalize
1699 st = timeSpan - st; 1703 st = timeSpan - st;
1700 if ( st < 0 ) st = 0; 1704 if ( st < 0 ) st = 0;
1701 if ( end > timeSpan ) end = timeSpan; 1705 if ( end > timeSpan ) end = timeSpan;
1702 int iii; 1706 int iii;
1703 //qDebug("found %s %d %d ",event->summary().latin1(), st, end ); 1707 //qDebug("found %s %d %d ",event->summary().latin1(), st, end );
1704 for ( iii = st;iii<= end;++iii) 1708 for ( iii = st;iii<= end;++iii)
1705 (*cells)[iii]->insertEvent( event ); 1709 (*cells)[iii]->insertEvent( event );
1706 } 1710 }
1707 } 1711 }
1708 } else { 1712 } else {
1709 if ( invalid ) 1713 if ( invalid )
1710 break; 1714 break;
1711 invalid = true; 1715 invalid = true;
1712 //qDebug("invalid %s", event->summary().latin1()); 1716 //qDebug("invalid %s", event->summary().latin1());
1713 incidenceStart = QDateTime( mStartDate ).addSecs( -2 );; 1717 incidenceStart = QDateTime( mStartDate ).addSecs( -2 );;
1714 } 1718 }
1715 if ( last ) 1719 if ( last )
1716 break; 1720 break;
1717 bool ok; 1721 bool ok;
1718 incidenceStart = event->getNextOccurence( incidenceStart.addSecs( 1 ) ,&ok ); 1722 incidenceStart = event->getNextOccurence( incidenceStart.addSecs( 1 ) ,&ok );
1719 if ( ! ok ) 1723 if ( ! ok )
1720 break; 1724 break;
1721 if ( incidenceStart.date() > endDate ) 1725 if ( incidenceStart.date() > endDate )
1722 break; 1726 break;
1723 } 1727 }
1724 } else { // no recur 1728 } else { // no recur
1725 if ( !KOPrefs::instance()->mShowSyncEvents && event->uid().left(2) == QString("la") ) 1729 if ( !KOPrefs::instance()->mShowSyncEvents && event->uid().left(2) == QString("la") )
1726 if ( event->uid().left(15) == QString("last-syncEvent-") ) 1730 if ( event->uid().left(15) == QString("last-syncEvent-") )
1727 continue; 1731 continue;
1728 int st = event->dtStart().date().daysTo( endDate ); 1732 int st = event->dtStart().date().daysTo( endDate );
1729 if ( st >= 0 ) { // start before timeend 1733 if ( st >= 0 ) { // start before timeend
1730 int end = mStartDate.daysTo( event->dtEnd().date() ); 1734 int end = mStartDate.daysTo( event->dtEnd().date() );
@@ -1766,318 +1770,319 @@ void KOMonthView::updateView()
1766#else 1770#else
1767 // old code 1771 // old code
1768 //qDebug("+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ "); 1772 //qDebug("+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ");
1769 int i; 1773 int i;
1770 for( i = 0; i < (*cells).count(); ++i ) { 1774 for( i = 0; i < (*cells).count(); ++i ) {
1771 (*cells)[i]->updateCell(); 1775 (*cells)[i]->updateCell();
1772 } 1776 }
1773 1777
1774 //qDebug("KOMonthView::updateView() "); 1778 //qDebug("KOMonthView::updateView() ");
1775 processSelectionChange(); 1779 processSelectionChange();
1776 // qDebug("---------------------------------------------------------------------+ "); 1780 // qDebug("---------------------------------------------------------------------+ ");
1777 (*cells)[0]->setFocus(); 1781 (*cells)[0]->setFocus();
1778#endif 1782#endif
1779 1783
1780 //qDebug("update time %d ", ti.elapsed()); 1784 //qDebug("update time %d ", ti.elapsed());
1781} 1785}
1782 1786
1783void KOMonthView::setKeyBoardFocus() 1787void KOMonthView::setKeyBoardFocus()
1784{ 1788{
1785 //qDebug("KOMonthView::setKeyBoardFocus() "); 1789 //qDebug("KOMonthView::setKeyBoardFocus() ");
1786 bool shootAgain = false; 1790 bool shootAgain = false;
1787 if ( mShowWeekView ) { 1791 if ( mShowWeekView ) {
1788 shootAgain = !mWeekLabelsW[1]->hasFocus(); 1792 shootAgain = !mWeekLabelsW[1]->hasFocus();
1789 mWeekLabelsW[1]->setFocus(); 1793 mWeekLabelsW[1]->setFocus();
1790 } 1794 }
1791 else { 1795 else {
1792 shootAgain = !mWeekLabels[mNumWeeks]->hasFocus(); 1796 shootAgain = !mWeekLabels[mNumWeeks]->hasFocus();
1793 mWeekLabels[mNumWeeks]->setFocus(); 1797 mWeekLabels[mNumWeeks]->setFocus();
1794 } 1798 }
1795 --mKBFcounter; 1799 --mKBFcounter;
1796 if ( shootAgain && mKBFcounter > 0 ) { 1800 if ( shootAgain && mKBFcounter > 0 ) {
1797 QTimer::singleShot( 50, this, SLOT ( setKeyBoardFocus() ) ); 1801 QTimer::singleShot( 50, this, SLOT ( setKeyBoardFocus() ) );
1798 } 1802 }
1799} 1803}
1800void KOMonthView::setKeyBFocus() 1804void KOMonthView::setKeyBFocus()
1801{ 1805{
1802 //qDebug("KOMonthView::setKeyBFocus() "); 1806 //qDebug("KOMonthView::setKeyBFocus() ");
1803 mKBFcounter = 10; 1807 mKBFcounter = 10;
1804 QTimer::singleShot( 0, this, SLOT ( setKeyBoardFocus() ) ); 1808 QTimer::singleShot( 0, this, SLOT ( setKeyBoardFocus() ) );
1805} 1809}
1806void KOMonthView::resizeEvent(QResizeEvent * e) 1810void KOMonthView::resizeEvent(QResizeEvent * e)
1807{ 1811{
1808 //qDebug("KOMonthView::resizeEvent %d %d -- %d %d ", e->size().width(), e->size().height(), e->oldSize().width(), e->oldSize().height()); 1812 //qDebug("KOMonthView::resizeEvent %d %d -- %d %d ", e->size().width(), e->size().height(), e->oldSize().width(), e->oldSize().height());
1809 if ( isVisible() ) { 1813 if ( isVisible() ) {
1810 //qDebug("KOMonthView::isVisible "); 1814 //qDebug("KOMonthView::isVisible ");
1811 slotComputeLayout(); 1815 slotComputeLayout();
1812 } else 1816 } else
1813 mComputeLayoutTimer->start( 100 ); 1817 mComputeLayoutTimer->start( 100 );
1818 KOEventView::resizeEvent( e );
1814} 1819}
1815 1820
1816void KOMonthView::slotComputeLayout() 1821void KOMonthView::slotComputeLayout()
1817{ 1822{
1818 mComputeLayoutTimer->stop(); 1823 mComputeLayoutTimer->stop();
1819 //qDebug("KOMonthView::Post - resizeEvent %d %d ", width(), height() ); 1824 //qDebug("KOMonthView::Post - resizeEvent %d %d ", width(), height() );
1820 computeLayout(); 1825 computeLayout();
1821 clPending = true; 1826 clPending = true;
1822 setKeyBFocus(); 1827 setKeyBFocus();
1823} 1828}
1824void KOMonthView::computeLayoutWeek() 1829void KOMonthView::computeLayoutWeek()
1825{ 1830{
1826 static int lastWid = 0; 1831 static int lastWid = 0;
1827 static int lastHei = 0; 1832 static int lastHei = 0;
1828 int daysToShow; 1833 int daysToShow;
1829 bool combinedSatSun = false; 1834 bool combinedSatSun = false;
1830 if (mShowSatSunComp = KOPrefs::instance()->mMonthViewSatSunTog ) { 1835 if (mShowSatSunComp = KOPrefs::instance()->mMonthViewSatSunTog ) {
1831 daysToShow = 6; 1836 daysToShow = 6;
1832 combinedSatSun = true; 1837 combinedSatSun = true;
1833 } 1838 }
1834 int tWid = topLevelWidget()->size().width(); 1839 int tWid = topLevelWidget()->size().width();
1835 int tHei = topLevelWidget()->size().height(); 1840 int tHei = topLevelWidget()->size().height();
1836 1841
1837 int wid = width();//e 1842 int wid = width();//e
1838 int hei = height()-1-mNavigatorBar->height(); 1843 int hei = height()-1-mNavigatorBar->height();
1839 1844
1840 if ( ((wid *3)/2) < tWid && (( hei *3) /2) < tHei ) 1845 if ( ((wid *3)/2) < tWid && (( hei *3) /2) < tHei )
1841 return; 1846 return;
1842 1847
1843 if ( lastWid == width() && lastHei == height() ) { 1848 if ( lastWid == width() && lastHei == height() ) {
1844 //qDebug("KOListWeekView::No compute layout needed "); 1849 //qDebug("KOListWeekView::No compute layout needed ");
1845 return; 1850 return;
1846 } 1851 }
1847 lastWid = width(); 1852 lastWid = width();
1848 lastHei = height(); 1853 lastHei = height();
1849 1854
1850 1855
1851 if ( wid < hei ) 1856 if ( wid < hei )
1852 daysToShow = 2; 1857 daysToShow = 2;
1853 else 1858 else
1854 daysToShow = 3; 1859 daysToShow = 3;
1855 mShowSatSunComp = true; 1860 mShowSatSunComp = true;
1856 combinedSatSun = true; 1861 combinedSatSun = true;
1857 1862
1858 //qDebug("KOMonthView::computeLayout() WWW ------------------------------------ "); 1863 //qDebug("KOMonthView::computeLayout() WWW ------------------------------------ ");
1859 QFontMetrics fm ( mWeekLabels[0]->font() ); 1864 QFontMetrics fm ( mWeekLabels[0]->font() );
1860 int weeklabelwid = fm.width( "888" ); 1865 int weeklabelwid = fm.width( "888" );
1861 wid -= weeklabelwid; 1866 wid -= weeklabelwid;
1862 1867
1863 int colWid = wid / daysToShow; 1868 int colWid = wid / daysToShow;
1864 int lastCol = wid - ( colWid*6 );
1865 int dayLabelHei = mDayLabelsW[0]->sizeHint().height(); 1869 int dayLabelHei = mDayLabelsW[0]->sizeHint().height();
1866 int cellHei = (hei - (5- daysToShow )*dayLabelHei) /(5- daysToShow ); 1870 int cellHei = (hei - (5- daysToShow )*dayLabelHei) /(5- daysToShow );
1867 int colModulo = wid % daysToShow; 1871 int colModulo = wid % daysToShow;
1868 int rowModulo = (hei- (5- daysToShow )*dayLabelHei) % daysToShow-1; 1872 int rowModulo = (hei- (5- daysToShow )*dayLabelHei) % daysToShow-1;
1869 //qDebug("rowmod %d ", rowModulo); 1873 //qDebug("rowmod %d ", rowModulo);
1870 int i; 1874 int i;
1871 int x,y,w,h; 1875 int x,y,w,h;
1872 x= 0; 1876 x= 0;
1873 y= 0; 1877 y= 0;
1874 w = colWid; 1878 w = colWid;
1875 h = dayLabelHei ; 1879 h = dayLabelHei ;
1876 for ( i = 0; i < 7; i++) { 1880 for ( i = 0; i < 7; i++) {
1877 if ( i && !( i % daysToShow) && i < 6) { 1881 if ( i && !( i % daysToShow) && i < 6) {
1878 y += hei/(5-daysToShow); 1882 y += hei/(5-daysToShow);
1879 x = 0; 1883 x = 0;
1880 w = colWid; 1884 w = colWid;
1881 } 1885 }
1882 if ( ((i) % daysToShow) >= daysToShow-colModulo ) { 1886 if ( ((i) % daysToShow) >= daysToShow-colModulo ) {
1883 ++w; 1887 ++w;
1884 } 1888 }
1885 if ( i >= 5 ) { 1889 if ( i >= 5 ) {
1886 int wi = width() - x - weeklabelwid; 1890 int wi = width() - x - weeklabelwid;
1887 if ( i == 5 ) { 1891 if ( i == 5 ) {
1888 mDayLabelsW[i]->setGeometry( x+weeklabelwid,y,wi/2+wi%2,h); 1892 mDayLabelsW[i]->setGeometry( x+weeklabelwid,y,wi/2+wi%2,h);
1889 } else { 1893 } else {
1890 mDayLabelsW[i]->setGeometry( x+weeklabelwid,y,wi,h); 1894 mDayLabelsW[i]->setGeometry( x+weeklabelwid,y,wi,h);
1891 } 1895 }
1892 x = x - w + wi - (wi/2 ); 1896 x = x - w + wi - (wi/2 );
1893 } 1897 }
1894 else { 1898 else {
1895 int wi = w; 1899 int wi = w;
1896 if ( !(( i+1) % daysToShow)) { 1900 if ( !(( i+1) % daysToShow)) {
1897 wi = width() - x - weeklabelwid; 1901 wi = width() - x - weeklabelwid;
1898 } 1902 }
1899 mDayLabelsW[i]->setGeometry( x+weeklabelwid,y,wi,h); 1903 mDayLabelsW[i]->setGeometry( x+weeklabelwid,y,wi,h);
1900 } 1904 }
1901 x += w; 1905 x += w;
1902 } 1906 }
1903 x= 0; 1907 x= 0;
1904 y= dayLabelHei; 1908 y= dayLabelHei;
1905 w = colWid; 1909 w = colWid;
1906 h = cellHei; 1910 h = cellHei;
1907 int max = 0; 1911 int max = 0;
1908 for ( i = 0; i < mCellsW.count(); ++i) { 1912 int w_count = mCellsW.count();
1913 for ( i = 0; i < w_count; ++i) {
1909 if ( i > 6 ) { 1914 if ( i > 6 ) {
1910 mCellsW[i]->hide(); 1915 mCellsW[i]->hide();
1911 continue; 1916 continue;
1912 } 1917 }
1913 1918
1914 w = colWid; 1919 w = colWid;
1915 if ( ((i) % daysToShow) >= daysToShow-colModulo ) { 1920 if ( ((i) % daysToShow) >= daysToShow-colModulo ) {
1916 ++w; 1921 ++w;
1917 } 1922 }
1918 if ( i == (daysToShow-1-rowModulo)*7) 1923 if ( i == (daysToShow-1-rowModulo)*7)
1919 ++h; 1924 ++h;
1920 1925
1921 if ( i >= 5 ) { 1926 if ( i >= 5 ) {
1922 if ( i ==5 ) { 1927 if ( i ==5 ) {
1923 max = h/2; 1928 max = h/2;
1924 mCellsW[i]->setGeometry ( x+weeklabelwid,y,w,max ); 1929 mCellsW[i]->setGeometry ( x+weeklabelwid,y,w,max );
1925 x -= w ;y += h/2; 1930 x -= w ;y += h/2;
1926 } else { 1931 } else {
1927 if ( ((i-1) % daysToShow) >= daysToShow-colModulo ) { 1932 if ( ((i-1) % daysToShow) >= daysToShow-colModulo ) {
1928 ++w; 1933 ++w;
1929 } 1934 }
1930 max = h-h/2; 1935 max = h-h/2;
1931 mCellsW[i]->setGeometry ( x+weeklabelwid,y,w,max ); 1936 mCellsW[i]->setGeometry ( x+weeklabelwid,y,w,max );
1932 y -= h/2; 1937 y -= h/2;
1933 } 1938 }
1934 } else { 1939 } else {
1935 max = h; 1940 max = h;
1936 mCellsW[i]->setGeometry ( x+weeklabelwid,y,w,h ); 1941 mCellsW[i]->setGeometry ( x+weeklabelwid,y,w,h );
1937 } 1942 }
1938 1943
1939 1944
1940 x += w; 1945 x += w;
1941 if ( x + w/2 > wid ) { 1946 if ( x + w/2 > wid ) {
1942 x = 0; 1947 x = 0;
1943 y += h+dayLabelHei ; 1948 y += h+dayLabelHei ;
1944 } 1949 }
1945 //mCellsW[i]->dateLabel()->setMaximumHeight( max - mCellsW[i]->lineWidth()*2 ); 1950 //mCellsW[i]->dateLabel()->setMaximumHeight( max - mCellsW[i]->lineWidth()*2 );
1946 } 1951 }
1947 y= dayLabelHei; 1952 y= dayLabelHei;
1948 h = cellHei ; 1953 h = cellHei ;
1949 mWeekLabelsW[0]->setGeometry( 0,y,weeklabelwid,hei-dayLabelHei); 1954 mWeekLabelsW[0]->setGeometry( 0,y,weeklabelwid,hei-dayLabelHei);
1950 mWeekLabelsW[1]->setGeometry( 0,0,weeklabelwid,dayLabelHei); 1955 mWeekLabelsW[1]->setGeometry( 0,0,weeklabelwid,dayLabelHei);
1951 // qDebug("RRRRRRRRRRRRR %d %d old %d %d", e->size().width(),e->size().height() , e->oldSize().width(),e->oldSize().height()); 1956 // qDebug("RRRRRRRRRRRRR %d %d old %d %d", e->size().width(),e->size().height() , e->oldSize().width(),e->oldSize().height());
1952 //qDebug("parent %d %d ", topLevelWidget()->size().width(), topLevelWidget()->size().height()); 1957 //qDebug("parent %d %d ", topLevelWidget()->size().width(), topLevelWidget()->size().height());
1953 mShortDayLabelsW = mDayLabelsW[0]->width()-2 < mWidthLongDayLabel ; 1958 mShortDayLabelsW = mDayLabelsW[0]->width()-2 < mWidthLongDayLabel ;
1954 updateDayLabels(); 1959 updateDayLabels();
1955 //bool forceUpdate = !updatePossible; 1960 //bool forceUpdate = !updatePossible;
1956 updatePossible = true; 1961 updatePossible = true;
1957 //mWeekLabels[mNumWeeks]->setText( i18n("M")); 1962 //mWeekLabels[mNumWeeks]->setText( i18n("M"));
1958 //if ( forceUpdate ) 1963 //if ( forceUpdate )
1959 // updateView(); 1964 // updateView();
1960} 1965}
1961void KOMonthView::computeLayout() 1966void KOMonthView::computeLayout()
1962{ 1967{
1963 1968
1964 1969
1965 static int lastWid = 0; 1970 static int lastWid = 0;
1966 static int lastHei = 0; 1971 static int lastHei = 0;
1967 1972
1968 if ( mShowWeekView ){ 1973 if ( mShowWeekView ){
1969 computeLayoutWeek(); 1974 computeLayoutWeek();
1970 return; 1975 return;
1971 } 1976 }
1972 int daysToShow = 7; 1977 int daysToShow = 7;
1973 bool combinedSatSun = false; 1978 bool combinedSatSun = false;
1974 if (mShowSatSunComp = KOPrefs::instance()->mMonthViewSatSunTog ) { 1979 if (mShowSatSunComp = KOPrefs::instance()->mMonthViewSatSunTog ) {
1975 daysToShow = 6; 1980 daysToShow = 6;
1976 combinedSatSun = true; 1981 combinedSatSun = true;
1977 } 1982 }
1978 int tWid = topLevelWidget()->size().width(); 1983 int tWid = topLevelWidget()->size().width();
1979 int tHei = topLevelWidget()->size().height(); 1984 int tHei = topLevelWidget()->size().height();
1980 1985
1981 int wid = width();//e 1986 int wid = width();//e
1982 int hei = height()-1-mNavigatorBar->height(); 1987 int hei = height()-1-mNavigatorBar->height();
1983 1988
1984 if ( ((wid *3)/2) < tWid && (( hei *3) /2) < tHei ) { 1989 if ( ((wid *3)/2) < tWid && (( hei *3) /2) < tHei ) {
1985 return; 1990 return;
1986 } 1991 }
1987 if ( lastWid == width() && lastHei == height() ){ 1992 if ( lastWid == width() && lastHei == height() ){
1988 //qDebug("KOMonthview::No compute layout needed "); 1993 //qDebug("KOMonthview::No compute layout needed ");
1989 return; 1994 return;
1990 } 1995 }
1991 1996
1992 lastWid = width(); 1997 lastWid = width();
1993 lastHei = height(); 1998 lastHei = height();
1994 //qDebug("KOMonthView::computeLayout() MMM ------------------- "); 1999 //qDebug("KOMonthView::computeLayout() MMM ------------------- ");
1995 QFontMetrics fm ( mWeekLabels[0]->font() ); 2000 QFontMetrics fm ( mWeekLabels[0]->font() );
1996 int weeklabelwid = fm.width( "888" ); 2001 int weeklabelwid = fm.width( "888" );
1997 wid -= weeklabelwid; 2002 wid -= weeklabelwid;
1998 2003
1999 int colWid = wid / daysToShow; 2004 int colWid = wid / daysToShow;
2000 int lastCol = wid - ( colWid*6 );
2001 int dayLabelHei = mDayLabels[0]->sizeHint().height(); 2005 int dayLabelHei = mDayLabels[0]->sizeHint().height();
2002 int cellHei = (hei - dayLabelHei) /6; 2006 int cellHei = (hei - dayLabelHei) /6;
2003 int colModulo = wid % daysToShow; 2007 int colModulo = wid % daysToShow;
2004 int rowModulo = (hei- dayLabelHei) % 6; 2008 int rowModulo = (hei- dayLabelHei) % 6;
2005 //qDebug("rowmod %d ", rowModulo); 2009 //qDebug("rowmod %d ", rowModulo);
2006 int i; 2010 int i;
2007 int x,y,w,h; 2011 int x,y,w,h;
2008 x= 0; 2012 x= 0;
2009 y= 0; 2013 y= 0;
2010 w = colWid; 2014 w = colWid;
2011 h = dayLabelHei ; 2015 h = dayLabelHei ;
2012 for ( i = 0; i < 7; i++) { 2016 for ( i = 0; i < 7; i++) {
2013 if ( i == daysToShow-colModulo ) 2017 if ( i == daysToShow-colModulo )
2014 ++w; 2018 ++w;
2015 if ( combinedSatSun ) { 2019 if ( combinedSatSun ) {
2016 if ( i >= daysToShow-1 ) { 2020 if ( i >= daysToShow-1 ) {
2017 2021
2018 if ( i == 6 ) 2022 if ( i == 6 )
2019 mDayLabels[i]->setGeometry( x+weeklabelwid,y,width()-x-weeklabelwid,h); 2023 mDayLabels[i]->setGeometry( x+weeklabelwid,y,width()-x-weeklabelwid,h);
2020 else 2024 else
2021 mDayLabels[i]->setGeometry( x+weeklabelwid,y,w/2,h); 2025 mDayLabels[i]->setGeometry( x+weeklabelwid,y,w/2,h);
2022 x -= w/2 ; 2026 x -= w/2 ;
2023 } 2027 }
2024 else 2028 else
2025 mDayLabels[i]->setGeometry( x+weeklabelwid,y,w,h); 2029 mDayLabels[i]->setGeometry( x+weeklabelwid,y,w,h);
2026 } else 2030 } else
2027 mDayLabels[i]->setGeometry( x+weeklabelwid,y,w,h); 2031 mDayLabels[i]->setGeometry( x+weeklabelwid,y,w,h);
2028 x += w; 2032 x += w;
2029 } 2033 }
2030 x= 0; 2034 x= 0;
2031 y= dayLabelHei; 2035 y= dayLabelHei;
2032 w = colWid; 2036 w = colWid;
2033 h = cellHei ; 2037 h = cellHei ;
2034 int max = 0; 2038 int max = 0;
2035 for ( i = 0; i < mCells.count(); ++i) { 2039 int mc_count = mCells.count();
2040 for ( i = 0; i < mc_count; ++i) {
2036 //qDebug("iii %d ", i); 2041 //qDebug("iii %d ", i);
2037 w = colWid; 2042 w = colWid;
2038 if ( ((i) % 7) >= 7-colModulo ) { 2043 if ( ((i) % 7) >= 7-colModulo ) {
2039 ++w; 2044 ++w;
2040 } 2045 }
2041 if ( i == (6-rowModulo)*7) 2046 if ( i == (6-rowModulo)*7)
2042 ++h; 2047 ++h;
2043 if ( combinedSatSun ) { 2048 if ( combinedSatSun ) {
2044 if ( (i)%7 >= daysToShow-1 ) { 2049 if ( (i)%7 >= daysToShow-1 ) {
2045 if ( (i)%7 == daysToShow-1 ) { 2050 if ( (i)%7 == daysToShow-1 ) {
2046 w = width()-x-weeklabelwid; 2051 w = width()-x-weeklabelwid;
2047 max = h/2; 2052 max = h/2;
2048 mCells[i]->setGeometry ( x+weeklabelwid,y,w,max ); 2053 mCells[i]->setGeometry ( x+weeklabelwid,y,w,max );
2049 x -= w ;y += h/2; 2054 x -= w ;y += h/2;
2050 } else { 2055 } else {
2051 w = width()-x-weeklabelwid; 2056 w = width()-x-weeklabelwid;
2052 max = h-h/2; 2057 max = h-h/2;
2053 mCells[i]->setGeometry ( x+weeklabelwid,y,w,max ); 2058 mCells[i]->setGeometry ( x+weeklabelwid,y,w,max );
2054 y -= h/2; 2059 y -= h/2;
2055 } 2060 }
2056 } else { 2061 } else {
2057 max = h; 2062 max = h;
2058 mCells[i]->setGeometry ( x+weeklabelwid,y,w,h ); 2063 mCells[i]->setGeometry ( x+weeklabelwid,y,w,h );
2059 } 2064 }
2060 2065
2061 } 2066 }
2062 else { 2067 else {
2063 max = h; 2068 max = h;
2064 mCells[i]->setGeometry ( x+weeklabelwid,y,w,h ); 2069 mCells[i]->setGeometry ( x+weeklabelwid,y,w,h );
2065 } 2070 }
2066 x += w; 2071 x += w;
2067 if ( x + w/2 > wid ) { 2072 if ( x + w/2 > wid ) {
2068 x = 0; 2073 x = 0;
2069 y += h; 2074 y += h;
2070 } 2075 }
2071 //mCells[i]->dateLabel()->setMaximumHeight( max- mCells[i]->lineWidth()*2 ); 2076 //mCells[i]->dateLabel()->setMaximumHeight( max- mCells[i]->lineWidth()*2 );
2072 } 2077 }
2073 y= dayLabelHei; 2078 y= dayLabelHei;
2074 h = cellHei ; 2079 h = cellHei ;
2075 for ( i = 0; i < 6; i++) { 2080 for ( i = 0; i < 6; i++) {
2076 if ( i == (6-rowModulo)) 2081 if ( i == (6-rowModulo))
2077 ++h; 2082 ++h;
2078 mWeekLabels[i]->setGeometry( 0,y,weeklabelwid,h); 2083 mWeekLabels[i]->setGeometry( 0,y,weeklabelwid,h);
2079 y += h; 2084 y += h;
2080 } 2085 }
2081 mWeekLabels[6]->setGeometry( 0,0,weeklabelwid,dayLabelHei); 2086 mWeekLabels[6]->setGeometry( 0,0,weeklabelwid,dayLabelHei);
2082 // qDebug("RRRRRRRRRRRRR %d %d old %d %d", e->size().width(),e->size().height() , e->oldSize().width(),e->oldSize().height()); 2087 // qDebug("RRRRRRRRRRRRR %d %d old %d %d", e->size().width(),e->size().height() , e->oldSize().width(),e->oldSize().height());
2083 //qDebug("parent %d %d ", topLevelWidget()->size().width(), topLevelWidget()->size().height()); 2088 //qDebug("parent %d %d ", topLevelWidget()->size().width(), topLevelWidget()->size().height());
@@ -2165,86 +2170,86 @@ void KOMonthView::keyPressEvent ( QKeyEvent * e )
2165 mFlagKeyPressed = true; 2170 mFlagKeyPressed = true;
2166 switch(e->key()) { 2171 switch(e->key()) {
2167 case Key_Up: 2172 case Key_Up:
2168 { 2173 {
2169 if ( mShowWeekView ) { 2174 if ( mShowWeekView ) {
2170 emit selectWeekNum ( currentWeek() - 1 ); 2175 emit selectWeekNum ( currentWeek() - 1 );
2171 } 2176 }
2172 else { 2177 else {
2173 emit prevMonth(); 2178 emit prevMonth();
2174 } 2179 }
2175 } 2180 }
2176 e->accept(); 2181 e->accept();
2177 break; 2182 break;
2178 case Key_Down: 2183 case Key_Down:
2179 { 2184 {
2180 if ( mShowWeekView ) { 2185 if ( mShowWeekView ) {
2181 emit selectWeekNum ( currentWeek() +1); 2186 emit selectWeekNum ( currentWeek() +1);
2182 } 2187 }
2183 else { 2188 else {
2184 emit nextMonth(); 2189 emit nextMonth();
2185 } 2190 }
2186 2191
2187 } 2192 }
2188 e->accept(); 2193 e->accept();
2189 break; 2194 break;
2190 case Key_Return: 2195 case Key_Return:
2191 case Key_Enter: 2196 case Key_Enter:
2192 { 2197 {
2193 selectInternalWeekNum ( currentWeek() ); 2198 selectInternalWeekNum ( currentWeek() );
2194 } 2199 }
2195 e->accept(); 2200 e->accept();
2196 break; 2201 break;
2197 case Key_D: 2202 case Key_D:
2198 if ( mSelectedCell ) { 2203 if ( mSelectedCell ) {
2199 mSelectedCell->showDay(); 2204 mSelectedCell->showDay();
2200 e->accept(); 2205 e->accept();
2201 } else { 2206 } else {
2202 e->ignore(); 2207 e->ignore();
2203 } 2208 }
2204 break; 2209 break;
2205 default: 2210 default:
2206 e->ignore(); 2211 e->ignore();
2207 break; 2212 break;
2208 } 2213 }
2209} 2214}
2210 2215
2211void KOMonthView::nextCell() 2216void KOMonthView::nextCell()
2212{ 2217{
2213 bool res = focusNextPrevChild ( true ); 2218 focusNextPrevChild ( true );
2214} 2219}
2215void KOMonthView::prevCell() 2220void KOMonthView::prevCell()
2216{ 2221{
2217 focusNextPrevChild ( false ); 2222 focusNextPrevChild ( false );
2218} 2223}
2219 2224
2220void KOMonthView::slotNewTodo() 2225void KOMonthView::slotNewTodo()
2221{ 2226{
2222 //qDebug("KOMonthView::slotNewTodo() "); 2227 //qDebug("KOMonthView::slotNewTodo() ");
2223 if ( mPopupCell ){ 2228 if ( mPopupCell ){
2224 QDateTime dt( mPopupCell->date(), QTime( KOPrefs::instance()->mStartTime, 0 ) ); 2229 QDateTime dt( mPopupCell->date(), QTime( KOPrefs::instance()->mStartTime, 0 ) );
2225 emit newTodoSignal(dt,true); 2230 emit newTodoSignal(dt,true);
2226 } 2231 }
2227 mPopupCell = 0; 2232 mPopupCell = 0;
2228} 2233}
2229void KOMonthView::slotNewEvent() 2234void KOMonthView::slotNewEvent()
2230{ 2235{
2231 if ( mPopupCell ) { 2236 if ( mPopupCell ) {
2232 QDateTime dt( mPopupCell->date(), QTime( KOPrefs::instance()->mStartTime, 0 ) ); 2237 QDateTime dt( mPopupCell->date(), QTime( KOPrefs::instance()->mStartTime, 0 ) );
2233 emit newEventSignal( dt ); 2238 emit newEventSignal( dt );
2234 } 2239 }
2235 //qDebug("KOMonthView::slotNewEvent() "); 2240 //qDebug("KOMonthView::slotNewEvent() ");
2236 mPopupCell = 0; 2241 mPopupCell = 0;
2237} 2242}
2238 2243
2239void KOMonthView::slotEditJournal() 2244void KOMonthView::slotEditJournal()
2240{ 2245{
2241 if ( mPopupCell ) 2246 if ( mPopupCell )
2242 emit showJournalSignal( 7, mPopupCell->date() ); 2247 emit showJournalSignal( 7, mPopupCell->date() );
2243 //qDebug("KOMonthView::slotEditJournal() "); 2248 //qDebug("KOMonthView::slotEditJournal() ");
2244 mPopupCell = 0; 2249 mPopupCell = 0;
2245} 2250}
2246 2251
2247void KOMonthView::setPopupCell( MonthViewCell * c) 2252void KOMonthView::setPopupCell( MonthViewCell * c)
2248{ 2253{
2249 mPopupCell = c; 2254 mPopupCell = c;
2250} 2255}
diff --git a/korganizer/komonthview.h b/korganizer/komonthview.h
index a41eb54..4d62e9b 100644
--- a/korganizer/komonthview.h
+++ b/korganizer/komonthview.h
@@ -151,181 +151,183 @@ class KOMonthView;
151class MonthViewCell : public KNoScrollListBox 151class MonthViewCell : public KNoScrollListBox
152{ 152{
153 Q_OBJECT 153 Q_OBJECT
154 public: 154 public:
155 MonthViewCell(KOMonthView *,QWidget* ); 155 MonthViewCell(KOMonthView *,QWidget* );
156 ~MonthViewCell() {mAvailItemList.setAutoDelete( true );} 156 ~MonthViewCell() {mAvailItemList.setAutoDelete( true );}
157 157
158 void setDate( const QDate & ); 158 void setDate( const QDate & );
159 QDate date() const; 159 QDate date() const;
160 160
161 void setPrimary( bool ); 161 void setPrimary( bool );
162 bool isPrimary() const; 162 bool isPrimary() const;
163 163
164 void setHoliday( bool ); 164 void setHoliday( bool );
165 void setHoliday( const QString & ); 165 void setHoliday( const QString & );
166 166
167 void updateCell(); 167 void updateCell();
168 void startUpdateCell(); 168 void startUpdateCell();
169 void finishUpdateCell(); 169 void finishUpdateCell();
170 int insertEvent(Event *); 170 int insertEvent(Event *);
171 void insertTodo(Todo *); 171 void insertTodo(Todo *);
172 172
173 void updateConfig( bool bigFont = false ); 173 void updateConfig( bool bigFont = false );
174 174
175 void enableScrollBars( bool ); 175 void enableScrollBars( bool );
176 176
177 Incidence *selectedIncidence(); 177 Incidence *selectedIncidence();
178 QDate selectedIncidenceDate(); 178 QDate selectedIncidenceDate();
179 QPushButton * dateLabel() { return mLabel; } 179 QPushButton * dateLabel() { return mLabel; }
180 bool doHighLight( Incidence *); 180 bool doHighLight( Incidence *);
181 void deselect(); 181 void deselect();
182 void select(); 182 void select();
183#ifdef DESKTOP_VERSION 183#ifdef DESKTOP_VERSION
184 static QToolTipGroup *toolTipGroup(); 184 static QToolTipGroup *toolTipGroup();
185#endif 185#endif
186 signals: 186 signals:
187 void defaultAction( Incidence * ); 187 void defaultAction( Incidence * );
188 void newEventSignal( QDateTime ); 188 void newEventSignal( QDateTime );
189 void showDaySignal( QDate ); 189 void showDaySignal( QDate );
190 190
191 protected: 191 protected:
192 QStringList mToolTip; 192 QStringList mToolTip;
193 void resizeEvent( QResizeEvent * ); 193 void resizeEvent( QResizeEvent * );
194 194
195public slots: 195public slots:
196 void showDay(); 196 void showDay();
197 void deHighLight(); 197 void deHighLight();
198 void repaintfinishUpdateCell(); 198 void repaintfinishUpdateCell();
199 protected slots: 199 protected slots:
200 void defaultAction( QListBoxItem * ); 200 void defaultAction( QListBoxItem * );
201 void contextMenu( QListBoxItem * ); 201 void contextMenu( QListBoxItem * );
202 void selection( QListBoxItem * ); 202 void selection( QListBoxItem * );
203 void cellClicked( QListBoxItem * ); 203 void cellClicked( QListBoxItem * );
204 void newEvent(); 204 void newEvent();
205 205
206 private: 206 private:
207 int mdayCount; 207 int mdayCount;
208 QPtrList <MonthViewItem> mAvailItemList; 208 QPtrList <MonthViewItem> mAvailItemList;
209 KOMonthView *mMonthView; 209 KOMonthView *mMonthView;
210 int currentPalette; 210 int currentPalette;
211 211
212 QDate mDate; 212 QDate mDate;
213 bool mPrimary; 213 bool mPrimary;
214 bool mHoliday; 214 bool mHoliday;
215 QString mHolidayString; 215 QString mHolidayString;
216 216
217 //QLabel *mLabel; 217 //QLabel *mLabel;
218 QPushButton *mLabel; 218 QPushButton *mLabel;
219 //QListBox *mItemList; 219 //QListBox *mItemList;
220#ifdef DESKTOP_VERSION 220#ifdef DESKTOP_VERSION
221 static QToolTipGroup *mToolTipGroup; 221 static QToolTipGroup *mToolTipGroup;
222#endif 222#endif
223 QSize mLabelSize; 223 QSize mLabelSize;
224 QSize mLabelBigSize; 224 QSize mLabelBigSize;
225 QPalette mHolidayPalette; 225 QPalette mHolidayPalette;
226 QPalette mStandardPalette; 226 QPalette mStandardPalette;
227 QPalette mPrimaryPalette; 227 QPalette mPrimaryPalette;
228 QPalette mNonPrimaryPalette; 228 QPalette mNonPrimaryPalette;
229 void setMyPalette(); 229 void setMyPalette();
230 QPalette getPalette (); 230 QPalette getPalette ();
231 231
232}; 232};
233 233
234 234
235class KOMonthView: public KOEventView 235class KOMonthView: public KOEventView
236{ 236{
237 Q_OBJECT 237 Q_OBJECT
238 public: 238 public:
239 KOMonthView(Calendar *cal, QWidget *parent = 0, const char *name = 0 ); 239 KOMonthView(Calendar *cal, QWidget *parent = 0, const char *name = 0 );
240 ~KOMonthView(); 240 ~KOMonthView();
241 241
242 /** Returns maximum number of days supported by the komonthview */ 242 /** Returns maximum number of days supported by the komonthview */
243 virtual int maxDatesHint(); 243 virtual int maxDatesHint();
244 244
245 /** Returns number of currently shown dates. */ 245 /** Returns number of currently shown dates. */
246 virtual int currentDateCount(); 246 virtual int currentDateCount();
247 247
248 /** returns the currently selected events */ 248 /** returns the currently selected events */
249 virtual QPtrList<Incidence> selectedIncidences(); 249 virtual QPtrList<Incidence> selectedIncidences();
250 250
251 /** returns dates of the currently selected events */ 251 /** returns dates of the currently selected events */
252 virtual DateList selectedDates(); 252 virtual DateList selectedDates();
253 253#if 0
254 virtual void printPreview(CalPrinter *calPrinter, 254 virtual void printPreview(CalPrinter *calPrinter,
255 const QDate &, const QDate &); 255 const QDate &, const QDate &);
256#endif
256 bool isMonthView() { return !mShowWeekView; } 257 bool isMonthView() { return !mShowWeekView; }
257 bool isUpdatePossible() { return updatePossible; } 258 bool isUpdatePossible() { return updatePossible; }
258 259
259 MonthViewCell * selectedCell(); 260 MonthViewCell * selectedCell();
260 bool skipResize; 261 bool skipResize;
261 NavigatorBar* navigatorBar() { return mNavigatorBar ;} 262 NavigatorBar* navigatorBar() { return mNavigatorBar ;}
262 void clearList(); 263 void clearList();
263 public slots: 264 public slots:
264 void incidenceHighlighted( Incidence *, MonthViewCell*, int ); 265 void incidenceHighlighted( Incidence *, MonthViewCell*, int );
265 void nextCell(); 266 void nextCell();
266 void prevCell(); 267 void prevCell();
267 virtual void updateView(); 268 virtual void updateView();
268 virtual void updateConfig(); 269 virtual void updateConfig();
269 virtual void showDates(const QDate &start, const QDate &end); 270 virtual void showDates(const QDate &start, const QDate &end);
270 virtual void showEvents(QPtrList<Event> eventList); 271 virtual void showEvents(QPtrList<Event> eventList);
271 272
272 void changeEventDisplay(Event *, int); 273 void changeEventDisplay(Event *, int);
273 274
274 void clearSelection(); 275 void clearSelection();
275 276
276 void showContextMenu( Incidence * ); 277 void showContextMenu( Incidence * );
277 278
278 void setSelectedCell( MonthViewCell * ); 279 void setSelectedCell( MonthViewCell * );
279 void setPopupCell( MonthViewCell * ); 280 void setPopupCell( MonthViewCell * );
280 void switchView(); 281 void switchView();
281 void setKeyBFocus(); 282 void setKeyBFocus();
282 283
283 protected slots: 284 protected slots:
285 void catChanged( Incidence * );
284 void setKeyBoardFocus(); 286 void setKeyBoardFocus();
285 void slotNewTodo(); 287 void slotNewTodo();
286 void slotNewEvent(); 288 void slotNewEvent();
287 void slotEditJournal(); 289 void slotEditJournal();
288 void slotComputeLayout(); 290 void slotComputeLayout();
289 void selectInternalWeekNum ( int ); 291 void selectInternalWeekNum ( int );
290 void processSelectionChange(); 292 void processSelectionChange();
291 signals: 293 signals:
292 void nextMonth(); 294 void nextMonth();
293 void prevMonth(); 295 void prevMonth();
294 void selectWeekNum ( int ); 296 void selectWeekNum ( int );
295 void selectMonth (); 297 void selectMonth ();
296 void showDaySignal( QDate ); 298 void showDaySignal( QDate );
297 void newTodoSignal( QDateTime, bool ); 299 void newTodoSignal( QDateTime, bool );
298 void showJournalSignal( int,QDate ); 300 void showJournalSignal( int,QDate );
299 protected: 301 protected:
300 void resizeEvent(QResizeEvent *); 302 void resizeEvent(QResizeEvent *);
301 void viewChanged(); 303 void viewChanged();
302 void updateDayLabels(); 304 void updateDayLabels();
303 305
304 private: 306 private:
305 int mKBFcounter; 307 int mKBFcounter;
306 QTimer* mComputeLayoutTimer; 308 QTimer* mComputeLayoutTimer;
307 NavigatorBar* mNavigatorBar; 309 NavigatorBar* mNavigatorBar;
308 int currentWeek(); 310 int currentWeek();
309 bool clPending; 311 bool clPending;
310 QWidgetStack * mWidStack; 312 QWidgetStack * mWidStack;
311 QWidget* mMonthView; 313 QWidget* mMonthView;
312 QWidget* mWeekView; 314 QWidget* mWeekView;
313 bool mShowWeekView; 315 bool mShowWeekView;
314 bool updatePossible; 316 bool updatePossible;
315 int mDaysPerWeek; 317 int mDaysPerWeek;
316 int mNumWeeks; 318 int mNumWeeks;
317 int mNumCells; 319 int mNumCells;
318 //bool mWeekStartsMonday; 320 //bool mWeekStartsMonday;
319 bool mShowSatSunComp; 321 bool mShowSatSunComp;
320 void computeLayout(); 322 void computeLayout();
321 void computeLayoutWeek(); 323 void computeLayoutWeek();
322 324
323 QPtrVector<MonthViewCell> mCells; 325 QPtrVector<MonthViewCell> mCells;
324 QPtrVector<QLabel> mDayLabels; 326 QPtrVector<QLabel> mDayLabels;
325 QPtrVector<KOWeekButton> mWeekLabels; 327 QPtrVector<KOWeekButton> mWeekLabels;
326 QPtrVector<MonthViewCell> mCellsW; 328 QPtrVector<MonthViewCell> mCellsW;
327 QPtrVector<QLabel> mDayLabelsW; 329 QPtrVector<QLabel> mDayLabelsW;
328 QPtrVector<KOWeekButton> mWeekLabelsW; 330 QPtrVector<KOWeekButton> mWeekLabelsW;
329 331
330 bool mShortDayLabelsM; 332 bool mShortDayLabelsM;
331 bool mShortDayLabelsW; 333 bool mShortDayLabelsW;