[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:39:56
Message-ID: 20101130113956.3E501AC8A3 () svn ! kde ! org
[Download RAW message or body]

SVN commit 1202296 by tokoe:

Emit a guiStateChanged signal that carries the source and target state.


 M  +14 -2     guistatemanager.cpp  
 M  +11 -0     guistatemanager.h  


--- trunk/KDE/kdepim/mobile/lib/guistatemanager.cpp #1202295:1202296
@@ -55,23 +55,31 @@
 {
   Q_ASSERT( !d->mGuiStates.isEmpty() );
 
-  d->mGuiStates.pop();
+  const int previousState = d->mGuiStates.pop();
   d->mGuiStates.push( state );
 
   printStack( d->mGuiStates );
   emitChangedSignal();
+
+  emit guiStateChanged( previousState, state );
 }
 
 void GuiStateManager::pushState( int state )
 {
+  const int previousState = (d->mGuiStates.isEmpty() ? -1 : d->mGuiStates.top());
+
   d->mGuiStates.push( state );
 
   printStack( d->mGuiStates );
   emitChangedSignal();
+
+  emit guiStateChanged( previousState, state );
 }
 
 void GuiStateManager::pushUniqueState( int state )
 {
+  const int previousState = (d->mGuiStates.isEmpty() ? -1 : d->mGuiStates.top());
+
   if ( d->mGuiStates.isEmpty() ) {
     d->mGuiStates.push( state );
   } else {
@@ -81,15 +89,19 @@
 
   printStack( d->mGuiStates );
   emitChangedSignal();
+
+  emit guiStateChanged( previousState, state );
 }
 
 void GuiStateManager::popState()
 {
-  d->mGuiStates.pop();
+  const int previousState = d->mGuiStates.pop();
   Q_ASSERT( !d->mGuiStates.isEmpty() );
 
   printStack( d->mGuiStates );
   emitChangedSignal();
+
+  emit guiStateChanged( previousState, d->mGuiStates.top() );
 }
 
 int GuiStateManager::currentState() const
--- trunk/KDE/kdepim/mobile/lib/guistatemanager.h #1202295:1202296
@@ -211,8 +211,19 @@
     bool inConfigScreenState() const;
 
   Q_SIGNALS:
+    /**
+     * This signal is emitted whenever the current state has changed.
+     */
     void guiStateChanged();
 
+    /**
+     * This signal is emitted whenever the current state has changed.
+     *
+     * @param oldState The old state the manager was in.
+     * @param newState The new state the manager is in.
+     */
+    void guiStateChanged( int oldState, int newState );
+
   protected:
     virtual void emitChangedSignal();
 
[prev in list] [next in list] [prev in thread] [next in thread] 

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