ui/views/gridview/src/glxgridview.cpp
changeset 36 6481344a6d67
parent 33 1ee2af37811f
child 44 aa2fa096cbfb
--- a/ui/views/gridview/src/glxgridview.cpp	Thu May 27 12:51:42 2010 +0300
+++ b/ui/views/gridview/src/glxgridview.cpp	Fri Jun 11 13:38:23 2010 +0300
@@ -30,6 +30,7 @@
 #include <hblabel.h>
 #include <QString>
 #include <hbframeitem.h>
+#include <QCoreApplication>
 
 //User Includes
 #include "glxviewids.h"
@@ -38,6 +39,9 @@
 #include "glxcommandhandlers.hrh"
 #include "glxicondefs.h"
 #include "glxlocalisationstrings.h"
+#include "glxlog.h"
+#include "glxtracer.h"
+
 
 #include "OstTraceDefinitions.h"
 #ifdef OST_TRACE_COMPILER_IN_USE
@@ -90,6 +94,7 @@
         frame->graphicsItem()->setOpacity(1);
         mCountItem->setBackgroundItem(frame->graphicsItem(),-1);
     }
+    QCoreApplication::instance()->installEventFilter(this);
     OstTraceFunctionExit0( GLXGRIDVIEW_ACTIVATE_EXIT );
 }
 
@@ -97,33 +102,28 @@
 {
     OstTraceFunctionEntry0( GLXGRIDVIEW_DEACTIVATE_ENTRY );
     mScrolling = FALSE;
-    if (mUiOnButton)
-        {
+    if (mUiOnButton){
         mUiOnButton->hide();
-        }    
-    if(mIconItem)
-        {
+    }    
+    if(mIconItem) {
         mIconItem->hide();
         mIconItem->resetTransform();
         mIconItem->setOpacity(0);
         mIconItem->setZValue(mIconItem->zValue()-20);
-        }
-    if (mCountItem) 
-        {
+    }
+    if (mCountItem) {
         mCountItem->hide();
-        }
-    if (mAlbumName) 
-        {
+    }
+    if (mAlbumName) {
         mAlbumName->hide();
-        }
-    if(mZeroItemLabel) 
-        {
+    }
+    if(mZeroItemLabel) {
         mZeroItemLabel->hide();
-        }
-    if(mCameraButton) 
-        {
+    }
+    if(mCameraButton) {
         mCameraButton->hide();
-        }
+    }
+    QCoreApplication::instance()->removeEventFilter(this);
     disconnect(mWindow, SIGNAL(orientationChanged(Qt::Orientation)), this, SLOT(orientationchanged(Qt::Orientation)));
     OstTraceFunctionExit0( GLXGRIDVIEW_DEACTIVATE_EXIT );
 }
@@ -416,6 +416,20 @@
     showItemCount();
 }
 
+bool GlxGridView::eventFilter(QObject *obj, QEvent *event)
+{
+    TRACER("GlxGridView::eventFilter() ");
+    GLX_LOG_INFO1("GlxGridView::eventFilter() %d event type", event->type());
+    
+    if ( event->type() ==  QEvent::ApplicationActivate ) {
+        emit actionTriggered( EGlxCmdAppForeground );
+    }
+    if ( event->type() ==  QEvent::ApplicationDeactivate ) {
+        emit actionTriggered( EGlxCmdAppBackground );
+    }
+    return HbView::eventFilter(obj,event);
+}
+
 void GlxGridView::handleUserAction(qint32 commandId)
 {
     OstTrace0( TRACE_NORMAL, GLXGRIDVIEW_HANDLEUSERACTION, "GlxGridView::handleUserAction" );
@@ -518,7 +532,7 @@
 }
 void GlxGridView::hideorshowitems(Qt::Orientation orient)
 {
-    if (mWidget->selectionMode() == HgWidget::NoSelection) {
+    if (mWidget && mWidget->selectionMode() == HgWidget::NoSelection) {
         if(orient == Qt::Horizontal)
             {
 			setItemVisible(Hb::AllItems, FALSE) ;
@@ -535,7 +549,7 @@
             }
     }
 
-    if (mWidget->selectionMode() == HgWidget::MultiSelection) {
+    if (mWidget && mWidget->selectionMode() == HgWidget::MultiSelection) {
         setItemVisible(Hb::TitleBarItem, FALSE) ;
         if (mUiOnButton) {
             mUiOnButton->hide();