--- a/ui/views/detailsview/src/glxdetailsview.cpp Tue Jul 06 14:16:16 2010 +0300
+++ b/ui/views/detailsview/src/glxdetailsview.cpp Wed Aug 18 09:48:53 2010 +0300
@@ -34,7 +34,7 @@
#include <hbdocumentloader.h>
#include <hbdataformmodelitem.h>
#include <hbdataformviewitem.h>
-
+#include <hbparameterlengthlimiter.h>
//--------------------------------------------------------------------------------------------------------------------------------------------
#include "glxviewids.h"
#include "glxicondefs.h" //Contains the icon names/Ids
@@ -44,8 +44,9 @@
#include "glxfavmediamodel.h"
#include "glxdocloaderdefs.h"
#include <glxcommandhandlers.hrh>
-#include "glxdetailsdescriptionedit.h"
-#include "glxdetailsnamelabel.h"
+#include "glxlocalisationstrings.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
@@ -100,7 +112,9 @@
{
OstTraceFunctionEntry0( GLXDETAILSVIEW_ACTIVATE_ENTRY );
//create and set the Favourite Model
- setFavModel();
+ if(getSubState() != IMAGEVIEWER_DETAIL_S) {
+ setFavModel();
+ }
//fill the data
FillDetails();
@@ -120,34 +134,33 @@
//--------------------------------------------------------------------------------------------------------------------------------------------
//initializeView
//--------------------------------------------------------------------------------------------------------------------------------------------
-void GlxDetailsView::initializeView(QAbstractItemModel *model)
- {
+void GlxDetailsView::initializeView( QAbstractItemModel *model, GlxView *preView)
+{
+ Q_UNUSED( preView )
OstTraceFunctionEntry0( GLXDETAILSVIEW_INITIALIZEVIEW_ENTRY );
bool loaded = false;
-
+
if(!mDocLoader)
{
mDocLoader = new GlxDetailsViewDocLoader();
}
-
+
//Load the docml
mDocLoader->load(GLX_DETAILSVIEW_DOCMLPATH, &loaded);
-
+
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(
@@ -159,25 +172,24 @@
mSizeLabel = static_cast<HbLabel*> (mDocLoader->findWidget(
GLX_DETAILSVIEW_SIZETEXT));
- //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));
-
- setWidget(mView);
-
+ mFavIconEnabled = HbIcon(GLXICON_ADD_TO_FAV);
+ mFavIconDisabled = HbIcon(GLXICON_REMOVE_FAV);
+
//Set the Model
mModel = model;
-
+ if(getSubState() == IMAGEVIEWER_DETAIL_S) {
+ mFavIcon->hide();
+ }
+ else
+ {
+ mFavIcon->setItemIcon(HbIcon(GLXICON_REMOVE_FAV));
+ }
+
+ setWidget(mView);
+
//Set the Layout Correspondingly.
updateLayout(mWindow->orientation());
- //Shows the Image
- showImage();
OstTraceFunctionExit0( GLXDETAILSVIEW_INITIALIZEVIEW_EXIT );
}
@@ -211,14 +223,15 @@
//--------------------------------------------------------------------------------------------------------------------------------------------
void GlxDetailsView::cleanUp()
{
+ qDebug("GlxDetailsView::cleanUp Enter");
+ //clear the connections
+ clearConnections();
+
clearCurrentModel();
- //clear the connections
- clearConnections();
-
delete mFavModel;
mFavModel = NULL;
-
+
delete mFavIcon;
mFavIcon = NULL;
@@ -251,80 +264,80 @@
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)));
- connect(mFavIcon, SIGNAL(clicked()), this, SLOT(updateFavourites()));
+
+ if(getSubState() != IMAGEVIEWER_DETAIL_S) {
+ connect(mFavIcon, SIGNAL(updateFavourites()), this, SLOT(updateFavourites()));
connect(mDescriptions, SIGNAL(labelPressed()), this,
SLOT(UpdateDescription()));
- connect(mModel, SIGNAL( updateDetailsView() ), this, SLOT( FillDetails() ));
-
connect(mFavModel, SIGNAL( dataChanged(QModelIndex,QModelIndex) ),
- this, SLOT( dataChanged(QModelIndex,QModelIndex) ));
+ this, SLOT( dataChanged(QModelIndex,QModelIndex) ));
}
+}
//--------------------------------------------------------------------------------------------------------------------------------------------
//clearConnections
//--------------------------------------------------------------------------------------------------------------------------------------------
void GlxDetailsView::clearConnections()
- {
+{
+
+ qDebug("GlxDetailsView:: clearConnections");
disconnect(mWindow, SIGNAL(orientationChanged(Qt::Orientation)), this,
SLOT(updateLayout(Qt::Orientation)));
-
- disconnect(mFavIcon, SIGNAL(clicked()), this, SLOT(updateFavourites()));
-
+
+ if(mModel && getSubState() != IMAGEVIEWER_DETAIL_S) {
+ disconnect(mFavIcon, SIGNAL(updateFavourites()), this, SLOT(updateFavourites()));
disconnect(mDescriptions, SIGNAL(labelPressed()), this,
SLOT(UpdateDescription()));
-
- disconnect(mModel, SIGNAL( updateDetailsView() ), this, SLOT( FillDetails() ));
-
disconnect(mFavModel, SIGNAL( dataChanged(QModelIndex,QModelIndex) ),
- this, SLOT( dataChanged(QModelIndex,QModelIndex) ));
+ this, SLOT( dataChanged(QModelIndex,QModelIndex) ));
}
+}
//--------------------------------------------------------------------------------------------------------------------------------------------
//getAnimationItem
@@ -363,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);
}
@@ -393,6 +406,11 @@
}
}
+void GlxDetailsView::modelDestroyed()
+{
+ mModel = NULL;
+}
+
//--------------------------------------------------------------------------------------------------------------------------------------------
//FillData
//--------------------------------------------------------------------------------------------------------------------------------------------
@@ -421,7 +439,7 @@
//showImage
//--------------------------------------------------------------------------------------------------------------------------------------------
void GlxDetailsView::showImage()
- {
+ {
OstTrace0( TRACE_NORMAL, GLXDETAILSVIEW_SHOWIMAGE, "GlxDetailsView::showImage" );
QVariant variant = mModel->data(mModel->index(0, 0), GlxFocusIndexRole);
@@ -431,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
@@ -449,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 );
}
@@ -466,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);
}
//--------------------------------------------------------------------------------------------------------------------------------------------
@@ -484,12 +499,12 @@
QDate date = (mModel->data(mModel->index(mModel->data(
mModel->index(0, 0), GlxFocusIndexRole).value<int> (), 0),
GlxDateRole)).value<QDate> ();
-
- datestring = QString("Date: ");
+
if (date.isNull() == FALSE)
{
OstTrace0( TRACE_NORMAL, GLXDETAILSVIEW_SETDATE, "GlxDetailsView::setDate is not NULL" );
- datestring.append(date.toString(dateFormat));
+ QString dateStringValue = date.toString(dateFormat);
+ datestring = hbTrId(GLX_DETAILS_DATE).arg(dateStringValue);
}
mDateLabel->setPlainText(datestring);
@@ -507,13 +522,14 @@
QTime timevalue = (mModel->data(mModel->index(mModel->data(mModel->index(
0, 0), GlxFocusIndexRole).value<int> (), 0), GlxTimeRole)).value<
QTime> ();
- timestring = QString("Time: ");
+
if (timevalue.isNull() == FALSE)
{
OstTrace0( TRACE_NORMAL, GLXDETAILSVIEW_SETDATE, "GlxDetailsView::setTime is not NULL" );
- timestring.append(timevalue.toString(timeFormat));
+ QString timeStringValue = timevalue.toString(timeFormat);
+ timestring = hbTrId(GLX_DETAILS_TIME).arg(timeStringValue);
}
- mTimeLabel->setPlainText(timestring);
+ mTimeLabel->setPlainText(timestring);
}
//--------------------------------------------------------------------------------------------------------------------------------------------
@@ -524,12 +540,10 @@
int size = 0;
size = (mModel->data(mModel->index(mModel->data(mModel->index(0, 0),
GlxFocusIndexRole).value<int> (), 0), GlxSizeRole)).value<int> ();
- QString sizelabel;
- QString sizestring;
- sizelabel = QString("Size : ");
- sizestring = sizeinStrings(size);
- sizelabel.append(sizestring);
- mSizeLabel->setPlainText(sizelabel);
+
+ QString sizeString;
+ sizeString = sizeinStrings(size);
+ mSizeLabel->setPlainText(sizeString);
}
@@ -545,11 +559,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);
}
}
}
@@ -592,25 +606,38 @@
if (size >= KBytesInGB)
{
int gbSize = size / KBytesInGB; // Size in GB
- sizeString.setNum(gbSize);
- sizeString.append("GB");
+ sizeString = HbParameterLengthLimiter(GLX_DETAILS_SIZE_GB, gbSize);
}
else if (size >= KBytesInMB)
{
int mbSize = size / KBytesInMB; // Size in MB
- sizeString.setNum(mbSize);
- sizeString.append("MB");
+ sizeString = HbParameterLengthLimiter(GLX_DETAILS_SIZE_MB, mbSize);
}
else if (size >= KBytesInKB)
{
- TInt kBsize = size / KBytesInKB; // bytes to kB
- sizeString.setNum(kBsize);
- sizeString.append("KB");
+ int kbSize = size / KBytesInKB; // Size in KB
+ sizeString = HbParameterLengthLimiter(GLX_DETAILS_SIZE_KB, kbSize);
}
else
{
- sizeString.setNum(size);
- sizeString.append("Bytes");
+ sizeString = HbParameterLengthLimiter(GLX_DETAILS_SIZE_BYTES, size);
}
return sizeString;
}
+
+//--------------------------------------------------------------------------------------------------------------------------------------------
+//getSubState
+//--------------------------------------------------------------------------------------------------------------------------------------------
+int GlxDetailsView::getSubState()
+ {
+ int substate = NO_DETAIL_S;
+
+ if (mModel) {
+ QVariant variant = mModel->data(mModel->index(0, 0), GlxSubStateRole);
+
+ if (variant.isValid() && variant.canConvert<int> ()) {
+ substate = variant.value<int> ();
+ }
+ }
+ return substate;
+ }