ui/views/detailsview/src/glxdetailsview.cpp
changeset 52 a3a4c0de738e
parent 50 a0f57508af73
child 54 0f0f3f26f787
--- a/ui/views/detailsview/src/glxdetailsview.cpp	Sat Jul 10 00:59:39 2010 +0530
+++ b/ui/views/detailsview/src/glxdetailsview.cpp	Fri Jul 23 20:41:04 2010 +0530
@@ -44,8 +44,9 @@
 #include "glxfavmediamodel.h"
 #include "glxdocloaderdefs.h"
 #include <glxcommandhandlers.hrh>
-#include "glxdetailsdescriptionedit.h"
-#include "glxdetailsnamelabel.h"
+
+#include "glxdetailstextedit.h"
+#include "glxdetailsicon.h"
 
 
 #include "glxviewdocloader.h"
@@ -61,7 +62,8 @@
 #endif
 
 //SIZE OF THE IMAGE , LAYOUTS TEAM NEED TO GIVER THE SIZE IN UNITS
-#define GLX_IMAGE_SIZE 215 
+#define GLX_IMAGE_WIDTH 333
+#define GLX_IMAGE_HEIGHT 215 
 const int KBytesInKB = 1024;
 const int KBytesInMB = 1024 * 1024;
 const int KBytesInGB = 1024 * 1024 * 1024;
@@ -69,29 +71,39 @@
 //--------------------------------------------------------------------------------------------------------------------------------------------
 //GlxDetailsView
 //--------------------------------------------------------------------------------------------------------------------------------------------
-GlxDetailsView::GlxDetailsView(HbMainWindow *window) :
-GlxView(GLX_DETAILSVIEW_ID), mDetailsIcon(NULL), mFavIcon(NULL), mModel(
-        NULL), mFavModel(NULL), mWindow(window),
-        mSelIndex(0),mDocLoader(NULL),mImageName(NULL),mDescriptions(NULL),mDateLabel(NULL),mSizeLabel(NULL),mTimeLabel(NULL)
-   {
+GlxDetailsView::GlxDetailsView(HbMainWindow *window) 
+    : GlxView( GLX_DETAILSVIEW_ID ),
+      mDetailsIcon( NULL ),
+      mFavIcon( NULL ), 
+      mModel( NULL ), 
+      mFavModel( NULL ),
+      mWindow( window ),
+      mSelIndex( 0 ),
+      mDocLoader( NULL ),
+      mImageName( NULL ),
+      mDescriptions( NULL ),
+      mDateLabel( NULL ),
+      mSizeLabel( NULL ),
+      mTimeLabel( NULL )
+{
     GLX_LOG_INFO("GlxDetailsView::GlxDetailsView");
     OstTraceFunctionEntry0( GLXDETAILSVIEW_GLXDETAILSVIEW_ENTRY );
     setContentFullScreen(true);//for smooth transtion between grid to full screen and vice versa
     OstTraceFunctionExit0( GLXDETAILSVIEW_GLXDETAILSVIEW_EXIT );
-   }
+}
 
 //--------------------------------------------------------------------------------------------------------------------------------------------
 //~GlxDetailsView
 //--------------------------------------------------------------------------------------------------------------------------------------------
 GlxDetailsView::~GlxDetailsView()
-    {
+{
     OstTrace0( TRACE_IMPORTANT, GLXDETAILSVIEW_GLXDETAILSVIEW, "GlxDetailsView::~GlxDetailsView" );
     
     delete mDocLoader;
     mDocLoader = NULL;
     
     cleanUp();
-    }
+}
 
 //--------------------------------------------------------------------------------------------------------------------------------------------
 //activate
@@ -139,19 +151,16 @@
     HbView *mView = static_cast<HbView*> (mDocLoader->findWidget(
             GLX_DETAILSVIEW_VIEW));
     
-    HbWidget *mwidget = static_cast<HbWidget*> (mDocLoader->findWidget(
-            "MainWidget"));
-
     mDetailsIcon = static_cast<HbLabel*> (mDocLoader->findWidget(
             GLX_DETAILSVIEW_IMAGE));
