summaryrefslogtreecommitdiffabout
path: root/korganizer/koagendaview.cpp
authorzautrix <zautrix>2005-02-01 12:06:53 (UTC)
committer zautrix <zautrix>2005-02-01 12:06:53 (UTC)
commitd1aa72f683fb264cca6936a8119d0abe9b310325 (patch) (unidiff)
treee9099e8a366ba9890139f6ecce5ad686d3c06d93 /korganizer/koagendaview.cpp
parent00b559c52051c05d6df41724b207a038c0e548bf (diff)
downloadkdepimpi-d1aa72f683fb264cca6936a8119d0abe9b310325.zip
kdepimpi-d1aa72f683fb264cca6936a8119d0abe9b310325.tar.gz
kdepimpi-d1aa72f683fb264cca6936a8119d0abe9b310325.tar.bz2
fixes
Diffstat (limited to 'korganizer/koagendaview.cpp') (more/less context) (show whitespace changes)
-rw-r--r--korganizer/koagendaview.cpp41
1 files changed, 21 insertions, 20 deletions
diff --git a/korganizer/koagendaview.cpp b/korganizer/koagendaview.cpp
index aa36553..8c27c43 100644
--- a/korganizer/koagendaview.cpp
+++ b/korganizer/koagendaview.cpp
@@ -616,121 +616,127 @@ void KOAgendaView::slotDaylabelClicked()
616 QDate firstDate = mSelectedDates.first(); 616 QDate firstDate = mSelectedDates.first();
617 if ( cap == "0" ) 617 if ( cap == "0" )
618 emit showDateView( 6, firstDate ); 618 emit showDateView( 6, firstDate );
619 else if ( cap != "last" ) { 619 else if ( cap != "last" ) {
620 if ( mSelectedDates.count() == 1) 620 if ( mSelectedDates.count() == 1)
621 emit showDateView( 9, firstDate.addDays( cap.toInt()-1 ) ); 621 emit showDateView( 9, firstDate.addDays( cap.toInt()-1 ) );
622 else 622 else
623 emit showDateView( 3, firstDate.addDays( cap.toInt()-1 ) ); 623 emit showDateView( 3, firstDate.addDays( cap.toInt()-1 ) );
624 } 624 }
625 else 625 else
626 showDateView( 10, firstDate.addDays(1 ) ); 626 showDateView( 10, firstDate.addDays(1 ) );
627} 627}
628
629QPushButton* KOAgendaView::getNewDaylabel()
630{
631
632 QPushButton * dayLabel = new QPushButton(mDayLabels);
633 dayLabel->setFlat( true );
634 connect( dayLabel, SIGNAL( clicked() ), this, SLOT ( slotDaylabelClicked() ) );
635 dayLabel->setFocusPolicy(NoFocus);
636 dayLabel->setSizePolicy(QSizePolicy( QSizePolicy::Expanding ,QSizePolicy::Expanding ));
637 mDayLabelsList.append( dayLabel );
638 mLayoutDayLabels->addWidget(dayLabel);
639 //mLayoutDayLabels->setStretchFactor(dayLabel, 100);
640 return dayLabel ;
641}
642
628void KOAgendaView::createDayLabels() 643void KOAgendaView::createDayLabels()
629{ 644{
630 645
631 if ( mBlockUpdating || globalFlagBlockLabel == 1) { 646 if ( mBlockUpdating || globalFlagBlockLabel == 1) {
632 // qDebug(" KOAgendaView::createDayLabels() blocked "); 647 // qDebug(" KOAgendaView::createDayLabels() blocked ");
633 return; 648 return;
634 649
635 } 650 }
636 int newHight; 651 int newHight;
637 652
638 // ### Before deleting and recreating we could check if mSelectedDates changed... 653 // ### Before deleting and recreating we could check if mSelectedDates changed...
639 // It would remove some flickering and gain speed (since this is called by 654 // It would remove some flickering and gain speed (since this is called by
640 // each updateView() call) 655 // each updateView() call)
641 656
642 int maxWid = mUpcomingWidth - mTimeLabels->width()- mAgenda->verticalScrollBar()->width() - 2; 657 int maxWid = mUpcomingWidth - mTimeLabels->width()- mAgenda->verticalScrollBar()->width() - 2;
643 mDayLabelsFrame->setMaximumWidth( mUpcomingWidth ); 658 mDayLabelsFrame->setMaximumWidth( mUpcomingWidth );
644 if ( maxWid < 0 ) 659 if ( maxWid < 0 )
645 maxWid = 20; 660 maxWid = 20;
646 661
647 QFont dlf = KOPrefs::instance()->mTimeLabelsFont; 662 QFont dlf = KOPrefs::instance()->mTimeLabelsFont;
648 QFontMetrics fm ( dlf ); 663 QFontMetrics fm ( dlf );
649 int selCount = mSelectedDates.count(); 664 int selCount = mSelectedDates.count();
650 QString dayTest = "Mon 20"; 665 QString dayTest = "Mon 20";
651 int wid = fm.width( dayTest ); 666 int wid = fm.width( dayTest );
652 maxWid -= ( selCount * 3 ); 667 //maxWid -= ( selCount * 3 ); //working for QLabels
668 maxWid -= ( selCount * 5 ); //working for QPushButton
653 if ( maxWid < 0 ) 669 if ( maxWid < 0 )
654 maxWid = 20; 670 maxWid = 20;
655 int needWid = wid * selCount; 671 int needWid = wid * selCount;
656 //qDebug("++++++++Needed : %d MaxWidth: %d", needWid, maxWid ); 672 //qDebug("++++++++Needed : %d MaxWidth: %d", needWid, maxWid );
657 //if ( needWid > maxWid ) 673 //if ( needWid > maxWid )
658 // qDebug("DAYLABELS TOOOOOOO BIG "); 674 // qDebug("DAYLABELS TOOOOOOO BIG ");
659 while ( needWid > maxWid ) { 675 while ( needWid > maxWid ) {
660 dayTest = dayTest.left( dayTest.length() - 1 ); 676 dayTest = dayTest.left( dayTest.length() - 1 );
661 wid = fm.width( dayTest ); 677 wid = fm.width( dayTest );
662 needWid = wid * selCount; 678 needWid = wid * selCount;
663 } 679 }
664 int maxLen = dayTest.length(); 680 int maxLen = dayTest.length();
665 int fontPoint = dlf.pointSize(); 681 int fontPoint = dlf.pointSize();
666 if ( maxLen < 2 ) { 682 if ( maxLen < 2 ) {
667 int fontPoint = dlf.pointSize(); 683 int fontPoint = dlf.pointSize();
668 while ( fontPoint > 4 ) { 684 while ( fontPoint > 4 ) {
669 --fontPoint; 685 --fontPoint;
670 dlf.setPointSize( fontPoint ); 686 dlf.setPointSize( fontPoint );
671 QFontMetrics f( dlf ); 687 QFontMetrics f( dlf );
672 wid = f.width( "20" ); 688 wid = f.width( "20" )+2;
673 needWid = wid * selCount; 689 needWid = wid * selCount;
674 if ( needWid < maxWid ) 690 if ( needWid < maxWid )
675 break; 691 break;
676 } 692 }
677 maxLen = 2; 693 maxLen = 2;
678 } 694 }
679 //qDebug("Max len %d ", dayTest.length() ); 695 //qDebug("Max len %d ", dayTest.length() );
680 696
681 QFontMetrics tempF( dlf ); 697 QFontMetrics tempF( dlf );
682 newHight = tempF.height(); 698 newHight = tempF.height();
683 mDayLabels->setFont( dlf ); 699 mDayLabels->setFont( dlf );
684 // mLayoutDayLabels = new QHBoxLayout(mDayLabels);; 700 // mLayoutDayLabels = new QHBoxLayout(mDayLabels);;
685 // mLayoutDayLabels->addSpacing(mTimeLabels->width()); 701 // mLayoutDayLabels->addSpacing(mTimeLabels->width());
686 //mLayoutDayLabels->addSpacing( 2 ); 702 //mLayoutDayLabels->addSpacing( 2 );
687 // QFont lFont = dlf; 703 // QFont lFont = dlf;
688 bool appendLabels = false; 704 bool appendLabels = false;
689 QPushButton *dayLabel; 705 QPushButton *dayLabel;
690 dayLabel = mDayLabelsList.first(); 706 dayLabel = mDayLabelsList.first();
691 if ( !dayLabel ) { 707 if ( !dayLabel ) {
692 appendLabels = true; 708 appendLabels = true;
693 dayLabel = new QPushButton(mDayLabels); 709 dayLabel = getNewDaylabel();
694 dayLabel->setFlat( true );
695 connect( dayLabel, SIGNAL( clicked() ), this, SLOT ( slotDaylabelClicked() ) );
696 dayLabel->setFocusPolicy(NoFocus);
697 mDayLabelsList.append( dayLabel );
698 mLayoutDayLabels->addWidget(dayLabel);
699 } 710 }
700 dayLabel->setFixedWidth( mTimeLabels->width()+2 ); 711 dayLabel->setFixedWidth( mTimeLabels->width()+2 );
701 dayLabel->setFont( dlf ); 712 dayLabel->setFont( dlf );
702 dayLabel->setCaption("0"); 713 dayLabel->setCaption("0");
703 //dayLabel->setAlignment(QLabel::AlignHCenter); 714 //dayLabel->setAlignment(QLabel::AlignHCenter);
704 dayLabel->setText( KOGlobals::self()->calendarSystem()->monthName( mSelectedDates.first(), true ) ); 715 dayLabel->setText( KOGlobals::self()->calendarSystem()->monthName( mSelectedDates.first(), true ) );
705 dayLabel->show(); 716 dayLabel->show();
706 DateList::ConstIterator dit; 717 DateList::ConstIterator dit;
707 bool oneday = (mSelectedDates.first() == mSelectedDates.last() ); 718 bool oneday = (mSelectedDates.first() == mSelectedDates.last() );
708 int counter = 0; 719 int counter = 0;
709 for( dit = mSelectedDates.begin(); dit != mSelectedDates.end(); ++dit ) { 720 for( dit = mSelectedDates.begin(); dit != mSelectedDates.end(); ++dit ) {
710 ++counter; 721 ++counter;
711 QDate date = *dit; 722 QDate date = *dit;
712 // QBoxLayout *dayLayout = new QVBoxLayout(mLayoutDayLabels); 723 // QBoxLayout *dayLayout = new QVBoxLayout(mLayoutDayLabels);
713 if ( ! appendLabels ) { 724 if ( ! appendLabels ) {
714 dayLabel = mDayLabelsList.next(); 725 dayLabel = mDayLabelsList.next();
715 if ( !dayLabel ) 726 if ( !dayLabel )
716 appendLabels = true; 727 appendLabels = true;
717 } 728 }
718 if ( appendLabels ) { 729 if ( appendLabels ) {
719 dayLabel = new QPushButton(mDayLabels); 730 dayLabel = getNewDaylabel();
720 dayLabel->setFlat( true );
721 connect( dayLabel, SIGNAL( clicked() ), this, SLOT ( slotDaylabelClicked() ) );
722 dayLabel->setFocusPolicy(NoFocus);
723 mDayLabelsList.append( dayLabel );
724 mLayoutDayLabels->addWidget(dayLabel);
725 } 731 }
726 dayLabel->setMinimumWidth( 1 ); 732 dayLabel->setMinimumWidth( 1 );
727 dayLabel->setMaximumWidth( 2048 ); 733 dayLabel->setMaximumWidth( 2048 );
728 dayLabel->setFont( dlf ); 734 dayLabel->setFont( dlf );
729 dayLabel->show(); 735 dayLabel->show();
730 dayLabel->setCaption(QString::number( counter )); 736 dayLabel->setCaption(QString::number( counter ));
731 QString str; 737 QString str;
732 int dW = KOGlobals::self()->calendarSystem()->dayOfWeek(date); 738 int dW = KOGlobals::self()->calendarSystem()->dayOfWeek(date);
733 QString dayName = KOGlobals::self()->calendarSystem()->weekDayName( dW, true ); 739 QString dayName = KOGlobals::self()->calendarSystem()->weekDayName( dW, true );
734 switch ( maxLen ) { 740 switch ( maxLen ) {
735 case 2: 741 case 2:
736 str = QString::number( date.day() ); 742 str = QString::number( date.day() );
@@ -798,30 +804,25 @@ void KOAgendaView::createDayLabels()
798 // wid->setHeight(20); 804 // wid->setHeight(20);
799 dayLayout->addWidget(wid); 805 dayLayout->addWidget(wid);
800 } 806 }
801 } 807 }
802#endif 808#endif
803 } 809 }
804 if ( ! appendLabels ) { 810 if ( ! appendLabels ) {
805 dayLabel = mDayLabelsList.next(); 811 dayLabel = mDayLabelsList.next();
806 if ( !dayLabel ) 812 if ( !dayLabel )
807 appendLabels = true; 813 appendLabels = true;
808 } 814 }
809 if ( appendLabels ) { 815 if ( appendLabels ) {
810 dayLabel = new QPushButton(mDayLabels); 816 dayLabel = getNewDaylabel();
811 dayLabel->setFlat( true );
812 connect( dayLabel, SIGNAL( clicked() ), this, SLOT ( slotDaylabelClicked() ) );
813 dayLabel->setFocusPolicy(NoFocus);
814 mDayLabelsList.append( dayLabel );
815 mLayoutDayLabels->addWidget(dayLabel);
816 } 817 }
817 //dayLabel->hide();//test only 818 //dayLabel->hide();//test only
818 819
819 int offset = (mAgenda->width() - mAgenda->verticalScrollBar()->width()-3 ) % mSelectedDates.count() ; 820 int offset = (mAgenda->width() - mAgenda->verticalScrollBar()->width()-3 ) % mSelectedDates.count() ;
820 if ( offset < 0 ) offset = 0; 821 if ( offset < 0 ) offset = 0;
821 //qDebug("mLayoutDayLabels->addSpacing %d ", mAgenda->verticalScrollBar()->width()+offset+2 ); 822 //qDebug("mLayoutDayLabels->addSpacing %d ", mAgenda->verticalScrollBar()->width()+offset+2 );
822 dayLabel->setText(">");//QString::number ( mSelectedDates.first().month() ) ); 823 dayLabel->setText(">");//QString::number ( mSelectedDates.first().month() ) );
823 dayLabel->setFont( dlf ); 824 dayLabel->setFont( dlf );
824 dayLabel->show(); 825 dayLabel->show();
825 dayLabel->setCaption("last"); 826 dayLabel->setCaption("last");
826 dayLabel->setFixedWidth( mAgenda->verticalScrollBar()->width()+ offset ); 827 dayLabel->setFixedWidth( mAgenda->verticalScrollBar()->width()+ offset );
827 //qDebug("setToFixed %d ", mAgenda->verticalScrollBar()->width()+ offset+2); 828 //qDebug("setToFixed %d ", mAgenda->verticalScrollBar()->width()+ offset+2);