summaryrefslogtreecommitdiffabout
Side-by-side diff
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--korganizer/koviewmanager.cpp120
-rw-r--r--korganizer/koviewmanager.h3
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