-    mFavIcon = static_cast<HbPushButton*> (mDocLoader->findWidget(
+    mFavIcon = static_cast<GlxDetailsIcon*> (mDocLoader->findWidget(
             GLX_DETAILSVIEW_FAVICON));
 
 
-    mDescriptions = static_cast<GlxDetailsDescriptionEdit*> (mDocLoader->findWidget(
+    mDescriptions = static_cast<GlxDetailsTextEdit*> (mDocLoader->findWidget(
             GLX_DETAILSVIEW_DESCRPTIONTEXT));
     
-    mImageName = static_cast<GlxDetailsNameLabel*> (mDocLoader->findWidget(
+    mImageName = static_cast<GlxDetailsTextEdit*> (mDocLoader->findWidget(
             GLX_DETAILSVIEW_IMGNAME));
     
     mDateLabel = static_cast<HbLabel*> (mDocLoader->findWidget(
@@ -163,22 +172,17 @@
     mSizeLabel = static_cast<HbLabel*> (mDocLoader->findWidget(
             GLX_DETAILSVIEW_SIZETEXT));
 
-    
-        //Set the Model
+    mFavIconEnabled  =  HbIcon(GLXICON_ADD_TO_FAV);
+    mFavIconDisabled =  HbIcon(GLXICON_REMOVE_FAV);   
+        
+    //Set the Model
     mModel = model;  
    if(getSubState() == IMAGEVIEWER_DETAIL_S) {
        mFavIcon->hide();
     }
     else
     {
-        //set the frame graphics to the background of the fav icon
-        HbFrameItem* frame = new HbFrameItem(this);
-        frame->frameDrawer().setFrameType(HbFrameDrawer::NinePieces);
-        frame->frameDrawer().setFrameGraphicsName("qtg_fr_multimedia_trans");
-        frame->graphicsItem()->setOpacity(0.2);
-        mFavIcon->setBackgroundItem(frame->graphicsItem(), -1);
-        mFavIcon->setBackground(HbIcon("qtg_fr_multimedia_trans"));
-        mFavIcon->setIcon(HbIcon(GLXICON_REMOVE_FAV));
+       mFavIcon->setItemIcon(HbIcon(GLXICON_REMOVE_FAV));
      }	
 	 
 	setWidget(mView);
@@ -186,8 +190,6 @@
     //Set the Layout Correspondingly.
     updateLayout(mWindow->orientation());
 
-    //Shows the Image 
-    showImage();
     OstTraceFunctionExit0( GLXDETAILSVIEW_INITIALIZEVIEW_EXIT );
     }
 
@@ -229,7 +231,7 @@
 
     delete mFavModel;
     mFavModel = NULL;
-
+       
     delete mFavIcon;
     mFavIcon = NULL;
 
@@ -262,55 +264,53 @@
             mModel->index(0, 0), GlxFocusIndexRole).value<int> (), 0),
             GlxUriRole)).value<QString> ();
 
-    if (mFavModel == NULL)
-        {
+    if (mFavModel == NULL) {
         modelParm.setCollection(KGlxCollectionPluginFavoritesAlbumId);
         modelParm.setContextMode(GlxContextFavorite);
         modelParm.setPath(imagePath);
         mFavModel = new GlxFavMediaModel(modelParm);
-        }
+    }
 }
 
 //--------------------------------------------------------------------------------------------------------------------------------------------
 //initializeNewModel
 //--------------------------------------------------------------------------------------------------------------------------------------------
 void GlxDetailsView::initializeNewModel()
-    {
+{
     OstTrace0( TRACE_NORMAL, GLXDETAILSVIEW_INITIALIZENEWMODEL, "GlxDetailsView::initializeNewModel" );
-
-    if (mModel)
-        {
-    connect(mModel, SIGNAL(rowsRemoved(QModelIndex,int,int)), this,
-            SLOT(rowsRemoved(QModelIndex,int,int)));
-        }
+    
+    if (mModel) {
+        connect( mModel, SIGNAL(rowsRemoved(QModelIndex,int,int)), this, SLOT(rowsRemoved(QModelIndex,int,int)));
+        connect( mModel, SIGNAL( updateDetailsView() ), this, SLOT( FillDetails() ));
+        connect( mModel, SIGNAL( destroyed() ), this, SLOT( modelDestroyed() ) );
     }
+}
 
 //--------------------------------------------------------------------------------------------------------------------------------------------
 //clearCurrentModel
 //--------------------------------------------------------------------------------------------------------------------------------------------
 void GlxDetailsView::clearCurrentModel()
-    {
+{
     OstTrace0( TRACE_NORMAL, GLXDETAILSVIEW_CLEARCURRENTMODEL, "GlxDetailsView::clearCurrentModel" );
 
-    if (mModel)
-        {
-        disconnect(mModel, SIGNAL(rowsRemoved(QModelIndex,int,int)), this,
-                SLOT(rowsRemoved(QModelIndex,int,int)));
+    if (mModel) {
+        disconnect(mModel, SIGNAL(rowsRemoved(QModelIndex,int,int)), this, SLOT(rowsRemoved(QModelIndex,int,int)));
+        disconnect(mModel, SIGNAL( updateDetailsView() ), this, SLOT( FillDetails() ));
+        disconnect( mModel, SIGNAL( destroyed() ), this, SLOT( modelDestroyed() ) );
         mModel = NULL;
-        }
     }
+}
 
 //--------------------------------------------------------------------------------------------------------------------------------------------
 //setConnections
 //--------------------------------------------------------------------------------------------------------------------------------------------
 void GlxDetailsView::setConnections()
-    {
+{
     connect(mWindow, SIGNAL(orientationChanged(Qt::Orientation)), this,
             SLOT(updateLayout(Qt::Orientation)));
     
-    
     if(getSubState() != IMAGEVIEWER_DETAIL_S) {    
-    connect(mFavIcon, SIGNAL(clicked()), this, SLOT(updateFavourites()));
+    connect(mFavIcon, SIGNAL(updateFavourites()), this, SLOT(updateFavourites()));
     
     connect(mDescriptions, SIGNAL(labelPressed()), this,
             SLOT(UpdateDescription()));
@@ -318,34 +318,26 @@
     connect(mFavModel, SIGNAL( dataChanged(QModelIndex,QModelIndex) ),
                    this, SLOT( dataChanged(QModelIndex,QModelIndex) ));
     }
-    
-    connect(mModel, SIGNAL( updateDetailsView() ), this, SLOT( FillDetails() ));
-    
-        
-    }
+}
 
 //--------------------------------------------------------------------------------------------------------------------------------------------
 //clearConnections
 //--------------------------------------------------------------------------------------------------------------------------------------------
 void GlxDetailsView::clearConnections()
-    {
+{
     
     qDebug("GlxDetailsView:: clearConnections");
     disconnect(mWindow, SIGNAL(orientationChanged(Qt::Orientation)), this,
             SLOT(updateLayout(Qt::Orientation)));
            
     if(mModel && getSubState() != IMAGEVIEWER_DETAIL_S) {
-    disconnect(mFavIcon, SIGNAL(clicked()), this, SLOT(updateFavourites()));
+    disconnect(mFavIcon, SIGNAL(updateFavourites()), this, SLOT(updateFavourites()));
     disconnect(mDescriptions, SIGNAL(labelPressed()), this,
             SLOT(UpdateDescription()));
     disconnect(mFavModel, SIGNAL( dataChanged(QModelIndex,QModelIndex) ),
                     this, SLOT( dataChanged(QModelIndex,QModelIndex) ));
     }
-    
-    disconnect(mModel, SIGNAL( updateDetailsView() ), this, SLOT( FillDetails() ));
-    
-    
-    }
+}
 
 //--------------------------------------------------------------------------------------------------------------------------------------------
 //getAnimationItem
@@ -384,11 +376,11 @@
     //Load the Sections
     mDocLoader->load(GLX_DETAILSVIEW_DOCMLPATH, section, &loaded);
 
-    //This is just to over come the bug in docloader,once that is fixed we can remove the 
+    showImage();
+	//This is just to over come the bug in docloader,once that is fixed we can remove the 
     //below lines of code
-     setImageName();
-     setDate();
-
+    FillDetails();
+    
     GLX_LOG_INFO1("GlxDetailsView::updateLayout =%d\n",loaded);
     }
 
@@ -414,6 +406,11 @@
         }
     }
 
+void GlxDetailsView::modelDestroyed()
+{
+    mModel = NULL;
+}
+
 //--------------------------------------------------------------------------------------------------------------------------------------------
 //FillData
 //--------------------------------------------------------------------------------------------------------------------------------------------
@@ -442,7 +439,7 @@
 //showImage
 //--------------------------------------------------------------------------------------------------------------------------------------------
 void GlxDetailsView::showImage()
-    {
+ {
     OstTrace0( TRACE_NORMAL, GLXDETAILSVIEW_SHOWIMAGE, "GlxDetailsView::showImage" );
 
     QVariant variant = mModel->data(mModel->index(0, 0), GlxFocusIndexRole);
@@ -452,17 +449,12 @@
         }
 
     variant = mModel->data(mModel->index(mSelIndex, 0), GlxFsImageRole);
+    
     if (variant.isValid() && variant.canConvert<HbIcon> ())
         {
-        QIcon itemIcon = variant.value<HbIcon> ().qicon();
-        QPixmap itemPixmap = itemIcon.pixmap(GLX_IMAGE_SIZE, GLX_IMAGE_SIZE);
-        QSize sz(GLX_IMAGE_SIZE, GLX_IMAGE_SIZE);
-        itemPixmap = itemPixmap.scaled(sz, Qt::IgnoreAspectRatio);
-
-        HbIcon tmp = HbIcon(QIcon(itemPixmap));
-        mDetailsIcon->setIcon(tmp);
+         mDetailsIcon->setIcon(variant.value<HbIcon> ());
         }
-    }
+   }
 
 //--------------------------------------------------------------------------------------------------------------------------------------------
 //setImageName
