--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/ui/views/detailsview/src/glxdetailsview.cpp Tue Aug 31 15:14:51 2010 +0300
@@ -0,0 +1,642 @@
+/*
+ * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description: ?Description
+ *
+ */
+
+//--------------------------------------------------------------------------------------------------------------------------------------------
+
+
+#include <QModelIndex>
+#include <qdatetime.h>
+#include <QDebug>
+#include <HbAnchorLayout.h>
+//--------------------------------------------------------------------------------------------------------------------------------------------
+
+#include <hblabel.h>
+#include <hbdataform.h>
+#include <hbinstance.h>
+#include <hbiconitem.h>
+#include <hbframeitem.h>
+#include <hbpushbutton.h>
+#include <hbdataformmodel.h>
+#include <hbdocumentloader.h>
+#include <hbdataformmodelitem.h>
+#include <hbdataformviewitem.h>
+#include <hbparameterlengthlimiter.h>
+//--------------------------------------------------------------------------------------------------------------------------------------------
+#include "glxviewids.h"
+#include "glxicondefs.h" //Contains the icon names/Ids
+#include "glxmodelparm.h"
+#include "glxmediamodel.h"
+#include "glxdetailsview.h"
+#include "glxfavmediamodel.h"
+#include "glxdocloaderdefs.h"
+#include <glxcommandhandlers.hrh>
+#include "glxlocalisationstrings.h"
+#include "glxdetailstextedit.h"
+#include "glxdetailsicon.h"
+
+
+#include "glxviewdocloader.h"
+#include <glxcollectionpluginalbums.hrh>
+
+#include "glxlog.h"
+#include "glxloggerenabler.h"
+
+
+#include "OstTraceDefinitions.h"
+#ifdef OST_TRACE_COMPILER_IN_USE
+#include "glxdetailsviewTraces.h"
+#endif
+
+//SIZE OF THE IMAGE , LAYOUTS TEAM NEED TO GIVER THE SIZE IN UNITS
+#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;
+
+//--------------------------------------------------------------------------------------------------------------------------------------------
+//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 )
+{
+ 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
+//--------------------------------------------------------------------------------------------------------------------------------------------
+void GlxDetailsView::activate()
+ {
+ OstTraceFunctionEntry0( GLXDETAILSVIEW_ACTIVATE_ENTRY );
+ //create and set the Favourite Model
+ if(getSubState() != IMAGEVIEWER_DETAIL_S) {
+ setFavModel();
+ }
+
+ //fill the data
+ FillDetails();
+
+ //Initialze the Model
+ initializeNewModel();
+
+ //make the connections
+ setConnections();
+
+ //Set context mode to fetch descriptions
+ mModel->setData(QModelIndex(), (int) GlxContextComment, GlxContextRole);
+
+ OstTraceFunctionExit0( GLXDETAILSVIEW_ACTIVATE_EXIT );
+ }
+
+//--------------------------------------------------------------------------------------------------------------------------------------------
+//initializeView
+//--------------------------------------------------------------------------------------------------------------------------------------------
+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));
+
+ mDetailsIcon = static_cast<HbLabel*> (mDocLoader->findWidget(
+ GLX_DETAILSVIEW_IMAGE));
+ mFavIcon = static_cast<GlxDetailsIcon*> (mDocLoader->findWidget(
+ GLX_DETAILSVIEW_FAVICON));
+
+
+ mDescriptions = static_cast<GlxDetailsTextEdit*> (mDocLoader->findWidget(
+ GLX_DETAILSVIEW_DESCRPTIONTEXT));
+
+ mImageName = static_cast<GlxDetailsTextEdit*> (mDocLoader->findWidget(
+ GLX_DETAILSVIEW_IMGNAME));
+
+ mDateLabel = static_cast<HbLabel*> (mDocLoader->findWidget(
+ GLX_DETAILSVIEW_DATETEXT));
+
+ mTimeLabel = static_cast<HbLabel*> (mDocLoader->findWidget(
+ GLX_DETAILSVIEW_TIMETEXT));
+
+ mSizeLabel = static_cast<HbLabel*> (mDocLoader->findWidget(
+ GLX_DETAILSVIEW_SIZETEXT));
+
+ 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());
+
+ OstTraceFunctionExit0( GLXDETAILSVIEW_INITIALIZEVIEW_EXIT );
+ }
+
+//--------------------------------------------------------------------------------------------------------------------------------------------
+//resetView
+//--------------------------------------------------------------------------------------------------------------------------------------------
+void GlxDetailsView::resetView()
+ {
+ GLX_LOG_INFO("GlxDetailsView::resetView");
+ OstTrace0( TRACE_NORMAL, GLXDETAILSVIEW_RESETVIEW, "GlxDetailsView::resetView" );
+ }
+
+//--------------------------------------------------------------------------------------------------------------------------------------------
+//deActivate
+//--------------------------------------------------------------------------------------------------------------------------------------------
+void GlxDetailsView::deActivate()
+ {
+ GLX_LOG_INFO("GlxDetailsView::deActivate");
+ OstTraceFunctionEntry0( GLXDETAILSVIEW_DEACTIVATE_ENTRY );
+
+ //Remove the context created to update details
+ mModel->setData(QModelIndex(), (int) GlxContextComment,
+ GlxRemoveContextRole);
+ cleanUp();
+
+ OstTraceFunctionExit0( GLXDETAILSVIEW_DEACTIVATE_EXIT );
+ }
+
+//--------------------------------------------------------------------------------------------------------------------------------------------
+//cleanUp
+//--------------------------------------------------------------------------------------------------------------------------------------------
+void GlxDetailsView::cleanUp()
+ {
+ qDebug("GlxDetailsView::cleanUp Enter");
+ //clear the connections
+ clearConnections();
+
+ clearCurrentModel();
+
+ delete mFavModel;
+ mFavModel = NULL;
+
+ delete mFavIcon;
+ mFavIcon = NULL;
+
+ delete mDetailsIcon;
+ mDetailsIcon = NULL;
+ }
+
+//--------------------------------------------------------------------------------------------------------------------------------------------
+//setModel
+//--------------------------------------------------------------------------------------------------------------------------------------------
+void GlxDetailsView::setModel(QAbstractItemModel *model)
+ {
+ OstTrace0( TRACE_NORMAL, GLXDETAILSVIEW_SETMODEL, "GlxDetailsView::setModel" );
+ if (mModel == model)
+ {
+ return;
+ }
+ clearCurrentModel();
+ mModel = model;
+ initializeNewModel();
+ }
+
+//--------------------------------------------------------------------------------------------------------------------------------------------
+//setFavModel
+//--------------------------------------------------------------------------------------------------------------------------------------------
+void GlxDetailsView::setFavModel()
+{
+ GlxModelParm modelParm;
+ QString imagePath = (mModel->data(mModel->index(mModel->data(
+ mModel->index(0, 0), GlxFocusIndexRole).value<int> (), 0),
+ GlxUriRole)).value<QString> ();
+
+ 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)));
+ 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)));
+ 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(updateFavourites()), this, SLOT(updateFavourites()));
+
+ connect(mDescriptions, SIGNAL(labelPressed()), this,
+ SLOT(UpdateDescription()));
+
+ connect(mFavModel, SIGNAL( 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)));
+
+ if(mModel && getSubState() != IMAGEVIEWER_DETAIL_S) {
+ 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) ));
+ }
+}
+
+//--------------------------------------------------------------------------------------------------------------------------------------------
+//getAnimationItem
+//--------------------------------------------------------------------------------------------------------------------------------------------
+QGraphicsItem * GlxDetailsView::getAnimationItem(GlxEffect transtionEffect)
+ {
+ OstTrace0( TRACE_NORMAL, GLXDETAILSVIEW_GETANIMATIONITEM, "GlxDetailsView::getAnimationItem" );
+ if (transtionEffect == FULLSCREEN_TO_DETAIL || transtionEffect
+ == DETAIL_TO_FULLSCREEN)
+ {
+ return this;
+ }
+ return NULL;
+ }
+
+//--------------------------------------------------------------------------------------------------------------------------------------------
+//updateLayout
+//--------------------------------------------------------------------------------------------------------------------------------------------
+void GlxDetailsView::updateLayout(Qt::Orientation orient)
+ {
+ OstTrace1( TRACE_NORMAL, GLXDETAILSVIEW_UPDATELAYOUT, "GlxDetailsView::updateLayout;orient=%d", orient );
+ GLX_LOG_INFO("GlxDetailsView::updateLayout ");
+ bool loaded = false;
+ QString section;
+
+ //Load the widgets accroding to the current Orientation
+ if (orient == Qt::Horizontal)
+ {
+ section = GLX_DETAILSVIEW_LSSECTION;
+ }
+ else
+ {
+ section = GLX_DETAILSVIEW_PTSECTION;
+ }
+
+ //Load the Sections
+ mDocLoader->load(GLX_DETAILSVIEW_DOCMLPATH, section, &loaded);
+
+ showImage();
+ //This is just to over come the bug in docloader,once that is fixed we can remove the
+ //below lines of code
+ FillDetails();
+
+ GLX_LOG_INFO1("GlxDetailsView::updateLayout =%d\n",loaded);
+ }
+
+//--------------------------------------------------------------------------------------------------------------------------------------------
+//rowsRemoved
+//--------------------------------------------------------------------------------------------------------------------------------------------
+void GlxDetailsView::rowsRemoved(const QModelIndex &parent, int start,
+ int end)
+ {
+ Q_UNUSED(parent);
+ Q_UNUSED(start);
+ Q_UNUSED(end);
+ OstTrace0( TRACE_NORMAL, GLXDETAILSVIEW_ROWSREMOVED, "GlxDetailsView::rowsRemoved" );
+
+ if (mModel->rowCount() <= 0)
+ {
+ return emit actionTriggered(EGlxCmdEmptyData);
+ }
+
+ if (start <= mSelIndex && end >= mSelIndex)
+ {
+ return emit actionTriggered(EGlxCmdBack);
+ }
+ }
+
+void GlxDetailsView::modelDestroyed()
+{
+ mModel = NULL;
+}
+
+//--------------------------------------------------------------------------------------------------------------------------------------------
+//FillData
+//--------------------------------------------------------------------------------------------------------------------------------------------
+void GlxDetailsView::FillDetails()
+ {
+ OstTrace0( TRACE_NORMAL, GLXDETAILSVIEW_SETFORMDATA, "GlxDetailsView::setFormData" );
+
+ qDebug("GlxDetailsView::FillDetails");
+ //Call to set the Image Name
+ setImageName();
+
+ //Call to set the description
+ setDesc();
+
+ //Call to set the date in the from
+ setDate();
+
+ //Call to set the time
+ setTime();
+
+ //Call to set the size
+ setSize();
+
+ }
+//--------------------------------------------------------------------------------------------------------------------------------------------
+//showImage
+//--------------------------------------------------------------------------------------------------------------------------------------------
+void GlxDetailsView::showImage()
+ {
+ OstTrace0( TRACE_NORMAL, GLXDETAILSVIEW_SHOWIMAGE, "GlxDetailsView::showImage" );
+
+ QVariant variant = mModel->data(mModel->index(0, 0), GlxFocusIndexRole);
+ if (variant.isValid() && variant.canConvert<int> ())
+ {
+ mSelIndex = variant.value<int> ();
+ }
+
+ variant = mModel->data(mModel->index(mSelIndex, 0), GlxFsImageRole);
+
+ if (variant.isValid() && variant.canConvert<HbIcon> ())
+ {
+ mDetailsIcon->setIcon(variant.value<HbIcon> ());
+ }
+ }
+
+//--------------------------------------------------------------------------------------------------------------------------------------------
+//setImageName
+//--------------------------------------------------------------------------------------------------------------------------------------------
+void GlxDetailsView::setImageName()
+ {
+ OstTraceFunctionEntry0( GLXDETAILSVIEW_SETIMAGENAME_ENTRY );
+ QString imagePath = (mModel->data(mModel->index(mModel->data(
+ mModel->index(0, 0), GlxFocusIndexRole).value<int> (), 0),
+ GlxUriRole)).value<QString> ();
+ QString imageName = imagePath.section('\\', -1);
+
+ mImageName->setItemText(imageName);
+ OstTraceFunctionExit0( GLXDETAILSVIEW_SETIMAGENAME_EXIT );
+ }
+
+//--------------------------------------------------------------------------------------------------------------------------------------------
+//setImageName
+//--------------------------------------------------------------------------------------------------------------------------------------------
+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);
+ }
+
+//--------------------------------------------------------------------------------------------------------------------------------------------
+//setDate
+//--------------------------------------------------------------------------------------------------------------------------------------------
+void GlxDetailsView::setDate()
+ {
+ OstTraceFunctionEntry0( GLXDETAILSVIEW_SETDATE_ENTRY );
+
+ QString datestring;
+ QString dateFormat("dd.MM.yyyy");
+ QDate date = (mModel->data(mModel->index(mModel->data(
+ mModel->index(0, 0), GlxFocusIndexRole).value<int> (), 0),
+ GlxDateRole)).value<QDate> ();
+
+ if (date.isNull() == FALSE)
+ {
+ OstTrace0( TRACE_NORMAL, GLXDETAILSVIEW_SETDATE, "GlxDetailsView::setDate is not NULL" );
+ QString dateStringValue = date.toString(dateFormat);
+ datestring = hbTrId(GLX_DETAILS_DATE).arg(dateStringValue);
+ }
+
+ mDateLabel->setPlainText(datestring);
+
+ OstTraceFunctionExit0( GLXDETAILSVIEW_SETDATE_EXIT );
+ }
+
+//--------------------------------------------------------------------------------------------------------------------------------------------
+//setTime
+//--------------------------------------------------------------------------------------------------------------------------------------------
+void GlxDetailsView::setTime()
+ {
+ QString timestring;
+ QString timeFormat("h:m ap");
+ QTime timevalue = (mModel->data(mModel->index(mModel->data(mModel->index(
+ 0, 0), GlxFocusIndexRole).value<int> (), 0), GlxTimeRole)).value<
+ QTime> ();
+
+ if (timevalue.isNull() == FALSE)
+ {
+ QString timeStringValue = timevalue.toString(timeFormat);
+ timestring = hbTrId(GLX_DETAILS_TIME).arg(timeStringValue);
+ }
+ mTimeLabel->setPlainText(timestring);
+ }
+
+//--------------------------------------------------------------------------------------------------------------------------------------------
+//setSize
+//--------------------------------------------------------------------------------------------------------------------------------------------
+void GlxDetailsView::setSize()
+ {
+ int size = 0;
+ size = (mModel->data(mModel->index(mModel->data(mModel->index(0, 0),
+ GlxFocusIndexRole).value<int> (), 0), GlxSizeRole)).value<int> ();
+
+ QString sizeString;
+ sizeString = sizeinStrings(size);
+ mSizeLabel->setPlainText(sizeString);
+
+ }
+
+//--------------------------------------------------------------------------------------------------------------------------------------------
+//dataChanged
+//--------------------------------------------------------------------------------------------------------------------------------------------
+void GlxDetailsView::dataChanged(QModelIndex startIndex, QModelIndex endIndex)
+ {
+ Q_UNUSED(endIndex);
+
+ QVariant variant = mFavModel->data(startIndex, GlxFavorites);
+ if (variant.isValid() && variant.canConvert<bool> ())
+ {
+ if (variant.value<bool> ())
+ {
+ mFavIcon->setItemIcon(mFavIconEnabled);
+ }
+ else
+ {
+ mFavIcon->setItemIcon(mFavIconDisabled);
+ }
+ }
+ }
+
+//--------------------------------------------------------------------------------------------------------------------------------------------
+//UpdateDescription
+//--------------------------------------------------------------------------------------------------------------------------------------------
+void GlxDetailsView::UpdateDescription()
+ {
+ GLX_LOG_INFO("GlxDetailsView::UpdateDescription ");
+ qDebug("GlxDetailsView::UpdateDescription");
+ emit actionTriggered(EGlxCmdComment);
+ }
+
+//--------------------------------------------------------------------------------------------------------------------------------------------
+//updateFavourites
+//--------------------------------------------------------------------------------------------------------------------------------------------
+void GlxDetailsView::updateFavourites()
+ {
+ QVariant variant = mFavModel->data(mFavModel->index(0, 0), GlxFavorites);
+ if (variant.isValid() && variant.canConvert<bool> ())
+ {
+ if (variant.value<bool> ())
+ {
+ emit actionTriggered(EGlxCmdRemoveFromFav);
+ }
+ else
+ {
+ emit actionTriggered(EGlxCmdAddToFav);
+ }
+ }
+ }
+
+//--------------------------------------------------------------------------------------------------------------------------------------------
+//sizeinStrings
+//--------------------------------------------------------------------------------------------------------------------------------------------
+QString GlxDetailsView::sizeinStrings(int size)
+ {
+ QString sizeString;
+ if (size >= KBytesInGB)
+ {
+ int gbSize = size / KBytesInGB; // Size in GB
+ sizeString = HbParameterLengthLimiter(GLX_DETAILS_SIZE_GB, gbSize);
+ }
+ else if (size >= KBytesInMB)
+ {
+ int mbSize = size / KBytesInMB; // Size in MB
+ sizeString = HbParameterLengthLimiter(GLX_DETAILS_SIZE_MB, mbSize);
+ }
+ else if (size >= KBytesInKB)
+ {
+ int kbSize = size / KBytesInKB; // Size in KB
+ sizeString = HbParameterLengthLimiter(GLX_DETAILS_SIZE_KB, kbSize);
+ }
+ else
+ {
+ 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;
+ }