summaryrefslogtreecommitdiffabout
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--korganizer/datenavigatorcontainer.cpp35
-rw-r--r--korganizer/datenavigatorcontainer.h2
-rw-r--r--korganizer/kodaymatrix.cpp21
3 files changed, 33 insertions, 25 deletions
diff --git a/korganizer/datenavigatorcontainer.cpp b/korganizer/datenavigatorcontainer.cpp
index 9720146..ba97fa6 100644
--- a/korganizer/datenavigatorcontainer.cpp
+++ b/korganizer/datenavigatorcontainer.cpp
@@ -44,12 +44,15 @@ DateNavigatorContainer::DateNavigatorContainer( QWidget *parent,
44 44
45 mNavigatorView = new KDateNavigator( this, name ); 45 mNavigatorView = new KDateNavigator( this, name );
46 46
47 connectNavigatorView( mNavigatorView ); 47 connectNavigatorView( mNavigatorView );
48 //setSizePolicy( QSizePolicy (QSizePolicy::Expanding,QSizePolicy::Expanding) ); 48 //setSizePolicy( QSizePolicy (QSizePolicy::Expanding,QSizePolicy::Expanding) );
49 mLastDisplayedDN = 0; 49 mLastDisplayedDN = 0;
50 mUpdateTimer;
51 mUpdateTimer = new QTimer( this );
52 connect (mUpdateTimer ,SIGNAL(timeout()), this, SLOT ( checkUpdateDayMatrixDates() ));
50} 53}
51 54
52DateNavigatorContainer::~DateNavigatorContainer() 55DateNavigatorContainer::~DateNavigatorContainer()
53{ 56{
54} 57}
55 58
@@ -132,15 +135,30 @@ void DateNavigatorContainer::setCalendar( Calendar *cal )
132 mNavigatorView->setCalendar( cal ); 135 mNavigatorView->setCalendar( cal );
133 for( uint i = 0; i < mLastDisplayedDN; ++i ) { 136 for( uint i = 0; i < mLastDisplayedDN; ++i ) {
134 KDateNavigator *n = mExtraViews.at( i ); 137 KDateNavigator *n = mExtraViews.at( i );
135 n->setCalendar( cal ); 138 n->setCalendar( cal );
136 } 139 }
137} 140}
141void DateNavigatorContainer::checkUpdateDayMatrixDates()
142{
143 QDate last = lastAvailableDate();
144 QDate first = firstAvailableDate();
145
146 QDate selFirst = mFirstSelectedDate;
147 QDate selLast = selFirst.addDays( mSelectedDateCount-1 );
148 if ( selFirst >= first && selLast <= last ) {
149 updateDayMatrixDates();
150 }
151 else {
152 updateDayMatrixDates();
153 emit monthSelected( mFirstSelectedDate.month() );
154 }
155}
138void DateNavigatorContainer::updateDayMatrixDates() 156void DateNavigatorContainer::updateDayMatrixDates()
139{ 157{
140 158 mUpdateTimer->stop();
141 QDate fDate = mFirstSelectedDate; 159 QDate fDate = mFirstSelectedDate;
142 QDate lDate = fDate.addDays( mSelectedDateCount - 1 ); 160 QDate lDate = fDate.addDays( mSelectedDateCount - 1 );
143 mNavigatorView->dayMatrix()->setSelectedDaysFrom( fDate , lDate ); 161 mNavigatorView->dayMatrix()->setSelectedDaysFrom( fDate , lDate );
144 mNavigatorView->dayMatrix()->repaint( false ); 162 mNavigatorView->dayMatrix()->repaint( false );
145 for( uint i = 0; i < mLastDisplayedDN; ++i ) { 163 for( uint i = 0; i < mLastDisplayedDN; ++i ) {
146 KDateNavigator *n = mExtraViews.at( i ); 164 KDateNavigator *n = mExtraViews.at( i );
@@ -215,26 +233,12 @@ void DateNavigatorContainer::selectDates( const DateList &dateList )
215 if ( !mLastDisplayedDN ) { 233 if ( !mLastDisplayedDN ) {
216 mNavigatorView->selectDates( dateList ); 234 mNavigatorView->selectDates( dateList );
217 return; 235 return;
218 } 236 }
219 QDate fDate = dateList.first(); 237 QDate fDate = dateList.first();
220 QDate lDate = dateList.last(); 238 QDate lDate = dateList.last();
221 if ( mLastDisplayedDN <= 2 ) {
222 mNavigatorView->selectDates( dateList );
223 KDateNavigator *view = mExtraViews.at( 0 );
224 QDate bDate = fDate.addDays( fDate.daysInMonth () - fDate.day() +1 );
225 view->setBaseDate( bDate, false );
226 view->dayMatrix()->setSelectedDaysFrom(fDate , lDate);
227 if ( mLastDisplayedDN == 2 ) {
228 view = mExtraViews.at( 1 );
229 bDate = bDate.addDays( bDate.daysInMonth () - bDate.day() +1 );
230 view->setBaseDate( bDate, false );
231 view->dayMatrix()->setSelectedDaysFrom(fDate , lDate);
232 }
233 return;
234 }
235 //qDebug("%s %s ", lastAvailableDate().toString().latin1(), firstAvailableDate().toString().latin1() ); 239 //qDebug("%s %s ", lastAvailableDate().toString().latin1(), firstAvailableDate().toString().latin1() );
236 //qDebug("End %s %s ",lDate.toString().latin1(),curEnd.toString().latin1() ); 240 //qDebug("End %s %s ",lDate.toString().latin1(),curEnd.toString().latin1() );
237 if ( lDate <= lastAvailableDate() && firstAvailableDate() <= fDate) { 241 if ( lDate <= lastAvailableDate() && firstAvailableDate() <= fDate) {
238 updateDayMatrixDates(); 242 updateDayMatrixDates();
239 return; 243 return;
240 } 244 }
@@ -369,12 +373,13 @@ void DateNavigatorContainer::resizeEvent( QResizeEvent * e )
369 if ( x + 1 == horizontalCount ) bar->showButtons( false, true ); 373 if ( x + 1 == horizontalCount ) bar->showButtons( false, true );
370 else bar->showButtons( false, false ); 374 else bar->showButtons( false, false );
371 } 375 }
372 view->setGeometry( x * width, 376 view->setGeometry( x * width,
373 y * height, width, height ); 377 y * height, width, height );
374 } 378 }
379 mUpdateTimer->start( 250 );
375 //updateDayMatrixDates(); 380 //updateDayMatrixDates();
376} 381}
377 382
378QSize DateNavigatorContainer::minimumSizeHint() const 383QSize DateNavigatorContainer::minimumSizeHint() const
379{ 384{
380 return mNavigatorView->minimumSizeHint(); 385 return mNavigatorView->minimumSizeHint();
diff --git a/korganizer/datenavigatorcontainer.h b/korganizer/datenavigatorcontainer.h
index d5e5adf..df8efae 100644
--- a/korganizer/datenavigatorcontainer.h
+++ b/korganizer/datenavigatorcontainer.h
@@ -52,12 +52,13 @@ class DateNavigatorContainer: public QWidget
52 public slots: 52 public slots:
53 void selectDates( const KCal::DateList & ); 53 void selectDates( const KCal::DateList & );
54 void updateView(); 54 void updateView();
55 void updateConfig(); 55 void updateConfig();
56 void updateDayMatrix(); 56 void updateDayMatrix();
57 void updateDayMatrixDates(); 57 void updateDayMatrixDates();
58 void checkUpdateDayMatrixDates();
58 void updateToday(); 59 void updateToday();
59 void slotMonthSelected( int month ); 60 void slotMonthSelected( int month );
60 61
61 signals: 62 signals:
62 void datesSelected( const KCal::DateList & ); 63 void datesSelected( const KCal::DateList & );
63 void incidenceDropped( Incidence *, const QDate & ); 64 void incidenceDropped( Incidence *, const QDate & );
@@ -78,12 +79,13 @@ class DateNavigatorContainer: public QWidget
78 void resizeEvent( QResizeEvent * ); 79 void resizeEvent( QResizeEvent * );
79 80
80 void setBaseDates(); 81 void setBaseDates();
81 void connectNavigatorView( KDateNavigator *v ); 82 void connectNavigatorView( KDateNavigator *v );
82 83
83 private: 84 private:
85 QTimer* mUpdateTimer;
84 int mLastDisplayedDN; 86 int mLastDisplayedDN;
85 QDate mFirstSelectedDate; 87 QDate mFirstSelectedDate;
86 int mSelectedDateCount; 88 int mSelectedDateCount;
87 KDateNavigator *mNavigatorView; 89 KDateNavigator *mNavigatorView;
88 90
89 KCal::Calendar *mCalendar; 91 KCal::Calendar *mCalendar;
diff --git a/korganizer/kodaymatrix.cpp b/korganizer/kodaymatrix.cpp
index 366e8b8..59618bf 100644
--- a/korganizer/kodaymatrix.cpp
+++ b/korganizer/kodaymatrix.cpp
@@ -657,41 +657,41 @@ void KODayMatrix::dropEvent(QDropEvent *e)
657// ---------------------------------------------------------------------------- 657// ----------------------------------------------------------------------------
658// P A I N T E V E N T H A N D L I N G 658// P A I N T E V E N T H A N D L I N G
659// ---------------------------------------------------------------------------- 659// ----------------------------------------------------------------------------
660 660
661void KODayMatrix::paintEvent(QPaintEvent * pevent) 661void KODayMatrix::paintEvent(QPaintEvent * pevent)
662{ 662{
663 QRect sz = frameRect(); 663
664 if ( sz.width() <= 0 || sz.height() <= 0 ) 664 if ( width() <= 0 || height() <= 0 )
665 return; 665 return;
666 if ( mPendingUpdateBeforeRepaint ) { 666 if ( mPendingUpdateBeforeRepaint ) {
667 updateViewTimed(); 667 updateViewTimed();
668 mPendingUpdateBeforeRepaint = false; 668 mPendingUpdateBeforeRepaint = false;
669 } 669 }
670 if ( myPix.width() != sz.width() || myPix.height()!=sz.height() ) { 670 if ( myPix.width() != width() || myPix.height()!=height() ) {
671 myPix.resize(sz.size() ); 671 myPix.resize(size() );
672 } 672 }
673 QPainter p(&myPix); 673 QPainter p(&myPix);
674 p.setFont(font()); 674 p.setFont(font());
675 675
676 676
677 int dheight = daysize.height(); 677 int dheight = daysize.height();
678 int dwidth = daysize.width(); 678 int dwidth = daysize.width();
679 int row,col; 679 int row,col;
680 int selw, selh; 680 int selw, selh;
681 int xyOff = frameWidth(); 681 int xyOff = frameWidth();
682 int colModulo = sz.width() % 7; 682 int colModulo = (width()-2) % 7;
683 int rowModulo = sz.height() % 6; 683 int rowModulo = (height()-2) % 6;
684 //qDebug("col %d row %d ",colModulo,rowModulo ); 684 //qDebug("col %d row %d ",colModulo,rowModulo );
685 685
686 bool isRTL = KOGlobals::self()->reverseLayout(); 686 bool isRTL = KOGlobals::self()->reverseLayout();
687 687
688 // draw background and topleft frame 688 // draw background and topleft frame
689 p.fillRect(pevent->rect(), mDefaultBackColor); 689 p.fillRect(0,0,width(),height(), mDefaultBackColor);
690 p.setPen(mDefaultTextColor); 690 p.setPen(mDefaultTextColor);
691 p.drawRect(0, 0, sz.width()+1, sz.height()+1); 691 p.drawRect(0, 0, width(), height());
692 int mSelStartT = mSelStart; 692 int mSelStartT = mSelStart;
693 int mSelEndT = mSelEnd; 693 int mSelEndT = mSelEnd;
694 if ( mSelEndT >= NUMDAYS ) 694 if ( mSelEndT >= NUMDAYS )
695 mSelEndT = NUMDAYS-1; 695 mSelEndT = NUMDAYS-1;
696 // draw selected days with highlighted background color 696 // draw selected days with highlighted background color
697 if (mSelStart != NOSELECTION) { 697 if (mSelStart != NOSELECTION) {
@@ -760,13 +760,14 @@ void KODayMatrix::paintEvent(QPaintEvent * pevent)
760 if ( rowModulo ) { 760 if ( rowModulo ) {
761 if ( row >= 6 - rowModulo ) 761 if ( row >= 6 - rowModulo )
762 addRow = row - 5 + rowModulo; 762 addRow = row - 5 + rowModulo;
763 } 763 }
764 if ( row == 0) 764 if ( row == 0)
765 addRow = 1; 765 addRow = 1;
766 p.fillRect(isRTL ? 0 : col*dwidth+1+addCol2, row*dheight+addRow, (7-col)*dwidth+colModulo, 766 int drawWid = width()-(col*dwidth+1+addCol2)-1;
767 p.fillRect(isRTL ? 0 : col*dwidth+1+addCol2, row*dheight+addRow, drawWid,
767 dheight+1, selcol); 768 dheight+1, selcol);
768 // draw full block till last line 769 // draw full block till last line
769 selh = mSelEndT/7-row; 770 selh = mSelEndT/7-row;
770 addRow = 0; 771 addRow = 0;
771 if ( rowModulo ) { 772 if ( rowModulo ) {
772 if ( mSelEndT/7 >= 6 - rowModulo ) 773 if ( mSelEndT/7 >= 6 - rowModulo )
@@ -911,13 +912,13 @@ void KODayMatrix::paintEvent(QPaintEvent * pevent)
911 if (events[i] > 0) { 912 if (events[i] > 0) {
912 QFont myFont = font(); 913 QFont myFont = font();
913 myFont.setBold(false); 914 myFont.setBold(false);
914 p.setFont(myFont); 915 p.setFont(myFont);
915 } 916 }
916 } 917 }
917 int off = xyOff; 918 int off = 0;//xyOff;
918 bitBlt (this, off, off, &myPix, 0 ,0,width(), height() ,CopyROP); 919 bitBlt (this, off, off, &myPix, 0 ,0,width(), height() ,CopyROP);
919 //qDebug("ffffffffff %d ", off); 920 //qDebug("ffffffffff %d ", off);
920} 921}
921 922
922// ---------------------------------------------------------------------------- 923// ----------------------------------------------------------------------------
923// R E SI Z E E V E N T H A N D L I N G 924// R E SI Z E E V E N T H A N D L I N G