-rw-r--r-- | korganizer/koagendaview.cpp | 44 | ||||
-rw-r--r-- | korganizer/koagendaview.h | 3 | ||||
-rw-r--r-- | korganizer/koviewmanager.cpp | 9 |
3 files changed, 47 insertions, 9 deletions
diff --git a/korganizer/koagendaview.cpp b/korganizer/koagendaview.cpp index 8e9add3..d43712f 100644 --- a/korganizer/koagendaview.cpp +++ b/korganizer/koagendaview.cpp @@ -609,6 +609,22 @@ void KOAgendaView::resizeEvent( QResizeEvent* e ) //qDebug("resizeEvent end "); } +void KOAgendaView::slotDaylabelClicked() +{ + QString cap = ((QPushButton*) sender() )->caption(); + + QDate firstDate = mSelectedDates.first(); + if ( cap == "0" ) + emit showDateView( 6, firstDate ); + else if ( cap != "last" ) { + if ( mSelectedDates.count() == 1) + emit showDateView( 9, firstDate.addDays( cap.toInt()-1 ) ); + else + emit showDateView( 3, firstDate.addDays( cap.toInt()-1 ) ); + } + else + showDateView( 10, firstDate.addDays(1 ) ); +} void KOAgendaView::createDayLabels() { @@ -670,22 +686,28 @@ void KOAgendaView::createDayLabels() //mLayoutDayLabels->addSpacing( 2 ); // QFont lFont = dlf; bool appendLabels = false; - QLabel *dayLabel; + QPushButton *dayLabel; dayLabel = mDayLabelsList.first(); if ( !dayLabel ) { appendLabels = true; - dayLabel = new QLabel(mDayLabels); + dayLabel = new QPushButton(mDayLabels); + dayLabel->setFlat( true ); + connect( dayLabel, SIGNAL( clicked() ), this, SLOT ( slotDaylabelClicked() ) ); + dayLabel->setFocusPolicy(NoFocus); mDayLabelsList.append( dayLabel ); mLayoutDayLabels->addWidget(dayLabel); } dayLabel->setFixedWidth( mTimeLabels->width()+2 ); dayLabel->setFont( dlf ); - dayLabel->setAlignment(QLabel::AlignHCenter); + dayLabel->setCaption("0"); + //dayLabel->setAlignment(QLabel::AlignHCenter); dayLabel->setText( KOGlobals::self()->calendarSystem()->monthName( mSelectedDates.first(), true ) ); dayLabel->show(); DateList::ConstIterator dit; bool oneday = (mSelectedDates.first() == mSelectedDates.last() ); + int counter = 0; for( dit = mSelectedDates.begin(); dit != mSelectedDates.end(); ++dit ) { + ++counter; QDate date = *dit; // QBoxLayout *dayLayout = new QVBoxLayout(mLayoutDayLabels); if ( ! appendLabels ) { @@ -694,7 +716,10 @@ void KOAgendaView::createDayLabels() appendLabels = true; } if ( appendLabels ) { - dayLabel = new QLabel(mDayLabels); + dayLabel = new QPushButton(mDayLabels); + dayLabel->setFlat( true ); + connect( dayLabel, SIGNAL( clicked() ), this, SLOT ( slotDaylabelClicked() ) ); + dayLabel->setFocusPolicy(NoFocus); mDayLabelsList.append( dayLabel ); mLayoutDayLabels->addWidget(dayLabel); } @@ -702,6 +727,7 @@ void KOAgendaView::createDayLabels() dayLabel->setMaximumWidth( 2048 ); dayLabel->setFont( dlf ); dayLabel->show(); + dayLabel->setCaption(QString::number( counter )); QString str; int dW = KOGlobals::self()->calendarSystem()->dayOfWeek(date); QString dayName = KOGlobals::self()->calendarSystem()->weekDayName( dW, true ); @@ -746,7 +772,7 @@ void KOAgendaView::createDayLabels() } } dayLabel->setText(str); - dayLabel->setAlignment(QLabel::AlignHCenter); + //dayLabel->setAlignment(QLabel::AlignHCenter); if (date == QDate::currentDate()) { QFont bFont = dlf; bFont.setBold( true ); @@ -781,7 +807,10 @@ void KOAgendaView::createDayLabels() appendLabels = true; } if ( appendLabels ) { - dayLabel = new QLabel(mDayLabels); + dayLabel = new QPushButton(mDayLabels); + dayLabel->setFlat( true ); + connect( dayLabel, SIGNAL( clicked() ), this, SLOT ( slotDaylabelClicked() ) ); + dayLabel->setFocusPolicy(NoFocus); mDayLabelsList.append( dayLabel ); mLayoutDayLabels->addWidget(dayLabel); } @@ -790,8 +819,9 @@ void KOAgendaView::createDayLabels() int offset = (mAgenda->width() - mAgenda->verticalScrollBar()->width()-3 ) % mSelectedDates.count() ; if ( offset < 0 ) offset = 0; //qDebug("mLayoutDayLabels->addSpacing %d ", mAgenda->verticalScrollBar()->width()+offset+2 ); - dayLabel->setText("");//QString::number ( mSelectedDates.first().month() ) ); + dayLabel->setText(">");//QString::number ( mSelectedDates.first().month() ) ); dayLabel->show(); + dayLabel->setCaption("last"); dayLabel->setFixedWidth( mAgenda->verticalScrollBar()->width()+ offset ); //qDebug("setToFixed %d ", mAgenda->verticalScrollBar()->width()+ offset+2); //mLayoutDayLabels->addSpacing(mAgenda->verticalScrollBar()->width()+ offset+2); diff --git a/korganizer/koagendaview.h b/korganizer/koagendaview.h index 7774fbe..fd0a7af 100644 --- a/korganizer/koagendaview.h +++ b/korganizer/koagendaview.h @@ -207,6 +207,7 @@ class KOAgendaView : public KOEventView { void setHolidayMasks(); protected slots: + void slotDaylabelClicked(); /** Update event belonging to agenda item */ void updateEventDates(KOAgendaItem *item, int mode = -1); //void updateMovedTodo(); @@ -252,7 +253,7 @@ class KOAgendaView : public KOEventView { QPixmap mExpandedPixmap; QPixmap mNotExpandedPixmap; - QPtrList<QLabel> mDayLabelsList; + QPtrList<QPushButton> mDayLabelsList; QDateTime mTimeSpanBegin; QDateTime mTimeSpanEnd; bool mTimeSpanInAllDay; diff --git a/korganizer/koviewmanager.cpp b/korganizer/koviewmanager.cpp index db23882..30f5fb1 100644 --- a/korganizer/koviewmanager.cpp +++ b/korganizer/koviewmanager.cpp @@ -111,10 +111,13 @@ void KOViewManager::showDateView( int view, QDate date) mNewItemPopup->insertItem ( SmallIcon( pathString +"journal" ), i18n("Journal view"),7 ); #endif if ( view == 3 ) { + //mCurrentAgendaView = 1 ; mMainView->showDay( date ); } else if (view == 4 ) { + mCurrentAgendaView = 7 ; mMainView->dateNavigator()->selectDates( date, 7 ); } else if (view == 5 ) { + mCurrentAgendaView = 14 ; mMainView->dateNavigator()->selectDates( date, 14); } else if (view == 6 ) { mMainView->dateNavigator()->blockSignals( true ); @@ -135,7 +138,11 @@ void KOViewManager::showDateView( int view, QDate date) KOPrefs::instance()->mNextXDays ); mFlagShowNextxDays = true; mCurrentAgendaView = 3 ; - } + } if (view == 9) { + showWeekView(); + } else if (view == 10) { + mMainView->dateNavigator()->selectDates( date,mMainView->dateNavigator()->selectedDates().count() ); + } #if 0 dateNavigator()->blockSignals( true ); |