@@ -470,15 +462,12 @@
 void GlxDetailsView::setImageName()
     {
     OstTraceFunctionEntry0( GLXDETAILSVIEW_SETIMAGENAME_ENTRY );
-    QString temp = "<u>";
     QString imagePath = (mModel->data(mModel->index(mModel->data(
             mModel->index(0, 0), GlxFocusIndexRole).value<int> (), 0),
             GlxUriRole)).value<QString> ();
     QString imageName = imagePath.section('\\', -1);
     
-    temp.append(imageName);
-    temp.append("</u>");
-    mImageName->setItemText(temp);    
+    mImageName->setItemText(imageName);    
     OstTraceFunctionExit0( GLXDETAILSVIEW_SETIMAGENAME_EXIT );
     }
 
@@ -487,10 +476,15 @@
 //--------------------------------------------------------------------------------------------------------------------------------------------
 void GlxDetailsView::setDesc()
     {
+    
+    //This is a hack , Initialize to some characters and then set the text
+    //as of know if the description text is Null , we cant see the Description edit box
+    //The issue has been informed to Application designer team.
+    mDescriptions->setItemText("a");
     QString description = (mModel->data(mModel->index(mModel->data(
             mModel->index(0, 0), GlxFocusIndexRole).value<int> (), 0),
             GlxDescRole)).value<QString> ();
-    mDescriptions->setItemText(description);
+     mDescriptions->setItemText(description);       
     }
 
 //--------------------------------------------------------------------------------------------------------------------------------------------
@@ -566,11 +560,11 @@
         {
         if (variant.value<bool> ())
             {
-            mFavIcon->setIcon(HbIcon(GLXICON_ADD_TO_FAV));
+            mFavIcon->setItemIcon(mFavIconEnabled);
             }
         else
             {
-            mFavIcon->setIcon(HbIcon(GLXICON_REMOVE_FAV));
+            mFavIcon->setItemIcon(mFavIconDisabled);
             }
         }
     }