-rw-r--r-- | korganizer/koagendaview.cpp | 41 | ||||
-rw-r--r-- | korganizer/koagendaview.h | 1 | ||||
-rw-r--r-- | korganizer/kodaymatrix.cpp | 8 | ||||
-rw-r--r-- | korganizer/koviewmanager.cpp | 41 |
4 files changed, 48 insertions, 43 deletions
diff --git a/korganizer/koagendaview.cpp b/korganizer/koagendaview.cpp index aa36553..8c27c43 100644 --- a/korganizer/koagendaview.cpp +++ b/korganizer/koagendaview.cpp @@ -625,6 +625,21 @@ void KOAgendaView::slotDaylabelClicked() else showDateView( 10, firstDate.addDays(1 ) ); } + +QPushButton* KOAgendaView::getNewDaylabel() +{ + + QPushButton * dayLabel = new QPushButton(mDayLabels); + dayLabel->setFlat( true ); + connect( dayLabel, SIGNAL( clicked() ), this, SLOT ( slotDaylabelClicked() ) ); + dayLabel->setFocusPolicy(NoFocus); + dayLabel->setSizePolicy(QSizePolicy( QSizePolicy::Expanding ,QSizePolicy::Expanding )); + mDayLabelsList.append( dayLabel ); + mLayoutDayLabels->addWidget(dayLabel); + //mLayoutDayLabels->setStretchFactor(dayLabel, 100); + return dayLabel ; +} + void KOAgendaView::createDayLabels() { @@ -649,7 +664,8 @@ void KOAgendaView::createDayLabels() int selCount = mSelectedDates.count(); QString dayTest = "Mon 20"; int wid = fm.width( dayTest ); - maxWid -= ( selCount * 3 ); + //maxWid -= ( selCount * 3 ); //working for QLabels + maxWid -= ( selCount * 5 ); //working for QPushButton if ( maxWid < 0 ) maxWid = 20; int needWid = wid * selCount; @@ -669,7 +685,7 @@ void KOAgendaView::createDayLabels() --fontPoint; dlf.setPointSize( fontPoint ); QFontMetrics f( dlf ); - wid = f.width( "20" ); + wid = f.width( "20" )+2; needWid = wid * selCount; if ( needWid < maxWid ) break; @@ -690,12 +706,7 @@ void KOAgendaView::createDayLabels() dayLabel = mDayLabelsList.first(); if ( !dayLabel ) { appendLabels = true; - dayLabel = new QPushButton(mDayLabels); - dayLabel->setFlat( true ); - connect( dayLabel, SIGNAL( clicked() ), this, SLOT ( slotDaylabelClicked() ) ); - dayLabel->setFocusPolicy(NoFocus); - mDayLabelsList.append( dayLabel ); - mLayoutDayLabels->addWidget(dayLabel); + dayLabel = getNewDaylabel(); } dayLabel->setFixedWidth( mTimeLabels->width()+2 ); dayLabel->setFont( dlf ); @@ -716,12 +727,7 @@ void KOAgendaView::createDayLabels() appendLabels = true; } if ( appendLabels ) { - dayLabel = new QPushButton(mDayLabels); - dayLabel->setFlat( true ); - connect( dayLabel, SIGNAL( clicked() ), this, SLOT ( slotDaylabelClicked() ) ); - dayLabel->setFocusPolicy(NoFocus); - mDayLabelsList.append( dayLabel ); - mLayoutDayLabels->addWidget(dayLabel); + dayLabel = getNewDaylabel(); } dayLabel->setMinimumWidth( 1 ); dayLabel->setMaximumWidth( 2048 ); @@ -807,12 +813,7 @@ void KOAgendaView::createDayLabels() appendLabels = true; } if ( appendLabels ) { - dayLabel = new QPushButton(mDayLabels); - dayLabel->setFlat( true ); - connect( dayLabel, SIGNAL( clicked() ), this, SLOT ( slotDaylabelClicked() ) ); - dayLabel->setFocusPolicy(NoFocus); - mDayLabelsList.append( dayLabel ); - mLayoutDayLabels->addWidget(dayLabel); + dayLabel = getNewDaylabel(); } //dayLabel->hide();//test only diff --git a/korganizer/koagendaview.h b/korganizer/koagendaview.h index fd0a7af..cbe86b6 100644 --- a/korganizer/koagendaview.h +++ b/korganizer/koagendaview.h @@ -190,6 +190,7 @@ class KOAgendaView : public KOEventView { // void cloneIncidenceSignal(Incidence *); protected: + QPushButton* getNewDaylabel(); bool mBlockUpdating; int mUpcomingWidth; /** Fill agenda beginning with date startDate */ diff --git a/korganizer/kodaymatrix.cpp b/korganizer/kodaymatrix.cpp index dd83d48..989f758 100644 --- a/korganizer/kodaymatrix.cpp +++ b/korganizer/kodaymatrix.cpp @@ -340,7 +340,7 @@ void KODayMatrix::mouseReleaseEvent (QMouseEvent* e) mSelEnd = mSelInit; if (tmp != mSelStart) { mSelStart = tmp; - repaint(); + repaint(false); } } else { mSelStart = mSelInit; @@ -348,7 +348,7 @@ void KODayMatrix::mouseReleaseEvent (QMouseEvent* e) //repaint only if selection has changed if (tmp != mSelEnd) { mSelEnd = tmp; - repaint(); + repaint(false); } } @@ -371,7 +371,7 @@ void KODayMatrix::mouseMoveEvent (QMouseEvent* e) mSelEnd = mSelInit; if (tmp != mSelStart) { mSelStart = tmp; - repaint(); + repaint(false); } } else { mSelStart = mSelInit; @@ -379,7 +379,7 @@ void KODayMatrix::mouseMoveEvent (QMouseEvent* e) //repaint only if selection has changed if (tmp != mSelEnd) { mSelEnd = tmp; - repaint(); + repaint(false); } } } diff --git a/korganizer/koviewmanager.cpp b/korganizer/koviewmanager.cpp index 188ad23..7e126d9 100644 --- a/korganizer/koviewmanager.cpp +++ b/korganizer/koviewmanager.cpp @@ -98,20 +98,22 @@ void KOViewManager::readSettings(KConfig *config) } } - void KOViewManager::showDateView( int view, QDate date) { - + static int lastMode = 0; + static int lastCount = 0; + static bool lastNDMode = false; + static QDate lastDate; //qDebug("date %d %s", view, date.toString().latin1()); -#if 0 - mNewItemPopup->insertItem ( SmallIcon( pathString +"day" ), i18n("Day view"),3 ); - mNewItemPopup->insertItem ( SmallIcon( pathString +"week" ), i18n("Next Week"),4 ); - mNewItemPopup->insertItem ( SmallIcon( pathString +"month" ), i18n("Next Two Weeks"),5 ); - mNewItemPopup->insertItem ( SmallIcon( pathString +"month" ), i18n("Next Month"),6 ); - mNewItemPopup->insertItem ( SmallIcon( pathString +"journal" ), i18n("Journal view"),7 ); -#endif + + //qDebug("%d %d ", lastNDMode, mFlagShowNextxDays ); + bool savemFlagShowNextxDays = mFlagShowNextxDays; + mFlagShowNextxDays = false; if ( view == 3 ) { //mCurrentAgendaView = 1 ; + lastDate = mMainView->dateNavigator()->selectedDates().first(); + lastCount = mMainView->dateNavigator()->selectedDates().count(); + lastNDMode = savemFlagShowNextxDays; mMainView->showDay( date ); } else if (view == 4 ) { mCurrentAgendaView = 7 ; @@ -138,19 +140,20 @@ void KOViewManager::showDateView( int view, QDate date) KOPrefs::instance()->mNextXDays ); mFlagShowNextxDays = true; mCurrentAgendaView = 3 ; - } if (view == 9) { - showWeekView(); + } if (view == 9) { // return behaviour, for getting back from mode == 3 (single day mode ) + if ( lastMode ) { + mCurrentAgendaView = lastCount ; + mMainView->dateNavigator()->selectDates( lastDate, lastCount); + mFlagShowNextxDays = lastNDMode; + if ( mFlagShowNextxDays ) { + mCurrentAgendaView = 3 ; + } + } else + showWeekView(); } else if (view == 10) { mMainView->dateNavigator()->selectDates( date,mMainView->dateNavigator()->selectedDates().count() ); } - -#if 0 - dateNavigator()->blockSignals( true ); - dateNavigator()->selectDate( d ); - dateNavigator()->blockSignals( false ); - mViewManager->showDayView(); -#endif - + lastMode = view; } |