[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-11-30 11:45:36
Message-ID: 20101130114536.4CDADAC8A3 () svn ! kde ! org
[Download RAW message or body]

SVN commit 1202299 by tokoe:

Restore the filter line edit and item list state
when returning from the BulkActionScreen

BUG: 255204


 M  +1 -0      kdeclarativemainview.cpp  
 M  +28 -0     kdeclarativemainview_p.cpp  
 M  +1 -0      kdeclarativemainview_p.h  


--- trunk/KDE/kdepim/mobile/lib/kdeclarativemainview.cpp #1202298:1202299
@@ -217,6 +217,7 @@
   // The global screen manager
   d->mGuiStateManager = createGuiStateManager();
   context->setContextProperty( "guiStateManager", QVariant::fromValue( \
static_cast<QObject*>( d->mGuiStateManager ) ) ); +  connect( d->mGuiStateManager, \
SIGNAL( guiStateChanged( int, int ) ), d, SLOT( guiStateChanged( int, int ) ) );  
   // A list of available favorites
   QAbstractItemModel *favsList = d->getFavoritesListModel();
--- trunk/KDE/kdepim/mobile/lib/kdeclarativemainview_p.cpp #1202298:1202299
@@ -122,3 +122,31 @@
   q->restorePersistedSelection( "SelectionBeforeSearchStarted" );
   q->clearPersistedSelection( "SelectionBeforeSearchStarted" );
 }
+
+void KDeclarativeMainViewPrivate::guiStateChanged( int oldState, int newState )
+{
+  /**
+   * If we come back from the BulkActionScreen and we had a filter string
+   * entered before we entered the BulkActionScreen, we'll refresh this
+   * filter string now.
+   */
+  if ( oldState == GuiStateManager::BulkActionScreenState ) {
+    if ( newState == GuiStateManager::AccountScreenState ||
+         newState == GuiStateManager::SingleFolderScreenState ||
+         newState == GuiStateManager::MultipleFolderScreenState ) {
+
+      KLineEdit *lineEdit = mFilterLineEdit.data();
+      if ( lineEdit && mItemFilterModel ) {
+        const QString text = lineEdit->text();
+        if ( text.isEmpty() ) {
+          // just trigger a refresh of the item view
+          QMetaObject::invokeMethod( mItemFilterModel, "setFilterString", \
Qt::DirectConnection, Q_ARG( QString, text ) ); +        } else {
+          // trigger a refresh of the line edit and item view
+          lineEdit->clear();
+          lineEdit->setText( text );
+        }
+      }
+    }
+  }
+}
--- trunk/KDE/kdepim/mobile/lib/kdeclarativemainview_p.h #1202298:1202299
@@ -85,6 +85,7 @@
   void bulkActionFilterLineEditChanged( const QString &text );
   void searchStarted( const Akonadi::Collection& );
   void searchStopped();
+  void guiStateChanged( int oldState, int newState );
 };
 
 #endif // KDECLARATIVEMAINVIEW_P_H


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

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