[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    KDE/kdepim/mobile/lib
From:       Tobias Koenig <tokoe () kde ! org>
Date:       2010-12-08 9:28:06
Message-ID: 20101208092806.4D96DAC8A7 () svn ! kde ! org
[Download RAW message or body]

SVN commit 1204588 by tokoe:

Move all favorites handling code into its own class

This is the first step of refactoring to unify the UI
of list actions


 M  +1 -0      CMakeLists.txt  
 A             favoritescontroller.cpp   [License: LGPL (v2+)]
 A             favoritescontroller.h   [License: LGPL (v2+)]
 M  +5 -20     kdeclarativemainview.cpp  
 M  +1 -19     kdeclarativemainview_p.cpp  
 M  +4 -10     kdeclarativemainview_p.h  


--- trunk/KDE/kdepim/mobile/lib/CMakeLists.txt #1204587:1204588
@@ -15,6 +15,7 @@
     declarativewidgetbase.cpp
     declarativeakonadiitem.cpp
     exporthandlerbase.cpp
+    favoritescontroller.cpp
     favoriteslistmodel.cpp
     guistatemanager.cpp
     hierarchyresolver.cpp
--- trunk/KDE/kdepim/mobile/lib/kdeclarativemainview.cpp #1204587:1204588
@@ -219,10 +219,10 @@
   connect( d->mGuiStateManager, SIGNAL( guiStateChanged( int, int ) ), d, SLOT( \
guiStateChanged( int, int ) ) );  
   // A list of available favorites
-  QAbstractItemModel *favsList = d->getFavoritesListModel();
-  favsList->setParent( this );
+  d->mFavoritesController = new FavoritesController( KGlobal::config(), this );
+  d->mFavoritesController->setCollectionSelectionModel( d->mBnf->selectionModel() );
 
-  context->setContextProperty( "favoritesList", QVariant::fromValue( \
static_cast<QObject*>( favsList ) ) ); +  context->setContextProperty( \
"favoritesList", d->mFavoritesController->model() );  
   // A list of agent instances
   Akonadi::AgentInstanceModel *agentInstanceModel = new Akonadi::AgentInstanceModel( \
this ); @@ -542,29 +542,14 @@
   if ( !ok || name.isEmpty() )
     return;
 
-  ETMViewStateSaver saver;
-  saver.setSelectionModel( d->mBnf->selectionModel() );
-
-  KConfigGroup config( KGlobal::config(), sFavoritePrefix + name );
-  saver.saveState( config );
-  config.sync();
-  d->mFavsListModel->setStringList( d->getFavoritesList() );
+  d->mFavoritesController->saveFavorite( name );
 }
 
 void KDeclarativeMainView::loadFavorite( const QString &name )
 {
-  ETMViewStateSaver *saver = new ETMViewStateSaver;
-  saver->setSelectionModel( d->mBnf->selectionModel() );
-
-  KConfigGroup config( KGlobal::config(), sFavoritePrefix + name );
-  if ( !config.isValid() ) {
-    delete saver;
-    return;
+  d->mFavoritesController->loadFavorite( name );
   }
 
-  saver->restoreState( config );
-}
-
 void KDeclarativeMainView::multipleSelectionFinished()
 {
   const QModelIndexList list = d->mMultiBnf->checkModel()->selectedRows();
--- trunk/KDE/kdepim/mobile/lib/kdeclarativemainview_p.cpp #1204587:1204588
@@ -25,7 +25,6 @@
 
 #include <akonadi/etmviewstatesaver.h>
 
-#include "favoriteslistmodel.h"
 #include "guistatemanager.h"
 
 KDeclarativeMainViewPrivate::KDeclarativeMainViewPrivate( KDeclarativeMainView *qq )
@@ -33,10 +32,10 @@
   , mChangeRecorder( 0 )
   , mCollectionFilter( 0 )
   , mItemFilterModel( 0 )
-  , mFavsListModel( 0 )
   , mAgentStatusMonitor( 0 )
   , mGuiStateManager( 0 )
   , mStateMachine( 0 )
+  , mFavoritesController( 0 )
 { }
 
 void KDeclarativeMainViewPrivate::restoreState()
@@ -57,23 +56,6 @@
   cfg.sync();
 }
 
-QStringList KDeclarativeMainViewPrivate::getFavoritesList()
-{
-  QStringList names;
-  foreach ( const QString &group, KGlobal::config()->groupList() )
-    if ( group.startsWith( sFavoritePrefix ) )
-      names.append( QString( group ).remove( 0, sFavoritePrefixLength ) );
-  return names;
-}
-
-QAbstractItemModel* KDeclarativeMainViewPrivate::getFavoritesListModel()
-{
-  if (!mFavsListModel)
-    mFavsListModel = new FavoritesListModel( KGlobal::config() );
-
-  return mFavsListModel;
-}
-
 void KDeclarativeMainViewPrivate::filterLineEditChanged( const QString &text )
 {
   if ( !text.isEmpty() && !mFilterLineEdit->isVisible() ) {
--- trunk/KDE/kdepim/mobile/lib/kdeclarativemainview_p.h #1204587:1204588
@@ -22,6 +22,7 @@
 #include "kdeclarativemainview.h"
 
 #include "akonadibreadcrumbnavigationfactory.h"
+#include "favoritescontroller.h"
 #include "searchmanager.h"
 #include "statemachinebuilder.h"
 
@@ -39,9 +40,6 @@
 class KActionCollection;
 class KLineEdit;
 
-static const char * const sFavoritePrefix = "Favorite_";
-static const int sFavoritePrefixLength = 9;
-
 class ListProxy;
 class KDeclarativeMainViewPrivate : public QObject
 {
@@ -49,14 +47,12 @@
 
 public: /// members
   KDeclarativeMainView               *q;
-  Akonadi::ChangeRecorder            *mChangeRecorder;                // Deleted by \
                ~QObect
-  QAbstractItemModel                 *mCollectionFilter;              // Deleted by \
~QObect +  Akonadi::ChangeRecorder            *mChangeRecorder;                // \
Deleted by ~QObject +  QAbstractItemModel                 *mCollectionFilter;         \
// Deleted by ~QObject  Akonadi::EntityTreeModel           *mEtm;
   ListProxy                          *mListProxy;
   QAbstractItemModel                 *mItemModel;
   QAbstractProxyModel                *mItemFilterModel;
-  QItemSelectionModel                *mFavSelection;
-  QStringListModel                   *mFavsListModel;
   Akonadi::AgentFilterProxyModel     *mAgentInstanceFilterModel;
   QItemSelectionModel                *mAgentInstanceSelectionModel;
   Akonadi::BreadcrumbNavigationFactory *mBnf;
@@ -71,13 +67,11 @@
   GuiStateManager                    *mGuiStateManager;
   NotifyingStateMachine              *mStateMachine;
   SearchManager                      *mSearchManager;
+  FavoritesController                *mFavoritesController;
 
 public: /// Methods
   KDeclarativeMainViewPrivate( KDeclarativeMainView* );
 
-  QAbstractItemModel* getFavoritesListModel();
-  QStringList getFavoritesList();
-
 public slots:
   void saveState();
   void restoreState();


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic