-rw-r--r-- | korganizer/koviewmanager.cpp | 120 | ||||
-rw-r--r-- | korganizer/koviewmanager.h | 3 |
2 files changed, 76 insertions, 47 deletions
diff --git a/korganizer/koviewmanager.cpp b/korganizer/koviewmanager.cpp index 548ffd3..f97aa98 100644 --- a/korganizer/koviewmanager.cpp +++ b/korganizer/koviewmanager.cpp @@ -40,49 +40,49 @@ #include "kodialogmanager.h" #include "komonthview.h" #include "kolistview.h" #include "kowhatsnextview.h" #include "kojournalview.h" #include "kotimespanview.h" #include "koprefs.h" #include "navigatorbar.h" #include "kdatenavigator.h" #include "koviewmanager.h" //extern bool externFlagMonthviewBlockPainting; //bool globalFlagBlockPainting = false; int globalFlagBlockAgenda = 0; int globalFlagBlockLabel = 0; int globalFlagBlockAgendaItemPaint = 1; int globalFlagBlockAgendaItemUpdate = 1; KOViewManager::KOViewManager( CalendarView *mainView ) : QObject(), mMainView( mainView ) { mCurrentView = 0; - + flagResetViewChangeDate = 0; mWhatsNextView = 0; mTodoView = 0; mAgendaView = 0; mMonthView = 0; mListView = 0; mJournalView = 0; mTimeSpanView = 0; mCurrentAgendaView = 0 ; mFlagShowNextxDays = false; } KOViewManager::~KOViewManager() { } KOrg::BaseView *KOViewManager::currentView() { return mCurrentView; } void KOViewManager::readSettings(KConfig *config) { config->setGroup("General"); @@ -179,116 +179,142 @@ void KOViewManager::writeSettings(KConfig *config) else if (mCurrentView == mMonthView) view = "Month"; else if (mCurrentView == mListView) view = "List"; else if (mCurrentView == mJournalView) view = "Journal"; else if (mCurrentView == mTimeSpanView) view = "TimeSpan"; else if (mCurrentView == mTodoView) view = "Todo"; else view = "Agenda"; config->writeEntry("Current View",view); if (mAgendaView) { mAgendaView->writeSettings(config); } if (mTimeSpanView) { mTimeSpanView->writeSettings(config); } if (mListView) { mListView->writeSettings(config); } if (mTodoView) { mTodoView->saveLayout(config,"Todo View"); } } void KOViewManager::showNextView() { + static int selecteddatescount = 0; + static QDate selecteddate = QDate ( 2000, 1, 1 ); + static QDate baseCycleDate = QDate ( 2000, 1, 1 ); + int newCount = mMainView->dateNavigator()->selectedDates().count(); + if ( selecteddatescount != newCount && flagResetViewChangeDate == 0 ) { + flagResetViewChangeDate = 1; + } + if ( selecteddate != mMainView->dateNavigator()->selectedDates().first() ) + flagResetViewChangeDate = 1; + if ( flagResetViewChangeDate > 0 ) { + baseCycleDate = mMainView->dateNavigator()->selectedDates().first(); + //qDebug("newCycle "); + } if (mCurrentView == mWhatsNextView) goto NEXT_X; - if (mCurrentView == mAgendaView && mFlagShowNextxDays) goto JOURNAL; - if (mCurrentView == mJournalView ) goto DAY_1; - if (mCurrentView == mAgendaView && mCurrentAgendaView == 1 ) goto DAY_5; - if (mCurrentView == mAgendaView && mCurrentAgendaView == 5 ) goto DAY_7; - if (mCurrentView == mAgendaView ) goto DAY_6; - if (mCurrentView == mMonthView && KOPrefs::instance()->mMonthViewWeek) goto MONTH; - if (mCurrentView == mMonthView ) goto LIST; - if (mCurrentView == mListView ) goto TODO; - - // if (mCurrentView == mTodoView ) goto LIST; - - + // if (mCurrentView == mTodoView ) goto NEXT; NEXT: - if ( KOPrefs::instance()->mShowIconNext ) { showWhatsNextView();return ;} + if ( KOPrefs::instance()->mShowIconNext ) { showWhatsNextView();goto ENTE ;} NEXT_X: - if ( KOPrefs::instance()->mShowIconNextDays ) { showNextXView() ;return ;} + if ( KOPrefs::instance()->mShowIconNextDays ) { + globalFlagBlockAgenda = 1; + if ( mCurrentAgendaView != 3 ) + mCurrentAgendaView = -1; + showAgendaView(KOPrefs::instance()->mFullViewMonth); + globalFlagBlockAgenda = 2; + mMainView->dateNavigator()->selectDates( baseCycleDate , + KOPrefs::instance()->mNextXDays ); + mFlagShowNextxDays = true; + mCurrentAgendaView = 3 ; + goto ENTE ; + } JOURNAL: - if ( KOPrefs::instance()->mShowIconJournal ) { showJournalView() ;return ;} + if ( KOPrefs::instance()->mShowIconJournal ) { + resetDateSilent( baseCycleDate , 1 ); + showJournalView() ;goto ENTE ;} DAY_1: - if ( KOPrefs::instance()->mShowIconDay1 ) { showDayView() ;return ;} + if ( KOPrefs::instance()->mShowIconDay1 ) { + resetDateSilent( baseCycleDate , 2 ); + showDayView() ;goto ENTE ;} DAY_5: - if ( KOPrefs::instance()->mShowIconDay5 ) { showWorkWeekView() ;return ;} + if ( KOPrefs::instance()->mShowIconDay5 ) { + resetDateSilent( baseCycleDate , 2 ); + showWorkWeekView() ;goto ENTE ;} DAY_7: - if ( KOPrefs::instance()->mShowIconDay7 ) { showWeekView();return ;} + if ( KOPrefs::instance()->mShowIconDay7 ) { + resetDateSilent( baseCycleDate , 2 ); + showWeekView();goto ENTE ;} DAY_6: - if ( KOPrefs::instance()->mShowIconDay6 ) { showMonthViewWeek();return ;} + if ( KOPrefs::instance()->mShowIconDay6 ) { + resetDateSilent( baseCycleDate , 2 ); + showMonthViewWeek();goto ENTE ;} MONTH: - if ( KOPrefs::instance()->mShowIconMonth ) { showMonthView();return ;} + if ( KOPrefs::instance()->mShowIconMonth ) { + resetDateSilent( baseCycleDate , 2 ); + showMonthView();goto ENTE ;} LIST: - if ( KOPrefs::instance()->mShowIconList ) { showListView() ;return ;} + if ( KOPrefs::instance()->mShowIconList ) { + resetDateSilent( baseCycleDate , 2 ); + showListView() ;goto ENTE ;} TODO: - if ( KOPrefs::instance()->mShowIconTodoview ) { showTodoView() ;return ;} - - if ( KOPrefs::instance()->mShowIconNext ) { showWhatsNextView();return ;} - - if ( KOPrefs::instance()->mShowIconNextDays ) { showNextXView() ;return ;} - - if ( KOPrefs::instance()->mShowIconJournal ) { showJournalView() ;return ;} - - if ( KOPrefs::instance()->mShowIconDay1 ) { showDayView() ;return ;} - - if ( KOPrefs::instance()->mShowIconDay5 ) { showWorkWeekView() ;return ;} - - if ( KOPrefs::instance()->mShowIconDay7 ) { showWeekView();return ;} - - if ( KOPrefs::instance()->mShowIconDay6 ) { showMonthViewWeek();return ;} - - if ( KOPrefs::instance()->mShowIconMonth ) { showMonthView();return ;} - - if ( KOPrefs::instance()->mShowIconList ) { showListView() ;return ;} - - //if ( KOPrefs::instance()->mShowIconTodoview ) { showTodoView() ;return ;} - - - + if ( KOPrefs::instance()->mShowIconTodoview ) { showTodoView() ;goto ENTE ;} + if ( KOPrefs::instance()->mShowIconNext ) { goto NEXT ;} + if ( KOPrefs::instance()->mShowIconNextDays ) { goto NEXT_X ;} + if ( KOPrefs::instance()->mShowIconJournal ) { goto JOURNAL;} + if ( KOPrefs::instance()->mShowIconDay1 ) { goto DAY_1 ;} + if ( KOPrefs::instance()->mShowIconDay5 ) { goto DAY_5 ;} + if ( KOPrefs::instance()->mShowIconDay7 ) { goto DAY_7 ;} + if ( KOPrefs::instance()->mShowIconDay6 ) { goto DAY_6 ;} + if ( KOPrefs::instance()->mShowIconMonth ) {goto MONTH ;} + if ( KOPrefs::instance()->mShowIconList ) { goto LIST ;} + //if ( KOPrefs::instance()->mShowIconTodoview ) { showTodoView() ;goto ENTE ;} + ENTE: + flagResetViewChangeDate = 0; + selecteddatescount = mMainView->dateNavigator()->selectedDates().count(); + selecteddate = mMainView->dateNavigator()->selectedDates().first(); + +} +void KOViewManager::resetDateSilent( QDate date , int days ) +{ + mMainView->dateNavigator()->blockSignals( true ); + mMainView->dateNavigator()->selectDates( date , days ); + mMainView->dateNavigator()->blockSignals( false ); } void KOViewManager::showView(KOrg::BaseView *view, bool fullScreen ) { - + if ( flagResetViewChangeDate < 10 ) + ++flagResetViewChangeDate; //mFlagShowNextxDays = false; //if(view == mCurrentView) return; if ( view == 0 ) { view = mCurrentView; if ( view == 0 ) return; } bool callupdate = !(view == mCurrentView); bool full = fullScreen; if(view == mCurrentView && view != mWhatsNextView ) { if ( mCurrentAgendaView < 0 ) return; if ( view != mMonthView ) full = mMainView->leftFrame()->isVisible(); } else { if ( view == mMonthView && mMonthView) ;//mMonthView->skipResize = true ; mCurrentView = view; // bool full = fullScreen; bool isFull = !mMainView->leftFrame()->isVisible(); if ( isFull && KOPrefs::instance()->mViewChangeHoldFullscreen ) full = true; if ( !isFull && KOPrefs::instance()->mViewChangeHoldNonFullscreen ) full = false; diff --git a/korganizer/koviewmanager.h b/korganizer/koviewmanager.h index 1d565a6..8dc03e0 100644 --- a/korganizer/koviewmanager.h +++ b/korganizer/koviewmanager.h @@ -80,44 +80,47 @@ class KOViewManager : public QObject signals: void printWNV(); void signalFullScreen( bool ); void signalAgendaView( bool ); public slots: void slotprintWNV(); void showNextView(); void showMonth( const QDate & ); void showDateView( int, QDate ); void updateView(); void showWhatsNextView(); void showListView(); void showAgendaView( bool fullScreen = false ); void showDayView(); void showWorkWeekView(); void showWeekView(); void showNextXView(); void showMonthView(); void showMonthViewWeek(); void showTodoView(); void showJournalView(); void showTimeSpanView(); private: + void resetDateSilent( QDate date , int days ); + int flagResetViewChangeDate; + QDate currentViewChangeDate; void createMonthView(); CalendarView *mMainView; int mCurrentAgendaView; KOAgendaView *mAgendaView; KOListView *mListView; KOMonthView *mMonthView; KOTodoView *mTodoView; KOWhatsNextView *mWhatsNextView; KOJournalView *mJournalView; KOTimeSpanView *mTimeSpanView; KOrg::BaseView *mCurrentView; // currently active event view int mAgendaViewMode; bool mFlagShowNextxDays; }; #endif |