summaryrefslogtreecommitdiffabout
path: root/korganizer
Unidiff
Diffstat (limited to 'korganizer') (more/less context) (ignore whitespace changes)
-rw-r--r--korganizer/komonthview.cpp40
-rw-r--r--korganizer/komonthview.h11
2 files changed, 45 insertions, 6 deletions
diff --git a/korganizer/komonthview.cpp b/korganizer/komonthview.cpp
index 08232e2..9344567 100644
--- a/korganizer/komonthview.cpp
+++ b/korganizer/komonthview.cpp
@@ -45,25 +45,27 @@
45#include "calprinter.h" 45#include "calprinter.h"
46#endif 46#endif
47#include "koprefs.h" 47#include "koprefs.h"
48#ifndef KORG_NOPLUGINS 48#ifndef KORG_NOPLUGINS
49#include "kocore.h" 49#include "kocore.h"
50#endif 50#endif
51#include "koglobals.h" 51#include "koglobals.h"
52#include <libkcal/kincidenceformatter.h> 52#include <libkcal/kincidenceformatter.h>
53 53
54#include "komonthview.h" 54#include "komonthview.h"
55 55
56#define PIXMAP_SIZE 5 56#define PIXMAP_SIZE 5
57 57#ifdef DESKTOP_VERSION
58 QToolTipGroup *MonthViewCell::mToolTipGroup = 0;
59#endif
58class KNOWhatsThis :public QWhatsThis 60class KNOWhatsThis :public QWhatsThis
59{ 61{
60public: 62public:
61 KNOWhatsThis( KNoScrollListBox* sbox ) : QWhatsThis( sbox ), _wid( sbox) { }; 63 KNOWhatsThis( KNoScrollListBox* sbox ) : QWhatsThis( sbox ), _wid( sbox) { };
62 64
63protected: 65protected:
64 virtual QString text( const QPoint& p) 66 virtual QString text( const QPoint& p)
65 { 67 {
66 return _wid->getWhatsThisText(p) ; 68 return _wid->getWhatsThisText(p) ;
67 }; 69 };
68private: 70private:
69 KNoScrollListBox* _wid; 71 KNoScrollListBox* _wid;
@@ -75,25 +77,25 @@ KNoScrollListBox::KNoScrollListBox(QWidget *parent,const char *name)
75 : QListBox(parent, name) 77 : QListBox(parent, name)
76{ 78{
77#ifndef DESKTOP_VERSION 79#ifndef DESKTOP_VERSION
78 QPEApplication::setStylusOperation( viewport(), QPEApplication::RightOnHold ); 80 QPEApplication::setStylusOperation( viewport(), QPEApplication::RightOnHold );
79#endif 81#endif
80 new KNOWhatsThis(this); 82 new KNOWhatsThis(this);
81} 83}
82 84
83QString KNoScrollListBox::getWhatsThisText(QPoint p) 85QString KNoScrollListBox::getWhatsThisText(QPoint p)
84{ 86{
85 QListBoxItem* item = itemAt ( p ); 87 QListBoxItem* item = itemAt ( p );
86 if ( ! item ) { 88 if ( ! item ) {
87 return i18n("Click in the cell or\non the date label\nto add an event!"); 89 return i18n("Click in the cell\nto add an event!");
88 } 90 }
89 return KIncidenceFormatter::instance()->getFormattedText(((MonthViewItem*) item)->incidence()); 91 return KIncidenceFormatter::instance()->getFormattedText(((MonthViewItem*) item)->incidence());
90} 92}
91void KNoScrollListBox::keyPressEvent(QKeyEvent *e) 93void KNoScrollListBox::keyPressEvent(QKeyEvent *e)
92{ 94{
93 95
94 switch(e->key()) { 96 switch(e->key()) {
95 case Key_Right: 97 case Key_Right:
96 // if ( e->state() == Qt::ControlButton ) 98 // if ( e->state() == Qt::ControlButton )
97 { 99 {
98 e->ignore(); 100 e->ignore();
99 return; 101 return;
@@ -286,25 +288,32 @@ MonthViewCell::MonthViewCell( KOMonthView *parent)
286 connect( mItemList, SIGNAL( doubleClicked( QListBoxItem *) ), 288 connect( mItemList, SIGNAL( doubleClicked( QListBoxItem *) ),
287 SLOT( defaultAction( QListBoxItem * ) ) ); 289 SLOT( defaultAction( QListBoxItem * ) ) );
288 connect( mItemList, SIGNAL( rightButtonPressed( QListBoxItem *, 290 connect( mItemList, SIGNAL( rightButtonPressed( QListBoxItem *,
289 const QPoint &) ), 291 const QPoint &) ),
290 SLOT( contextMenu( QListBoxItem * ) ) ); 292 SLOT( contextMenu( QListBoxItem * ) ) );
291 connect( mItemList, SIGNAL( highlighted( QListBoxItem *) ), 293 connect( mItemList, SIGNAL( highlighted( QListBoxItem *) ),
292 SLOT( selection( QListBoxItem * ) ) ); 294 SLOT( selection( QListBoxItem * ) ) );
293 connect( mItemList, SIGNAL( clicked( QListBoxItem * ) ), 295 connect( mItemList, SIGNAL( clicked( QListBoxItem * ) ),
294 SLOT( cellClicked( QListBoxItem * ) ) ); 296 SLOT( cellClicked( QListBoxItem * ) ) );
295 connect( mItemList, SIGNAL( clicked( QListBoxItem * ) ), 297 connect( mItemList, SIGNAL( clicked( QListBoxItem * ) ),
296 SLOT( selection( QListBoxItem * ) ) ); 298 SLOT( selection( QListBoxItem * ) ) );
297} 299}
298 300#ifdef DESKTOP_VERSION
301QToolTipGroup *MonthViewCell::toolTipGroup()
302{
303 if (!mToolTipGroup) mToolTipGroup = new QToolTipGroup(0);
304 return mToolTipGroup;
305}
306#endif
307
299void MonthViewCell::setDate( const QDate &date ) 308void MonthViewCell::setDate( const QDate &date )
300{ 309{
301// kdDebug() << "MonthViewCell::setDate(): " << date.toString() << endl; 310// kdDebug() << "MonthViewCell::setDate(): " << date.toString() << endl;
302 311
303 mDate = date; 312 mDate = date;
304 313
305 QString text; 314 QString text;
306 bool smallDisplay = QApplication::desktop()->width() < 320 && KOPrefs::instance()->mMonthViewSatSunTog; 315 bool smallDisplay = QApplication::desktop()->width() < 320 && KOPrefs::instance()->mMonthViewSatSunTog;
307 if ( KOGlobals::self()->calendarSystem()->day( date ) == 1 || (date.dayOfWeek() == 7 && !smallDisplay ) || KOPrefs::instance()->mMonthShowShort) { 316 if ( KOGlobals::self()->calendarSystem()->day( date ) == 1 || (date.dayOfWeek() == 7 && !smallDisplay ) || KOPrefs::instance()->mMonthShowShort) {
308 text = KOGlobals::self()->calendarSystem()->monthName( date, true ) + " "; 317 text = KOGlobals::self()->calendarSystem()->monthName( date, true ) + " ";
309 mLabel->resize( mLabelBigSize ); 318 mLabel->resize( mLabelBigSize );
310 text += QString::number( KOGlobals::self()->calendarSystem()->day(mDate) ); 319 text += QString::number( KOGlobals::self()->calendarSystem()->day(mDate) );
@@ -383,29 +392,34 @@ void MonthViewCell::keyPressEvent ( QKeyEvent * e )
383} 392}
384void MonthViewCell::updateCell() 393void MonthViewCell::updateCell()
385{ 394{
386 395
387 setPrimary( mDate.month()%2 ); 396 setPrimary( mDate.month()%2 );
388 setHoliday( KOGlobals::self()->calendarSystem()->dayOfWeek(mDate) == KOGlobals::self()->calendarSystem()->weekDayOfPray() || ( mDate.dayOfWeek() == 6 ) && KOPrefs::instance()-> mExcludeSaturdays); 397 setHoliday( KOGlobals::self()->calendarSystem()->dayOfWeek(mDate) == KOGlobals::self()->calendarSystem()->weekDayOfPray() || ( mDate.dayOfWeek() == 6 ) && KOPrefs::instance()-> mExcludeSaturdays);
389 if ( mDate == QDate::currentDate() ) { 398 if ( mDate == QDate::currentDate() ) {
390 mItemList->setLineWidth( 3 ); 399 mItemList->setLineWidth( 3 );
391 } else { 400 } else {
392 mItemList->setLineWidth( 1 ); 401 mItemList->setLineWidth( 1 );
393 } 402 }
394 mItemList->clear(); 403 mItemList->clear();
404#ifdef DESKTOP_VERSION
405 QToolTip::remove(this);
406#endif
407 QString tipText("");
395 //qApp->processEvents(); 408 //qApp->processEvents();
396 if ( !mHolidayString.isEmpty() ) { 409 if ( !mHolidayString.isEmpty() ) {
397 MonthViewItem *item = new MonthViewItem( 0, mDate, mHolidayString ); 410 MonthViewItem *item = new MonthViewItem( 0, mDate, mHolidayString );
398 item->setPalette( mHolidayPalette ); 411 item->setPalette( mHolidayPalette );
399 mItemList->insertItem( item ); 412 mItemList->insertItem( item );
413 tipText += mHolidayString+"\n";
400 } 414 }
401 //mLabel->setMaximumWidth( width() - mItemList->lineWidth()*2); 415 //mLabel->setMaximumWidth( width() - mItemList->lineWidth()*2);
402 QPtrList<Event> events = mMonthView->calendar()->events( mDate, true ); 416 QPtrList<Event> events = mMonthView->calendar()->events( mDate, true );
403 Event *event; 417 Event *event;
404 for( event = events.first(); event; event = events.next() ) { 418 for( event = events.first(); event; event = events.next() ) {
405 if ( event->categories().contains("Holiday") || 419 if ( event->categories().contains("Holiday") ||
406 event->categories().contains(i18n("Holiday"))) { 420 event->categories().contains(i18n("Holiday"))) {
407 setHoliday( true ); 421 setHoliday( true );
408 if ( mDate.dayOfWeek() == 7 ) 422 if ( mDate.dayOfWeek() == 7 )
409 mItemList->setLineWidth( 3 ); 423 mItemList->setLineWidth( 3 );
410 } 424 }
411 QString text; 425 QString text;
@@ -419,30 +433,34 @@ void MonthViewCell::updateCell()
419 if ( event->recursOn( mDate.addDays( -days)) ) 433 if ( event->recursOn( mDate.addDays( -days)) )
420 prefix ="<-" ; 434 prefix ="<-" ;
421 } 435 }
422 436
423 } else { 437 } else {
424 if (mDate == event->dtStart().date()) { 438 if (mDate == event->dtStart().date()) {
425 prefix ="->" ; 439 prefix ="->" ;
426 } else if (mDate == event->dtEnd().date()) { 440 } else if (mDate == event->dtEnd().date()) {
427 prefix ="<-" ; 441 prefix ="<-" ;
428 } 442 }
429 } 443 }
430 text = prefix + event->summary(); 444 text = prefix + event->summary();
445 tipText += text;
431 } else { 446 } else {
432 if (event->doesFloat()) 447 if (event->doesFloat()) {
433 text = event->summary(); 448 text = event->summary();
449 tipText += text;
450 }
434 else { 451 else {
435 text = KGlobal::locale()->formatTime(event->dtStart().time()); 452 text = KGlobal::locale()->formatTime(event->dtStart().time());
436 text += " " + event->summary(); 453 text += " " + event->summary();
454 tipText += KGlobal::locale()->formatTime(event->dtStart().time()) +"-"+KGlobal::locale()->formatTime(event->dtEnd().time())+" " + event->summary();
437 } 455 }
438 } 456 }
439 457
440 MonthViewItem *item = new MonthViewItem( event, mDate, text ); 458 MonthViewItem *item = new MonthViewItem( event, mDate, text );
441 QPalette pal; 459 QPalette pal;
442 if (KOPrefs::instance()->mMonthViewUsesCategoryColor) { 460 if (KOPrefs::instance()->mMonthViewUsesCategoryColor) {
443 QStringList categories = event->categories(); 461 QStringList categories = event->categories();
444 QString cat = categories.first(); 462 QString cat = categories.first();
445 if ( KOPrefs::instance()->mMonthViewUsesForegroundColor ) { 463 if ( KOPrefs::instance()->mMonthViewUsesForegroundColor ) {
446 pal = getPalette(); 464 pal = getPalette();
447 if (cat.isEmpty()) { 465 if (cat.isEmpty()) {
448 pal.setColor(QColorGroup::Foreground,KOPrefs::instance()->mEventColor); 466 pal.setColor(QColorGroup::Foreground,KOPrefs::instance()->mEventColor);
@@ -474,26 +492,29 @@ void MonthViewCell::updateCell()
474 item->setReply(false); 492 item->setReply(false);
475 } else 493 } else
476 item->setReply(false); 494 item->setReply(false);
477 bool insert = true; 495 bool insert = true;
478 if ( !(event->doesRecur() == Recurrence::rNone) ) { 496 if ( !(event->doesRecur() == Recurrence::rNone) ) {
479 if ( !KOPrefs::instance()->mMonthDailyRecur && event->doesRecur() == Recurrence::rDaily ) 497 if ( !KOPrefs::instance()->mMonthDailyRecur && event->doesRecur() == Recurrence::rDaily )
480 insert = false; 498 insert = false;
481 else 499 else
482 if ( !KOPrefs::instance()->mMonthWeeklyRecur && event->doesRecur() == Recurrence::rWeekly ) 500 if ( !KOPrefs::instance()->mMonthWeeklyRecur && event->doesRecur() == Recurrence::rWeekly )
483 insert = false; 501 insert = false;
484 502
485 } 503 }
486 if ( insert ) 504 if ( insert ) {
487 mItemList->insertItem( item ); 505 mItemList->insertItem( item );
506 tipText += "\n";
507 } else
508 tipText = "";
488 } 509 }
489 510
490 // insert due todos 511 // insert due todos
491 QPtrList<Todo> todos = mMonthView->calendar()->todos( mDate ); 512 QPtrList<Todo> todos = mMonthView->calendar()->todos( mDate );
492 Todo *todo; 513 Todo *todo;
493 for(todo = todos.first(); todo; todo = todos.next()) { 514 for(todo = todos.first(); todo; todo = todos.next()) {
494 QString text; 515 QString text;
495 if (todo->hasDueDate()) { 516 if (todo->hasDueDate()) {
496 if (!todo->doesFloat()) { 517 if (!todo->doesFloat()) {
497 text += KGlobal::locale()->formatTime(todo->dtDue().time()); 518 text += KGlobal::locale()->formatTime(todo->dtDue().time());
498 text += " "; 519 text += " ";
499 } 520 }
@@ -518,25 +539,31 @@ void MonthViewCell::updateCell()
518 if (cat.isEmpty()) { 539 if (cat.isEmpty()) {
519 pal = QPalette(KOPrefs::instance()->mEventColor, KOPrefs::instance()->mEventColor); 540 pal = QPalette(KOPrefs::instance()->mEventColor, KOPrefs::instance()->mEventColor);
520 } else { 541 } else {
521 pal = QPalette(*(KOPrefs::instance()->categoryColor(cat)), *(KOPrefs::instance()->categoryColor(cat))); 542 pal = QPalette(*(KOPrefs::instance()->categoryColor(cat)), *(KOPrefs::instance()->categoryColor(cat)));
522 } 543 }
523 } 544 }
524 545
525 } else { 546 } else {
526 pal = mStandardPalette ; 547 pal = mStandardPalette ;
527 } 548 }
528 item->setPalette( pal ); 549 item->setPalette( pal );
529 mItemList->insertItem( item ); 550 mItemList->insertItem( item );
551 tipText += text+"\n";
530 } 552 }
553#ifdef DESKTOP_VERSION
554 if (tipText != "")
555 QToolTip::add(this,tipText,toolTipGroup(),"");
556#endif
557
531 //setMyPalette(); 558 //setMyPalette();
532 setMyPalette(); 559 setMyPalette();
533 resizeEvent( 0 ); 560 resizeEvent( 0 );
534 // if ( isVisible()) 561 // if ( isVisible())
535 // qApp->processEvents(); 562 // qApp->processEvents();
536} 563}
537 564
538void MonthViewCell::updateConfig() 565void MonthViewCell::updateConfig()
539{ 566{
540 567
541 setFont( KOPrefs::instance()->mMonthViewFont ); 568 setFont( KOPrefs::instance()->mMonthViewFont );
542 569
@@ -805,24 +832,27 @@ void KOMonthView::updateConfig()
805 } 832 }
806 bool temp = mShowSatSunComp ; 833 bool temp = mShowSatSunComp ;
807 mShowSatSunComp = KOPrefs::instance()->mMonthViewSatSunTog ; 834 mShowSatSunComp = KOPrefs::instance()->mMonthViewSatSunTog ;
808 if ( temp != KOPrefs::instance()->mMonthViewSatSunTog ) 835 if ( temp != KOPrefs::instance()->mMonthViewSatSunTog )
809 computeLayout(); 836 computeLayout();
810 updateDayLabels(); 837 updateDayLabels();
811 //qDebug("KOMonthView::updateConfig() %d %d %d ",height(), mDayLabels[0]->sizeHint().height() ,mNumWeeks); 838 //qDebug("KOMonthView::updateConfig() %d %d %d ",height(), mDayLabels[0]->sizeHint().height() ,mNumWeeks);
812 int cellHeight = (height() - mDayLabels[0]->sizeHint().height()) /mNumWeeks; 839 int cellHeight = (height() - mDayLabels[0]->sizeHint().height()) /mNumWeeks;
813 //resizeEvent( 0 ); 840 //resizeEvent( 0 );
814 for (uint i = 0; i < mCells.count(); ++i) { 841 for (uint i = 0; i < mCells.count(); ++i) {
815 mCells[i]->updateConfig(); 842 mCells[i]->updateConfig();
816 } 843 }
844#ifdef DESKTOP_VERSION
845 MonthViewCell::toolTipGroup()->setEnabled(KOPrefs::instance()->mEnableToolTips);
846#endif
817} 847}
818 848
819void KOMonthView::updateDayLabels() 849void KOMonthView::updateDayLabels()
820{ 850{
821 851
822 for (int i = 0; i < 7; i++) { 852 for (int i = 0; i < 7; i++) {
823 if (mWeekStartsMonday) { 853 if (mWeekStartsMonday) {
824 bool show = mShortDayLabels; 854 bool show = mShortDayLabels;
825 if ( i > 4 && mShowSatSunComp && mWidthLongDayLabel > mDayLabels[i]->width() ) 855 if ( i > 4 && mShowSatSunComp && mWidthLongDayLabel > mDayLabels[i]->width() )
826 show = true; 856 show = true;
827 mDayLabels[i]->setText(KOGlobals::self()->calendarSystem()->weekDayName(i+1,show)); 857 mDayLabels[i]->setText(KOGlobals::self()->calendarSystem()->weekDayName(i+1,show));
828 } else { 858 } else {
diff --git a/korganizer/komonthview.h b/korganizer/komonthview.h
index 5124057..4c1567c 100644
--- a/korganizer/komonthview.h
+++ b/korganizer/komonthview.h
@@ -27,24 +27,28 @@
27#include <qpoint.h> 27#include <qpoint.h>
28#include <qlayout.h> 28#include <qlayout.h>
29#include <qintdict.h> 29#include <qintdict.h>
30#include <qpushbutton.h> 30#include <qpushbutton.h>
31#include <qvaluelist.h> 31#include <qvaluelist.h>
32#include <qptrvector.h> 32#include <qptrvector.h>
33 33
34#include <libkcal/calendar.h> 34#include <libkcal/calendar.h>
35#include <libkcal/event.h> 35#include <libkcal/event.h>
36 36
37#include "koeventview.h" 37#include "koeventview.h"
38 38
39#ifdef DESKTOP_VERSION
40class QToolTipGroup;
41#endif
42
39class KOWeekButton : public QPushButton 43class KOWeekButton : public QPushButton
40{ 44{
41 Q_OBJECT 45 Q_OBJECT
42 public: 46 public:
43 KOWeekButton( QWidget *parent=0, const char *name=0 ) : 47 KOWeekButton( QWidget *parent=0, const char *name=0 ) :
44 QPushButton( parent, name) 48 QPushButton( parent, name)
45 { 49 {
46 connect( this, SIGNAL( clicked() ), 50 connect( this, SIGNAL( clicked() ),
47 SLOT( bottonClicked() )); 51 SLOT( bottonClicked() ));
48 mNumber = -1; 52 mNumber = -1;
49 } 53 }
50 void setWeekNum ( int num ) {mNumber = num; setText( QString::number ( num ));} 54 void setWeekNum ( int num ) {mNumber = num; setText( QString::number ( num ));}
@@ -131,24 +135,27 @@ class MonthViewCell : public QWidget
131 void updateCell(); 135 void updateCell();
132 136
133 void updateConfig(); 137 void updateConfig();
134 138
135 void enableScrollBars( bool ); 139 void enableScrollBars( bool );
136 140
137 Incidence *selectedIncidence(); 141 Incidence *selectedIncidence();
138 QDate selectedIncidenceDate(); 142 QDate selectedIncidenceDate();
139 143
140 void deselect(); 144 void deselect();
141 void select(); 145 void select();
142 146
147#ifdef DESKTOP_VERSION
148 static QToolTipGroup *toolTipGroup();
149#endif
143 signals: 150 signals:
144 void defaultAction( Incidence * ); 151 void defaultAction( Incidence * );
145 void newEventSignal( QDateTime ); 152 void newEventSignal( QDateTime );
146 void showDaySignal( QDate ); 153 void showDaySignal( QDate );
147 154
148 protected: 155 protected:
149 void resizeEvent( QResizeEvent * ); 156 void resizeEvent( QResizeEvent * );
150 157
151 protected slots: 158 protected slots:
152 void defaultAction( QListBoxItem * ); 159 void defaultAction( QListBoxItem * );
153 void contextMenu( QListBoxItem * ); 160 void contextMenu( QListBoxItem * );
154 void selection( QListBoxItem * ); 161 void selection( QListBoxItem * );
@@ -158,25 +165,27 @@ class MonthViewCell : public QWidget
158 165
159 private: 166 private:
160 KOMonthView *mMonthView; 167 KOMonthView *mMonthView;
161 168
162 QDate mDate; 169 QDate mDate;
163 bool mPrimary; 170 bool mPrimary;
164 bool mHoliday; 171 bool mHoliday;
165 QString mHolidayString; 172 QString mHolidayString;
166 173
167 //QLabel *mLabel; 174 //QLabel *mLabel;
168 QPushButton *mLabel; 175 QPushButton *mLabel;
169 QListBox *mItemList; 176 QListBox *mItemList;
170 177#ifdef DESKTOP_VERSION
178 static QToolTipGroup *mToolTipGroup;
179#endif
171 QSize mLabelSize; 180 QSize mLabelSize;
172 QSize mLabelBigSize; 181 QSize mLabelBigSize;
173 QPalette mHolidayPalette; 182 QPalette mHolidayPalette;
174 QPalette mStandardPalette; 183 QPalette mStandardPalette;
175 QPalette mPrimaryPalette; 184 QPalette mPrimaryPalette;
176 QPalette mNonPrimaryPalette; 185 QPalette mNonPrimaryPalette;
177 void setMyPalette(); 186 void setMyPalette();
178 QPalette getPalette (); 187 QPalette getPalette ();
179 void keyPressEvent ( QKeyEvent * ) ; 188 void keyPressEvent ( QKeyEvent * ) ;
180 189
181}; 190};
182 191