-rw-r--r-- | korganizer/datenavigatorcontainer.cpp | 1 | ||||
-rw-r--r-- | korganizer/kdatenavigator.cpp | 12 | ||||
-rw-r--r-- | korganizer/kdatenavigator.h | 5 |
3 files changed, 14 insertions, 4 deletions
diff --git a/korganizer/datenavigatorcontainer.cpp b/korganizer/datenavigatorcontainer.cpp index cbfc5b2..3f6e29b 100644 --- a/korganizer/datenavigatorcontainer.cpp +++ b/korganizer/datenavigatorcontainer.cpp @@ -164,12 +164,13 @@ void DateNavigatorContainer::resizeEvent( QResizeEvent * ) verticalCount != mVerticalCount ) { uint count = horizontalCount * verticalCount; if ( count == 0 ) return; while ( count > ( mExtraViews.count() + 1 ) ) { KDateNavigator *n = new KDateNavigator( this ); + n->setMonthSignalOffset ( mExtraViews.count()+1 ); mExtraViews.append( n ); n->setCalendar( mCalendar ); setBaseDates(); connectNavigatorView( n ); n->show(); } diff --git a/korganizer/kdatenavigator.cpp b/korganizer/kdatenavigator.cpp index e76a85a..ab9a40f 100644 --- a/korganizer/kdatenavigator.cpp +++ b/korganizer/kdatenavigator.cpp @@ -54,26 +54,26 @@ KDateNavigator::KDateNavigator( QWidget *parent, const char *name ) QGridLayout *topLayout = new QGridLayout(this,8,8); if (! startDate.isValid()) { qDebug("KDateNavigator::invalid startdate "); startDate = QDate::currentDate(); } - + mMonthSignalOffset = 0; mSelectedDates.append(startDate); m_MthYr = startDate; m_bShowWeekNums = true; setFont( KOPrefs::instance()->mDateNavigatorFont ); mNavigatorBar = new NavigatorBar( startDate, this ); topLayout->addMultiCellWidget( mNavigatorBar, 0, 0, 0, 7 ); //mNavigatorBar->resize( 1,1); connect( mNavigatorBar, SIGNAL( goPrevYear() ), SIGNAL( goPrevYear() ) ); connect( mNavigatorBar, SIGNAL( goPrevMonth() ), SIGNAL( goPrevMonth() ) ); connect( mNavigatorBar, SIGNAL( goNextMonth() ), SIGNAL( goNextMonth() ) ); connect( mNavigatorBar, SIGNAL( goNextYear() ), SIGNAL( goNextYear() ) ); - connect( mNavigatorBar, SIGNAL( monthSelected( int ) ), SIGNAL( monthSelected( int ) ) ); + connect( mNavigatorBar, SIGNAL( monthSelected( int ) ), SLOT( slotMonthSelected( int ) ) ); // get the day of the week on the first day QDate dayone(m_MthYr.year(), m_MthYr.month(), 1); m_fstDayOfWk = dayone.dayOfWeek(); int i; @@ -114,12 +114,20 @@ KDateNavigator::KDateNavigator( QWidget *parent, const char *name ) // read settings from configuration file. updateConfig(); enableRollover(FollowMonth); //setFixedSize ( sizeHint() ); } +void KDateNavigator::slotMonthSelected( int m ) +{ + if ( m_MthYr.month() <= mMonthSignalOffset) + m += 12; + int mo = m - mMonthSignalOffset; + emit monthSelected( m - mMonthSignalOffset ); + +} void KDateNavigator::setCalendar( Calendar *cal ) { daymatrix->setCalendar( cal ); } void KDateNavigator::setBaseDate( const QDate &date ) diff --git a/korganizer/kdatenavigator.h b/korganizer/kdatenavigator.h index 0aeb77a..56822fa 100644 --- a/korganizer/kdatenavigator.h +++ b/korganizer/kdatenavigator.h @@ -60,13 +60,13 @@ class KDateNavigator: public QFrame void setShowWeekNums( bool enabled ); void setCalendar( Calendar * ); void setBaseDate( const QDate & ); KCal::DateList selectedDates() const { return mSelectedDates; } NavigatorBar *navigatorBar() const { return mNavigatorBar; } - + void setMonthSignalOffset ( int off ) { mMonthSignalOffset = off;} public slots: void selectDates( const KCal::DateList & ); void updateView(); void updateConfig(); void updateDayMatrix(); @@ -102,21 +102,22 @@ class KDateNavigator: public QFrame void possiblyPastMidnight(); /** handles updating the view when midnight has come by due to idle time. * */ void passedMidnight(); - + void slotMonthSelected( int m ); protected: void updateDates(); void wheelEvent (QWheelEvent *); bool eventFilter (QObject *,QEvent *); private: + int mMonthSignalOffset; NavigatorBar *mNavigatorBar; QFrame *headingSep; QFrame *weeknumSep; QLabel *headings[7]; QLabel *weeknos[7]; |