summaryrefslogtreecommitdiffabout
path: root/korganizer
Unidiff
Diffstat (limited to 'korganizer') (more/less context) (ignore whitespace changes)
-rw-r--r--korganizer/komonthview.cpp11
1 files changed, 5 insertions, 6 deletions
diff --git a/korganizer/komonthview.cpp b/korganizer/komonthview.cpp
index 9888566..6294b98 100644
--- a/korganizer/komonthview.cpp
+++ b/korganizer/komonthview.cpp
@@ -645,101 +645,97 @@ void MonthViewCell::enableScrollBars( bool enabled )
645 } else { 645 } else {
646 mItemList->setVScrollBarMode(QScrollView::AlwaysOff); 646 mItemList->setVScrollBarMode(QScrollView::AlwaysOff);
647 mItemList->setHScrollBarMode(QScrollView::AlwaysOff); 647 mItemList->setHScrollBarMode(QScrollView::AlwaysOff);
648 } 648 }
649} 649}
650 650
651Incidence *MonthViewCell::selectedIncidence() 651Incidence *MonthViewCell::selectedIncidence()
652{ 652{
653 int index = mItemList->currentItem(); 653 int index = mItemList->currentItem();
654 if ( index < 0 ) return 0; 654 if ( index < 0 ) return 0;
655 655
656 MonthViewItem *item = 656 MonthViewItem *item =
657 static_cast<MonthViewItem *>( mItemList->item( index ) ); 657 static_cast<MonthViewItem *>( mItemList->item( index ) );
658 658
659 if ( !item ) return 0; 659 if ( !item ) return 0;
660 660
661 return item->incidence(); 661 return item->incidence();
662} 662}
663 663
664QDate MonthViewCell::selectedIncidenceDate() 664QDate MonthViewCell::selectedIncidenceDate()
665{ 665{
666 QDate qd; 666 QDate qd;
667 int index = mItemList->currentItem(); 667 int index = mItemList->currentItem();
668 if ( index < 0 ) return qd; 668 if ( index < 0 ) return qd;
669 669
670 MonthViewItem *item = 670 MonthViewItem *item =
671 static_cast<MonthViewItem *>( mItemList->item( index ) ); 671 static_cast<MonthViewItem *>( mItemList->item( index ) );
672 672
673 if ( !item ) return qd; 673 if ( !item ) return qd;
674 674
675 return item->incidenceDate(); 675 return item->incidenceDate();
676} 676}
677 677
678void MonthViewCell::deselect() 678void MonthViewCell::deselect()
679{ 679{
680 mItemList->clearSelection(); 680 mItemList->clearSelection();
681 enableScrollBars( false ); 681 enableScrollBars( false );
682 // updateCell(); 682 // updateCell();
683} 683}
684void MonthViewCell::select() 684void MonthViewCell::select()
685{ 685{
686 ;// updateCell(); 686 ;// updateCell();
687} 687}
688 688
689void MonthViewCell::resizeEvent ( QResizeEvent * ) 689void MonthViewCell::resizeEvent ( QResizeEvent * )
690{ 690{
691 if ( !mMonthView->isUpdatePossible() ) 691 if ( !mMonthView->isUpdatePossible() )
692 return; 692 return;
693#ifndef DESKTOP_VERSION 693
694 if ( !isVisible() ){
695 return;
696 }
697#endif
698 int size = height() - mLabel->height() - 2; 694 int size = height() - mLabel->height() - 2;
699 if ( size > 0 ) 695 if ( size > 0 )
700 mItemList->verticalScrollBar()->setMaximumHeight( size ); 696 mItemList->verticalScrollBar()->setMaximumHeight( size );
701 size = width() - mLabel->width() -2; 697 size = width() - mLabel->width() -2;
702 if ( size > 0 ) 698 if ( size > 0 )
703 mItemList->horizontalScrollBar()->setMaximumWidth( size ); 699 mItemList->horizontalScrollBar()->setMaximumWidth( size );
704 mLabel->move( width()-mItemList->lineWidth() - mLabel->width(), height()-mItemList->lineWidth() - mLabel->height() ); 700 mLabel->move( width()-mItemList->lineWidth() - mLabel->width(), height()-mItemList->lineWidth() - mLabel->height() );
705 //mLabel->setMaximumWidth( width() - mItemList->lineWidth()*2); 701 //mLabel->setMaximumWidth( width() - mItemList->lineWidth()*2);
706} 702}
707 703
708void MonthViewCell::defaultAction( QListBoxItem *item ) 704void MonthViewCell::defaultAction( QListBoxItem *item )
709{ 705{
710 if ( !item ) return; 706 if ( !item ) return;
711 707
712 MonthViewItem *eventItem = static_cast<MonthViewItem *>( item ); 708 MonthViewItem *eventItem = static_cast<MonthViewItem *>( item );
713 Incidence *incidence = eventItem->incidence(); 709 Incidence *incidence = eventItem->incidence();
714 if ( incidence ) mMonthView->defaultAction( incidence ); 710 if ( incidence ) mMonthView->defaultAction( incidence );
715} 711}
716void MonthViewCell::showDay() 712void MonthViewCell::showDay()
717{ 713{
718 emit showDaySignal( date() ); 714 emit showDaySignal( date() );
719} 715}
720void MonthViewCell::newEvent() 716void MonthViewCell::newEvent()
721{ 717{
722 QDateTime dt( date(), QTime( KOPrefs::instance()->mStartTime, 0 ) ); 718 QDateTime dt( date(), QTime( KOPrefs::instance()->mStartTime, 0 ) );
723 emit newEventSignal( dt ); 719 emit newEventSignal( dt );
724} 720}
725void MonthViewCell::cellClicked( QListBoxItem *item ) 721void MonthViewCell::cellClicked( QListBoxItem *item )
726{ 722{
727 static QListBoxItem * lastClicked = 0; 723 static QListBoxItem * lastClicked = 0;
728 if ( item == 0 ) { 724 if ( item == 0 ) {
729 QDateTime dt( date(), QTime( KOPrefs::instance()->mStartTime, 0 ) ); 725 QDateTime dt( date(), QTime( KOPrefs::instance()->mStartTime, 0 ) );
730 emit newEventSignal( dt ); 726 emit newEventSignal( dt );
731 return; 727 return;
732 } 728 }
733 /* 729 /*
734 if ( lastClicked ) 730 if ( lastClicked )
735 if ( ! item ) { 731 if ( ! item ) {
736 if ( lastClicked->listBox() != item->listBox() ) 732 if ( lastClicked->listBox() != item->listBox() )
737 lastClicked->listBox()->clearSelection(); 733 lastClicked->listBox()->clearSelection();
738 } 734 }
739 */ 735 */
740 736
741 mMonthView->setSelectedCell( this ); 737 mMonthView->setSelectedCell( this );
742 if( KOPrefs::instance()->mEnableMonthScroll || KOPrefs::instance()->mMonthViewWeek ) enableScrollBars( true ); 738 if( KOPrefs::instance()->mEnableMonthScroll || KOPrefs::instance()->mMonthViewWeek ) enableScrollBars( true );
743 select(); 739 select();
744} 740}
745 741
@@ -796,96 +792,98 @@ KOMonthView::KOMonthView(Calendar *calendar, QWidget *parent, const char *name)
796 label->setAlignment(AlignCenter); 792 label->setAlignment(AlignCenter);
797 mDayLabels.insert( i, label ); 793 mDayLabels.insert( i, label );
798 } 794 }
799 795
800 bfont.setBold( false ); 796 bfont.setBold( false );
801 mWeekLabels.resize( mNumWeeks+1 ); 797 mWeekLabels.resize( mNumWeeks+1 );
802 for( i = 0; i < mNumWeeks+1; i++ ) { 798 for( i = 0; i < mNumWeeks+1; i++ ) {
803 KOWeekButton *label = new KOWeekButton( this ); 799 KOWeekButton *label = new KOWeekButton( this );
804 label->setFont(bfont); 800 label->setFont(bfont);
805 connect( label, SIGNAL( selectWeekNum ( int )),this, SIGNAL( selectWeekNum ( int )) ); 801 connect( label, SIGNAL( selectWeekNum ( int )),this, SIGNAL( selectWeekNum ( int )) );
806 label->setFlat(true); 802 label->setFlat(true);
807 QWhatsThis::add(label,i18n("Click on the week number to\nshow week in agenda view")); 803 QWhatsThis::add(label,i18n("Click on the week number to\nshow week in agenda view"));
808 //label->setFrameStyle(QFrame::Panel|QFrame::Raised); 804 //label->setFrameStyle(QFrame::Panel|QFrame::Raised);
809 //label->setLineWidth(1); 805 //label->setLineWidth(1);
810 //label->setAlignment(AlignCenter); 806 //label->setAlignment(AlignCenter);
811 mWeekLabels.insert( i, label ); 807 mWeekLabels.insert( i, label );
812 } 808 }
813 mWeekLabels[mNumWeeks]->setText( i18n("W")); 809 mWeekLabels[mNumWeeks]->setText( i18n("W"));
814 int row, col; 810 int row, col;
815 mCells.resize( mNumCells ); 811 mCells.resize( mNumCells );
816 for( row = 0; row < mNumWeeks; ++row ) { 812 for( row = 0; row < mNumWeeks; ++row ) {
817 for( col = 0; col < mDaysPerWeek; ++col ) { 813 for( col = 0; col < mDaysPerWeek; ++col ) {
818 MonthViewCell *cell = new MonthViewCell( this ); 814 MonthViewCell *cell = new MonthViewCell( this );
819 mCells.insert( row * mDaysPerWeek + col, cell ); 815 mCells.insert( row * mDaysPerWeek + col, cell );
820 816
821 connect( cell, SIGNAL( defaultAction( Incidence * ) ), 817 connect( cell, SIGNAL( defaultAction( Incidence * ) ),
822 SLOT( defaultAction( Incidence * ) ) ); 818 SLOT( defaultAction( Incidence * ) ) );
823 connect( cell, SIGNAL( newEventSignal( QDateTime ) ), 819 connect( cell, SIGNAL( newEventSignal( QDateTime ) ),
824 SIGNAL( newEventSignal( QDateTime ) ) ); 820 SIGNAL( newEventSignal( QDateTime ) ) );
825 connect( cell, SIGNAL( showDaySignal( QDate ) ), 821 connect( cell, SIGNAL( showDaySignal( QDate ) ),
826 SIGNAL( showDaySignal( QDate ) ) ); 822 SIGNAL( showDaySignal( QDate ) ) );
827 } 823 }
828 } 824 }
829 825
830 connect( mWeekLabels[mNumWeeks], SIGNAL( clicked() ), 826 connect( mWeekLabels[mNumWeeks], SIGNAL( clicked() ),
831 SLOT( switchView() ) ); 827 SLOT( switchView() ) );
832 mContextMenu = eventPopup(); 828 mContextMenu = eventPopup();
833 // updateConfig(); //useless here 829 // updateConfig(); //useless here
834 830
835 emit incidenceSelected( 0 ); 831 emit incidenceSelected( 0 );
836} 832}
837 833
838KOMonthView::~KOMonthView() 834KOMonthView::~KOMonthView()
839{ 835{
840 delete mContextMenu; 836 delete mContextMenu;
841} 837}
842void KOMonthView::switchView() 838void KOMonthView::switchView()
843{ 839{
840 if ( selectedCell( ) )
841 selectedCell()->deselect();
844 mShowWeekView = !mShowWeekView; 842 mShowWeekView = !mShowWeekView;
845 KOPrefs::instance()->mMonthViewWeek = mShowWeekView; 843 KOPrefs::instance()->mMonthViewWeek = mShowWeekView;
846 emit showNavigator( !mShowWeekView ); 844 emit showNavigator( !mShowWeekView );
847 computeLayout(); 845 computeLayout();
848 updateConfig(); 846 updateConfig();
849} 847}
850 848
851int KOMonthView::maxDatesHint() 849int KOMonthView::maxDatesHint()
852{ 850{
853 return mNumCells; 851 return mNumCells;
854} 852}
855 853
856int KOMonthView::currentDateCount() 854int KOMonthView::currentDateCount()
857{ 855{
858 return mNumCells; 856 return mNumCells;
859} 857}
860 858
861QPtrList<Incidence> KOMonthView::selectedIncidences() 859QPtrList<Incidence> KOMonthView::selectedIncidences()
862{ 860{
863 QPtrList<Incidence> selected; 861 QPtrList<Incidence> selected;
864 862
865 if ( mSelectedCell ) { 863 if ( mSelectedCell ) {
866 Incidence *incidence = mSelectedCell->selectedIncidence(); 864 Incidence *incidence = mSelectedCell->selectedIncidence();
867 if ( incidence ) selected.append( incidence ); 865 if ( incidence ) selected.append( incidence );
868 } 866 }
869 867
870 return selected; 868 return selected;
871} 869}
872 870
873DateList KOMonthView::selectedDates() 871DateList KOMonthView::selectedDates()
874{ 872{
875 DateList selected; 873 DateList selected;
876 874
877 if ( mSelectedCell ) { 875 if ( mSelectedCell ) {
878 QDate qd = mSelectedCell->selectedIncidenceDate(); 876 QDate qd = mSelectedCell->selectedIncidenceDate();
879 if ( qd.isValid() ) selected.append( qd ); 877 if ( qd.isValid() ) selected.append( qd );
880 } 878 }
881 879
882 return selected; 880 return selected;
883} 881}
884 882
885void KOMonthView::printPreview(CalPrinter *calPrinter, const QDate &fd, 883void KOMonthView::printPreview(CalPrinter *calPrinter, const QDate &fd,
886 const QDate &td) 884 const QDate &td)
887{ 885{
888#ifndef KORG_NOPRINTER 886#ifndef KORG_NOPRINTER
889 calPrinter->preview(CalPrinter::Month, fd, td); 887 calPrinter->preview(CalPrinter::Month, fd, td);
890#endif 888#endif
891} 889}
@@ -1114,101 +1112,102 @@ void KOMonthView::resizeEvent(QResizeEvent * e)
1114} 1112}
1115void KOMonthView::computeLayoutWeek() 1113void KOMonthView::computeLayoutWeek()
1116{ 1114{
1117 1115
1118 int daysToShow; 1116 int daysToShow;
1119 bool combinedSatSun = false; 1117 bool combinedSatSun = false;
1120 if (mShowSatSunComp = KOPrefs::instance()->mMonthViewSatSunTog ) { 1118 if (mShowSatSunComp = KOPrefs::instance()->mMonthViewSatSunTog ) {
1121 daysToShow = 6; 1119 daysToShow = 6;
1122 combinedSatSun = true; 1120 combinedSatSun = true;
1123 } 1121 }
1124 int tWid = topLevelWidget()->size().width(); 1122 int tWid = topLevelWidget()->size().width();
1125 int tHei = topLevelWidget()->size().height(); 1123 int tHei = topLevelWidget()->size().height();
1126 1124
1127 int wid = size().width();//e 1125 int wid = size().width();//e
1128 int hei = size().height()-1; 1126 int hei = size().height()-1;
1129 1127
1130 if ( ((wid *3)/2) < tWid && (( hei *3) /2) < tHei ) 1128 if ( ((wid *3)/2) < tWid && (( hei *3) /2) < tHei )
1131 return; 1129 return;
1132 1130
1133 if ( wid < hei ) 1131 if ( wid < hei )
1134 daysToShow = 2; 1132 daysToShow = 2;
1135 else 1133 else
1136 daysToShow = 3; 1134 daysToShow = 3;
1137 mShowSatSunComp = true; 1135 mShowSatSunComp = true;
1138 combinedSatSun = true; 1136 combinedSatSun = true;
1139 1137
1140 //qDebug("KOMonthView::computeLayout()------------------------------------ "); 1138 //qDebug("KOMonthView::computeLayout()------------------------------------ ");
1141 QFontMetrics fm ( mWeekLabels[0]->font() ); 1139 QFontMetrics fm ( mWeekLabels[0]->font() );
1142 int weeklabelwid = fm.width( "888" ); 1140 int weeklabelwid = fm.width( "888" );
1143 wid -= weeklabelwid; 1141 wid -= weeklabelwid;
1144 1142
1145 int colWid = wid / daysToShow; 1143 int colWid = wid / daysToShow;
1146 int lastCol = wid - ( colWid*6 ); 1144 int lastCol = wid - ( colWid*6 );
1147 int dayLabelHei = mDayLabels[0]->sizeHint().height(); 1145 int dayLabelHei = mDayLabels[0]->sizeHint().height();
1148 int cellHei = (hei - (5- daysToShow )*dayLabelHei) /(5- daysToShow ); 1146 int cellHei = (hei - (5- daysToShow )*dayLabelHei) /(5- daysToShow );
1149 int colModulo = wid % daysToShow; 1147 int colModulo = wid % daysToShow;
1150 int rowModulo = (hei- (5- daysToShow )*dayLabelHei) % daysToShow-1; 1148 int rowModulo = (hei- (5- daysToShow )*dayLabelHei) % daysToShow-1;
1151 //qDebug("rowmod %d ", rowModulo); 1149 //qDebug("rowmod %d ", rowModulo);
1152 int i; 1150 int i;
1153 int x,y,w,h; 1151 int x,y,w,h;
1154 x= 0; 1152 x= 0;
1155 y= 0; 1153 y= 0;
1156 w = colWid; 1154 w = colWid;
1157 h = dayLabelHei ; 1155 h = dayLabelHei ;
1158 for ( i = 0; i < 7; i++) { 1156 for ( i = 0; i < 7; i++) {
1159 if ( i && !( i % daysToShow) && i < 6) { 1157 if ( i && !( i % daysToShow) && i < 6) {
1160 y += hei/(5-daysToShow); 1158 y += hei/(5-daysToShow);
1161 x = 0; 1159 x = 0;
1160 w = colWid;
1162 } 1161 }
1163 if ( i == daysToShow-colModulo ) 1162 if ( i == daysToShow-colModulo )
1164 ++w; 1163 ++w;
1165 if ( i >= 5 ) { 1164 if ( i >= 5 ) {
1166 mDayLabels[i]->setGeometry( x+weeklabelwid,y,w/2,h); 1165 mDayLabels[i]->setGeometry( x+weeklabelwid,y,w/2+1,h);
1167 x -= w/2 ; 1166 x -= w/2 ;
1168 } 1167 }
1169 else 1168 else
1170 mDayLabels[i]->setGeometry( x+weeklabelwid,y,w,h); 1169 mDayLabels[i]->setGeometry( x+weeklabelwid,y,w,h);
1171 x += w; 1170 x += w;
1172 } 1171 }
1173 x= 0; 1172 x= 0;
1174 y= dayLabelHei; 1173 y= dayLabelHei;
1175 w = colWid; 1174 w = colWid;
1176 h = cellHei; 1175 h = cellHei;
1177 for ( i = 0; i < mCells.count(); ++i) { 1176 for ( i = 0; i < mCells.count(); ++i) {
1178 if ( i > 6 ) { 1177 if ( i > 6 ) {
1179 mCells[i]->hide(); 1178 mCells[i]->hide();
1180 continue; 1179 continue;
1181 } 1180 }
1182 1181
1183 w = colWid; 1182 w = colWid;
1184 if ( ((i) % daysToShow) >= daysToShow-colModulo ) { 1183 if ( ((i) % daysToShow) >= daysToShow-colModulo ) {
1185 ++w; 1184 ++w;
1186 } 1185 }
1187 if ( i == (daysToShow-1-rowModulo)*7) 1186 if ( i == (daysToShow-1-rowModulo)*7)
1188 ++h; 1187 ++h;
1189 1188
1190 if ( i >= 5 ) { 1189 if ( i >= 5 ) {
1191 if ( i ==5 ) { 1190 if ( i ==5 ) {
1192 mCells[i]->setGeometry ( x+weeklabelwid,y,w,h/2 ); 1191 mCells[i]->setGeometry ( x+weeklabelwid,y,w,h/2 );
1193 x -= w ;y += h/2; 1192 x -= w ;y += h/2;
1194 } else { 1193 } else {
1195 mCells[i]->setGeometry ( x+weeklabelwid,y,w,h-h/2 ); 1194 mCells[i]->setGeometry ( x+weeklabelwid,y,w,h-h/2 );
1196 y -= h/2; 1195 y -= h/2;
1197 } 1196 }
1198 } else 1197 } else
1199 mCells[i]->setGeometry ( x+weeklabelwid,y,w,h ); 1198 mCells[i]->setGeometry ( x+weeklabelwid,y,w,h );
1200 1199
1201 1200
1202 x += w; 1201 x += w;
1203 if ( x + w/2 > wid ) { 1202 if ( x + w/2 > wid ) {
1204 x = 0; 1203 x = 0;
1205 y += h+dayLabelHei ; 1204 y += h+dayLabelHei ;
1206 } 1205 }
1207 } 1206 }
1208 y= dayLabelHei; 1207 y= dayLabelHei;
1209 h = cellHei ; 1208 h = cellHei ;
1210 mWeekLabels[0]->setGeometry( 0,y,weeklabelwid,hei-dayLabelHei); 1209 mWeekLabels[0]->setGeometry( 0,y,weeklabelwid,hei-dayLabelHei);
1211 for ( i = 1; i < 6; i++) { 1210 for ( i = 1; i < 6; i++) {
1212 mWeekLabels[i]->hide(); 1211 mWeekLabels[i]->hide();
1213 } 1212 }
1214 mWeekLabels[6]->setGeometry( 0,0,weeklabelwid,dayLabelHei); 1213 mWeekLabels[6]->setGeometry( 0,0,weeklabelwid,dayLabelHei);