From 34d39e703993a2af9fd0f4cd20a489a41cd055ff Mon Sep 17 00:00:00 2001 From: Laurent Montel Date: Mon, 12 Oct 2009 21:29:53 +0000 Subject: [PATCH] Split function for the future svn path=/branches/work/akonadi-ports/kdepim/; revision=1034508 --- foldertreeview.cpp | 30 +++++++++++++++++++++++------- foldertreeview.h | 2 ++ 2 files changed, 25 insertions(+), 7 deletions(-) diff --git a/foldertreeview.cpp b/foldertreeview.cpp index c9e0b0b79..6732b4e1d 100644 --- a/foldertreeview.cpp +++ b/foldertreeview.cpp @@ -55,21 +55,29 @@ void FolderTreeView::selectModelIndex( const QModelIndex & index ) void FolderTreeView::slotFocusNextFolder() { - QModelIndex current = currentIndex(); + QModelIndex nextFolder = selectNextFolder( currentIndex() ); + + if ( nextFolder.isValid() ) { + expand( nextFolder ); + selectModelIndex( nextFolder ); + } +} + +QModelIndex FolderTreeView::selectNextFolder( const QModelIndex & current ) +{ + QModelIndex below; if ( current.isValid() ) { model()->fetchMore( current ); if ( model()->hasChildren( current ) ) { expand( current ); - QModelIndex below = indexBelow( current ); - selectModelIndex( below ); + below = indexBelow( current ); } else if ( current.row() < model()->rowCount( model()->parent( current ) ) -1 ) { - QModelIndex item = model()->index( current.row()+1, current.column(), model()->parent( current ) ); - selectModelIndex( item ); + below = model()->index( current.row()+1, current.column(), model()->parent( current ) ); } else { - QModelIndex below = indexBelow( current ); - selectModelIndex( below ); + below = indexBelow( current ); } } + return below; } void FolderTreeView::slotFocusPrevFolder() @@ -84,11 +92,19 @@ void FolderTreeView::slotFocusPrevFolder() void FolderTreeView::selectNextUnreadFolder() { kDebug()<<"Need to implement FolderTreeView::selectNextUnreadFolder() "; + QModelIndex current = currentIndex(); + if ( current.isValid() ) { + + } } void FolderTreeView::selectPrevUnreadFolder() { kDebug()<<" Need to implement FolderTreeView::selectPrevUnreadFolder()"; + QModelIndex current = currentIndex(); + if ( current.isValid() ) { + + } } #include "foldertreeview.moc" diff --git a/foldertreeview.h b/foldertreeview.h index a286f1790..ed65a74dc 100644 --- a/foldertreeview.h +++ b/foldertreeview.h @@ -36,6 +36,8 @@ public: protected: void init(); void selectModelIndex( const QModelIndex & ); + QModelIndex selectNextFolder( const QModelIndex & current ); + public slots: void slotFocusNextFolder(); void slotFocusPrevFolder();