-rw-r--r-- | korganizer/koagenda.cpp | 5 | ||||
-rw-r--r-- | korganizer/koagenda.h | 2 | ||||
-rw-r--r-- | korganizer/koagendaview.cpp | 15 | ||||
-rw-r--r-- | korganizer/koagendaview.h | 1 | ||||
-rw-r--r-- | korganizer/komonthview.cpp | 7 | ||||
-rw-r--r-- | korganizer/kotodoview.cpp | 81 | ||||
-rw-r--r-- | korganizer/kotodoview.h | 5 | ||||
-rw-r--r-- | korganizer/koviewmanager.cpp | 4 |
8 files changed, 98 insertions, 22 deletions
diff --git a/korganizer/koagenda.cpp b/korganizer/koagenda.cpp index 1a24887..9720f43 100644 --- a/korganizer/koagenda.cpp +++ b/korganizer/koagenda.cpp @@ -242,3 +242,3 @@ void KOAgenda::init() mNewItemPopup->insertItem ( SmallIcon( pathString +"week" ), i18n("Next two weeks"),5 ); - mNewItemPopup->insertItem ( SmallIcon( pathString +"month" ), i18n("Next month"),6 ); + mNewItemPopup->insertItem ( SmallIcon( pathString +"month" ), i18n("This month"),6 ); mNewItemPopup->insertItem ( SmallIcon( pathString +"journal" ), i18n("Journal view"),7 ); @@ -756,4 +756,3 @@ void KOAgenda::newItem( int item ) { - QDate day = mSelectedDates[mStartCellX]; - emit showDateView( item, day ); + emit showDateView( item, mStartCellX ); // 3Day view diff --git a/korganizer/koagenda.h b/korganizer/koagenda.h index 3d33ae5..35c08b6 100644 --- a/korganizer/koagenda.h +++ b/korganizer/koagenda.h @@ -147,3 +147,3 @@ class KOAgenda : public QScrollView signals: - void showDateView( int, QDate ); + void showDateView( int, int); void newEventSignal(); diff --git a/korganizer/koagendaview.cpp b/korganizer/koagendaview.cpp index b9909d6..2996acb 100644 --- a/korganizer/koagendaview.cpp +++ b/korganizer/koagendaview.cpp @@ -490,4 +490,4 @@ KOAgendaView::KOAgendaView(Calendar *cal,QWidget *parent,const char *name) : - connect(mAgenda,SIGNAL(showDateView( int, QDate )),SIGNAL(showDateView( int, QDate ))); - connect(mAllDayAgenda,SIGNAL(showDateView( int, QDate )),SIGNAL(showDateView( int, QDate ))); + connect(mAgenda,SIGNAL(showDateView( int, int)),SLOT(slotShowDateView( int, int ))); + connect(mAllDayAgenda,SIGNAL(showDateView( int, int )), SLOT(slotShowDateView( int, int ) )); @@ -1312,2 +1312,13 @@ void KOAgendaView::printPreview(CalPrinter *calPrinter, const QDate &fd, +void KOAgendaView::slotShowDateView( int mode , int d ) +{ + if ( d >= mSelectedDates.count() ) { + qDebug("KOAgendaView::slotShowDateView datecounterror %d d ", d, mSelectedDates.count() ); + + } else { + QDate day = mSelectedDates[d]; + emit showDateView(mode , day ); + } + +} void KOAgendaView::newEvent(int gx, int gy) diff --git a/korganizer/koagendaview.h b/korganizer/koagendaview.h index 57b4e46..6dc81c6 100644 --- a/korganizer/koagendaview.h +++ b/korganizer/koagendaview.h @@ -208,2 +208,3 @@ class KOAgendaView : public KOEventView { void addToCalSlot(Incidence *, Incidence *); + void slotShowDateView( int, int ); diff --git a/korganizer/komonthview.cpp b/korganizer/komonthview.cpp index b9ce4f4..ab9a4b6 100644 --- a/korganizer/komonthview.cpp +++ b/korganizer/komonthview.cpp @@ -939,3 +939,7 @@ void MonthViewCell::defaultAction( QListBoxItem *item ) { - if ( !item ) return; + if ( !item ) { + QDateTime dt( date(), QTime( KOPrefs::instance()->mStartTime, 0 ) ); + emit newEventSignal( dt ); + return; + } @@ -1373,2 +1377,3 @@ void KOMonthView::changeEventDisplay(Event *, int) // quick-and-dirty-hack gets the job done for right now. + qDebug("KOMonthView::changeEventDisplay "); updateView(); diff --git a/korganizer/kotodoview.cpp b/korganizer/kotodoview.cpp index e008625..ccc4b01 100644 --- a/korganizer/kotodoview.cpp +++ b/korganizer/kotodoview.cpp @@ -266,5 +266,20 @@ void KOTodoListView::contentsMouseMoveEvent(QMouseEvent* e) } -void KOTodoListView::keyPressEvent ( QKeyEvent * e ) +void KOTodoListView::keyReleaseEvent ( QKeyEvent *e ) { + if ( !e->isAutoRepeat() ) { + mFlagKeyPressed = false; + } +} + +void KOTodoListView::keyPressEvent ( QKeyEvent * e ) +{ + qApp->processEvents(); + if ( e->isAutoRepeat() && !mFlagKeyPressed ) { + e->ignore(); + // qDebug(" ignore %d",e->isAutoRepeat() ); + return; + } + if (! e->isAutoRepeat() ) + mFlagKeyPressed = true; QListViewItem* cn; @@ -291,3 +306,2 @@ void KOTodoListView::keyPressEvent ( QKeyEvent * e ) - // qDebug("KOTodoListView::keyPressEvent "); if ( e->state() == Qt::ControlButton || e->state() == Qt::ShiftButton || mName != "todolistsmall" ) { @@ -600,2 +614,3 @@ void KOTodoView::updateView() } + storeCurrentItem(); //qDebug("KOTodoView::updateView() %x", this); @@ -603,2 +618,3 @@ void KOTodoView::updateView() displayAllFlat(); + resetCurrentItem(); return; @@ -608,6 +624,3 @@ void KOTodoView::updateView() QFont fo = KOPrefs::instance()->mTodoViewFont; - Incidence* oldInc = 0; - mActiveItem = (KOTodoViewItem*)mTodoListView->currentItem(); - if (mActiveItem) - oldInc = mActiveItem->todo(); + @@ -693,11 +706,42 @@ void KOTodoView::updateView() mTodoListView->blockSignals( false ); + resetCurrentItem(); + processSelectionChange(); +} + +void KOTodoView::storeCurrentItem() +{ + mCurItem = 0; + mCurItemRootParent = 0; + mCurItemAbove = 0; + mActiveItem = (KOTodoViewItem*)mTodoListView->currentItem(); + if (mActiveItem) { + mCurItem = mActiveItem->todo(); + KOTodoViewItem* activeItemAbove = (KOTodoViewItem*)mActiveItem->itemAbove (); + if ( activeItemAbove ) + mCurItemAbove = activeItemAbove->todo(); + while ( mActiveItem->parent() != 0 ) + mActiveItem = (KOTodoViewItem*)mActiveItem->parent(); + mCurItemRootParent = mActiveItem->todo(); + } + mActiveItem = 0; +} + +void KOTodoView::resetCurrentItem() +{ mTodoListView->setFocus(); + KOTodoViewItem* foundItem = 0; + KOTodoViewItem* foundItemRoot = 0; + KOTodoViewItem* foundItemAbove = 0; if ( mTodoListView->firstChild () ) { - if ( oldInc ) { + if ( mCurItem ) { KOTodoViewItem* item = (KOTodoViewItem*)mTodoListView->firstChild (); while ( item ) { - if ( item->todo() == oldInc ) { - mTodoListView->setCurrentItem( item ); - mTodoListView->ensureItemVisible( item ); + if ( item->todo() == mCurItem ) { + foundItem = item; break; + } else if ( item->todo() == mCurItemAbove ) { + foundItemAbove = item; + + } else if ( item->todo() == mCurItemRootParent ) { + foundItemRoot = item; } @@ -705,4 +749,12 @@ void KOTodoView::updateView() } - if ( ! item ) - mTodoListView->setCurrentItem( mTodoListView->firstChild () ); + if ( ! foundItem ) { + if ( foundItemAbove ) + foundItem = foundItemAbove; + else + foundItem = foundItemRoot; + } + } + if ( foundItem ) { + mTodoListView->setCurrentItem( foundItem ); + mTodoListView->ensureItemVisible( foundItem ); } else { @@ -711,5 +763,5 @@ void KOTodoView::updateView() } - processSelectionChange(); + mTodoListView->setFocus(); } - +//Incidence * mCurItem, *mCurItemRootParent,*mCurItemAbove; bool KOTodoView::checkTodo( Todo * todo ) @@ -1241,2 +1293,3 @@ void KOTodoView::addQuickTodo() } + void KOTodoView::keyPressEvent ( QKeyEvent * e ) diff --git a/korganizer/kotodoview.h b/korganizer/kotodoview.h index eab0754..e553d0e 100644 --- a/korganizer/kotodoview.h +++ b/korganizer/kotodoview.h @@ -88,3 +88,5 @@ class KOTodoListView : public KListView QListViewItem *mOldCurrent; + bool mFlagKeyPressed; void keyPressEvent ( QKeyEvent * ) ; + void keyReleaseEvent ( QKeyEvent * ) ; }; @@ -254,2 +256,5 @@ class KOTodoView : public KOrg::BaseView DateNavigator* mNavigator; + void storeCurrentItem(); + void resetCurrentItem(); + Incidence * mCurItem, *mCurItemRootParent,*mCurItemAbove; }; diff --git a/korganizer/koviewmanager.cpp b/korganizer/koviewmanager.cpp index f97aa98..c442d0b 100644 --- a/korganizer/koviewmanager.cpp +++ b/korganizer/koviewmanager.cpp @@ -140,3 +140,3 @@ void KOViewManager::showDateView( int view, QDate date) } else if (view == 6 ) { - //mMainView->dateNavigator()->selectDates( date, 7 ); + resetDateSilent( date,1); showMonthView(); @@ -391,2 +391,4 @@ void KOViewManager::updateWNview() mWhatsNextView->updateView(); + if ( mCurrentView == mMonthView && mMonthView ) + mMonthView->updateView(); |