author | zautrix <zautrix> | 2005-03-25 02:15:46 (UTC) |
---|---|---|
committer | zautrix <zautrix> | 2005-03-25 02:15:46 (UTC) |
commit | 658354b7112aff72f0fadd924c82b977d803bc27 (patch) (unidiff) | |
tree | da728354015340c16466fbfb3c851d96d6d95196 | |
parent | 7c2e130ddd194f1c4b5365af6999a27c08232f4b (diff) | |
download | kdepimpi-658354b7112aff72f0fadd924c82b977d803bc27.zip kdepimpi-658354b7112aff72f0fadd924c82b977d803bc27.tar.gz kdepimpi-658354b7112aff72f0fadd924c82b977d803bc27.tar.bz2 |
fixes
-rw-r--r-- | korganizer/komonthview.cpp | 88 |
1 files changed, 55 insertions, 33 deletions
diff --git a/korganizer/komonthview.cpp b/korganizer/komonthview.cpp index 8ee5bc3..050bfb9 100644 --- a/korganizer/komonthview.cpp +++ b/korganizer/komonthview.cpp | |||
@@ -303,76 +303,83 @@ void MonthViewItem::paint(QPainter *p) | |||
303 | p->setPen( palette().color( QPalette::Normal, sel ? \ | 303 | p->setPen( palette().color( QPalette::Normal, sel ? \ |
304 | QColorGroup::HighlightedText : QColorGroup::Foreground ) ); | 304 | QColorGroup::HighlightedText : QColorGroup::Foreground ) ); |
305 | p->drawText( x, yPos, text() ); | 305 | p->drawText( x, yPos, text() ); |
306 | if ( mIncidence->cancelled() ) { | 306 | if ( mIncidence->cancelled() ) { |
307 | int wid = fm.width( text() ); | 307 | int wid = fm.width( text() ); |
308 | p->drawLine( x, heihei/2-1 ,x+wid, heihei/2-1 ); | 308 | p->drawLine( x, heihei/2-1 ,x+wid, heihei/2-1 ); |
309 | } | 309 | } |
310 | 310 | ||
311 | } | 311 | } |
312 | 312 | ||
313 | int MonthViewItem::height(const QListBox *lb) const | 313 | int MonthViewItem::height(const QListBox *lb) const |
314 | { | 314 | { |
315 | int ret = 10; | ||
315 | if ( lb ) | 316 | if ( lb ) |
316 | return lb->fontMetrics().lineSpacing()+1; | 317 | ret = lb->fontMetrics().lineSpacing()+1; |
317 | return 10; | 318 | return ret; |
318 | } | 319 | } |
319 | 320 | ||
320 | int MonthViewItem::width(const QListBox *lb) const | 321 | int MonthViewItem::width(const QListBox *lb) const |
321 | { | 322 | { |
322 | int size = PIXMAP_SIZE; | 323 | |
323 | if ( QApplication::desktop()->width() < 300 ) | 324 | if( KOPrefs::instance()->mEnableMonthScroll || KOPrefs::instance()->mMonthViewWeek ) { |
324 | size = 3; | 325 | int size = PIXMAP_SIZE; |
325 | int x = 1; | 326 | if ( QApplication::desktop()->width() < 300 ) |
326 | if ( KOPrefs::instance()->mMonthShowIcons ) { | 327 | size = 3; |
327 | if ( mInfo ) { | 328 | int x = 1; |
328 | x += size + 1; | 329 | if ( KOPrefs::instance()->mMonthShowIcons ) { |
329 | } | 330 | if ( mInfo ) { |
330 | if( mRecur ) { | 331 | x += size + 1; |
331 | x += size+1; | 332 | } |
332 | } | 333 | if( mRecur ) { |
333 | if( mAlarm ) { | 334 | x += size+1; |
334 | x += size+1; | 335 | } |
336 | if( mAlarm ) { | ||
337 | x += size+1; | ||
338 | } | ||
339 | if( mReply ) { | ||
340 | x += size+1; | ||
341 | } | ||
335 | } | 342 | } |
336 | if( mReply ) { | 343 | if( mMultiday ) { |
337 | x += size+1; | 344 | x += size+1+2+size/2; |
338 | } | 345 | } |
346 | return( x + lb->fontMetrics().width( text() ) + 1 ); | ||
339 | } | 347 | } |
340 | if( mMultiday ) { | 348 | if ( ! lb ) |
341 | x += size+1+2+size/2; | 349 | return 10; |
342 | } | 350 | //qDebug("ret wid %d ", lb->width()); |
343 | 351 | return lb->width(); | |
344 | return( x + lb->fontMetrics().width( text() ) + 1 ); | ||
345 | } | 352 | } |
346 | 353 | ||
347 | 354 | ||
348 | MonthViewCell::MonthViewCell( KOMonthView *parent,QWidget* par ) | 355 | MonthViewCell::MonthViewCell( KOMonthView *parent,QWidget* par ) |
349 | : QWidget( par ), | 356 | : QWidget( par ), |
350 | mMonthView( parent ) | 357 | mMonthView( parent ) |
351 | { | 358 | { |
352 | 359 | ||
353 | QVBoxLayout *topLayout = new QVBoxLayout( this ); | 360 | //QVBoxLayout *topLayout = new QVBoxLayout( this ); |
354 | 361 | ||
355 | // mLabel = new QLabel( this );QPushButton | 362 | // mLabel = new QLabel( this );QPushButton |
356 | mLabel = new QPushButton( this ); | 363 | mLabel = new QPushButton( this ); |
357 | //mLabel->setFrameStyle( QFrame::Panel | QFrame::Plain ); | 364 | //mLabel->setFrameStyle( QFrame::Panel | QFrame::Plain ); |
358 | //mLabel->setLineWidth( 1 ); | 365 | //mLabel->setLineWidth( 1 ); |
359 | //mLabel->setAlignment( AlignCenter ); | 366 | //mLabel->setAlignment( AlignCenter ); |
360 | mLabel->setFlat( true ); | 367 | mLabel->setFlat( true ); |
361 | mLabel->setFocusPolicy(NoFocus); | 368 | mLabel->setFocusPolicy(NoFocus); |
362 | mItemList = new KNoScrollListBox( this ); | 369 | mItemList = new KNoScrollListBox( this ); |
363 | mItemList->setMinimumSize( 10, 10 ); | 370 | mItemList->setMinimumSize( 10, 10 ); |
364 | mItemList->setFrameStyle( QFrame::Panel | QFrame::Plain ); | 371 | mItemList->setFrameStyle( QFrame::Panel | QFrame::Plain ); |
365 | mItemList->setLineWidth( 1 ); | 372 | mItemList->setLineWidth( 1 ); |
366 | topLayout->addWidget( mItemList ); | 373 | //topLayout->addWidget( mItemList ); |
367 | mLabel->raise(); | 374 | mLabel->raise(); |
368 | // QColor( 0,0,255 ) QColor( 160,1600,255 ) | 375 | // QColor( 0,0,255 ) QColor( 160,1600,255 ) |
369 | mStandardPalette = palette(); | 376 | mStandardPalette = palette(); |
370 | mStandardPalette.setColor(QColorGroup::Base, mStandardPalette.color( QPalette::Normal, QColorGroup::Background ) ); | 377 | mStandardPalette.setColor(QColorGroup::Base, mStandardPalette.color( QPalette::Normal, QColorGroup::Background ) ); |
371 | 378 | ||
372 | enableScrollBars( false ); | 379 | enableScrollBars( false ); |
373 | updateConfig(); | 380 | updateConfig(); |
374 | //connect( mLabel, SIGNAL( clicked( )), SLOT( newEvent() )); | 381 | //connect( mLabel, SIGNAL( clicked( )), SLOT( newEvent() )); |
375 | connect( mLabel, SIGNAL( clicked( )), SLOT( showDay() )); | 382 | connect( mLabel, SIGNAL( clicked( )), SLOT( showDay() )); |
376 | connect( mItemList, SIGNAL( doubleClicked( QListBoxItem *) ), | 383 | connect( mItemList, SIGNAL( doubleClicked( QListBoxItem *) ), |
377 | SLOT( defaultAction( QListBoxItem * ) ) ); | 384 | SLOT( defaultAction( QListBoxItem * ) ) ); |
378 | connect( mItemList, SIGNAL( rightButtonPressed( QListBoxItem *, | 385 | connect( mItemList, SIGNAL( rightButtonPressed( QListBoxItem *, |
@@ -408,35 +415,38 @@ QDate MonthViewCell::date() const | |||
408 | return mDate; | 415 | return mDate; |
409 | } | 416 | } |
410 | 417 | ||
411 | void MonthViewCell::setPrimary( bool primary ) | 418 | void MonthViewCell::setPrimary( bool primary ) |
412 | { | 419 | { |
413 | mPrimary = primary; | 420 | mPrimary = primary; |
414 | //setMyPalette(); | 421 | //setMyPalette(); |
415 | } | 422 | } |
416 | void MonthViewCell::setMyPalette() | 423 | void MonthViewCell::setMyPalette() |
417 | { | 424 | { |
418 | 425 | ||
419 | if ( mHoliday) { | 426 | if ( mHoliday) { |
420 | setPalette( mHolidayPalette ); | 427 | mLabel->setPalette( QPalette ( mHolidayPalette.color( QPalette::Normal,QColorGroup::Base),mHolidayPalette.color(QPalette::Normal,QColorGroup::Base ) )); |
428 | mItemList->setPalette( mHolidayPalette ); | ||
421 | } else { | 429 | } else { |
422 | if ( mPrimary ) { | 430 | if ( mPrimary ) { |
423 | setPalette( mPrimaryPalette ); | 431 | mLabel->setPalette( QPalette ( mPrimaryPalette.color( QPalette::Normal,QColorGroup::Base),mPrimaryPalette.color(QPalette::Normal,QColorGroup::Base ) )); |
432 | mItemList->setPalette( mPrimaryPalette ); | ||
424 | } else { | 433 | } else { |
425 | setPalette( mNonPrimaryPalette ); | 434 | mItemList->setPalette( mNonPrimaryPalette ); |
435 | mLabel->setPalette( QPalette ( mNonPrimaryPalette.color( QPalette::Normal,QColorGroup::Base),mNonPrimaryPalette.color(QPalette::Normal,QColorGroup::Base ) )); | ||
426 | } | 436 | } |
427 | } | 437 | } |
428 | QPalette pal = palette(); | 438 | //QPalette pal = palette(); |
429 | 439 | ||
430 | mLabel->setPalette( QPalette ( pal.color( QPalette::Normal,QColorGroup::Base),pal.color(QPalette::Normal,QColorGroup::Base ) )); | 440 | //mLabel->setPalette( QPalette ( pal.color( QPalette::Normal,QColorGroup::Base),pal.color(QPalette::Normal,QColorGroup::Base ) )); |
431 | } | 441 | } |
432 | QPalette MonthViewCell::getPalette () | 442 | QPalette MonthViewCell::getPalette () |
433 | { | 443 | { |
434 | if ( !KOPrefs::instance()->mMonthViewUsesDayColors ) | 444 | if ( !KOPrefs::instance()->mMonthViewUsesDayColors ) |
435 | return mStandardPalette; | 445 | return mStandardPalette; |
436 | if ( mHoliday) { | 446 | if ( mHoliday) { |
437 | return mHolidayPalette ; | 447 | return mHolidayPalette ; |
438 | } else { | 448 | } else { |
439 | if ( mPrimary ) { | 449 | if ( mPrimary ) { |
440 | return mPrimaryPalette ; | 450 | return mPrimaryPalette ; |
441 | } | 451 | } |
442 | } | 452 | } |
@@ -665,25 +675,26 @@ void MonthViewCell::finishUpdateCell() | |||
665 | QString text; | 675 | QString text; |
666 | bool smallDisplay = QApplication::desktop()->width() < 320 && KOPrefs::instance()->mMonthViewSatSunTog; | 676 | bool smallDisplay = QApplication::desktop()->width() < 320 && KOPrefs::instance()->mMonthViewSatSunTog; |
667 | if ( KOPrefs::instance()->mMonthViewWeek || KOGlobals::self()->calendarSystem()->day( mDate ) == 1 || (mDate.dayOfWeek() == 7 && !smallDisplay ) || KOPrefs::instance()->mMonthShowShort) { | 677 | if ( KOPrefs::instance()->mMonthViewWeek || KOGlobals::self()->calendarSystem()->day( mDate ) == 1 || (mDate.dayOfWeek() == 7 && !smallDisplay ) || KOPrefs::instance()->mMonthShowShort) { |
668 | text = KOGlobals::self()->calendarSystem()->monthName( mDate, true ) + " "; | 678 | text = KOGlobals::self()->calendarSystem()->monthName( mDate, true ) + " "; |
669 | mLabel->resize( mLabelBigSize ); | 679 | mLabel->resize( mLabelBigSize ); |
670 | text += QString::number( KOGlobals::self()->calendarSystem()->day(mDate) ); | 680 | text += QString::number( KOGlobals::self()->calendarSystem()->day(mDate) ); |
671 | } else { | 681 | } else { |
672 | mLabel->resize( mLabelSize ); | 682 | mLabel->resize( mLabelSize ); |
673 | text += QString::number( KOGlobals::self()->calendarSystem()->day(mDate) ); | 683 | text += QString::number( KOGlobals::self()->calendarSystem()->day(mDate) ); |
674 | } | 684 | } |
675 | 685 | ||
676 | mLabel->setText( text ); | 686 | mLabel->setText( text ); |
677 | resizeEvent( 0 ); | 687 | resizeEvent( 0 ); |
688 | |||
678 | } | 689 | } |
679 | void MonthViewCell::updateCell() | 690 | void MonthViewCell::updateCell() |
680 | { | 691 | { |
681 | //qDebug("MonthViewCell::updateCell() "); | 692 | //qDebug("MonthViewCell::updateCell() "); |
682 | if ( !mMonthView->isUpdatePossible() ) | 693 | if ( !mMonthView->isUpdatePossible() ) |
683 | return; | 694 | return; |
684 | startUpdateCell(); | 695 | startUpdateCell(); |
685 | //mLabel->setMaximumWidth( width() - mItemList->lineWidth()*2); | 696 | //mLabel->setMaximumWidth( width() - mItemList->lineWidth()*2); |
686 | QPtrList<Event> events = mMonthView->calendar()->events( mDate, true ); | 697 | QPtrList<Event> events = mMonthView->calendar()->events( mDate, true ); |
687 | Event *event; | 698 | Event *event; |
688 | for( event = events.first(); event; event = events.next() ) { // for event | 699 | for( event = events.first(); event; event = events.next() ) { // for event |
689 | insertEvent(event); | 700 | insertEvent(event); |
@@ -726,26 +737,34 @@ void MonthViewCell::updateConfig( bool bigFont ) // = false | |||
726 | mPrimaryPalette.setColor(QColorGroup::Base,KOPrefs::instance()->mMonthViewOddColor); | 737 | mPrimaryPalette.setColor(QColorGroup::Base,KOPrefs::instance()->mMonthViewOddColor); |
727 | mPrimaryPalette.setColor(QColorGroup::Background,KOPrefs::instance()->mMonthViewOddColor); | 738 | mPrimaryPalette.setColor(QColorGroup::Background,KOPrefs::instance()->mMonthViewOddColor); |
728 | mNonPrimaryPalette.setColor(QColorGroup::Foreground,KOPrefs::instance()->mMonthViewEvenColor.dark()); | 739 | mNonPrimaryPalette.setColor(QColorGroup::Foreground,KOPrefs::instance()->mMonthViewEvenColor.dark()); |
729 | mNonPrimaryPalette.setColor(QColorGroup::Base,KOPrefs::instance()->mMonthViewEvenColor); | 740 | mNonPrimaryPalette.setColor(QColorGroup::Base,KOPrefs::instance()->mMonthViewEvenColor); |
730 | mNonPrimaryPalette.setColor(QColorGroup::Background,KOPrefs::instance()->mMonthViewEvenColor); | 741 | mNonPrimaryPalette.setColor(QColorGroup::Background,KOPrefs::instance()->mMonthViewEvenColor); |
731 | } | 742 | } |
732 | //updateCell(); | 743 | //updateCell(); |
733 | } | 744 | } |
734 | 745 | ||
735 | void MonthViewCell::enableScrollBars( bool enabled ) | 746 | void MonthViewCell::enableScrollBars( bool enabled ) |
736 | { | 747 | { |
737 | if ( enabled ) { | 748 | if ( enabled ) { |
738 | mItemList->setVScrollBarMode(QScrollView::Auto); | 749 | //mItemList->setVScrollBarMode(QScrollView::Auto); |
739 | mItemList->setHScrollBarMode(QScrollView::Auto); | 750 | mItemList->setHScrollBarMode(QScrollView::Auto); |
751 | QListBoxItem *fi = mItemList->firstItem (); | ||
752 | if (fi ) { | ||
753 | int hei = mItemList->numRows () * fi->height(mItemList); | ||
754 | if ( hei < height() - mItemList->horizontalScrollBar()->height () ) | ||
755 | mItemList->setVScrollBarMode(QScrollView::AlwaysOff); | ||
756 | else | ||
757 | mItemList->setVScrollBarMode(QScrollView::Auto); | ||
758 | } | ||
740 | } else { | 759 | } else { |
741 | mItemList->setVScrollBarMode(QScrollView::AlwaysOff); | 760 | mItemList->setVScrollBarMode(QScrollView::AlwaysOff); |
742 | mItemList->setHScrollBarMode(QScrollView::AlwaysOff); | 761 | mItemList->setHScrollBarMode(QScrollView::AlwaysOff); |
743 | } | 762 | } |
744 | } | 763 | } |
745 | 764 | ||
746 | Incidence *MonthViewCell::selectedIncidence() | 765 | Incidence *MonthViewCell::selectedIncidence() |
747 | { | 766 | { |
748 | int index = mItemList->currentItem(); | 767 | int index = mItemList->currentItem(); |
749 | if ( index < 0 ) return 0; | 768 | if ( index < 0 ) return 0; |
750 | 769 | ||
751 | MonthViewItem *item = | 770 | MonthViewItem *item = |
@@ -772,37 +791,40 @@ QDate MonthViewCell::selectedIncidenceDate() | |||
772 | 791 | ||
773 | void MonthViewCell::deselect() | 792 | void MonthViewCell::deselect() |
774 | { | 793 | { |
775 | mItemList->clearSelection(); | 794 | mItemList->clearSelection(); |
776 | enableScrollBars( false ); | 795 | enableScrollBars( false ); |
777 | // updateCell(); | 796 | // updateCell(); |
778 | } | 797 | } |
779 | void MonthViewCell::select() | 798 | void MonthViewCell::select() |
780 | { | 799 | { |
781 | ;// updateCell(); | 800 | ;// updateCell(); |
782 | } | 801 | } |
783 | 802 | ||
784 | void MonthViewCell::resizeEvent ( QResizeEvent * ) | 803 | void MonthViewCell::resizeEvent ( QResizeEvent * e ) |
785 | { | 804 | { |
786 | if ( !mMonthView->isUpdatePossible() ) | 805 | if ( !mMonthView->isUpdatePossible() ) |
787 | return; | 806 | return; |
788 | 807 | //qDebug("++++++++++++++MonthViewCell::resizeEvent %d %d ", width(), height()); | |
808 | deselect(); | ||
789 | int size = height() - mLabel->height() - 2; | 809 | int size = height() - mLabel->height() - 2; |
790 | if ( size > 0 ) | 810 | if ( size > 0 ) |
791 | mItemList->verticalScrollBar()->setMaximumHeight( size ); | 811 | mItemList->verticalScrollBar()->setMaximumHeight( size ); |
792 | size = width() - mLabel->width() -2; | 812 | size = width() - mLabel->width() -2; |
793 | if ( size > 0 ) | 813 | if ( size > 0 ) |
794 | mItemList->horizontalScrollBar()->setMaximumWidth( size ); | 814 | mItemList->horizontalScrollBar()->setMaximumWidth( size ); |
795 | mLabel->move( width()-mItemList->lineWidth() - mLabel->width(), height()-mItemList->lineWidth() - mLabel->height() ); | 815 | mLabel->move( width()-mItemList->lineWidth() - mLabel->width(), height()-mItemList->lineWidth() - mLabel->height() ); |
796 | //mLabel->setMaximumWidth( width() - mItemList->lineWidth()*2); | 816 | //mLabel->setMaximumWidth( width() - mItemList->lineWidth()*2); |
817 | mItemList->resize ( width(), height () ); | ||
818 | |||
797 | } | 819 | } |
798 | 820 | ||
799 | void MonthViewCell::defaultAction( QListBoxItem *item ) | 821 | void MonthViewCell::defaultAction( QListBoxItem *item ) |
800 | { | 822 | { |
801 | if ( !item ) return; | 823 | if ( !item ) return; |
802 | 824 | ||
803 | MonthViewItem *eventItem = static_cast<MonthViewItem *>( item ); | 825 | MonthViewItem *eventItem = static_cast<MonthViewItem *>( item ); |
804 | Incidence *incidence = eventItem->incidence(); | 826 | Incidence *incidence = eventItem->incidence(); |
805 | if ( incidence ) mMonthView->defaultAction( incidence ); | 827 | if ( incidence ) mMonthView->defaultAction( incidence ); |
806 | } | 828 | } |
807 | void MonthViewCell::showDay() | 829 | void MonthViewCell::showDay() |
808 | { | 830 | { |