# HG changeset patch # User Dremov Kirill (Nokia-D-MSW/Tampere) # Date 1277305968 -10800 # Node ID d0b4e67b3a60618d07bceb3d74ae8c40ea0e01b4 # Parent 6481344a6d676a0418689da45a490d63589403d6 Revision: 201023 Kit: 2010125 diff -r 6481344a6d67 -r d0b4e67b3a60 commonutilities/externalutility/externalutility.pro --- a/commonutilities/externalutility/externalutility.pro Fri Jun 11 13:38:23 2010 +0300 +++ b/commonutilities/externalutility/externalutility.pro Wed Jun 23 18:12:48 2010 +0300 @@ -35,4 +35,12 @@ HEADERS += inc/glxexternalutility.h SOURCES += src/glxexternalutility.cpp -DEFINES += QT_NO_DEBUG_OUTPUT QT_NO_WARNING_OUTPUT \ No newline at end of file +DEFINES += QT_NO_DEBUG_OUTPUT QT_NO_WARNING_OUTPUT +defBlock = \ +"$${LITERAL_HASH}if defined(EABI)" \ +"DEFFILE ../eabi/glxexternalutility.def" \ + "$${LITERAL_HASH}else" \ + "DEFFILE ../bwins/glxexternalutility.def" \ + "$${LITERAL_HASH}endif" + +MMP_RULES += defBlock diff -r 6481344a6d67 -r d0b4e67b3a60 commonutilities/imagedecoderwrapper/imagedecoderwrapper.pro --- a/commonutilities/imagedecoderwrapper/imagedecoderwrapper.pro Fri Jun 11 13:38:23 2010 +0300 +++ b/commonutilities/imagedecoderwrapper/imagedecoderwrapper.pro Wed Jun 23 18:12:48 2010 +0300 @@ -25,7 +25,8 @@ LIBS += -limageconversion.dll \ -lbitmaptransforms.dll \ -liclextjpegapi.dll \ - -lfbscli.dll + -lfbscli.dll \ + -lefsrv.dll DEFINES += BUILD_IMAGEWRAPPER symbian: { @@ -40,4 +41,13 @@ HEADERS += inc/glximagedecoder.h inc/glximagedecoderwrapper.h SOURCES += src/glximagedecoder.cpp src/glximagedecoderwrapper.cpp -DEFINES += QT_NO_DEBUG_OUTPUT QT_NO_WARNING_OUTPUT \ No newline at end of file +DEFINES += QT_NO_DEBUG_OUTPUT QT_NO_WARNING_OUTPUT + +defBlock = \ +"$${LITERAL_HASH}if defined(EABI)" \ +"DEFFILE ../eabi/glximagedecoderwrapper.def" \ + "$${LITERAL_HASH}else" \ + "DEFFILE ../bwins/glximagedecoderwrapper.def" \ + "$${LITERAL_HASH}endif" + +MMP_RULES += defBlock diff -r 6481344a6d67 -r d0b4e67b3a60 data/detailsview.docml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/data/detailsview.docml Wed Jun 23 18:12:48 2010 +0300 @@ -0,0 +1,326 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
diff -r 6481344a6d67 -r d0b4e67b3a60 data/listview.docml --- a/data/listview.docml Fri Jun 11 13:38:23 2010 +0300 +++ b/data/listview.docml Wed Jun 23 18:12:48 2010 +0300 @@ -17,13 +17,13 @@ - + - + - + diff -r 6481344a6d67 -r d0b4e67b3a60 data/photos.css --- a/data/photos.css Fri Jun 11 13:38:23 2010 +0300 +++ b/data/photos.css Wed Jun 23 18:12:48 2010 +0300 @@ -55,7 +55,7 @@ } HbListViewItem::multiselection-toucharea{ - fixed-width: 90.0un; + fixed-width: 0.0un; } HbListViewItem::icon-1{ diff -r 6481344a6d67 -r d0b4e67b3a60 data/qgn_menu_ovi_photos.svg --- a/data/qgn_menu_ovi_photos.svg Fri Jun 11 13:38:23 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,70 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff -r 6481344a6d67 -r d0b4e67b3a60 engine/collectionframework/datasource/manager/src/glxcollectionpluginbase.cpp --- a/engine/collectionframework/datasource/manager/src/glxcollectionpluginbase.cpp Fri Jun 11 13:38:23 2010 +0300 +++ b/engine/collectionframework/datasource/manager/src/glxcollectionpluginbase.cpp Wed Jun 23 18:12:48 2010 +0300 @@ -373,7 +373,7 @@ EXPORT_C void CGlxCollectionPluginBase::HandleResponse(CMPXMedia* aResponse, CGlxRequest* aRequest, const TInt& aError) { TRACER("void CGlxCollectionPluginBase::HandleResponse()"); - + GLX_DEBUG2("CGlxCollectionPluginBase::HandleResponse()() aError=%d", aError); if (dynamic_cast(aRequest)) // iRequest is a CGlxIdListRequest { @@ -384,8 +384,20 @@ else if (dynamic_cast(aRequest)) // iRequest is a CGlxThumbnailRequest { - iObs->HandleMedia(aResponse, aError); - } + //when IAD update / sisx installation of S60 TNM is done and + //photos asks for the thumbnail, the thumbnail manager returns an + //error KErrServerTerminated(-15)/KErrDied(-13) for which the MPX recreates + //the collection plugins and reconnects to the MPX server and goes into + //a invalid state. After this, the error is not propogated to the Medialist + //and no further requests are processed and it keeps returning KErrNotReady(-18) + //So, as a HACK we are changing the error code to KErrCompletion(-17), + //for which the MPX collection does not take any action and propogates the error + //to the medialist. This error(KErrCompletion) is treated as a temporary error + //and the thumbnail request is made again from the medialist for which the + //S60 TNM returns the thumbnail properly. + iObs->HandleMedia(aResponse, ((aError == KErrServerTerminated + || aError == KErrDied) ? KErrCompletion : aError)); + } else if (dynamic_cast(aRequest)) // iRequest is a CGlxGetRequest { diff -r 6481344a6d67 -r d0b4e67b3a60 engine/collectionframework/datasource/plugins/glxdatasourcemde2.5/src/glxdatasourcemds.cpp --- a/engine/collectionframework/datasource/plugins/glxdatasourcemde2.5/src/glxdatasourcemds.cpp Fri Jun 11 13:38:23 2010 +0300 +++ b/engine/collectionframework/datasource/plugins/glxdatasourcemde2.5/src/glxdatasourcemds.cpp Wed Jun 23 18:12:48 2010 +0300 @@ -550,9 +550,13 @@ { for ( TInt i = 0; i < aObjectIdArray.Count(); i++ ) { - iAddedItems.Append(aObjectIdArray[i]); + TInt ret = iAddedItems.Append(aObjectIdArray[i]); + if (ret != KErrNone) + { + GLX_DEBUG2("ENotifyAdd-iAddedItems.Append() failed i(%d)", i); + } } - GLX_LOG_INFO1("ENotifyAdd - iAddedItems.Count()=%d", iAddedItems.Count()); + GLX_DEBUG2("ENotifyAdd - iAddedItems.Count()=%d", iAddedItems.Count()); } if (ENotifyModify == aType) @@ -563,25 +567,25 @@ { if (!iHarvestingOngoing) { - GLX_LOG_INFO("ENotifyModify - Harvesting Completed - " + GLX_DEBUG1("ENotifyModify - Harvesting Completed - " "Reset iAddedItems array"); iAddedItems.Reset(); break; } - GLX_LOG_INFO("ENotifyModify - Id found in iAddedItems array, DO NOT PROCESS"); + GLX_DEBUG1("ENotifyModify - Id found in iAddedItems array, DO NOT PROCESS"); return; } } } - GLX_LOG_INFO("ProcessUpdateArray"); + GLX_DEBUG1("HandleObjectNotification - ProcessUpdateArray"); ProcessUpdateArray(aObjectIdArray, MPXChangeEventType(aType), ETrue); #ifndef USE_S60_TNM if(MPXChangeEventType(aType) == EMPXItemDeleted ) { TInt count = aObjectIdArray.Count(); iDeletedCount += count; - GLX_LOG_INFO2("EMPXItemDeleted - aObjectIdArray.Count()=%d, iDeletedCount=%d", + GLX_DEBUG3("EMPXItemDeleted - aObjectIdArray.Count()=%d, iDeletedCount=%d", count, iDeletedCount); if(iDeletedCount > KGlxThumbnailCleanupAfterDeletions) { @@ -595,7 +599,7 @@ if(MPXChangeEventType(aType) == EMPXItemModified ) { - GLX_LOG_INFO("EMPXItemModified"); + GLX_DEBUG1("HandleObjectNotification - EMPXItemModified"); TRAP_IGNORE(ThumbnailCreator().CleanupThumbnailsL(iThumbnailDatabase)); } #endif diff -r 6481344a6d67 -r d0b4e67b3a60 gallery/sis/createsis.bat --- a/gallery/sis/createsis.bat Fri Jun 11 13:38:23 2010 +0300 +++ b/gallery/sis/createsis.bat Wed Jun 23 18:12:48 2010 +0300 @@ -15,7 +15,7 @@ rem -call makesis photos_stub.pkg +call makesis -v -s photos_stub.pkg call makesis photos.pkg call signsis -s photos.sis photos.sisx RDTest_02.der RDTest_02.key \ No newline at end of file diff -r 6481344a6d67 -r d0b4e67b3a60 gallery/sis/photos.sis Binary file gallery/sis/photos.sis has changed diff -r 6481344a6d67 -r d0b4e67b3a60 gallery/sis/photos.sisx Binary file gallery/sis/photos.sisx has changed diff -r 6481344a6d67 -r d0b4e67b3a60 gallery/sis/photos_stub.sis Binary file gallery/sis/photos_stub.sis has changed diff -r 6481344a6d67 -r d0b4e67b3a60 inc/glxlocalisationstrings.h --- a/inc/glxlocalisationstrings.h Fri Jun 11 13:38:23 2010 +0300 +++ b/inc/glxlocalisationstrings.h Wed Jun 23 18:12:48 2010 +0300 @@ -88,8 +88,9 @@ #define GLX_SUBTITLE_CAM_GRIDVIEW hbTrId("txt_photos_subtitle_my_camera") #define GLX_SUBTITLE_MYFAV_GRIDVIEW hbTrId("txt_photos_subtitle_my_favorites") #define GLX_SUBTITLE_NOITEMS hbTrId("txt_photos_subtitle_no_image_or_videos_to_display") - - +#define GLX_FETCHER_TITLE QString("Select Image") +#define GLX_GRID_NO_IMAGE QString("(No Images)\n") +#define GLX_GRID_OPEN_CAMERA QString("To capture images Open") //VIEW RELATED STRINGS AND COMMON DIALOGS //comments lable for photos flip view diff -r 6481344a6d67 -r d0b4e67b3a60 loggers/loggerqt/loggerqt.pro --- a/loggers/loggerqt/loggerqt.pro Fri Jun 11 13:38:23 2010 +0300 +++ b/loggers/loggerqt/loggerqt.pro Wed Jun 23 18:12:48 2010 +0300 @@ -40,4 +40,13 @@ SOURCES += src/glxperformancelog.cpp +defBlock = \ +"$${LITERAL_HASH}if defined(EABI)" \ +"DEFFILE ../eabi/glxloggerqt.def" \ + "$${LITERAL_HASH}else" \ + "DEFFILE ../bwins/glxloggerqt.def" \ + "$${LITERAL_HASH}endif" + +MMP_RULES += defBlock + # Directories diff -r 6481344a6d67 -r d0b4e67b3a60 main/glxaiwservicehandler.cpp --- a/main/glxaiwservicehandler.cpp Fri Jun 11 13:38:23 2010 +0300 +++ b/main/glxaiwservicehandler.cpp Wed Jun 23 18:12:48 2010 +0300 @@ -65,11 +65,20 @@ mDSDIService(NULL), mImageViewerService(NULL) { - mFetcherService = new GlxGetImageService(this); - mNSDIService = new GlxGetImageServiceNSDI(this); - mDSDIService = new GlxGetImageServiceDSDI(this); - - mImageViewerService = new GlxImageViewerService(this); + QString currentInterfaceName = XQServiceUtil::interfaceName(); + if( 0 == currentInterfaceName.compare(QLatin1String("com.nokia.symbian.IImageFetch"))) + { + mFetcherService = new GlxGetImageService(this); + } + else if( 0 == currentInterfaceName.compare(QLatin1String("Image"))) + { + mNSDIService = new GlxGetImageServiceNSDI(this); + mDSDIService = new GlxGetImageServiceDSDI(this); + } + else if( 0 == currentInterfaceName.compare(QLatin1String("com.nokia.symbian.IFileView"))) + { + mImageViewerService = new GlxImageViewerService(this); + } #ifdef _DEBUG QString t; @@ -117,7 +126,7 @@ { qDebug() << "GlxFetcher::itemSelected"; - if (mFetcherService->isActive()) + if (mFetcherService && mFetcherService->isActive()) { qDebug() << "GlxFetcher::itemSelected mFetcherService->isActive()"; QVariant variant = mModel->data(index, GlxUriRole); @@ -129,7 +138,7 @@ } } - if (mNSDIService->isActive()) + else if (mNSDIService && mNSDIService->isActive()) { qDebug() << "GlxFetcher::itemSelected mNSDIService->isActive()"; QVariant variant = mModel->data(index, GlxUriRole); @@ -141,7 +150,7 @@ } } - if (mDSDIService->isActive()) + else if (mDSDIService && mDSDIService->isActive()) { qDebug() << "GlxFetcher::itemSelected mDSDIService->isActive()"; QVariant variant = mModel->data(index, GlxUriRole); @@ -156,9 +165,10 @@ -void GlxAiwServiceHandler::launchFetcher() +void GlxAiwServiceHandler::launchFetcher(QString viewTitle) { qDebug() << "GlxAiwServiceHandler::launchFetcher START"; + qApp->setApplicationName(viewTitle); HbStyleLoader::registerFilePath(":/data/photos.css"); GlxModelParm modelParm(KGlxCollectionPluginAllImplementationUid, 0); mModel = new GlxMediaModel(modelParm); @@ -323,7 +333,11 @@ void GlxGetImageService::fetch() { mImageRequestIndex = setCurrentRequestAsync(); - mServiceApp->launchFetcher(); + QString title = requestInfo().info("WindowTitle").toString(); + if(title.isNull()){ + title = QString("Image Fetcher"); + } + mServiceApp->launchFetcher(title); } // ---------------------------------------------------------------------------- @@ -412,7 +426,11 @@ { qDebug() << "GlxGetImageServiceNSDI::fetch START"; mImageRequestIndex = setCurrentRequestAsync(); - mServiceApp->launchFetcher(); + QString title = requestInfo().info("WindowTitle").toString(); + if(title.isNull()){ + title = QString("Image Fetcher"); + } + mServiceApp->launchFetcher(title); qDebug() << "GlxGetImageServiceNSDI::fetch END"; } @@ -491,7 +509,11 @@ Q_UNUSED(filter) Q_UNUSED(flag) mImageRequestIndex = setCurrentRequestAsync(); - mServiceApp->launchFetcher(); + QString title = requestInfo().info("WindowTitle").toString(); + if(title.isNull()){ + title = QString("Image Fetcher"); + } + mServiceApp->launchFetcher(title); } // ----------GlxImageViewerService--------------- diff -r 6481344a6d67 -r d0b4e67b3a60 main/glxaiwservicehandler.h --- a/main/glxaiwservicehandler.h Fri Jun 11 13:38:23 2010 +0300 +++ b/main/glxaiwservicehandler.h Wed Jun 23 18:12:48 2010 +0300 @@ -54,7 +54,7 @@ * Destructor. */ ~GlxAiwServiceHandler(); - void launchFetcher(); + void launchFetcher(QString viewTitle); void launchImageViewer(); public slots: void itemSelected(const QModelIndex & index); diff -r 6481344a6d67 -r d0b4e67b3a60 main/glxapplication.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main/glxapplication.cpp Wed Jun 23 18:12:48 2010 +0300 @@ -0,0 +1,55 @@ +/* +* 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 +#include +#include +#include + +//userinclude +#include "glxapplication.h" +#include "mglxcache.h" + +GlxApplication::GlxApplication( int &argc, char *argv[ ], Hb::ApplicationFlags flags ) + : HbApplication( argc, argv, flags ) +{ +} + +GlxApplication::GlxApplication( QApplication::QS60MainApplicationFactory factory, int &argc, char *argv[], Hb::ApplicationFlags flags ) + : HbApplication( factory, argc, argv, flags ) +{ +} + +bool GlxApplication::symbianEventFilter(const QSymbianEvent *aQSEvent) +{ + if ( aQSEvent->type( ) == QSymbianEvent::WindowServerEvent ) { + const TWsEvent *aEvent = aQSEvent->windowServerEvent(); + if ( aEvent && aEvent->Type() == KAppOomMonitor_FreeRam ) { + cleanUpCache(); + } + } + return HbApplication::symbianEventFilter( aQSEvent ); +} + +void GlxApplication::cleanUpCache() +{ + qDebug("GlxApplication::cleanUpCache()"); + MGlxCache* cacheManager = MGlxCache::InstanceL(); + cacheManager->ReleaseRAML(true); + cacheManager->Close(); +} + diff -r 6481344a6d67 -r d0b4e67b3a60 main/glxapplication.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main/glxapplication.h Wed Jun 23 18:12:48 2010 +0300 @@ -0,0 +1,45 @@ +/* +* 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 +* +*/ + +#ifndef GLXAPPLICATION_H_ +#define GLXAPPLICATION_H_ + +#include + +class QSymbianEvent; + +class GlxApplication: public HbApplication +{ + +public: + + GlxApplication( int &argc, char *argv[], + Hb::ApplicationFlags flags = Hb::DefaultApplicationFlags ); + + GlxApplication( QApplication::QS60MainApplicationFactory factory, + int &argc, + char *argv[], + Hb::ApplicationFlags flags = Hb::DefaultApplicationFlags ); + + bool symbianEventFilter( const QSymbianEvent *aQSEvent ); + +private : + void cleanUpCache(); + +}; + +#endif // GLXAPPLICATION_H_ diff -r 6481344a6d67 -r d0b4e67b3a60 main/main.cpp --- a/main/main.cpp Fri Jun 11 13:38:23 2010 +0300 +++ b/main/main.cpp Wed Jun 23 18:12:48 2010 +0300 @@ -16,9 +16,6 @@ */ - -#include -#include #include #include @@ -26,7 +23,10 @@ #include #include #include -#include + +#include "glxstatemanager.h" +#include "glxaiwservicehandler.h" +#include "glxapplication.h" #include "OstTraceDefinitions.h" #ifdef OST_TRACE_COMPILER_IN_USE @@ -42,18 +42,15 @@ OstTraceExt3( TRACE_NORMAL, DUP1__MAIN, "::main Time at Launch HHMMSS =%d::%d::%d", localTime.hour(), localTime.minute(), localTime.second() ); - HbApplication app(argc, argv); - - bool loaded(false); - + GlxApplication app(argc, argv); + bool loaded(false); QTranslator translator; QString path = "Z:/resource/qt/translations/"; + loaded = translator.load("photos_" + QLocale::system().name(), path); - if(loaded) - { + if(loaded) { qApp->installTranslator(&translator); - } - + } GlxStateManager* stateMgr = NULL; GlxAiwServiceHandler* mainWindow = NULL; @@ -61,13 +58,12 @@ OstTraceEventStart0( EVENT_DUP1__MAIN_START, "launch" ); if(!XQServiceUtil::isService()){ - stateMgr = new GlxStateManager(); + stateMgr = new GlxStateManager(); app.setApplicationName("Photos"); stateMgr->launchApplication(); } - else - { - mainWindow = new GlxAiwServiceHandler(); + else { + mainWindow = new GlxAiwServiceHandler(); mainWindow->show(); } OstTraceEventStop( EVENT_DUP1__MAIN_STOP, "launch", EVENT_DUP1__MAIN_START ); diff -r 6481344a6d67 -r d0b4e67b3a60 main/main.pro --- a/main/main.pro Fri Jun 11 13:38:23 2010 +0300 +++ b/main/main.pro Wed Jun 23 18:12:48 2010 +0300 @@ -24,21 +24,23 @@ ../ui/inc \ ../ui/uiengine/model/mediamodel/inc \ ../ui/uiengine/medialistwrapper/inc \ + ../ui/uiengine/medialists/inc \ ../loggers/loggerqt/inc \ ../ui/views/viewsfactory/inc \ ../ui/views/viewbase/inc \ ../ui/views/gridview/inc \ - ../engine/collectionframework/plugins/glxcollectionpluginall/inc \ + ../engine/collectionframework/plugins/glxcollectionpluginall/inc \ ../traces +INCLUDEPATH += $$APP_LAYER_SYSTEMINCLUDE + CONFIG += HB DEFINES += QT_NO_DEBUG_OUTPUT QT_NO_WARNING_OUTPUT - symbian: { TARGET.UID3 = 0x20000A14 - ICON = ../data/qgn_menu_ovi_photos.svg + SKINICON = qtg_large_photos isEmpty(TARGET.EPOCSTACKSIZE):TARGET.EPOCSTACKSIZE = 0x14000 isEmpty(TARGET.EPOCHEAPSIZE):TARGET.EPOCHEAPSIZE = 20480 \ 41943040 @@ -51,13 +53,17 @@ -lglxviews.dll \ -lglxmediamodel.dll \ -lglxexternalutility.dll \ - -lglximageviewermanager.dll + -lglximageviewermanager.dll \ + -lglxmedialists.dll # Input SOURCES += main.cpp \ - glxaiwservicehandler.cpp -HEADERS +=glxaiwservicehandler.h + glxaiwservicehandler.cpp \ + glxapplication.cpp + +HEADERS += glxaiwservicehandler.h \ + glxapplication.h RESOURCES += ../photos.qrc TRANSLATIONS= photos.ts diff -r 6481344a6d67 -r d0b4e67b3a60 photos.qrc --- a/photos.qrc Fri Jun 11 13:38:23 2010 +0300 +++ b/photos.qrc Wed Jun 23 18:12:48 2010 +0300 @@ -23,6 +23,7 @@ data/listview.docml data/fullscreen.docml data/slideshow.docml + data/detailsview.docml data/Image1.jpg data/Image2.jpg data/Image3.jpg diff -r 6481344a6d67 -r d0b4e67b3a60 rom/photos.iby --- a/rom/photos.iby Fri Jun 11 13:38:23 2010 +0300 +++ b/rom/photos.iby Wed Jun 23 18:12:48 2010 +0300 @@ -78,6 +78,10 @@ file=ABI_DIR/BUILD_DIR/glxviews.dll SHARED_LIB_DIR/glxviews.dll file=ABI_DIR/BUILD_DIR/glxviewutilities.dll SHARED_LIB_DIR/glxviewutilities.dll file=ABI_DIR/BUILD_DIR/glxzoomwidget.dll SHARED_LIB_DIR/glxzoomwidget.dll +file=ABI_DIR/BUILD_DIR/detailsnamelabel.dll SHARED_LIB_DIR/detailsnamelabel.dll +file=ABI_DIR/BUILD_DIR/detailsnamelabelplugin.dll SHARED_LIB_DIR/detailsnamelabelplugin.dll +file=ABI_DIR/BUILD_DIR/detailsdescriptionedit.dll SHARED_LIB_DIR/detailsdescriptionedit.dll +file=ABI_DIR/BUILD_DIR/detailsdescriptioneditplugin.dll SHARED_LIB_DIR/detailsdescriptioneditplugin.dll S60_APP_EXE(photos) diff -r 6481344a6d67 -r d0b4e67b3a60 tsrc/unittest/unittest_imagedecoderwrapper/unittest_imagedecoderwrapper.pro --- a/tsrc/unittest/unittest_imagedecoderwrapper/unittest_imagedecoderwrapper.pro Fri Jun 11 13:38:23 2010 +0300 +++ b/tsrc/unittest/unittest_imagedecoderwrapper/unittest_imagedecoderwrapper.pro Wed Jun 23 18:12:48 2010 +0300 @@ -21,6 +21,7 @@ INCLUDEPATH += . INCLUDEPATH += ../../../commonutilities/imagedecoderwrapper/inc INCLUDEPATH += /epoc32/include/mw/QtTest +INCLUDEPATH += $$APP_LAYER_SYSTEMINCLUDE CONFIG += qtestlib \ Hb diff -r 6481344a6d67 -r d0b4e67b3a60 tvout/tvoutwrapper/tvoutwrapper.pro --- a/tvout/tvoutwrapper/tvoutwrapper.pro Fri Jun 11 13:38:23 2010 +0300 +++ b/tvout/tvoutwrapper/tvoutwrapper.pro Wed Jun 23 18:12:48 2010 +0300 @@ -43,4 +43,13 @@ src/glxtvoutwrapper_p.cpp \ src/glxtvconnectionobserver.cpp -DEFINES += QT_NO_DEBUG_OUTPUT QT_NO_WARNING_OUTPUT \ No newline at end of file +DEFINES += QT_NO_DEBUG_OUTPUT QT_NO_WARNING_OUTPUT + +defBlock = \ +"$${LITERAL_HASH}if defined(EABI)" \ +"DEFFILE ../eabi/glxtvoutwrapper.def" \ + "$${LITERAL_HASH}else" \ + "DEFFILE ../bwins/glxtvoutwrapper.def" \ + "$${LITERAL_HASH}endif" + +MMP_RULES += defBlock diff -r 6481344a6d67 -r d0b4e67b3a60 ui/commandhandlers/bwins/glxcommoncommandhandlersu.def --- a/ui/commandhandlers/bwins/glxcommoncommandhandlersu.def Fri Jun 11 13:38:23 2010 +0300 +++ b/ui/commandhandlers/bwins/glxcommoncommandhandlersu.def Wed Jun 23 18:12:48 2010 +0300 @@ -12,55 +12,62 @@ ??_EGlxCommandHandlerSend@@UAE@I@Z @ 11 NONAME ; GlxCommandHandlerSend::~GlxCommandHandlerSend(unsigned int) ?trUtf8@GlxCommandHandlerNewMedia@@SA?AVQString@@PBD0@Z @ 12 NONAME ; class QString GlxCommandHandlerNewMedia::trUtf8(char const *, char const *) ?HandleErrorL@GlxCommandHandlerNewMedia@@MAEXH@Z @ 13 NONAME ; void GlxCommandHandlerNewMedia::HandleErrorL(int) - ?GetName@GlxCommandHandlerRename@@ABE?AVQString@@AAVMGlxMediaList@@@Z @ 14 NONAME ; class QString GlxCommandHandlerRename::GetName(class MGlxMediaList &) const - ?tr@GlxCommandHandlerNewMedia@@SA?AVQString@@PBD0H@Z @ 15 NONAME ; class QString GlxCommandHandlerNewMedia::tr(char const *, char const *, int) - ?DoExecuteCommandL@GlxCommandHandlerRotate@@UAEXHAAVMGlxMediaList@@AAH@Z @ 16 NONAME ; void GlxCommandHandlerRotate::DoExecuteCommandL(int, class MGlxMediaList &, int &) - ?metaObject@GlxCommandHandlerNewMedia@@UBEPBUQMetaObject@@XZ @ 17 NONAME ; struct QMetaObject const * GlxCommandHandlerNewMedia::metaObject(void) const - ?CreateCommandL@GlxCommandHandlerDelete@@UBEPAVCMPXMedia@@HAAVMGlxMediaList@@AAH@Z @ 18 NONAME ; class CMPXMedia * GlxCommandHandlerDelete::CreateCommandL(int, class MGlxMediaList &, int &) const - ?CreateCommandL@GlxCommandHandlerAddToContainer@@UBEPAVCMPXMedia@@HAAVMGlxMediaList@@AAH@Z @ 19 NONAME ; class CMPXMedia * GlxCommandHandlerAddToContainer::CreateCommandL(int, class MGlxMediaList &, int &) const - ?CompletionTextL@GlxCommandHandlerDelete@@EBE?AVQString@@XZ @ 20 NONAME ; class QString GlxCommandHandlerDelete::CompletionTextL(void) const - ?DoHandleCommandCompleteL@GlxCommandHandlerNewMedia@@MAEXPAXPAVCMPXMedia@@HPAVMGlxMediaList@@@Z @ 21 NONAME ; void GlxCommandHandlerNewMedia::DoHandleCommandCompleteL(void *, class CMPXMedia *, int, class MGlxMediaList *) - ?GenerateNewMediaItemTitleL@GlxCommandHandlerNewMedia@@ABE?AVQString@@V2@AAVMGlxMediaList@@@Z @ 22 NONAME ; class QString GlxCommandHandlerNewMedia::GenerateNewMediaItemTitleL(class QString, class MGlxMediaList &) const - ??1GlxCommandHandlerRemoveFrom@@UAE@XZ @ 23 NONAME ; GlxCommandHandlerRemoveFrom::~GlxCommandHandlerRemoveFrom(void) - ?qt_metacast@GlxCommandHandlerNewMedia@@UAEPAXPBD@Z @ 24 NONAME ; void * GlxCommandHandlerNewMedia::qt_metacast(char const *) - ??0GlxCommandHandlerRemoveFrom@@QAE@XZ @ 25 NONAME ; GlxCommandHandlerRemoveFrom::GlxCommandHandlerRemoveFrom(void) - ?HandleItemAddedL@GlxCommandHandlerNewMedia@@MAEXHHPAVMGlxMediaList@@@Z @ 26 NONAME ; void GlxCommandHandlerNewMedia::HandleItemAddedL(int, int, class MGlxMediaList *) - ?tr@GlxCommandHandlerNewMedia@@SA?AVQString@@PBD0@Z @ 27 NONAME ; class QString GlxCommandHandlerNewMedia::tr(char const *, char const *) - ?createNewMedia@GlxCommandHandlerAddToContainer@@ABEXXZ @ 28 NONAME ; void GlxCommandHandlerAddToContainer::createNewMedia(void) const - ?ReadImageOrientationL@GlxCommandHandlerRotate@@AAEGXZ @ 29 NONAME ; unsigned short GlxCommandHandlerRotate::ReadImageOrientationL(void) - ??1GlxCommandHandlerRotate@@UAE@XZ @ 30 NONAME ; GlxCommandHandlerRotate::~GlxCommandHandlerRotate(void) - ?CreateCommandL@GlxCommandHandlerRename@@UBEPAVCMPXMedia@@HAAVMGlxMediaList@@AAH@Z @ 31 NONAME ; class CMPXMedia * GlxCommandHandlerRename::CreateCommandL(int, class MGlxMediaList &, int &) const - ??1GlxCommandHandlerNewMedia@@UAE@XZ @ 32 NONAME ; GlxCommandHandlerNewMedia::~GlxCommandHandlerNewMedia(void) - ??_EGlxCommandHandlerNewMedia@@UAE@I@Z @ 33 NONAME ; GlxCommandHandlerNewMedia::~GlxCommandHandlerNewMedia(unsigned int) - ?CompletionTextL@GlxCommandHandlerRemoveFrom@@EBE?AVQString@@XZ @ 34 NONAME ; class QString GlxCommandHandlerRemoveFrom::CompletionTextL(void) const - ??_EGlxCommandHandlerDelete@@UAE@I@Z @ 35 NONAME ; GlxCommandHandlerDelete::~GlxCommandHandlerDelete(unsigned int) - ?ProgressTextL@GlxCommandHandlerDelete@@EBE?AVQString@@XZ @ 36 NONAME ; class QString GlxCommandHandlerDelete::ProgressTextL(void) const - ?CompletionTextL@GlxCommandHandlerRename@@EBE?AVQString@@XZ @ 37 NONAME ; class QString GlxCommandHandlerRename::CompletionTextL(void) const - ?staticMetaObject@GlxCommandHandlerNewMedia@@2UQMetaObject@@B @ 38 NONAME ; struct QMetaObject const GlxCommandHandlerNewMedia::staticMetaObject - ?DestroyExifWriter@GlxCommandHandlerRotate@@AAEXXZ @ 39 NONAME ; void GlxCommandHandlerRotate::DestroyExifWriter(void) - ??0GlxCommandHandlerDelete@@QAE@XZ @ 40 NONAME ; GlxCommandHandlerDelete::GlxCommandHandlerDelete(void) - ??1GlxCommandHandlerRename@@UAE@XZ @ 41 NONAME ; GlxCommandHandlerRename::~GlxCommandHandlerRename(void) - ??0GlxCommandHandlerSend@@QAE@XZ @ 42 NONAME ; GlxCommandHandlerSend::GlxCommandHandlerSend(void) - ?HandleError@GlxCommandHandlerNewMedia@@MAEXH@Z @ 43 NONAME ; void GlxCommandHandlerNewMedia::HandleError(int) - ??0GlxCommandHandlerAddToContainer@@QAE@XZ @ 44 NONAME ; GlxCommandHandlerAddToContainer::GlxCommandHandlerAddToContainer(void) - ??_EGlxCommandHandlerRename@@UAE@I@Z @ 45 NONAME ; GlxCommandHandlerRename::~GlxCommandHandlerRename(unsigned int) - ?HandleErrorL@GlxCommandHandlerRename@@EAEXH@Z @ 46 NONAME ; void GlxCommandHandlerRename::HandleErrorL(int) - ??_EGlxCommandHandlerRotate@@UAE@I@Z @ 47 NONAME ; GlxCommandHandlerRotate::~GlxCommandHandlerRotate(unsigned int) - ?ProgressTextL@GlxCommandHandlerAddToContainer@@EBE?AVQString@@XZ @ 48 NONAME ; class QString GlxCommandHandlerAddToContainer::ProgressTextL(void) const - ??1GlxCommandHandlerSend@@UAE@XZ @ 49 NONAME ; GlxCommandHandlerSend::~GlxCommandHandlerSend(void) - ?CompletionTextL@GlxCommandHandlerAddToContainer@@EBE?AVQString@@XZ @ 50 NONAME ; class QString GlxCommandHandlerAddToContainer::CompletionTextL(void) const - ??0GlxCommandHandlerNewMedia@@QAE@XZ @ 51 NONAME ; GlxCommandHandlerNewMedia::GlxCommandHandlerNewMedia(void) - ?trUtf8@GlxCommandHandlerNewMedia@@SA?AVQString@@PBD0H@Z @ 52 NONAME ; class QString GlxCommandHandlerNewMedia::trUtf8(char const *, char const *, int) - ?doHandleUserAction@GlxCommandHandlerSend@@UBEXPAVGlxMediaModel@@V?$QList@VQModelIndex@@@@@Z @ 53 NONAME ; void GlxCommandHandlerSend::doHandleUserAction(class GlxMediaModel *, class QList) const - ??_EGlxCommandHandlerAddToContainer@@UAE@I@Z @ 54 NONAME ; GlxCommandHandlerAddToContainer::~GlxCommandHandlerAddToContainer(unsigned int) - ?ProgressTextL@GlxCommandHandlerNewMedia@@EBE?AVQString@@XZ @ 55 NONAME ; class QString GlxCommandHandlerNewMedia::ProgressTextL(void) const - ?ExecuteLD@GlxCommandHandlerNewMedia@@QAEHAAVTGlxMediaId@@@Z @ 56 NONAME ; int GlxCommandHandlerNewMedia::ExecuteLD(class TGlxMediaId &) - ?CreateCommandL@GlxCommandHandlerRotate@@UBEPAVCMPXMedia@@HAAVMGlxMediaList@@AAH@Z @ 57 NONAME ; class CMPXMedia * GlxCommandHandlerRotate::CreateCommandL(int, class MGlxMediaList &, int &) const - ?CompletionTextL@GlxCommandHandlerNewMedia@@EBE?AVQString@@XZ @ 58 NONAME ; class QString GlxCommandHandlerNewMedia::CompletionTextL(void) const - ?CreateCommandL@GlxCommandHandlerRemoveFrom@@UBEPAVCMPXMedia@@HAAVMGlxMediaList@@AAH@Z @ 59 NONAME ; class CMPXMedia * GlxCommandHandlerRemoveFrom::CreateCommandL(int, class MGlxMediaList &, int &) const - ?CalculateFinalOrientationL@GlxCommandHandlerRotate@@AAEGG@Z @ 60 NONAME ; unsigned short GlxCommandHandlerRotate::CalculateFinalOrientationL(unsigned short) - ?InitializeExifWriterL@GlxCommandHandlerRotate@@AAEXV?$TBuf@$0BAA@@@@Z @ 61 NONAME ; void GlxCommandHandlerRotate::InitializeExifWriterL(class TBuf<256>) - ?CreateCommandL@GlxCommandHandlerNewMedia@@MBEPAVCMPXMedia@@HAAVMGlxMediaList@@AAH@Z @ 62 NONAME ; class CMPXMedia * GlxCommandHandlerNewMedia::CreateCommandL(int, class MGlxMediaList &, int &) const - ??1GlxCommandHandlerDelete@@UAE@XZ @ 63 NONAME ; GlxCommandHandlerDelete::~GlxCommandHandlerDelete(void) - ??0GlxCommandHandlerRotate@@QAE@XZ @ 64 NONAME ; GlxCommandHandlerRotate::GlxCommandHandlerRotate(void) + ?HandleErrorL@GlxCommandHandlerComment@@EAEXH@Z @ 14 NONAME ; void GlxCommandHandlerComment::HandleErrorL(int) + ?GetName@GlxCommandHandlerRename@@ABE?AVQString@@AAVMGlxMediaList@@@Z @ 15 NONAME ; class QString GlxCommandHandlerRename::GetName(class MGlxMediaList &) const + ?tr@GlxCommandHandlerNewMedia@@SA?AVQString@@PBD0H@Z @ 16 NONAME ; class QString GlxCommandHandlerNewMedia::tr(char const *, char const *, int) + ?DoExecuteCommandL@GlxCommandHandlerRotate@@UAEXHAAVMGlxMediaList@@AAH@Z @ 17 NONAME ; void GlxCommandHandlerRotate::DoExecuteCommandL(int, class MGlxMediaList &, int &) + ?CompletionTextL@GlxCommandHandlerComment@@EBE?AVQString@@XZ @ 18 NONAME ; class QString GlxCommandHandlerComment::CompletionTextL(void) const + ?metaObject@GlxCommandHandlerNewMedia@@UBEPBUQMetaObject@@XZ @ 19 NONAME ; struct QMetaObject const * GlxCommandHandlerNewMedia::metaObject(void) const + ?CreateCommandL@GlxCommandHandlerDelete@@UBEPAVCMPXMedia@@HAAVMGlxMediaList@@AAH@Z @ 20 NONAME ; class CMPXMedia * GlxCommandHandlerDelete::CreateCommandL(int, class MGlxMediaList &, int &) const + ?CreateCommandL@GlxCommandHandlerAddToContainer@@UBEPAVCMPXMedia@@HAAVMGlxMediaList@@AAH@Z @ 21 NONAME ; class CMPXMedia * GlxCommandHandlerAddToContainer::CreateCommandL(int, class MGlxMediaList &, int &) const + ?CompletionTextL@GlxCommandHandlerDelete@@EBE?AVQString@@XZ @ 22 NONAME ; class QString GlxCommandHandlerDelete::CompletionTextL(void) const + ?DoHandleCommandCompleteL@GlxCommandHandlerNewMedia@@MAEXPAXPAVCMPXMedia@@HPAVMGlxMediaList@@@Z @ 23 NONAME ; void GlxCommandHandlerNewMedia::DoHandleCommandCompleteL(void *, class CMPXMedia *, int, class MGlxMediaList *) + ??0GlxCommandHandlerComment@@QAE@XZ @ 24 NONAME ; GlxCommandHandlerComment::GlxCommandHandlerComment(void) + ?GenerateNewMediaItemTitleL@GlxCommandHandlerNewMedia@@ABE?AVQString@@V2@AAVMGlxMediaList@@@Z @ 25 NONAME ; class QString GlxCommandHandlerNewMedia::GenerateNewMediaItemTitleL(class QString, class MGlxMediaList &) const + ??1GlxCommandHandlerRemoveFrom@@UAE@XZ @ 26 NONAME ; GlxCommandHandlerRemoveFrom::~GlxCommandHandlerRemoveFrom(void) + ?qt_metacast@GlxCommandHandlerNewMedia@@UAEPAXPBD@Z @ 27 NONAME ; void * GlxCommandHandlerNewMedia::qt_metacast(char const *) + ??0GlxCommandHandlerRemoveFrom@@QAE@XZ @ 28 NONAME ; GlxCommandHandlerRemoveFrom::GlxCommandHandlerRemoveFrom(void) + ?HandleItemAddedL@GlxCommandHandlerNewMedia@@MAEXHHPAVMGlxMediaList@@@Z @ 29 NONAME ; void GlxCommandHandlerNewMedia::HandleItemAddedL(int, int, class MGlxMediaList *) + ?tr@GlxCommandHandlerNewMedia@@SA?AVQString@@PBD0@Z @ 30 NONAME ; class QString GlxCommandHandlerNewMedia::tr(char const *, char const *) + ?createNewMedia@GlxCommandHandlerAddToContainer@@ABEXXZ @ 31 NONAME ; void GlxCommandHandlerAddToContainer::createNewMedia(void) const + ?ReadImageOrientationL@GlxCommandHandlerRotate@@AAEGXZ @ 32 NONAME ; unsigned short GlxCommandHandlerRotate::ReadImageOrientationL(void) + ??_EGlxCommandHandlerComment@@UAE@I@Z @ 33 NONAME ; GlxCommandHandlerComment::~GlxCommandHandlerComment(unsigned int) + ??1GlxCommandHandlerRotate@@UAE@XZ @ 34 NONAME ; GlxCommandHandlerRotate::~GlxCommandHandlerRotate(void) + ?CreateCommandL@GlxCommandHandlerRename@@UBEPAVCMPXMedia@@HAAVMGlxMediaList@@AAH@Z @ 35 NONAME ; class CMPXMedia * GlxCommandHandlerRename::CreateCommandL(int, class MGlxMediaList &, int &) const + ??1GlxCommandHandlerNewMedia@@UAE@XZ @ 36 NONAME ; GlxCommandHandlerNewMedia::~GlxCommandHandlerNewMedia(void) + ??_EGlxCommandHandlerNewMedia@@UAE@I@Z @ 37 NONAME ; GlxCommandHandlerNewMedia::~GlxCommandHandlerNewMedia(unsigned int) + ?CompletionTextL@GlxCommandHandlerRemoveFrom@@EBE?AVQString@@XZ @ 38 NONAME ; class QString GlxCommandHandlerRemoveFrom::CompletionTextL(void) const + ??_EGlxCommandHandlerDelete@@UAE@I@Z @ 39 NONAME ; GlxCommandHandlerDelete::~GlxCommandHandlerDelete(unsigned int) + ?ProgressTextL@GlxCommandHandlerDelete@@EBE?AVQString@@XZ @ 40 NONAME ; class QString GlxCommandHandlerDelete::ProgressTextL(void) const + ?CompletionTextL@GlxCommandHandlerRename@@EBE?AVQString@@XZ @ 41 NONAME ; class QString GlxCommandHandlerRename::CompletionTextL(void) const + ?staticMetaObject@GlxCommandHandlerNewMedia@@2UQMetaObject@@B @ 42 NONAME ; struct QMetaObject const GlxCommandHandlerNewMedia::staticMetaObject + ?DestroyExifWriter@GlxCommandHandlerRotate@@AAEXXZ @ 43 NONAME ; void GlxCommandHandlerRotate::DestroyExifWriter(void) + ??0GlxCommandHandlerDelete@@QAE@XZ @ 44 NONAME ; GlxCommandHandlerDelete::GlxCommandHandlerDelete(void) + ??1GlxCommandHandlerRename@@UAE@XZ @ 45 NONAME ; GlxCommandHandlerRename::~GlxCommandHandlerRename(void) + ??0GlxCommandHandlerSend@@QAE@XZ @ 46 NONAME ; GlxCommandHandlerSend::GlxCommandHandlerSend(void) + ?HandleError@GlxCommandHandlerNewMedia@@MAEXH@Z @ 47 NONAME ; void GlxCommandHandlerNewMedia::HandleError(int) + ??0GlxCommandHandlerAddToContainer@@QAE@XZ @ 48 NONAME ; GlxCommandHandlerAddToContainer::GlxCommandHandlerAddToContainer(void) + ??_EGlxCommandHandlerRename@@UAE@I@Z @ 49 NONAME ; GlxCommandHandlerRename::~GlxCommandHandlerRename(unsigned int) + ?GetName@GlxCommandHandlerComment@@ABE?AVQString@@AAVMGlxMediaList@@@Z @ 50 NONAME ; class QString GlxCommandHandlerComment::GetName(class MGlxMediaList &) const + ?HandleErrorL@GlxCommandHandlerRename@@EAEXH@Z @ 51 NONAME ; void GlxCommandHandlerRename::HandleErrorL(int) + ??_EGlxCommandHandlerRotate@@UAE@I@Z @ 52 NONAME ; GlxCommandHandlerRotate::~GlxCommandHandlerRotate(unsigned int) + ?ProgressTextL@GlxCommandHandlerAddToContainer@@EBE?AVQString@@XZ @ 53 NONAME ; class QString GlxCommandHandlerAddToContainer::ProgressTextL(void) const + ??1GlxCommandHandlerComment@@UAE@XZ @ 54 NONAME ; GlxCommandHandlerComment::~GlxCommandHandlerComment(void) + ??1GlxCommandHandlerSend@@UAE@XZ @ 55 NONAME ; GlxCommandHandlerSend::~GlxCommandHandlerSend(void) + ?CompletionTextL@GlxCommandHandlerAddToContainer@@EBE?AVQString@@XZ @ 56 NONAME ; class QString GlxCommandHandlerAddToContainer::CompletionTextL(void) const + ??0GlxCommandHandlerNewMedia@@QAE@XZ @ 57 NONAME ; GlxCommandHandlerNewMedia::GlxCommandHandlerNewMedia(void) + ?trUtf8@GlxCommandHandlerNewMedia@@SA?AVQString@@PBD0H@Z @ 58 NONAME ; class QString GlxCommandHandlerNewMedia::trUtf8(char const *, char const *, int) + ?doHandleUserAction@GlxCommandHandlerSend@@UBEXPAVGlxMediaModel@@V?$QList@VQModelIndex@@@@@Z @ 59 NONAME ; void GlxCommandHandlerSend::doHandleUserAction(class GlxMediaModel *, class QList) const + ??_EGlxCommandHandlerAddToContainer@@UAE@I@Z @ 60 NONAME ; GlxCommandHandlerAddToContainer::~GlxCommandHandlerAddToContainer(unsigned int) + ?ProgressTextL@GlxCommandHandlerNewMedia@@EBE?AVQString@@XZ @ 61 NONAME ; class QString GlxCommandHandlerNewMedia::ProgressTextL(void) const + ?ExecuteLD@GlxCommandHandlerNewMedia@@QAEHAAVTGlxMediaId@@@Z @ 62 NONAME ; int GlxCommandHandlerNewMedia::ExecuteLD(class TGlxMediaId &) + ?CreateCommandL@GlxCommandHandlerRotate@@UBEPAVCMPXMedia@@HAAVMGlxMediaList@@AAH@Z @ 63 NONAME ; class CMPXMedia * GlxCommandHandlerRotate::CreateCommandL(int, class MGlxMediaList &, int &) const + ?CreateCommandL@GlxCommandHandlerComment@@UBEPAVCMPXMedia@@HAAVMGlxMediaList@@AAH@Z @ 64 NONAME ; class CMPXMedia * GlxCommandHandlerComment::CreateCommandL(int, class MGlxMediaList &, int &) const + ?CompletionTextL@GlxCommandHandlerNewMedia@@EBE?AVQString@@XZ @ 65 NONAME ; class QString GlxCommandHandlerNewMedia::CompletionTextL(void) const + ?CreateCommandL@GlxCommandHandlerRemoveFrom@@UBEPAVCMPXMedia@@HAAVMGlxMediaList@@AAH@Z @ 66 NONAME ; class CMPXMedia * GlxCommandHandlerRemoveFrom::CreateCommandL(int, class MGlxMediaList &, int &) const + ?CalculateFinalOrientationL@GlxCommandHandlerRotate@@AAEGG@Z @ 67 NONAME ; unsigned short GlxCommandHandlerRotate::CalculateFinalOrientationL(unsigned short) + ?InitializeExifWriterL@GlxCommandHandlerRotate@@AAEXV?$TBuf@$0BAA@@@@Z @ 68 NONAME ; void GlxCommandHandlerRotate::InitializeExifWriterL(class TBuf<256>) + ??1GlxCommandHandlerDelete@@UAE@XZ @ 69 NONAME ; GlxCommandHandlerDelete::~GlxCommandHandlerDelete(void) + ?CreateCommandL@GlxCommandHandlerNewMedia@@MBEPAVCMPXMedia@@HAAVMGlxMediaList@@AAH@Z @ 70 NONAME ; class CMPXMedia * GlxCommandHandlerNewMedia::CreateCommandL(int, class MGlxMediaList &, int &) const + ??0GlxCommandHandlerRotate@@QAE@XZ @ 71 NONAME ; GlxCommandHandlerRotate::GlxCommandHandlerRotate(void) diff -r 6481344a6d67 -r d0b4e67b3a60 ui/commandhandlers/commandhandlerbase/commandhandlerbase.pro --- a/ui/commandhandlers/commandhandlerbase/commandhandlerbase.pro Fri Jun 11 13:38:23 2010 +0300 +++ b/ui/commandhandlers/commandhandlerbase/commandhandlerbase.pro Wed Jun 23 18:12:48 2010 +0300 @@ -47,6 +47,7 @@ TARGET.EPOCALLOWDLLDATA = 1 } + # Input HEADERS += inc/glxcommandhandler.h HEADERS += inc/glxmpxcommandhandler.h @@ -57,3 +58,12 @@ SOURCES += src/glxmodelcommandhandler.cpp DEFINES += QT_NO_DEBUG_OUTPUT QT_NO_WARNING_OUTPUT + +defBlock = \ +"$${LITERAL_HASH}if defined(EABI)" \ +"DEFFILE ../eabi/glxcommandhandlerbase.def" \ + "$${LITERAL_HASH}else" \ + "DEFFILE ../bwins/glxcommandhandlerbase.def" \ + "$${LITERAL_HASH}endif" + +MMP_RULES += defBlock diff -r 6481344a6d67 -r d0b4e67b3a60 ui/commandhandlers/commoncommandhandlers/commoncommandhandlers.pro --- a/ui/commandhandlers/commoncommandhandlers/commoncommandhandlers.pro Fri Jun 11 13:38:23 2010 +0300 +++ b/ui/commandhandlers/commoncommandhandlers/commoncommandhandlers.pro Wed Jun 23 18:12:48 2010 +0300 @@ -52,7 +52,9 @@ -lshareui.dll \ -lexiflib.dll \ -lfbscli.dll \ - -lbafl.dll + -lbafl.dll \ + -lefsrv.dll \ + -lcaf.dll # Input HEADERS += inc/glxcommandhandlerdelete.h @@ -63,6 +65,8 @@ HEADERS += inc/glxcommandhandlerremovefrom.h HEADERS += inc/glxcommandhandlerrename.h HEADERS += inc/glxcommondialogs.h +HEADERS += inc/glxcommandhandlercomment.h + SOURCES += src/glxcommandhandlerdelete.cpp SOURCES += src/glxcommandhandleraddtocontainer.cpp @@ -72,6 +76,16 @@ SOURCES += src/glxcommandhandlerremovefrom.cpp SOURCES += src/glxcommandhandlerrename.cpp SOURCES += src/glxcommondialogs.cpp +SOURCES += src/glxcommandhandlercomment.cpp DEFINES += QT_NO_DEBUG_OUTPUT QT_NO_WARNING_OUTPUT +defBlock = \ +"$${LITERAL_HASH}if defined(EABI)" \ +"DEFFILE ../eabi/glxcommoncommandhandlers.def" \ + "$${LITERAL_HASH}else" \ + "DEFFILE ../bwins/glxcommoncommandhandlers.def" \ + "$${LITERAL_HASH}endif" + +MMP_RULES += defBlock + diff -r 6481344a6d67 -r d0b4e67b3a60 ui/commandhandlers/commoncommandhandlers/inc/glxcommandhandlercomment.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ui/commandhandlers/commoncommandhandlers/inc/glxcommandhandlercomment.h Wed Jun 23 18:12:48 2010 +0300 @@ -0,0 +1,42 @@ +/* +* 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: +* +*/ + +#ifndef GLXCOMMANDHANDLERCOMMENT_H +#define GLXCOMMANDHANDLERCOMMENT_H + +#include + +#ifdef BUILD_COMMONCOMMANDHANDLERS +#define GLX_COMMONCOMMANDHANDLERS_EXPORT Q_DECL_EXPORT +#else +#define GLX_COMMONCOMMANDHANDLERS_EXPORT Q_DECL_IMPORT +#endif + + +class GLX_COMMONCOMMANDHANDLERS_EXPORT GlxCommandHandlerComment : public GlxMpxCommandHandler + { +public: + GlxCommandHandlerComment(); + ~GlxCommandHandlerComment(); + CMPXCommand* CreateCommandL(TInt aCommandId, MGlxMediaList& aMediaList, TBool& aConsume) const ; +private: + QString CompletionTextL() const; + QString GetName(MGlxMediaList& aMediaList) const; + void HandleErrorL(TInt aErrorCode); + }; + +#endif // GLXCOMMANDHANDLERCOMMENT_H diff -r 6481344a6d67 -r d0b4e67b3a60 ui/commandhandlers/commoncommandhandlers/src/glxcommandhandlercomment.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ui/commandhandlers/commoncommandhandlers/src/glxcommandhandlercomment.cpp Wed Jun 23 18:12:48 2010 +0300 @@ -0,0 +1,161 @@ +/* +* 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: +* +*/ + +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include "glxlocalisationstrings.h" + +GlxCommandHandlerComment::GlxCommandHandlerComment() + { + } + +GlxCommandHandlerComment::~GlxCommandHandlerComment() + { + } + +CMPXCommand* GlxCommandHandlerComment::CreateCommandL(TInt aCommandId, + MGlxMediaList& aMediaList, TBool& aConsume) const + { + Q_UNUSED(aCommandId); + Q_UNUSED(aConsume); + + CMPXCommand* command = NULL; + QString mainPane = GetName(aMediaList); + QString title(GLX_DETAILS_DESCRIPTION); + QString mediaTitle = NULL; + bool ok = false; + GlxTextInputDialog* dlg = new GlxTextInputDialog(); + mediaTitle = dlg->getText(title, mainPane, &ok); + delete dlg; + + if(ok == true) + { + TPtrC16 newMediaItemTitleDes + = (reinterpret_cast (mediaTitle.utf16())); + + HBufC* newMediaItemTitle = newMediaItemTitleDes.Alloc(); + CleanupStack::PushL(newMediaItemTitle); + + CMPXCollectionPath* path = aMediaList.PathLC( + NGlxListDefs::EPathFocusOrSelection); + command = + TGlxCommandFactory::SetDescriptionCommandLC(*newMediaItemTitle,*path); + CleanupStack::Pop(command); + CleanupStack::PopAndDestroy(path); + CleanupStack::PopAndDestroy(newMediaItemTitle); + } + return command; + } + +QString GlxCommandHandlerComment::CompletionTextL() const + { + //return command completion text + return QString(); + } + +QString GlxCommandHandlerComment::GetName(MGlxMediaList& aMediaList) const + { + // Create an iterator to retrieve the relevant attribute + TGlxSelectionIterator iterator; + // only want the title of one item + iterator.SetRange( 1 ); + CGlxAttributeContext* context = new( ELeave ) + CGlxAttributeContext( &iterator ); + CleanupStack::PushL( context ); + + // Want to read the title attribute + // Configure the context + context->AddAttributeL( KMPXMediaGeneralComment ); + + // Add the context to the media list + aMediaList.AddContextL( context, KGlxFetchContextPriorityBlocking ); + + // TGlxContextRemover will remove the context when it goes out of scope + // Used here to avoid a trap and still have safe cleanup + TGlxFetchContextRemover contextRemover( context, aMediaList ); + // put to cleanupstack as cleanupstack is emptied before stack objects + // are deleted + CleanupClosePushL( contextRemover ); + // Yuck - a leave and a return code! + // EFalse => don't show a progress dialog + TInt err = GlxAttributeRetriever::RetrieveL( *context, aMediaList, EFalse ); + // Using a distinct error value as "LeaveIfError( FuncL() );" looks bad + User::LeaveIfError( err ); + // context off the list + CleanupStack::PopAndDestroy( &contextRemover ); + + // Now get the title of the relevant item: if *an* item is selected use its + // title, otherwise use the item with focus + // Get the index of the item to rename + TInt index = KErrNotFound; + QString title = NULL; + // first see if there's a selected item... + if ( aMediaList.SelectionCount() == 1 ) + { + // Find the index of the selected item + index = aMediaList.Count(); + do + { + --index; + } + while ( !aMediaList.IsSelected( index ) && index > 0 ); + } + else + { + // Use the index of the item with focus + index = aMediaList.FocusIndex(); + } + + if ( index != KErrNotFound ) + { + // use iterator to get the right item + iterator.SetToFirst( &aMediaList ); + const CGlxMedia* media = aMediaList.Item( iterator++ ).Properties(); + if( media ) + { + // found the item's media properties, extract the title + const TDesC& titleDesc = media->ValueText(KMPXMediaGeneralComment); + title = QString::fromUtf16(titleDesc.Ptr(), + titleDesc.Length()); + } + } + CleanupStack::PopAndDestroy( context ); + + return title; + } + +void GlxCommandHandlerComment::HandleErrorL(TInt aErrorCode) + { + if(aErrorCode == KErrAlreadyExists) + { + HbMessageBox::warning("Name Already Exist!!!", new HbLabel( + "Rename")); + } + else{ + GlxMpxCommandHandler::HandleErrorL(aErrorCode); + } + } + diff -r 6481344a6d67 -r d0b4e67b3a60 ui/commandhandlers/eabi/glxcommoncommandhandlersu.def --- a/ui/commandhandlers/eabi/glxcommoncommandhandlersu.def Fri Jun 11 13:38:23 2010 +0300 +++ b/ui/commandhandlers/eabi/glxcommoncommandhandlersu.def Wed Jun 23 18:12:48 2010 +0300 @@ -27,66 +27,77 @@ _ZN23GlxCommandHandlerRotateD0Ev @ 26 NONAME _ZN23GlxCommandHandlerRotateD1Ev @ 27 NONAME _ZN23GlxCommandHandlerRotateD2Ev @ 28 NONAME - _ZN25GlxCommandHandlerNewMedia11HandleErrorEi @ 29 NONAME - _ZN25GlxCommandHandlerNewMedia11qt_metacallEN11QMetaObject4CallEiPPv @ 30 NONAME - _ZN25GlxCommandHandlerNewMedia11qt_metacastEPKc @ 31 NONAME - _ZN25GlxCommandHandlerNewMedia12HandleErrorLEi @ 32 NONAME - _ZN25GlxCommandHandlerNewMedia16HandleItemAddedLEiiP13MGlxMediaList @ 33 NONAME - _ZN25GlxCommandHandlerNewMedia16staticMetaObjectE @ 34 NONAME DATA 16 - _ZN25GlxCommandHandlerNewMedia19getStaticMetaObjectEv @ 35 NONAME - _ZN25GlxCommandHandlerNewMedia24DoHandleCommandCompleteLEPvP9CMPXMediaiP13MGlxMediaList @ 36 NONAME - _ZN25GlxCommandHandlerNewMedia9ExecuteLDER11TGlxMediaId @ 37 NONAME - _ZN25GlxCommandHandlerNewMediaC1Ev @ 38 NONAME - _ZN25GlxCommandHandlerNewMediaC2Ev @ 39 NONAME - _ZN25GlxCommandHandlerNewMediaD0Ev @ 40 NONAME - _ZN25GlxCommandHandlerNewMediaD1Ev @ 41 NONAME - _ZN25GlxCommandHandlerNewMediaD2Ev @ 42 NONAME - _ZN27GlxCommandHandlerRemoveFromC1Ev @ 43 NONAME - _ZN27GlxCommandHandlerRemoveFromC2Ev @ 44 NONAME - _ZN27GlxCommandHandlerRemoveFromD0Ev @ 45 NONAME - _ZN27GlxCommandHandlerRemoveFromD1Ev @ 46 NONAME - _ZN27GlxCommandHandlerRemoveFromD2Ev @ 47 NONAME - _ZN31GlxCommandHandlerAddToContainer15iSelectionCountE @ 48 NONAME DATA 4 - _ZN31GlxCommandHandlerAddToContainerC1Ev @ 49 NONAME - _ZN31GlxCommandHandlerAddToContainerC2Ev @ 50 NONAME - _ZN31GlxCommandHandlerAddToContainerD0Ev @ 51 NONAME - _ZN31GlxCommandHandlerAddToContainerD1Ev @ 52 NONAME - _ZN31GlxCommandHandlerAddToContainerD2Ev @ 53 NONAME - _ZNK21GlxCommandHandlerSend18doHandleUserActionEP13GlxMediaModel5QListI11QModelIndexE @ 54 NONAME - _ZNK23GlxCommandHandlerDelete13ProgressTextLEv @ 55 NONAME - _ZNK23GlxCommandHandlerDelete14CreateCommandLEiR13MGlxMediaListRi @ 56 NONAME - _ZNK23GlxCommandHandlerDelete15CompletionTextLEv @ 57 NONAME - _ZNK23GlxCommandHandlerDelete17ConfirmationTextLEb @ 58 NONAME - _ZNK23GlxCommandHandlerRename14CreateCommandLEiR13MGlxMediaListRi @ 59 NONAME - _ZNK23GlxCommandHandlerRename15CompletionTextLEv @ 60 NONAME - _ZNK23GlxCommandHandlerRename7GetNameER13MGlxMediaList @ 61 NONAME - _ZNK23GlxCommandHandlerRotate14CreateCommandLEiR13MGlxMediaListRi @ 62 NONAME - _ZNK25GlxCommandHandlerNewMedia10metaObjectEv @ 63 NONAME - _ZNK25GlxCommandHandlerNewMedia13ProgressTextLEv @ 64 NONAME - _ZNK25GlxCommandHandlerNewMedia14CreateCommandLEiR13MGlxMediaListRi @ 65 NONAME - _ZNK25GlxCommandHandlerNewMedia15CompletionTextLEv @ 66 NONAME - _ZNK25GlxCommandHandlerNewMedia26GenerateNewMediaItemTitleLE7QStringR13MGlxMediaList @ 67 NONAME - _ZNK27GlxCommandHandlerRemoveFrom13ProgressTextLEv @ 68 NONAME - _ZNK27GlxCommandHandlerRemoveFrom14CreateCommandLEiR13MGlxMediaListRi @ 69 NONAME - _ZNK27GlxCommandHandlerRemoveFrom15CompletionTextLEv @ 70 NONAME - _ZNK31GlxCommandHandlerAddToContainer13ProgressTextLEv @ 71 NONAME - _ZNK31GlxCommandHandlerAddToContainer14CreateCommandLEiR13MGlxMediaListRi @ 72 NONAME - _ZNK31GlxCommandHandlerAddToContainer14createNewMediaEv @ 73 NONAME - _ZNK31GlxCommandHandlerAddToContainer15CompletionTextLEv @ 74 NONAME - _ZTI21GlxCommandHandlerSend @ 75 NONAME - _ZTI23GlxCommandHandlerDelete @ 76 NONAME - _ZTI23GlxCommandHandlerRename @ 77 NONAME - _ZTI23GlxCommandHandlerRotate @ 78 NONAME - _ZTI25GlxCommandHandlerNewMedia @ 79 NONAME - _ZTI27GlxCommandHandlerRemoveFrom @ 80 NONAME - _ZTI31GlxCommandHandlerAddToContainer @ 81 NONAME - _ZTV21GlxCommandHandlerSend @ 82 NONAME - _ZTV23GlxCommandHandlerDelete @ 83 NONAME - _ZTV23GlxCommandHandlerRename @ 84 NONAME - _ZTV23GlxCommandHandlerRotate @ 85 NONAME - _ZTV25GlxCommandHandlerNewMedia @ 86 NONAME - _ZTV27GlxCommandHandlerRemoveFrom @ 87 NONAME - _ZTV31GlxCommandHandlerAddToContainer @ 88 NONAME - _ZThn8_N25GlxCommandHandlerNewMedia11HandleErrorEi @ 89 NONAME - _ZThn8_N25GlxCommandHandlerNewMedia16HandleItemAddedLEiiP13MGlxMediaList @ 90 NONAME + _ZN24GlxCommandHandlerComment12HandleErrorLEi @ 29 NONAME + _ZN24GlxCommandHandlerCommentC1Ev @ 30 NONAME + _ZN24GlxCommandHandlerCommentC2Ev @ 31 NONAME + _ZN24GlxCommandHandlerCommentD0Ev @ 32 NONAME + _ZN24GlxCommandHandlerCommentD1Ev @ 33 NONAME + _ZN24GlxCommandHandlerCommentD2Ev @ 34 NONAME + _ZN25GlxCommandHandlerNewMedia11HandleErrorEi @ 35 NONAME + _ZN25GlxCommandHandlerNewMedia11qt_metacallEN11QMetaObject4CallEiPPv @ 36 NONAME + _ZN25GlxCommandHandlerNewMedia11qt_metacastEPKc @ 37 NONAME + _ZN25GlxCommandHandlerNewMedia12HandleErrorLEi @ 38 NONAME + _ZN25GlxCommandHandlerNewMedia16HandleItemAddedLEiiP13MGlxMediaList @ 39 NONAME + _ZN25GlxCommandHandlerNewMedia16staticMetaObjectE @ 40 NONAME DATA 16 + _ZN25GlxCommandHandlerNewMedia19getStaticMetaObjectEv @ 41 NONAME + _ZN25GlxCommandHandlerNewMedia24DoHandleCommandCompleteLEPvP9CMPXMediaiP13MGlxMediaList @ 42 NONAME + _ZN25GlxCommandHandlerNewMedia9ExecuteLDER11TGlxMediaId @ 43 NONAME + _ZN25GlxCommandHandlerNewMediaC1Ev @ 44 NONAME + _ZN25GlxCommandHandlerNewMediaC2Ev @ 45 NONAME + _ZN25GlxCommandHandlerNewMediaD0Ev @ 46 NONAME + _ZN25GlxCommandHandlerNewMediaD1Ev @ 47 NONAME + _ZN25GlxCommandHandlerNewMediaD2Ev @ 48 NONAME + _ZN27GlxCommandHandlerRemoveFromC1Ev @ 49 NONAME + _ZN27GlxCommandHandlerRemoveFromC2Ev @ 50 NONAME + _ZN27GlxCommandHandlerRemoveFromD0Ev @ 51 NONAME + _ZN27GlxCommandHandlerRemoveFromD1Ev @ 52 NONAME + _ZN27GlxCommandHandlerRemoveFromD2Ev @ 53 NONAME + _ZN31GlxCommandHandlerAddToContainer15iSelectionCountE @ 54 NONAME DATA 4 + _ZN31GlxCommandHandlerAddToContainerC1Ev @ 55 NONAME + _ZN31GlxCommandHandlerAddToContainerC2Ev @ 56 NONAME + _ZN31GlxCommandHandlerAddToContainerD0Ev @ 57 NONAME + _ZN31GlxCommandHandlerAddToContainerD1Ev @ 58 NONAME + _ZN31GlxCommandHandlerAddToContainerD2Ev @ 59 NONAME + _ZNK21GlxCommandHandlerSend18doHandleUserActionEP13GlxMediaModel5QListI11QModelIndexE @ 60 NONAME + _ZNK23GlxCommandHandlerDelete13ProgressTextLEv @ 61 NONAME + _ZNK23GlxCommandHandlerDelete14CreateCommandLEiR13MGlxMediaListRi @ 62 NONAME + _ZNK23GlxCommandHandlerDelete15CompletionTextLEv @ 63 NONAME + _ZNK23GlxCommandHandlerDelete17ConfirmationTextLEb @ 64 NONAME + _ZNK23GlxCommandHandlerRename14CreateCommandLEiR13MGlxMediaListRi @ 65 NONAME + _ZNK23GlxCommandHandlerRename15CompletionTextLEv @ 66 NONAME + _ZNK23GlxCommandHandlerRename7GetNameER13MGlxMediaList @ 67 NONAME + _ZNK23GlxCommandHandlerRotate14CreateCommandLEiR13MGlxMediaListRi @ 68 NONAME + _ZNK24GlxCommandHandlerComment14CreateCommandLEiR13MGlxMediaListRi @ 69 NONAME + _ZNK24GlxCommandHandlerComment15CompletionTextLEv @ 70 NONAME + _ZNK24GlxCommandHandlerComment7GetNameER13MGlxMediaList @ 71 NONAME + _ZNK25GlxCommandHandlerNewMedia10metaObjectEv @ 72 NONAME + _ZNK25GlxCommandHandlerNewMedia13ProgressTextLEv @ 73 NONAME + _ZNK25GlxCommandHandlerNewMedia14CreateCommandLEiR13MGlxMediaListRi @ 74 NONAME + _ZNK25GlxCommandHandlerNewMedia15CompletionTextLEv @ 75 NONAME + _ZNK25GlxCommandHandlerNewMedia26GenerateNewMediaItemTitleLE7QStringR13MGlxMediaList @ 76 NONAME + _ZNK27GlxCommandHandlerRemoveFrom13ProgressTextLEv @ 77 NONAME + _ZNK27GlxCommandHandlerRemoveFrom14CreateCommandLEiR13MGlxMediaListRi @ 78 NONAME + _ZNK27GlxCommandHandlerRemoveFrom15CompletionTextLEv @ 79 NONAME + _ZNK31GlxCommandHandlerAddToContainer13ProgressTextLEv @ 80 NONAME + _ZNK31GlxCommandHandlerAddToContainer14CreateCommandLEiR13MGlxMediaListRi @ 81 NONAME + _ZNK31GlxCommandHandlerAddToContainer14createNewMediaEv @ 82 NONAME + _ZNK31GlxCommandHandlerAddToContainer15CompletionTextLEv @ 83 NONAME + _ZTI21GlxCommandHandlerSend @ 84 NONAME + _ZTI23GlxCommandHandlerDelete @ 85 NONAME + _ZTI23GlxCommandHandlerRename @ 86 NONAME + _ZTI23GlxCommandHandlerRotate @ 87 NONAME + _ZTI24GlxCommandHandlerComment @ 88 NONAME + _ZTI25GlxCommandHandlerNewMedia @ 89 NONAME + _ZTI27GlxCommandHandlerRemoveFrom @ 90 NONAME + _ZTI31GlxCommandHandlerAddToContainer @ 91 NONAME + _ZTV21GlxCommandHandlerSend @ 92 NONAME + _ZTV23GlxCommandHandlerDelete @ 93 NONAME + _ZTV23GlxCommandHandlerRename @ 94 NONAME + _ZTV23GlxCommandHandlerRotate @ 95 NONAME + _ZTV24GlxCommandHandlerComment @ 96 NONAME + _ZTV25GlxCommandHandlerNewMedia @ 97 NONAME + _ZTV27GlxCommandHandlerRemoveFrom @ 98 NONAME + _ZTV31GlxCommandHandlerAddToContainer @ 99 NONAME + _ZThn8_N25GlxCommandHandlerNewMedia11HandleErrorEi @ 100 NONAME + _ZThn8_N25GlxCommandHandlerNewMedia16HandleItemAddedLEiiP13MGlxMediaList @ 101 NONAME diff -r 6481344a6d67 -r d0b4e67b3a60 ui/detailscustomwidget/bwins/detailsdescriptioneditu.def --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ui/detailscustomwidget/bwins/detailsdescriptioneditu.def Wed Jun 23 18:12:48 2010 +0300 @@ -0,0 +1,18 @@ +EXPORTS + ?qt_metacall@GlxDetailsDescriptionEdit@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 1 NONAME ; int GlxDetailsDescriptionEdit::qt_metacall(enum QMetaObject::Call, int, void * *) + ?qt_metacast@GlxDetailsDescriptionEdit@@UAEPAXPBD@Z @ 2 NONAME ; void * GlxDetailsDescriptionEdit::qt_metacast(char const *) + ??1GlxDetailsDescriptionEdit@@UAE@XZ @ 3 NONAME ; GlxDetailsDescriptionEdit::~GlxDetailsDescriptionEdit(void) + ?staticMetaObject@GlxDetailsDescriptionEdit@@2UQMetaObject@@B @ 4 NONAME ; struct QMetaObject const GlxDetailsDescriptionEdit::staticMetaObject + ??0GlxDetailsDescriptionEdit@@QAE@PAVQGraphicsItem@@@Z @ 5 NONAME ; GlxDetailsDescriptionEdit::GlxDetailsDescriptionEdit(class QGraphicsItem *) + ?tr@GlxDetailsDescriptionEdit@@SA?AVQString@@PBD0H@Z @ 6 NONAME ; class QString GlxDetailsDescriptionEdit::tr(char const *, char const *, int) + ??_EGlxDetailsDescriptionEdit@@UAE@I@Z @ 7 NONAME ; GlxDetailsDescriptionEdit::~GlxDetailsDescriptionEdit(unsigned int) + ?labelPressed@GlxDetailsDescriptionEdit@@IAEXXZ @ 8 NONAME ; void GlxDetailsDescriptionEdit::labelPressed(void) + ?metaObject@GlxDetailsDescriptionEdit@@UBEPBUQMetaObject@@XZ @ 9 NONAME ; struct QMetaObject const * GlxDetailsDescriptionEdit::metaObject(void) const + ?focusInEvent@GlxDetailsDescriptionEdit@@MAEXPAVQFocusEvent@@@Z @ 10 NONAME ; void GlxDetailsDescriptionEdit::focusInEvent(class QFocusEvent *) + ?trUtf8@GlxDetailsDescriptionEdit@@SA?AVQString@@PBD0H@Z @ 11 NONAME ; class QString GlxDetailsDescriptionEdit::trUtf8(char const *, char const *, int) + ?focusOutEvent@GlxDetailsDescriptionEdit@@MAEXPAVQFocusEvent@@@Z @ 12 NONAME ; void GlxDetailsDescriptionEdit::focusOutEvent(class QFocusEvent *) + ?tr@GlxDetailsDescriptionEdit@@SA?AVQString@@PBD0@Z @ 13 NONAME ; class QString GlxDetailsDescriptionEdit::tr(char const *, char const *) + ?getStaticMetaObject@GlxDetailsDescriptionEdit@@SAABUQMetaObject@@XZ @ 14 NONAME ; struct QMetaObject const & GlxDetailsDescriptionEdit::getStaticMetaObject(void) + ?setItemText@GlxDetailsDescriptionEdit@@QAEXABVQString@@@Z @ 15 NONAME ; void GlxDetailsDescriptionEdit::setItemText(class QString const &) + ?trUtf8@GlxDetailsDescriptionEdit@@SA?AVQString@@PBD0@Z @ 16 NONAME ; class QString GlxDetailsDescriptionEdit::trUtf8(char const *, char const *) + diff -r 6481344a6d67 -r d0b4e67b3a60 ui/detailscustomwidget/bwins/detailsnamelabelu.def --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ui/detailscustomwidget/bwins/detailsnamelabelu.def Wed Jun 23 18:12:48 2010 +0300 @@ -0,0 +1,18 @@ +EXPORTS + ??_EGlxDetailsNameLabel@@UAE@I@Z @ 1 NONAME ; GlxDetailsNameLabel::~GlxDetailsNameLabel(unsigned int) + ??1GlxDetailsNameLabel@@UAE@XZ @ 2 NONAME ; GlxDetailsNameLabel::~GlxDetailsNameLabel(void) + ?tr@GlxDetailsNameLabel@@SA?AVQString@@PBD0@Z @ 3 NONAME ; class QString GlxDetailsNameLabel::tr(char const *, char const *) + ?mousePressEvent@GlxDetailsNameLabel@@MAEXPAVQGraphicsSceneMouseEvent@@@Z @ 4 NONAME ; void GlxDetailsNameLabel::mousePressEvent(class QGraphicsSceneMouseEvent *) + ?metaObject@GlxDetailsNameLabel@@UBEPBUQMetaObject@@XZ @ 5 NONAME ; struct QMetaObject const * GlxDetailsNameLabel::metaObject(void) const + ?getStaticMetaObject@GlxDetailsNameLabel@@SAABUQMetaObject@@XZ @ 6 NONAME ; struct QMetaObject const & GlxDetailsNameLabel::getStaticMetaObject(void) + ?staticMetaObject@GlxDetailsNameLabel@@2UQMetaObject@@B @ 7 NONAME ; struct QMetaObject const GlxDetailsNameLabel::staticMetaObject + ?qt_metacall@GlxDetailsNameLabel@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 8 NONAME ; int GlxDetailsNameLabel::qt_metacall(enum QMetaObject::Call, int, void * *) + ??0GlxDetailsNameLabel@@QAE@PAVQGraphicsItem@@@Z @ 9 NONAME ; GlxDetailsNameLabel::GlxDetailsNameLabel(class QGraphicsItem *) + ?labelPressed@GlxDetailsNameLabel@@IAEXXZ @ 10 NONAME ; void GlxDetailsNameLabel::labelPressed(void) + ?setItemText@GlxDetailsNameLabel@@QAEXABVQString@@@Z @ 11 NONAME ; void GlxDetailsNameLabel::setItemText(class QString const &) + ?mouseReleaseEvent@GlxDetailsNameLabel@@MAEXPAVQGraphicsSceneMouseEvent@@@Z @ 12 NONAME ; void GlxDetailsNameLabel::mouseReleaseEvent(class QGraphicsSceneMouseEvent *) + ?trUtf8@GlxDetailsNameLabel@@SA?AVQString@@PBD0H@Z @ 13 NONAME ; class QString GlxDetailsNameLabel::trUtf8(char const *, char const *, int) + ?trUtf8@GlxDetailsNameLabel@@SA?AVQString@@PBD0@Z @ 14 NONAME ; class QString GlxDetailsNameLabel::trUtf8(char const *, char const *) + ?tr@GlxDetailsNameLabel@@SA?AVQString@@PBD0H@Z @ 15 NONAME ; class QString GlxDetailsNameLabel::tr(char const *, char const *, int) + ?qt_metacast@GlxDetailsNameLabel@@UAEPAXPBD@Z @ 16 NONAME ; void * GlxDetailsNameLabel::qt_metacast(char const *) + diff -r 6481344a6d67 -r d0b4e67b3a60 ui/detailscustomwidget/detailscustomwidget.pro --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ui/detailscustomwidget/detailscustomwidget.pro Wed Jun 23 18:12:48 2010 +0300 @@ -0,0 +1,24 @@ +#/* +#* 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: +#* +#*/ + + +TEMPLATE = subdirs +SUBDIRS += detailsnamelabel +SUBDIRS += detailsnamelabelplugin +SUBDIRS += detailsdescriptionedit +SUBDIRS += detailsdescriptioneditplugin +CONFIG += ordered \ No newline at end of file diff -r 6481344a6d67 -r d0b4e67b3a60 ui/detailscustomwidget/detailsdescriptionedit/detailsdescriptionedit.pro --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ui/detailscustomwidget/detailsdescriptionedit/detailsdescriptionedit.pro Wed Jun 23 18:12:48 2010 +0300 @@ -0,0 +1,60 @@ +#/* +#* 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: +#* +#*/ + + +TEMPLATE = lib +TARGET = detailsdescriptionedit +CONFIG += hb +DEFINES += BUILD_DESCEDIT + +win32{ +CONFIG(release, debug|release){ + TARGET = detailsdescriptionedit + DESTDIR = ../release # for easy plugin loading +}else{ + TARGET = detailsdescriptioneditd + DESTDIR = ../debug # for easy plugin loading + } +} + +DEPENDPATH += ./inc \ + ./src + +INCLUDEPATH += ./inc + +SOURCES += \ + glxdetailsdescriptionedit.cpp + +HEADERS += \ + glxdetailsdescriptionedit.h + +symbian { + TARGET.UID3 = 0x200071B9 + TARGET.EPOCALLOWDLLDATA = 1 + TARGET.CAPABILITY = CAP_GENERAL_DLL + LIBS += -lbafl +} + +defBlock = \ +"$${LITERAL_HASH}if defined(EABI)" \ +"DEFFILE ../eabi/detailsdescriptionedit.def" \ + "$${LITERAL_HASH}else" \ + "DEFFILE ../bwins/detailsdescriptionedit.def" \ + "$${LITERAL_HASH}endif" + +MMP_RULES += defBlock +# End of file --Don't remove this diff -r 6481344a6d67 -r d0b4e67b3a60 ui/detailscustomwidget/detailsdescriptionedit/inc/glxdetailsdescriptionedit.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ui/detailscustomwidget/detailsdescriptionedit/inc/glxdetailsdescriptionedit.h Wed Jun 23 18:12:48 2010 +0300 @@ -0,0 +1,50 @@ +/* +* 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: This is custom widget for details view in photos for displaying the description of image . +* +*/ + +#ifndef GlXDETAILSDESCEDIT_H +#define GlXDETAILSDESCEDIT_H + +#include + +#ifdef BUILD_DESCEDIT +#define MY_EXPORT Q_DECL_EXPORT +#else +#define MY_EXPORT Q_DECL_IMPORT +#endif + +class HbEditorInterface; +class MY_EXPORT GlxDetailsDescriptionEdit : public HbTextEdit +{ + Q_OBJECT + +public: + GlxDetailsDescriptionEdit(QGraphicsItem *parent = NULL); + ~GlxDetailsDescriptionEdit(); + void setItemText( const QString &text ); + +protected: + void focusInEvent (QFocusEvent *event) ; + void focusOutEvent (QFocusEvent *event) ; + + +signals : + void labelPressed(); +private: + HbEditorInterface *mDesc; +}; + +#endif // GlXDETAILSDESCEDIT_H diff -r 6481344a6d67 -r d0b4e67b3a60 ui/detailscustomwidget/detailsdescriptionedit/src/glxdetailsdescriptionedit.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ui/detailscustomwidget/detailsdescriptionedit/src/glxdetailsdescriptionedit.cpp Wed Jun 23 18:12:48 2010 +0300 @@ -0,0 +1,66 @@ +/* +* 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: This is custom widget for details view in photos for displaying the description of image . +* +*/ + + + +#include "glxdetailsdescriptionedit.h" +#include +#include + + + +void GlxDetailsDescriptionEdit::focusInEvent (QFocusEvent *event) + { + if(event->reason() == Qt::MouseFocusReason ) + { + event->setAccepted(TRUE); + emit labelPressed(); + } + + } +void GlxDetailsDescriptionEdit::focusOutEvent (QFocusEvent *event) + { + event->setAccepted(TRUE); + } + + +//-------------------------------------------------------------------------------------------------------------------------------------------- +//GlxDetailsDescLabel +//-------------------------------------------------------------------------------------------------------------------------------------------- +GlxDetailsDescriptionEdit::GlxDetailsDescriptionEdit(QGraphicsItem *parent) : HbTextEdit( parent ) +{ + setAlignment(Qt::AlignLeft); + mDesc = new HbEditorInterface(this); + mDesc->setInputConstraints (HbEditorConstraintIgnoreFocus); +} + +//-------------------------------------------------------------------------------------------------------------------------------------------- +//~GlxDetailsDescLabel +//-------------------------------------------------------------------------------------------------------------------------------------------- +GlxDetailsDescriptionEdit::~GlxDetailsDescriptionEdit() +{ + delete mDesc; + mDesc = NULL; +} + +//-------------------------------------------------------------------------------------------------------------------------------------------- +//setItemText +//-------------------------------------------------------------------------------------------------------------------------------------------- +void GlxDetailsDescriptionEdit::setItemText( const QString &text ) +{ + setPlainText( text ); +} diff -r 6481344a6d67 -r d0b4e67b3a60 ui/detailscustomwidget/detailsdescriptioneditplugin/detailsdescriptioneditplugin.pro --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ui/detailscustomwidget/detailsdescriptioneditplugin/detailsdescriptioneditplugin.pro Wed Jun 23 18:12:48 2010 +0300 @@ -0,0 +1,67 @@ +#/* +#* 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: +#* +#*/ + +TEMPLATE = lib +TARGET = detailsdescriptioneditplugin + +win32{ +CONFIG(release, debug|release){ + TARGET = detailsdescriptioneditplugin + } else { + TARGET = detailsdescriptioneditplugind + } +} + +CONFIG += hb plugin + +win32{ +CONFIG(release, debug|release){ + DESTDIR = ../release # for easy plugin loading + LIBS += -L../release -ldetailsdescriptionedit + } else { + DESTDIR = ../debug # for easy plugin loading + LIBS += -L../debug -ldetailsdescriptioneditd + } +} + +SOURCES += \ + main.cpp + +INCLUDEPATH += \ + ../detailsdescriptionedit \ + ../detailsdescriptionedit/inc + +symbian: { + TARGET.UID3 = 0x2000A774 + TARGET.EPOCALLOWDLLDATA=1 + TARGET.CAPABILITY = CAP_GENERAL_DLL + + LIBS += \ + -ldetailsdescriptionedit.dll + + pluginstub.sources = detailsdescriptioneditplugin.dll + pluginstub.path = /resource/plugins + DEPLOYMENT += pluginstub + DESTDIR = $$HB_PLUGINS_DIR +} + +!local { + target.path = $$HB_PLUGINS_DIR + INSTALLS += target +} + +# End of file --Don't remove this. diff -r 6481344a6d67 -r d0b4e67b3a60 ui/detailscustomwidget/detailsdescriptioneditplugin/main.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ui/detailscustomwidget/detailsdescriptioneditplugin/main.cpp Wed Jun 23 18:12:48 2010 +0300 @@ -0,0 +1,49 @@ +/* +* 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: ?? +* +*/ + + +#include "glxdetailsdescriptionedit.h" +#include +#include + +class GlxDetailsDescriptionEditPlugin : public HbDocumentLoaderPlugin +{ +public: + QObject *createObject(const QString& type, const QString &name); + QList supportedObjects(); +}; +Q_EXPORT_PLUGIN(GlxDetailsDescriptionEditPlugin) + +QObject *GlxDetailsDescriptionEditPlugin::createObject(const QString& type, const QString &name ) +{ + if( type == GlxDetailsDescriptionEdit::staticMetaObject.className() ) { + QObject *object = new GlxDetailsDescriptionEdit(); + object->setObjectName(name); + return object; + } + return 0; +} + +QList GlxDetailsDescriptionEditPlugin::supportedObjects() +{ + QList result; + result.append( &GlxDetailsDescriptionEdit::staticMetaObject ); + return result; +} + +// end of file + diff -r 6481344a6d67 -r d0b4e67b3a60 ui/detailscustomwidget/detailsnamelabel/detailsnamelabel.pro --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ui/detailscustomwidget/detailsnamelabel/detailsnamelabel.pro Wed Jun 23 18:12:48 2010 +0300 @@ -0,0 +1,60 @@ +#/* +#* 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: +#* +#*/ + +TEMPLATE = lib +TARGET = detailsnamelabel +CONFIG += hb +DEFINES += BUILD_NAMELABEL + +win32{ +CONFIG(release, debug|release){ + TARGET = detailsnamelabel + DESTDIR = ../release # for easy plugin loading +}else{ + TARGET = detailsnamelabeld + DESTDIR = ../debug # for easy plugin loading + } +} + +DEPENDPATH += ./inc \ + ./src + +INCLUDEPATH += ./inc + +SOURCES += \ + glxdetailsnamelabel.cpp + +HEADERS += \ + glxdetailsnamelabel.h + +symbian { + TARGET.UID3 = 0x2000A7BC + TARGET.EPOCALLOWDLLDATA = 1 + TARGET.CAPABILITY = CAP_GENERAL_DLL + LIBS += -lbafl +} + +defBlock = \ +"$${LITERAL_HASH}if defined(EABI)" \ +"DEFFILE ../eabi/detailsnamelabel.def" \ + "$${LITERAL_HASH}else" \ + "DEFFILE ../bwins/detailsnamelabel.def" \ + "$${LITERAL_HASH}endif" + +MMP_RULES += defBlock + +# End of file --Don't remove this diff -r 6481344a6d67 -r d0b4e67b3a60 ui/detailscustomwidget/detailsnamelabel/inc/glxdetailsnamelabel.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ui/detailscustomwidget/detailsnamelabel/inc/glxdetailsnamelabel.h Wed Jun 23 18:12:48 2010 +0300 @@ -0,0 +1,48 @@ +/* +* 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 +* +*/ + +#ifndef GlXDETAILSNAMELABEL_H +#define GlXDETAILSNAMELABEL_H + +#include + +#ifdef BUILD_NAMELABEL +#define MY_EXPORT Q_DECL_EXPORT +#else +#define MY_EXPORT Q_DECL_IMPORT +#endif + + +class MY_EXPORT GlxDetailsNameLabel : public HbLabel +{ + Q_OBJECT + +public: + GlxDetailsNameLabel(QGraphicsItem *parent = NULL); + ~GlxDetailsNameLabel(); + void setItemText( const QString &text ); + +protected: + void mousePressEvent(QGraphicsSceneMouseEvent *event); + void mouseReleaseEvent (QGraphicsSceneMouseEvent *event); + +signals : + void labelPressed(); + +}; + +#endif // GlXDETAILSNAMELABEL_H diff -r 6481344a6d67 -r d0b4e67b3a60 ui/detailscustomwidget/detailsnamelabel/src/glxdetailsnamelabel.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ui/detailscustomwidget/detailsnamelabel/src/glxdetailsnamelabel.cpp Wed Jun 23 18:12:48 2010 +0300 @@ -0,0 +1,67 @@ +/* +* 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 +#include "glxdetailsnamelabel.h" +#include +#include + +//-------------------------------------------------------------------------------------------------------------------------------------------- +//mousePressEvent +//-------------------------------------------------------------------------------------------------------------------------------------------- +void GlxDetailsNameLabel::mousePressEvent(QGraphicsSceneMouseEvent *event) +{ + Q_UNUSED(event) +} + +//-------------------------------------------------------------------------------------------------------------------------------------------- +//mouseReleaseEvent +//-------------------------------------------------------------------------------------------------------------------------------------------- +void GlxDetailsNameLabel::mouseReleaseEvent (QGraphicsSceneMouseEvent *event) +{ + qDebug("GlxDetailsNameLabel::mouseReleaseEvent"); + Q_UNUSED(event) + emit labelPressed(); +} + +//-------------------------------------------------------------------------------------------------------------------------------------------- +//GlxDetailsNameLabel +//-------------------------------------------------------------------------------------------------------------------------------------------- +GlxDetailsNameLabel::GlxDetailsNameLabel(QGraphicsItem *parent) : HbLabel( parent ) +{ + qDebug("GlxDetailsNameLabel::GlxDetailsNameLabel"); + setTextWrapping(Hb::TextWordWrap); + setAlignment(Qt::AlignHCenter); +} + +//-------------------------------------------------------------------------------------------------------------------------------------------- +//~GlxDetailsCustomLabel +//-------------------------------------------------------------------------------------------------------------------------------------------- +GlxDetailsNameLabel::~GlxDetailsNameLabel() +{ + +} + +//-------------------------------------------------------------------------------------------------------------------------------------------- +//setItemText +//-------------------------------------------------------------------------------------------------------------------------------------------- +void GlxDetailsNameLabel::setItemText( const QString &text ) +{ + qDebug("GlxDetailsNameLabel::setItemText"); + setHtml(text); +} diff -r 6481344a6d67 -r d0b4e67b3a60 ui/detailscustomwidget/detailsnamelabelplugin/detailsnamelabelplugin.pro --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ui/detailscustomwidget/detailsnamelabelplugin/detailsnamelabelplugin.pro Wed Jun 23 18:12:48 2010 +0300 @@ -0,0 +1,67 @@ +#/* +#* 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: +#* +#*/ + +TEMPLATE = lib +TARGET = detailsnamelabelplugin + +win32{ +CONFIG(release, debug|release){ + TARGET = detailsnamelabelplugin + } else { + TARGET = detailsnamelabelplugind + } +} + +CONFIG += hb plugin + +win32{ +CONFIG(release, debug|release){ + DESTDIR = ../release # for easy plugin loading + LIBS += -L../release -ldetailsnamelabel + } else { + DESTDIR = ../debug # for easy plugin loading + LIBS += -L../debug -ldetailsnamelabeld + } +} + +SOURCES += \ + main.cpp + +INCLUDEPATH += \ + ../detailsnamelabel \ + ../detailsnamelabel/inc + +symbian: { + TARGET.UID3 = 0x200071B7 + TARGET.EPOCALLOWDLLDATA=1 + TARGET.CAPABILITY = CAP_GENERAL_DLL + + LIBS += \ + -ldetailsnamelabel.dll + + pluginstub.sources = detailsnamelabelplugin.dll + pluginstub.path = /resource/plugins + DEPLOYMENT += pluginstub + DESTDIR = $$HB_PLUGINS_DIR +} + +!local { + target.path = $$HB_PLUGINS_DIR + INSTALLS += target +} + +# End of file --Don't remove this. diff -r 6481344a6d67 -r d0b4e67b3a60 ui/detailscustomwidget/detailsnamelabelplugin/main.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ui/detailscustomwidget/detailsnamelabelplugin/main.cpp Wed Jun 23 18:12:48 2010 +0300 @@ -0,0 +1,54 @@ +/* +* 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 "glxdetailsnamelabel.h" +#include +#include +#include + +class GlxDetailsNameLabelPlugin : public HbDocumentLoaderPlugin +{ +public: + QObject *createObject(const QString& type, const QString &name); + QList supportedObjects(); +}; +Q_EXPORT_PLUGIN(GlxDetailsNameLabelPlugin) + +QObject *GlxDetailsNameLabelPlugin::createObject(const QString& type, const QString &name ) +{ + qDebug("GlxDetailsNameLabelPlugin::createObject"); + if( type == GlxDetailsNameLabel::staticMetaObject.className() ) { + + qDebug("GlxDetailsNameLabelPlugin::createObject created"); + QObject *object = new GlxDetailsNameLabel(); + object->setObjectName(name); + return object; + } + return 0; +} + +QList GlxDetailsNameLabelPlugin::supportedObjects() +{ + qDebug("GlxDetailsNameLabelPlugin::supportedObjects"); + QList result; + result.append( &GlxDetailsNameLabel::staticMetaObject ); + return result; +} + +// end of file + diff -r 6481344a6d67 -r d0b4e67b3a60 ui/detailscustomwidget/eabi/detailsdescriptioneditu.def --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ui/detailscustomwidget/eabi/detailsdescriptioneditu.def Wed Jun 23 18:12:48 2010 +0300 @@ -0,0 +1,24 @@ +EXPORTS + _ZN25GlxDetailsDescriptionEdit11qt_metacallEN11QMetaObject4CallEiPPv @ 1 NONAME + _ZN25GlxDetailsDescriptionEdit11qt_metacastEPKc @ 2 NONAME + _ZN25GlxDetailsDescriptionEdit11setItemTextERK7QString @ 3 NONAME + _ZN25GlxDetailsDescriptionEdit12focusInEventEP11QFocusEvent @ 4 NONAME + _ZN25GlxDetailsDescriptionEdit12labelPressedEv @ 5 NONAME + _ZN25GlxDetailsDescriptionEdit13focusOutEventEP11QFocusEvent @ 6 NONAME + _ZN25GlxDetailsDescriptionEdit16staticMetaObjectE @ 7 NONAME DATA 16 + _ZN25GlxDetailsDescriptionEdit19getStaticMetaObjectEv @ 8 NONAME + _ZN25GlxDetailsDescriptionEditC1EP13QGraphicsItem @ 9 NONAME + _ZN25GlxDetailsDescriptionEditC2EP13QGraphicsItem @ 10 NONAME + _ZN25GlxDetailsDescriptionEditD0Ev @ 11 NONAME + _ZN25GlxDetailsDescriptionEditD1Ev @ 12 NONAME + _ZN25GlxDetailsDescriptionEditD2Ev @ 13 NONAME + _ZNK25GlxDetailsDescriptionEdit10metaObjectEv @ 14 NONAME + _ZTI25GlxDetailsDescriptionEdit @ 15 NONAME + _ZTV25GlxDetailsDescriptionEdit @ 16 NONAME + _ZThn16_N25GlxDetailsDescriptionEditD0Ev @ 17 NONAME + _ZThn16_N25GlxDetailsDescriptionEditD1Ev @ 18 NONAME + _ZThn8_N25GlxDetailsDescriptionEdit12focusInEventEP11QFocusEvent @ 19 NONAME + _ZThn8_N25GlxDetailsDescriptionEdit13focusOutEventEP11QFocusEvent @ 20 NONAME + _ZThn8_N25GlxDetailsDescriptionEditD0Ev @ 21 NONAME + _ZThn8_N25GlxDetailsDescriptionEditD1Ev @ 22 NONAME + diff -r 6481344a6d67 -r d0b4e67b3a60 ui/detailscustomwidget/eabi/detailsnamelabelu.def --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ui/detailscustomwidget/eabi/detailsnamelabelu.def Wed Jun 23 18:12:48 2010 +0300 @@ -0,0 +1,24 @@ +EXPORTS + _ZN19GlxDetailsNameLabel11qt_metacallEN11QMetaObject4CallEiPPv @ 1 NONAME + _ZN19GlxDetailsNameLabel11qt_metacastEPKc @ 2 NONAME + _ZN19GlxDetailsNameLabel11setItemTextERK7QString @ 3 NONAME + _ZN19GlxDetailsNameLabel12labelPressedEv @ 4 NONAME + _ZN19GlxDetailsNameLabel15mousePressEventEP24QGraphicsSceneMouseEvent @ 5 NONAME + _ZN19GlxDetailsNameLabel16staticMetaObjectE @ 6 NONAME DATA 16 + _ZN19GlxDetailsNameLabel17mouseReleaseEventEP24QGraphicsSceneMouseEvent @ 7 NONAME + _ZN19GlxDetailsNameLabel19getStaticMetaObjectEv @ 8 NONAME + _ZN19GlxDetailsNameLabelC1EP13QGraphicsItem @ 9 NONAME + _ZN19GlxDetailsNameLabelC2EP13QGraphicsItem @ 10 NONAME + _ZN19GlxDetailsNameLabelD0Ev @ 11 NONAME + _ZN19GlxDetailsNameLabelD1Ev @ 12 NONAME + _ZN19GlxDetailsNameLabelD2Ev @ 13 NONAME + _ZNK19GlxDetailsNameLabel10metaObjectEv @ 14 NONAME + _ZTI19GlxDetailsNameLabel @ 15 NONAME + _ZTV19GlxDetailsNameLabel @ 16 NONAME + _ZThn16_N19GlxDetailsNameLabelD0Ev @ 17 NONAME + _ZThn16_N19GlxDetailsNameLabelD1Ev @ 18 NONAME + _ZThn8_N19GlxDetailsNameLabel15mousePressEventEP24QGraphicsSceneMouseEvent @ 19 NONAME + _ZThn8_N19GlxDetailsNameLabel17mouseReleaseEventEP24QGraphicsSceneMouseEvent @ 20 NONAME + _ZThn8_N19GlxDetailsNameLabelD0Ev @ 21 NONAME + _ZThn8_N19GlxDetailsNameLabelD1Ev @ 22 NONAME + diff -r 6481344a6d67 -r d0b4e67b3a60 ui/inc/glxcommandhandlers.hrh --- a/ui/inc/glxcommandhandlers.hrh Fri Jun 11 13:38:23 2010 +0300 +++ b/ui/inc/glxcommandhandlers.hrh Wed Jun 23 18:12:48 2010 +0300 @@ -115,8 +115,7 @@ EGlxCmdContextSend, EGlxCmdContextRename, EGlxCmdSetupItem, - EGlxCmdAppBackground, //when application goes into background - EGlxCmdAppForeground, //when application comes into foreground + EGlxCmdComment, EGlxCmdAiwBase = 0x6000 }; diff -r 6481344a6d67 -r d0b4e67b3a60 ui/inc/glxdocloaderdefs.h --- a/ui/inc/glxdocloaderdefs.h Fri Jun 11 13:38:23 2010 +0300 +++ b/ui/inc/glxdocloaderdefs.h Wed Jun 23 18:12:48 2010 +0300 @@ -30,6 +30,7 @@ #define GLXFULLSCREENZOOMWIDGET "glxZoomWidget" #define GLXFULLSCREENDOCMLPATH ":/data/fullscreen.docml" + //SLIDE SHOW #define GLXSLIDESHOW_VIEW "mglxslideshow" #define GLXSLIDESHOW_WIDGET "mslideshowwidget" @@ -48,4 +49,19 @@ #define GLX_LISTVIEW_LIST "listview" #define GLX_LISTVIEW_DOCMLPATH ":/data/listview.docml" +//DETAILS VIEW +#define GLX_DETAILSVIEW_DOCMLPATH ":/data/detailsview.docml" +#define GLX_DETAILSVIEW_VIEW "view" +#define GLX_DETAILSVIEW_IMAGE "ImageIcon" +#define GLX_DETAILSVIEW_FAVICON "FavIcon" +#define GLX_DETAILSVIEW_IMGNAME "ImageName" +#define GLX_DETAILSVIEW_DATETEXT "DateText" +#define GLX_DETAILSVIEW_SIZETEXT "SizeText" +#define GLX_DETAILSVIEW_TIMETEXT "TimeText" +#define GLX_DETAILSVIEW_DESCRPTION "Descriptions" +#define GLX_DETAILSVIEW_DESCRPTIONTEXT "DescriptionsText" +#define GLX_DETAILSVIEW_LSSECTION "landscape" +#define GLX_DETAILSVIEW_PTSECTION "portrait" + + #endif /* GLXDOCLOADERDEFS_H */ diff -r 6481344a6d67 -r d0b4e67b3a60 ui/inc/glxmodelparm.h --- a/ui/inc/glxmodelparm.h Fri Jun 11 13:38:23 2010 +0300 +++ b/ui/inc/glxmodelparm.h Wed Jun 23 18:12:48 2010 +0300 @@ -22,31 +22,7 @@ #include #include - -enum -{ - GlxHgVisibilityRole = Qt::UserRole + 1, // VisibilityRole For MediaWall , Dont Change This Value - Depedency To HgWidget - GlxFsImageRole, //to get the fullscreen image - GlxContextRole, //to get and set the context - GlxFocusIndexRole, //to get and set the selected item index - GlxVisualWindowIndex, //to set the visual window index in media list - GlxUriRole, //to get the URI of the image - GlxDimensionsRole, - GlxSelectedIndexRole, //to get and set the seleceted item list - GlxDateRole, //to get the image created or modified date - GlxFrameCount, //to get the number of frame in an image - GlxSubStateRole, //to publish the sub state of a SM states - GlxHdmiBitmap, //to get the pre decoded thumbnail for HDMI - GlxListItemCount, //to get the number of item in the album list - GlxSystemItemRole, //to get the item is system item or not - GlxFavorites, //to get the image is in favorites folder or not - GlxQImageSmall, //To Get Grid Thumbnail as QImage - GlxQImageLarge, //To Get FullScreen Thumbnail as QImage - GlxDefaultImage, //To Get Default Thumbnail - GlxViewTitle, - GlxPopulated -}; - +#include class GlxModelParm { diff -r 6481344a6d67 -r d0b4e67b3a60 ui/inc/glxmodelroles.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ui/inc/glxmodelroles.h Wed Jun 23 18:12:48 2010 +0300 @@ -0,0 +1,51 @@ +/* +* 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 +* +*/ + + + +#ifndef GLXMODELROLES_H +#define GLXMODELROLES_H +enum +{ + GlxHgVisibilityRole = Qt::UserRole + 1, // VisibilityRole For MediaWall , Dont Change This Value - Depedency To HgWidget + GlxFsImageRole, //to get the fullscreen image + GlxContextRole, //to get and set the context + GlxFocusIndexRole, //to get and set the selected item index + GlxVisualWindowIndex, //to set the visual window index in media list + GlxUriRole, //to get the URI of the image + GlxDimensionsRole, + GlxSelectedIndexRole, //to get and set the seleceted item list + GlxDateRole, //to get the image created or modified date + GlxFrameCount, //to get the number of frame in an image + GlxSubStateRole, //to publish the sub state of a SM states + GlxHdmiBitmap, //to get the pre decoded thumbnail for HDMI + GlxListItemCount, //to get the number of item in the album list + GlxSystemItemRole, //to get the item is system item or not + GlxFavorites, //to get the image is in favorites folder or not + GlxQImageSmall, //To Get Grid Thumbnail as QImage + GlxQImageLarge, //To Get FullScreen Thumbnail as QImage + GlxDefaultImage, //To Get Default Thumbnail + GlxViewTitle, + GlxPopulated, + GlxTimeRole, //to get the time image was modified + GlxSizeRole, //to get the size of the image + GlxDescRole, //to get the description of the images + GlxRemoveContextRole //to remove the context +}; + + +#endif diff -r 6481344a6d67 -r d0b4e67b3a60 ui/inc/glxuistd.h --- a/ui/inc/glxuistd.h Fri Jun 11 13:38:23 2010 +0300 +++ b/ui/inc/glxuistd.h Wed Jun 23 18:12:48 2010 +0300 @@ -41,7 +41,8 @@ GlxContextLsList, GlxContextPtList, GlxContextSelectionList, - GlxContextFavorite + GlxContextFavorite, + GlxContextComment //to fetch the description }; enum GlxTBContextType diff -r 6481344a6d67 -r d0b4e67b3a60 ui/ui.pro --- a/ui/ui.pro Fri Jun 11 13:38:23 2010 +0300 +++ b/ui/ui.pro Wed Jun 23 18:12:48 2010 +0300 @@ -16,7 +16,12 @@ #*/ TEMPLATE = subdirs CONFIG += ordered -SUBDIRS = uiengine \ + +exportfile += "inc/glxmodelroles.h APP_LAYER_PLATFORM_EXPORT_PATH(glxmodelroles.h)" +BLD_INF_RULES.prj_exports += exportfile + +SUBDIRS = detailscustomwidget \ + uiengine \ commandhandlers \ viewutilities \ widgets \ diff -r 6481344a6d67 -r d0b4e67b3a60 ui/uiengine/bwins/glxmedialistwrapperu.def --- a/ui/uiengine/bwins/glxmedialistwrapperu.def Fri Jun 11 13:38:23 2010 +0300 +++ b/ui/uiengine/bwins/glxmedialistwrapperu.def Wed Jun 23 18:12:48 2010 +0300 @@ -48,4 +48,10 @@ ??0GlxMLWrapper@@QAE@HHW4TGlxFilterItemType@@VQString@@@Z @ 47 NONAME ; GlxMLWrapper::GlxMLWrapper(int, int, enum TGlxFilterItemType, class QString) ?itemsAdded@GlxMLWrapper@@QAEXHH@Z @ 48 NONAME ; void GlxMLWrapper::itemsAdded(int, int) ?retrieveItemIcon@GlxMLWrapper@@QAEPAVHbIcon@@HW4GlxTBContextType@@@Z @ 49 NONAME ; class HbIcon * GlxMLWrapper::retrieveItemIcon(int, enum GlxTBContextType) + ?retrieveItemSize@GlxMLWrapper@@QAEHH@Z @ 50 NONAME ; int GlxMLWrapper::retrieveItemSize(int) + ?retrieveItemTime@GlxMLWrapper@@QAE?AVQTime@@H@Z @ 51 NONAME ; class QTime GlxMLWrapper::retrieveItemTime(int) + ?retrieveListDesc@GlxMLWrapper@@QAE?AVQString@@H@Z @ 52 NONAME ; class QString GlxMLWrapper::retrieveListDesc(int) + ?removeContextMode@GlxMLWrapper@@QAEXW4GlxContextMode@@@Z @ 53 NONAME ; void GlxMLWrapper::removeContextMode(enum GlxContextMode) + ?updateDetails@GlxMLWrapper@@IAEXXZ @ 54 NONAME ; void GlxMLWrapper::updateDetails(void) + ?handleDetailsItemAvailable@GlxMLWrapper@@QAEXH@Z @ 55 NONAME ; void GlxMLWrapper::handleDetailsItemAvailable(int) diff -r 6481344a6d67 -r d0b4e67b3a60 ui/uiengine/eabi/glxmedialistwrapperu.def --- a/ui/uiengine/eabi/glxmedialistwrapperu.def Fri Jun 11 13:38:23 2010 +0300 +++ b/ui/uiengine/eabi/glxmedialistwrapperu.def Wed Jun 23 18:12:48 2010 +0300 @@ -45,4 +45,10 @@ _ZNK12GlxMLWrapper13getFocusIndexEv @ 44 NONAME _ZTI12GlxMLWrapper @ 45 NONAME _ZTV12GlxMLWrapper @ 46 NONAME + _ZN12GlxMLWrapper16retrieveItemSizeEi @ 47 NONAME + _ZN12GlxMLWrapper16retrieveItemTimeEi @ 48 NONAME + _ZN12GlxMLWrapper16retrieveListDescEi @ 49 NONAME + _ZN12GlxMLWrapper17removeContextModeE14GlxContextMode @ 50 NONAME + _ZN12GlxMLWrapper13updateDetailsEv @ 51 NONAME + _ZN12GlxMLWrapper26handleDetailsItemAvailableEi @ 52 NONAME diff -r 6481344a6d67 -r d0b4e67b3a60 ui/uiengine/medialistwrapper/inc/glxmlwrapper.h --- a/ui/uiengine/medialistwrapper/inc/glxmlwrapper.h Fri Jun 11 13:38:23 2010 +0300 +++ b/ui/uiengine/medialistwrapper/inc/glxmlwrapper.h Wed Jun 23 18:12:48 2010 +0300 @@ -61,6 +61,11 @@ * for setting the attribute context mode will be used mainly for retreiving thumbnail of different sizes. */ void setContextMode(GlxContextMode contextMode); + /** + * for removing the contect once it is not rquired anymore + */ + void removeContextMode(GlxContextMode contextMode); + /** * for retreiving the data Count. */ @@ -76,6 +81,7 @@ void handleIconCorrupt(int itemIndex); void handleGeneralError(int error); void handleListItemAvailable(int itemIndex); + void handleDetailsItemAvailable(int itemIndex); int getFocusIndex() const; void setFocusIndex(int itemIndex); @@ -83,11 +89,26 @@ QString retrieveListTitle(int index); QString retrieveListSubTitle(int index); + /* + * fetches the comments entered for the image + */ + QString retrieveListDesc(int index); int getVisibleWindowIndex(); void setVisibleWindowIndex(int itemIndex); QString retrieveItemUri(int index); QSize retrieveItemDimension(int index); + /* + * fetches the size for the image + */ + int retrieveItemSize(int index); + /* + * fetches the date for the image + */ QDate retrieveItemDate(int index); + /* + * fetches the time for the image + */ + QTime retrieveItemTime(int index); int retrieveItemFrameCount(int index); QString retrieveViewTitle(); void handlepopulated(); @@ -116,6 +137,10 @@ void itemCorrupted(int itemIndex); void updateAlbumTitle(QString aTitle); void populated(); + /* + * emits the signal to update details view + */ + void updateDetails(); private: GlxMLWrapperPrivate* mMLWrapperPrivate; diff -r 6481344a6d67 -r d0b4e67b3a60 ui/uiengine/medialistwrapper/inc/glxmlwrapper_p.h --- a/ui/uiengine/medialistwrapper/inc/glxmlwrapper_p.h Fri Jun 11 13:38:23 2010 +0300 +++ b/ui/uiengine/medialistwrapper/inc/glxmlwrapper_p.h Wed Jun 23 18:12:48 2010 +0300 @@ -59,6 +59,12 @@ * for setting the attribute context mode will be used mainly for retreiving thumbnail of different sizes. */ void SetContextMode(GlxContextMode aContextMode); + + /* + * For removing the contect used + */ + void RemoveContextMode(GlxContextMode aContextMode); + /** * for retreiving the Media List Count. */ @@ -111,14 +117,21 @@ HbIcon* RetrieveItemIcon(int index, GlxTBContextType aTBContextType); QImage RetrieveItemImage(int index, GlxTBContextType aTBContextType); QString RetrieveListTitle(int index); + QString RetrieveListDesc(int index); QString RetrieveListSubTitle(int index); QString RetrieveItemUri(int index); QSize RetrieveItemDimension(int index); + int RetrieveItemSize(int index); QDate RetrieveItemDate(int index); + QTime RetrieveItemTime(int index); int RetrieveItemFrameCount(int aItemIndex); CFbsBitmap* RetrieveBitmap(int aItemIndex); int RetrieveListItemCount( int aItemIndex ); bool isSystemItem( int aItemIndex ); + /* + *Sets the context for fetcing comments + */ + void SetDescontextL(); QString RetrieveViewTitle(); bool IsPopulated(); @@ -152,6 +165,7 @@ void RemovePtFsContext(); void RemoveListContext(); void RemoveFavouriteContext(); + void RemoveDescContext(); //for the attribute filtering TInt CheckTBAttributesPresenceandSanity(TInt aItemIndex, const RArray& aAttributes, TMPXAttribute aThumbnailAttribute ); @@ -160,6 +174,10 @@ void CheckLsFsTBAttribute(TInt aItemIndex, const RArray& aAttributes); void CheckListAttributes(TInt aItemIndex, const RArray& aAttributes); /* + * to check the attributes returned for details view is present + */ + void CheckDetailsAttributes(TInt aItemIndex, const RArray& aAttributes); + /* * convert the CFbsbitmap to HbIcon */ HbIcon *convertFBSBitmapToHbIcon(CFbsBitmap* aBitmap); @@ -185,7 +203,6 @@ CGlxDefaultThumbnailContext* iLsFsThumbnailContext; CGlxDefaultThumbnailContext* iFocusFsThumbnailContext; CGlxDefaultThumbnailContext* iFocusGridThumbnailContext; - CGlxThumbnailContext* iFilmStripThumbnailContext; //List related contexts // Fetch context for retrieving title attribute @@ -197,6 +214,9 @@ //to find if the image is in favorites or not CGlxDefaultAttributeContext *iFavouriteContext; + //To fetch the details + CGlxDefaultAttributeContext *iDescContext; + CGlxThumbnailContext* iListThumbnailContext; // for thumbnail context TGlxFromVisibleIndexOutwardListIterator iThumbnailIterator; @@ -212,6 +232,7 @@ TBool iPtFsContextActivated; TBool iLsListContextActivated; //currently not used as we have not implemented the logic for 3 thumbnails TBool iPtListContextActivated; + TBool iDetailsContextActivated; //this is to fetch the comments attributes TBool iSelectionListContextActivated; CGlxTitleFetcher* iTitleFetcher; QImage iCorruptImage; diff -r 6481344a6d67 -r d0b4e67b3a60 ui/uiengine/medialistwrapper/medialistwrapper.pro --- a/ui/uiengine/medialistwrapper/medialistwrapper.pro Fri Jun 11 13:38:23 2010 +0300 +++ b/ui/uiengine/medialistwrapper/medialistwrapper.pro Wed Jun 23 18:12:48 2010 +0300 @@ -51,4 +51,13 @@ src/glxattributeretriever.cpp \ src/glxtitlefetcher.cpp -DEFINES += QT_NO_DEBUG_OUTPUT QT_NO_WARNING_OUTPUT \ No newline at end of file +DEFINES += QT_NO_DEBUG_OUTPUT QT_NO_WARNING_OUTPUT + +defBlock = \ +"$${LITERAL_HASH}if defined(EABI)" \ +"DEFFILE ../eabi/glxmedialistwrapper.def" \ + "$${LITERAL_HASH}else" \ + "DEFFILE ../bwins/glxmedialistwrapper.def" \ + "$${LITERAL_HASH}endif" + +MMP_RULES += defBlock diff -r 6481344a6d67 -r d0b4e67b3a60 ui/uiengine/medialistwrapper/src/glxmlwrapper.cpp --- a/ui/uiengine/medialistwrapper/src/glxmlwrapper.cpp Fri Jun 11 13:38:23 2010 +0300 +++ b/ui/uiengine/medialistwrapper/src/glxmlwrapper.cpp Wed Jun 23 18:12:48 2010 +0300 @@ -52,6 +52,17 @@ } // --------------------------------------------------------------------------- +// removeContextMode. +// --------------------------------------------------------------------------- +// +void GlxMLWrapper::removeContextMode(GlxContextMode contextMode) +{ + mMLWrapperPrivate->RemoveContextMode(contextMode); +} + + + +// --------------------------------------------------------------------------- // getItemCount. // --------------------------------------------------------------------------- // @@ -92,6 +103,16 @@ { return (mMLWrapperPrivate->RetrieveListSubTitle(index)); } + +// --------------------------------------------------------------------------- +// retrieveListDesc. +// --------------------------------------------------------------------------- +// +QString GlxMLWrapper::retrieveListDesc(int index) +{ + return (mMLWrapperPrivate->RetrieveListDesc(index)); +} + // --------------------------------------------------------------------------- // retrieveItemUri. // --------------------------------------------------------------------------- @@ -109,11 +130,34 @@ return (mMLWrapperPrivate->RetrieveItemDimension(index)); } +// --------------------------------------------------------------------------- +// retrieveItemSize. +// --------------------------------------------------------------------------- +// +int GlxMLWrapper::retrieveItemSize(int index) +{ + return (mMLWrapperPrivate->RetrieveItemSize(index)); +} + +// --------------------------------------------------------------------------- +// retrieveItemDate. +// --------------------------------------------------------------------------- +// QDate GlxMLWrapper::retrieveItemDate(int index) { return (mMLWrapperPrivate->RetrieveItemDate(index)); } +// --------------------------------------------------------------------------- +// retrieveItemTime. +// --------------------------------------------------------------------------- +// +QTime GlxMLWrapper::retrieveItemTime(int index) +{ + return (mMLWrapperPrivate->RetrieveItemTime(index)); +} + + int GlxMLWrapper::retrieveItemFrameCount(int index) { return (mMLWrapperPrivate->RetrieveItemFrameCount(index)); @@ -245,6 +289,16 @@ // --------------------------------------------------------------------------- +// handleDetailsItemAvailable. +// --------------------------------------------------------------------------- +// +void GlxMLWrapper::handleDetailsItemAvailable(int itemIndex) +{ + + emit updateDetails(); +} + +// --------------------------------------------------------------------------- // handleGeneralError. // --------------------------------------------------------------------------- // diff -r 6481344a6d67 -r d0b4e67b3a60 ui/uiengine/medialistwrapper/src/glxmlwrapper_p.cpp --- a/ui/uiengine/medialistwrapper/src/glxmlwrapper_p.cpp Fri Jun 11 13:38:23 2010 +0300 +++ b/ui/uiengine/medialistwrapper/src/glxmlwrapper_p.cpp Wed Jun 23 18:12:48 2010 +0300 @@ -34,8 +34,6 @@ #include #include #include -#include -#include #include #include //internal includes @@ -88,11 +86,15 @@ // might leave. // --------------------------------------------------------------------------- // -GlxMLWrapperPrivate::GlxMLWrapperPrivate(GlxMLWrapper* aMLWrapper): iMLWrapper(aMLWrapper), - iGridContextActivated(EFalse), iLsFsContextActivated(EFalse), - iPtFsContextActivated(EFalse), iPtListContextActivated(EFalse), - iSelectionListContextActivated(EFalse) - { +GlxMLWrapperPrivate::GlxMLWrapperPrivate(GlxMLWrapper* aMLWrapper) + : iMLWrapper(aMLWrapper), + iGridContextActivated(EFalse), + iLsFsContextActivated(EFalse), + iPtFsContextActivated(EFalse), + iPtListContextActivated(EFalse), + iSelectionListContextActivated(EFalse), + iDetailsContextActivated(EFalse) +{ TRACER("GlxMLWrapperPrivate::GlxMLWrapperPrivate"); iGridThumbnailContext = NULL; iPtFsThumbnailContext = NULL; @@ -102,7 +104,6 @@ iListThumbnailContext = NULL; iFocusGridThumbnailContext = NULL; iFocusFsThumbnailContext = NULL; - iFilmStripThumbnailContext = NULL; iFavouriteContext = NULL; iTitleFetcher = NULL; iViewTitle = QString(); @@ -163,9 +164,13 @@ { TRAP(err, SetThumbnailContextL(aContextMode) ); //todo add a trap here } - else if(aContextMode == GlxContextFavorite) + else if(aContextMode == GlxContextFavorite) + { + TRAP(err,SetFavouriteContextL()); + } + else if(aContextMode == GlxContextComment) { - TRAP(err,SetFavouriteContextL()); + TRAP(err,SetDescontextL()); } else { @@ -177,6 +182,17 @@ } // --------------------------------------------------------------------------- +// RemoveContextMode +// --------------------------------------------------------------------------- +// +void GlxMLWrapperPrivate::RemoveContextMode(GlxContextMode aContextMode) +{ + if(aContextMode == GlxContextComment) + { + RemoveDescContext(); + } +} +// --------------------------------------------------------------------------- // SetFavouriteContextL // --------------------------------------------------------------------------- // @@ -279,9 +295,9 @@ } if(aContextMode == GlxContextLsFs && !iLsFsContextActivated) { - if(iGridContextActivated) { - RemoveGridContext(); - } + if(!iGridContextActivated) { + CreateGridContextL(); + } if(iPtFsContextActivated) { RemovePtFsContext(); } @@ -289,9 +305,9 @@ } if(aContextMode == GlxContextPtFs && !iPtFsContextActivated) { - if(iGridContextActivated) { - RemoveGridContext(); - } + if(!iGridContextActivated) { + CreateGridContextL(); + } if(iLsFsContextActivated) { RemoveLsFsContext(); } @@ -358,18 +374,11 @@ iFocusGridThumbnailContext->SetDefaultSpec( KGridTNWIdth, KGridTNHeight ); //todo get these image sizes from the layout. } - if(!iFilmStripThumbnailContext) - { - iFilmStripThumbnailContext = CGlxThumbnailContext::NewL( &iBlockyIteratorForFilmStrip ); // set the thumbnail context for Focus Grid - iFilmStripThumbnailContext->SetDefaultSpec( KGridTNWIdth, KGridTNHeight ); //todo get these image sizes from the layout. - } - // show static items if required iMediaList->SetStaticItemsEnabled(EFalse); - iMediaList->AddContextL(iFocusFsThumbnailContext, 8 ); // Temp will change this number - iMediaList->AddContextL(iFocusGridThumbnailContext, 9 ); // Temp will change this number - iMediaList->AddContextL(iFilmStripThumbnailContext, 7 ); // Temp will change this number - iMediaList->AddContextL(iLsFsThumbnailContext, KGlxFetchContextPriorityGridViewFullscreenVisibleThumbnail ); + iMediaList->AddContextL(iFocusFsThumbnailContext, KGlxFetchContextPriorityNormal ); // Temp will change this number + iMediaList->AddContextL(iFocusGridThumbnailContext, KGlxFetchContextPriorityNormal ); // Temp will change this number + iMediaList->AddContextL(iLsFsThumbnailContext, KGlxFetchContextPriorityNormal ); iLsFsContextActivated = ETrue; } } @@ -405,18 +414,11 @@ iFocusGridThumbnailContext->SetDefaultSpec( KGridTNWIdth, KGridTNHeight ); //todo get these image sizes from the layout. } - if(!iFilmStripThumbnailContext) - { - iFilmStripThumbnailContext = CGlxThumbnailContext::NewL( &iBlockyIteratorForFilmStrip ); // set the thumbnail context for Focus Grid - iFilmStripThumbnailContext->SetDefaultSpec( KGridTNPTWIdth, KGridTNPTHeight ); //todo get these image sizes from the layout. - } - // show static items if required iMediaList->SetStaticItemsEnabled(EFalse); - iMediaList->AddContextL(iFocusFsThumbnailContext, 8 ); // Temp will change this number - iMediaList->AddContextL(iFocusGridThumbnailContext, 9 ); // Temp will change this number - iMediaList->AddContextL(iFilmStripThumbnailContext, 7 ); // Temp will change this number - iMediaList->AddContextL(iPtFsThumbnailContext, KGlxFetchContextPriorityGridViewFullscreenVisibleThumbnail ); + iMediaList->AddContextL(iFocusFsThumbnailContext, KGlxFetchContextPriorityNormal ); // Temp will change this number + iMediaList->AddContextL(iFocusGridThumbnailContext, KGlxFetchContextPriorityNormal ); // Temp will change this number + iMediaList->AddContextL(iPtFsThumbnailContext, KGlxFetchContextPriorityNormal ); iPtFsContextActivated = ETrue; } } @@ -463,12 +465,6 @@ delete iFocusGridThumbnailContext; iFocusGridThumbnailContext = NULL; } - if(iFilmStripThumbnailContext) - { - iMediaList->RemoveContext(iFilmStripThumbnailContext); - delete iFilmStripThumbnailContext; - iFilmStripThumbnailContext = NULL; - } iLsFsContextActivated = EFalse; } @@ -499,12 +495,6 @@ delete iFocusGridThumbnailContext; iFocusGridThumbnailContext = NULL; } - if(iFilmStripThumbnailContext) - { - iMediaList->RemoveContext(iFilmStripThumbnailContext); - delete iFilmStripThumbnailContext; - iFilmStripThumbnailContext = NULL; - } iPtFsContextActivated = EFalse; } @@ -800,6 +790,18 @@ } // --------------------------------------------------------------------------- +// RetrieveListDesc +// --------------------------------------------------------------------------- +// +QString GlxMLWrapperPrivate::RetrieveListDesc(int aItemIndex) +{ + const TGlxMedia& item = iMediaList->Item( aItemIndex ); + const TDesC &commentstring = item.Comment(); + QString descstring = QString::fromUtf16(commentstring.Ptr(), commentstring.Length()); + return descstring; +} + +// --------------------------------------------------------------------------- // Retrieve number of image contained by album list // --------------------------------------------------------------------------- // @@ -864,6 +866,18 @@ } // --------------------------------------------------------------------------- +// RetrieveItemSize +// --------------------------------------------------------------------------- +// +int GlxMLWrapperPrivate::RetrieveItemSize(int aItemIndex) +{ + const TGlxMedia& item = iMediaList->Item( aItemIndex ); + int itemSize ; + item.GetSize(itemSize); + return itemSize; + } + +// --------------------------------------------------------------------------- // RetrieveItemDate // --------------------------------------------------------------------------- // @@ -882,6 +896,29 @@ } return date; } + +// --------------------------------------------------------------------------- +// RetrieveItemTime +// --------------------------------------------------------------------------- +// +QTime GlxMLWrapperPrivate::RetrieveItemTime(int index) + { + GLX_LOG_INFO1("GlxMLWrapperPrivate::RetrieveItemTime %d",index); + const TGlxMedia& item = iMediaList->Item( index ); + TTime TimeValue; + QTime time = QTime(); + TBool returnValue =item.GetDate(TimeValue); + + if(returnValue) + { + GLX_LOG_INFO1("GlxMLWrapperPrivate::RetrieveItemDate %d",returnValue); + TDateTime dateTime = TimeValue.DateTime(); + time = QTime(dateTime.Hour(),dateTime.Minute()); + } + return time; + } + + // --------------------------------------------------------------------------- // RetrieveFsBitmap @@ -997,7 +1034,9 @@ CheckLsFsTBAttribute(aItemIndex, aAttributes); if (iPtListContextActivated || iSelectionListContextActivated) CheckListAttributes(aItemIndex, aAttributes); - // } + if( iDetailsContextActivated && aItemIndex == iMediaList->FocusIndex() ) + CheckDetailsAttributes(aItemIndex, aAttributes); + } // --------------------------------------------------------------------------- // CheckGridTBAttribute @@ -1128,6 +1167,29 @@ return searchStatus; } + +// --------------------------------------------------------------------------- +// CheckDetailsAttributes +// --------------------------------------------------------------------------- +// +void GlxMLWrapperPrivate::CheckDetailsAttributes(TInt aItemIndex, const RArray& aAttributes) +{ + qDebug("GlxMLWrapperPrivate::CheckDetailsAttributes"); + TBool attribPresent = EFalse; + TMPXAttribute titleAttrib(KMPXMediaGeneralComment); + TIdentityRelation< TMPXAttribute > match ( &TMPXAttribute::Match ); + + const TGlxMedia& item = iMediaList->Item(aItemIndex); + + if (KErrNotFound != aAttributes.Find(titleAttrib, match)) + { + qDebug("GlxMLWrapperPrivate::CheckDetailsAttributes TRUE"); + attribPresent = ETrue; + iMLWrapper->handleDetailsItemAvailable(aItemIndex); + GLX_LOG_INFO1("### GlxMLWrapperPrivate::CheckDetailsAttributes title present %d",aItemIndex); + } +} + // --------------------------------------------------------------------------- // GetItemCount // --------------------------------------------------------------------------- @@ -1319,4 +1381,29 @@ return iMediaList->IsPopulated(); } - +// --------------------------------------------------------------------------- +// SetDescontextL +// --------------------------------------------------------------------------- +// +void GlxMLWrapperPrivate::SetDescontextL() + { + iDescContext = CGlxDefaultAttributeContext::NewL(); + iDescContext->AddAttributeL( KMPXMediaGeneralComment ); + iMediaList->AddContextL( iDescContext, KGlxFetchContextPriorityLow ); + iDetailsContextActivated = ETrue; + } + +// --------------------------------------------------------------------------- +// RemoveDescContext +// --------------------------------------------------------------------------- +// +void GlxMLWrapperPrivate::RemoveDescContext() + { + if(iDescContext ) + { + iMediaList->RemoveContext(iDescContext); + delete iDescContext; + iDescContext = NULL; + iDetailsContextActivated = EFalse; + } + } diff -r 6481344a6d67 -r d0b4e67b3a60 ui/uiengine/model/bwins/glxmediamodelu.def --- a/ui/uiengine/model/bwins/glxmediamodelu.def Fri Jun 11 13:38:23 2010 +0300 +++ b/ui/uiengine/model/bwins/glxmediamodelu.def Wed Jun 23 18:12:48 2010 +0300 @@ -36,4 +36,7 @@ ?index@GlxMediaModel@@UBE?AVQModelIndex@@HHABV2@@Z @ 35 NONAME ; class QModelIndex GlxMediaModel::index(int, int, class QModelIndex const &) const ?GetExternalIconItem@GlxMediaModel@@ABEPAVHbIcon@@HW4GlxTBContextType@@@Z @ 36 NONAME ; class HbIcon * GlxMediaModel::GetExternalIconItem(int, enum GlxTBContextType) const ?albumTitleAvailable@GlxMediaModel@@IAEXVQString@@@Z @ 37 NONAME ; void GlxMediaModel::albumTitleAvailable(class QString) + ?updateDetailsView@GlxMediaModel@@IAEXXZ @ 38 NONAME ; void GlxMediaModel::updateDetailsView(void) + ?removeContextMode@GlxMediaModel@@AAEXW4GlxContextMode@@@Z @ 39 NONAME ; void GlxMediaModel::removeContextMode(enum GlxContextMode) + ?updateDetailItems@GlxMediaModel@@QAEXXZ @ 40 NONAME ; void GlxMediaModel::updateDetailItems(void) diff -r 6481344a6d67 -r d0b4e67b3a60 ui/uiengine/model/bwins/glxmodelwrapperu.def --- a/ui/uiengine/model/bwins/glxmodelwrapperu.def Fri Jun 11 13:38:23 2010 +0300 +++ b/ui/uiengine/model/bwins/glxmodelwrapperu.def Wed Jun 23 18:12:48 2010 +0300 @@ -11,24 +11,24 @@ ?getStaticMetaObject@GlxModelWrapper@@SAABUQMetaObject@@XZ @ 10 NONAME ; struct QMetaObject const & GlxModelWrapper::getStaticMetaObject(void) ?index@GlxModelWrapper@@UBE?AVQModelIndex@@HHABV2@@Z @ 11 NONAME ; class QModelIndex GlxModelWrapper::index(int, int, class QModelIndex const &) const ?rowsAboutToBeInserted@GlxModelWrapper@@IAEXABVQModelIndex@@HH@Z @ 12 NONAME ; void GlxModelWrapper::rowsAboutToBeInserted(class QModelIndex const &, int, int) - ?data@GlxModelWrapper@@UBE?AVQVariant@@ABVQModelIndex@@H@Z @ 13 NONAME ; class QVariant GlxModelWrapper::data(class QModelIndex const &, int) const - ?staticMetaObject@GlxModelWrapper@@2UQMetaObject@@B @ 14 NONAME ; struct QMetaObject const GlxModelWrapper::staticMetaObject - ?scrollingEnded@GlxModelWrapper@@QAEXXZ @ 15 NONAME ; void GlxModelWrapper::scrollingEnded(void) - ?rowsRemoved@GlxModelWrapper@@IAEXABVQModelIndex@@HH@Z @ 16 NONAME ; void GlxModelWrapper::rowsRemoved(class QModelIndex const &, int, int) - ?basemodelindex@GlxModelWrapper@@QBE?AVQModelIndex@@HHABV2@@Z @ 17 NONAME ; class QModelIndex GlxModelWrapper::basemodelindex(int, int, class QModelIndex const &) const - ?columnCount@GlxModelWrapper@@UBEHABVQModelIndex@@@Z @ 18 NONAME ; int GlxModelWrapper::columnCount(class QModelIndex const &) const - ?parent@GlxModelWrapper@@UBE?AVQModelIndex@@ABV2@@Z @ 19 NONAME ; class QModelIndex GlxModelWrapper::parent(class QModelIndex const &) const - ?rowsInserted@GlxModelWrapper@@IAEXABVQModelIndex@@HH@Z @ 20 NONAME ; void GlxModelWrapper::rowsInserted(class QModelIndex const &, int, int) - ?disConnectFromModel@GlxModelWrapper@@AAEXXZ @ 21 NONAME ; void GlxModelWrapper::disConnectFromModel(void) - ?metaObject@GlxModelWrapper@@UBEPBUQMetaObject@@XZ @ 22 NONAME ; struct QMetaObject const * GlxModelWrapper::metaObject(void) const - ??1GlxModelWrapper@@UAE@XZ @ 23 NONAME ; GlxModelWrapper::~GlxModelWrapper(void) - ?connectToModel@GlxModelWrapper@@AAEXXZ @ 24 NONAME ; void GlxModelWrapper::connectToModel(void) - ?setModel@GlxModelWrapper@@QAEXPAVQAbstractItemModel@@@Z @ 25 NONAME ; void GlxModelWrapper::setModel(class QAbstractItemModel *) - ?tr@GlxModelWrapper@@SA?AVQString@@PBD0H@Z @ 26 NONAME ; class QString GlxModelWrapper::tr(char const *, char const *, int) - ?qt_metacall@GlxModelWrapper@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 27 NONAME ; int GlxModelWrapper::qt_metacall(enum QMetaObject::Call, int, void * *) - ?setRoles@GlxModelWrapper@@QAEXHH@Z @ 28 NONAME ; void GlxModelWrapper::setRoles(int, int) - ?scrollingStarted@GlxModelWrapper@@QAEXXZ @ 29 NONAME ; void GlxModelWrapper::scrollingStarted(void) - ?trUtf8@GlxModelWrapper@@SA?AVQString@@PBD0H@Z @ 30 NONAME ; class QString GlxModelWrapper::trUtf8(char const *, char const *, int) - ?qt_metacast@GlxModelWrapper@@UAEPAXPBD@Z @ 31 NONAME ; void * GlxModelWrapper::qt_metacast(char const *) - ?resetTheModel@GlxModelWrapper@@AAEXXZ @ 32 NONAME ; void GlxModelWrapper::resetTheModel(void) + ?resetTheModel@GlxModelWrapper@@AAEXXZ @ 13 NONAME ; void GlxModelWrapper::resetTheModel(void) + ?data@GlxModelWrapper@@UBE?AVQVariant@@ABVQModelIndex@@H@Z @ 14 NONAME ; class QVariant GlxModelWrapper::data(class QModelIndex const &, int) const + ?staticMetaObject@GlxModelWrapper@@2UQMetaObject@@B @ 15 NONAME ; struct QMetaObject const GlxModelWrapper::staticMetaObject + ?scrollingEnded@GlxModelWrapper@@QAEXXZ @ 16 NONAME ; void GlxModelWrapper::scrollingEnded(void) + ?rowsRemoved@GlxModelWrapper@@IAEXABVQModelIndex@@HH@Z @ 17 NONAME ; void GlxModelWrapper::rowsRemoved(class QModelIndex const &, int, int) + ?basemodelindex@GlxModelWrapper@@QBE?AVQModelIndex@@HHABV2@@Z @ 18 NONAME ; class QModelIndex GlxModelWrapper::basemodelindex(int, int, class QModelIndex const &) const + ?columnCount@GlxModelWrapper@@UBEHABVQModelIndex@@@Z @ 19 NONAME ; int GlxModelWrapper::columnCount(class QModelIndex const &) const + ?parent@GlxModelWrapper@@UBE?AVQModelIndex@@ABV2@@Z @ 20 NONAME ; class QModelIndex GlxModelWrapper::parent(class QModelIndex const &) const + ?rowsInserted@GlxModelWrapper@@IAEXABVQModelIndex@@HH@Z @ 21 NONAME ; void GlxModelWrapper::rowsInserted(class QModelIndex const &, int, int) + ?disConnectFromModel@GlxModelWrapper@@AAEXXZ @ 22 NONAME ; void GlxModelWrapper::disConnectFromModel(void) + ?metaObject@GlxModelWrapper@@UBEPBUQMetaObject@@XZ @ 23 NONAME ; struct QMetaObject const * GlxModelWrapper::metaObject(void) const + ??1GlxModelWrapper@@UAE@XZ @ 24 NONAME ; GlxModelWrapper::~GlxModelWrapper(void) + ?connectToModel@GlxModelWrapper@@AAEXXZ @ 25 NONAME ; void GlxModelWrapper::connectToModel(void) + ?setModel@GlxModelWrapper@@QAEXPAVQAbstractItemModel@@@Z @ 26 NONAME ; void GlxModelWrapper::setModel(class QAbstractItemModel *) + ?tr@GlxModelWrapper@@SA?AVQString@@PBD0H@Z @ 27 NONAME ; class QString GlxModelWrapper::tr(char const *, char const *, int) + ?qt_metacall@GlxModelWrapper@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 28 NONAME ; int GlxModelWrapper::qt_metacall(enum QMetaObject::Call, int, void * *) + ?setRoles@GlxModelWrapper@@QAEXHH@Z @ 29 NONAME ; void GlxModelWrapper::setRoles(int, int) + ?scrollingStarted@GlxModelWrapper@@QAEXXZ @ 30 NONAME ; void GlxModelWrapper::scrollingStarted(void) + ?trUtf8@GlxModelWrapper@@SA?AVQString@@PBD0H@Z @ 31 NONAME ; class QString GlxModelWrapper::trUtf8(char const *, char const *, int) + ?qt_metacast@GlxModelWrapper@@UAEPAXPBD@Z @ 32 NONAME ; void * GlxModelWrapper::qt_metacast(char const *) diff -r 6481344a6d67 -r d0b4e67b3a60 ui/uiengine/model/eabi/glxmediamodelu.def --- a/ui/uiengine/model/eabi/glxmediamodelu.def Fri Jun 11 13:38:23 2010 +0300 +++ b/ui/uiengine/model/eabi/glxmediamodelu.def Wed Jun 23 18:12:48 2010 +0300 @@ -36,4 +36,7 @@ _ZNK13GlxMediaModel8rowCountERK11QModelIndex @ 35 NONAME _ZTI13GlxMediaModel @ 36 NONAME _ZTV13GlxMediaModel @ 37 NONAME + _ZN13GlxMediaModel17removeContextModeE14GlxContextMode @ 38 NONAME + _ZN13GlxMediaModel17updateDetailItemsEv @ 39 NONAME + _ZN13GlxMediaModel17updateDetailsViewEv @ 40 NONAME diff -r 6481344a6d67 -r d0b4e67b3a60 ui/uiengine/model/eabi/glxmodelwrapperu.def --- a/ui/uiengine/model/eabi/glxmodelwrapperu.def Fri Jun 11 13:38:23 2010 +0300 +++ b/ui/uiengine/model/eabi/glxmodelwrapperu.def Wed Jun 23 18:12:48 2010 +0300 @@ -3,32 +3,32 @@ _ZN15GlxModelWrapper11qt_metacastEPKc @ 2 NONAME _ZN15GlxModelWrapper11rowsRemovedERK11QModelIndexii @ 3 NONAME _ZN15GlxModelWrapper12rowsInsertedERK11QModelIndexii @ 4 NONAME - _ZN15GlxModelWrapper14connectToModelEv @ 5 NONAME - _ZN15GlxModelWrapper14modelDestroyedEv @ 6 NONAME - _ZN15GlxModelWrapper14scrollingEndedEv @ 7 NONAME - _ZN15GlxModelWrapper16scrollingStartedEv @ 8 NONAME - _ZN15GlxModelWrapper16staticMetaObjectE @ 9 NONAME DATA 16 - _ZN15GlxModelWrapper18dataChangedinModelE11QModelIndexS0_ @ 10 NONAME - _ZN15GlxModelWrapper19disConnectFromModelEv @ 11 NONAME - _ZN15GlxModelWrapper19getStaticMetaObjectEv @ 12 NONAME - _ZN15GlxModelWrapper20rowsAboutToBeRemovedERK11QModelIndexii @ 13 NONAME - _ZN15GlxModelWrapper21rowsAboutToBeInsertedERK11QModelIndexii @ 14 NONAME - _ZN15GlxModelWrapper7setDataERK11QModelIndexRK8QVarianti @ 15 NONAME - _ZN15GlxModelWrapper8setModelEP18QAbstractItemModel @ 16 NONAME - _ZN15GlxModelWrapper8setRolesEii @ 17 NONAME - _ZN15GlxModelWrapperC1Ev @ 18 NONAME - _ZN15GlxModelWrapperC2Ev @ 19 NONAME - _ZN15GlxModelWrapperD0Ev @ 20 NONAME - _ZN15GlxModelWrapperD1Ev @ 21 NONAME - _ZN15GlxModelWrapperD2Ev @ 22 NONAME - _ZNK15GlxModelWrapper10metaObjectEv @ 23 NONAME - _ZNK15GlxModelWrapper11columnCountERK11QModelIndex @ 24 NONAME - _ZNK15GlxModelWrapper14basemodelindexEiiRK11QModelIndex @ 25 NONAME - _ZNK15GlxModelWrapper4dataERK11QModelIndexi @ 26 NONAME - _ZNK15GlxModelWrapper5indexEiiRK11QModelIndex @ 27 NONAME - _ZNK15GlxModelWrapper6parentERK11QModelIndex @ 28 NONAME - _ZNK15GlxModelWrapper8rowCountERK11QModelIndex @ 29 NONAME - _ZTI15GlxModelWrapper @ 30 NONAME - _ZTV15GlxModelWrapper @ 31 NONAME - _ZN15GlxModelWrapper13resetTheModelEv @ 32 NONAME + _ZN15GlxModelWrapper13resetTheModelEv @ 5 NONAME + _ZN15GlxModelWrapper14connectToModelEv @ 6 NONAME + _ZN15GlxModelWrapper14modelDestroyedEv @ 7 NONAME + _ZN15GlxModelWrapper14scrollingEndedEv @ 8 NONAME + _ZN15GlxModelWrapper16scrollingStartedEv @ 9 NONAME + _ZN15GlxModelWrapper16staticMetaObjectE @ 10 NONAME DATA 16 + _ZN15GlxModelWrapper18dataChangedinModelE11QModelIndexS0_ @ 11 NONAME + _ZN15GlxModelWrapper19disConnectFromModelEv @ 12 NONAME + _ZN15GlxModelWrapper19getStaticMetaObjectEv @ 13 NONAME + _ZN15GlxModelWrapper20rowsAboutToBeRemovedERK11QModelIndexii @ 14 NONAME + _ZN15GlxModelWrapper21rowsAboutToBeInsertedERK11QModelIndexii @ 15 NONAME + _ZN15GlxModelWrapper7setDataERK11QModelIndexRK8QVarianti @ 16 NONAME + _ZN15GlxModelWrapper8setModelEP18QAbstractItemModel @ 17 NONAME + _ZN15GlxModelWrapper8setRolesEii @ 18 NONAME + _ZN15GlxModelWrapperC1Ev @ 19 NONAME + _ZN15GlxModelWrapperC2Ev @ 20 NONAME + _ZN15GlxModelWrapperD0Ev @ 21 NONAME + _ZN15GlxModelWrapperD1Ev @ 22 NONAME + _ZN15GlxModelWrapperD2Ev @ 23 NONAME + _ZNK15GlxModelWrapper10metaObjectEv @ 24 NONAME + _ZNK15GlxModelWrapper11columnCountERK11QModelIndex @ 25 NONAME + _ZNK15GlxModelWrapper14basemodelindexEiiRK11QModelIndex @ 26 NONAME + _ZNK15GlxModelWrapper4dataERK11QModelIndexi @ 27 NONAME + _ZNK15GlxModelWrapper5indexEiiRK11QModelIndex @ 28 NONAME + _ZNK15GlxModelWrapper6parentERK11QModelIndex @ 29 NONAME + _ZNK15GlxModelWrapper8rowCountERK11QModelIndex @ 30 NONAME + _ZTI15GlxModelWrapper @ 31 NONAME + _ZTV15GlxModelWrapper @ 32 NONAME diff -r 6481344a6d67 -r d0b4e67b3a60 ui/uiengine/model/favmediamodel/favmediamodel.pro --- a/ui/uiengine/model/favmediamodel/favmediamodel.pro Fri Jun 11 13:38:23 2010 +0300 +++ b/ui/uiengine/model/favmediamodel/favmediamodel.pro Wed Jun 23 18:12:48 2010 +0300 @@ -43,3 +43,12 @@ SOURCES += src/glxfavmediamodel.cpp DEFINES += QT_NO_DEBUG_OUTPUT QT_NO_WARNING_OUTPUT + +defBlock = \ +"$${LITERAL_HASH}if defined(EABI)" \ +"DEFFILE ../eabi/glxfavmediamodel.def" \ + "$${LITERAL_HASH}else" \ + "DEFFILE ../bwins/glxfavmediamodel.def" \ + "$${LITERAL_HASH}endif" + +MMP_RULES += defBlock diff -r 6481344a6d67 -r d0b4e67b3a60 ui/uiengine/model/listmodel/listmodel.pro --- a/ui/uiengine/model/listmodel/listmodel.pro Fri Jun 11 13:38:23 2010 +0300 +++ b/ui/uiengine/model/listmodel/listmodel.pro Wed Jun 23 18:12:48 2010 +0300 @@ -37,4 +37,13 @@ HEADERS += inc/glxalbummodel.h SOURCES += src/glxalbummodel.cpp -DEFINES += QT_NO_DEBUG_OUTPUT QT_NO_WARNING_OUTPUT \ No newline at end of file +DEFINES += QT_NO_DEBUG_OUTPUT QT_NO_WARNING_OUTPUT + +defBlock = \ +"$${LITERAL_HASH}if defined(EABI)" \ +"DEFFILE ../eabi/glxlistmodel.def" \ + "$${LITERAL_HASH}else" \ + "DEFFILE ../bwins/glxlistmodel.def" \ + "$${LITERAL_HASH}endif" + +MMP_RULES += defBlock diff -r 6481344a6d67 -r d0b4e67b3a60 ui/uiengine/model/mediamodel/inc/glxmediamodel.h --- a/ui/uiengine/model/mediamodel/inc/glxmediamodel.h Fri Jun 11 13:38:23 2010 +0300 +++ b/ui/uiengine/model/mediamodel/inc/glxmediamodel.h Wed Jun 23 18:12:48 2010 +0300 @@ -76,6 +76,10 @@ * for setting the attribute context mode will be used mainly for retreiving thumbnail of different sizes. */ void setContextMode(GlxContextMode contextMode); + /* + *Removes the context + */ + void removeContextMode(GlxContextMode contextMode); void setFocusIndex(const QModelIndex &index); QModelIndex getFocusIndex() const; void setSelectedIndex(const QModelIndex &index); @@ -84,6 +88,10 @@ signals : void iconAvailable(int itemIndex, HbIcon* itemIcon, GlxTBContextType tbContextType) const; + /* + *signal to update the details view + */ + void updateDetailsView(); public slots: void itemUpdated1(int mlIndex, GlxTBContextType tbContextType); void itemsAdded(int startIndex, int endIndex); @@ -91,6 +99,10 @@ void itemCorrupted(int itemIndex); void albumTitleUpdated(QString aTitle); void modelpopulated(); + /* + *Emits signal to update the details view + */ + void updateDetailItems(); protected: private slots: diff -r 6481344a6d67 -r d0b4e67b3a60 ui/uiengine/model/mediamodel/mediamodel.pro --- a/ui/uiengine/model/mediamodel/mediamodel.pro Fri Jun 11 13:38:23 2010 +0300 +++ b/ui/uiengine/model/mediamodel/mediamodel.pro Wed Jun 23 18:12:48 2010 +0300 @@ -25,7 +25,7 @@ CONFIG += hb LIBS += -lglxmedialistwrapper.dll \ - -lglxloggerqt.dll + -lglxloggerqt.dll DEFINES += BUILD_MEDIAMODEL @@ -43,3 +43,13 @@ SOURCES += src/glxmediamodel.cpp DEFINES += QT_NO_DEBUG_OUTPUT QT_NO_WARNING_OUTPUT + +defBlock = \ +"$${LITERAL_HASH}if defined(EABI)" \ +"DEFFILE ../eabi/glxmediamodel.def" \ + "$${LITERAL_HASH}else" \ + "DEFFILE ../bwins/glxmediamodel.def" \ + "$${LITERAL_HASH}endif" + +MMP_RULES += defBlock + diff -r 6481344a6d67 -r d0b4e67b3a60 ui/uiengine/model/mediamodel/src/glxmediamodel.cpp --- a/ui/uiengine/model/mediamodel/src/glxmediamodel.cpp Fri Jun 11 13:38:23 2010 +0300 +++ b/ui/uiengine/model/mediamodel/src/glxmediamodel.cpp Wed Jun 23 18:12:48 2010 +0300 @@ -23,8 +23,6 @@ #include #include #include -#include -#include #include #include @@ -55,7 +53,7 @@ err = connect( mMLWrapper, SIGNAL(updateAlbumTitle(QString)), this, SLOT(albumTitleUpdated(QString))); qDebug("updateAlbumTitle() connection status %d", err); err = connect(mMLWrapper, SIGNAL(populated()), this, SLOT(modelpopulated())); - //itemadded.resize(mMLWrapper->getItemCount()); + err = connect(mMLWrapper, SIGNAL(updateDetails()), this, SLOT(updateDetailItems())); itemIconCache.setMaxCost(20); //Changed While Doing Media Wall itemFsIconCache.setMaxCost(5); @@ -73,40 +71,55 @@ { //itemadded.clear(); qDebug("GlxMediaModel::~GlxMediaModel"); - int freeMemory = 0; - int err1 = HAL::Get( HALData::EMemoryRAMFree, freeMemory ); - qDebug("####mediaModel : Memory available before cache cleanup = %d and error is = %d ", freeMemory , err1 ); itemIconCache.clear(); itemFsIconCache.clear(); delete m_DefaultIcon; m_DefaultIcon = NULL; clearExternalItems(); - err1 = HAL::Get( HALData::EMemoryRAMFree, freeMemory ); - qDebug("####mediaModel : Memory available after cache cleanup = %d and error is = %d ", freeMemory , err1 ); - int err = disconnect(mMLWrapper, SIGNAL(updateItem(int, GlxTBContextType)), this, SLOT(itemUpdated1(int, GlxTBContextType))); + int err = disconnect(mMLWrapper, SIGNAL(updateItem(int, GlxTBContextType)), this, SLOT(itemUpdated1(int, GlxTBContextType))); err = disconnect(mMLWrapper, SIGNAL(itemCorrupted(int)), this, SLOT(itemCorrupted(int))); err = disconnect(mMLWrapper, SIGNAL(insertItems(int, int)), this, SLOT(itemsAdded(int, int))); err = disconnect(mMLWrapper, SIGNAL(removeItems(int, int)), this, SLOT(itemsRemoved(int, int))); err = disconnect(this, SIGNAL(iconAvailable(int, HbIcon*, GlxTBContextType)), this, SLOT(updateItemIcon(int, HbIcon*, GlxTBContextType))); err = disconnect(mMLWrapper, SIGNAL(updateAlbumTitle(QString)), this, SLOT(albumTitleUpdated(QString))); err = disconnect(mMLWrapper, SIGNAL(populated()), this, SLOT(modelpopulated())); + err = disconnect(mMLWrapper, SIGNAL(updateDetails()), this, SLOT(updateDetailItems())); delete mMLWrapper; } +//------------------------------------------------------------------------------------------------------------ +//setContextMode +//------------------------------------------------------------------------------------------------------------ void GlxMediaModel::setContextMode(GlxContextMode contextMode) { - if(mContextMode != contextMode) { + if(contextMode == GlxContextComment) + { + mMLWrapper->setContextMode(contextMode); + } + else + { + if(mContextMode != contextMode) { + itemFsIconCache.clear(); mMLWrapper->setContextMode(contextMode); mContextMode = contextMode; if ( mContextMode == GlxContextLsGrid || mContextMode == GlxContextPtGrid ) { itemIconCache.clear(); //emit dataChanged( index( 0, 0), index( rowCount() - 1, 0) ); // Not Needed for HgWidget - } - } + } + } + } } +//------------------------------------------------------------------------------------------------------------ +//removeContextMode +//------------------------------------------------------------------------------------------------------------ +void GlxMediaModel::removeContextMode(GlxContextMode contextMode) + { + mMLWrapper->removeContextMode(contextMode); + } + //to add external data to the model void GlxMediaModel::addExternalItems(GlxExternalData* externalItems) { @@ -314,7 +327,18 @@ if (role == GlxHdmiBitmap) { return mMLWrapper->RetrieveBitmap(itemIndex); } - + + if (role == GlxTimeRole) { + return mMLWrapper->retrieveItemTime(itemIndex); + } + + if (role == GlxSizeRole) { + return mMLWrapper->retrieveItemSize(itemIndex); + } + + if (role == GlxDescRole) { + return mMLWrapper->retrieveListDesc(itemIndex); + } return QVariant(); } @@ -386,6 +410,15 @@ emit populated(); } +//------------------------------------------------------------------------------------------------------------ +//updateDetailItems +//------------------------------------------------------------------------------------------------------------ +void GlxMediaModel::updateDetailItems() +{ + qDebug("GlxMediaModel::updateDetailItems"); + emit updateDetailsView(); +} + void GlxMediaModel::itemsAdded(int startIndex, int endIndex) { qDebug("GlxMediaModel::itemsAdded %d %d", startIndex, endIndex); @@ -486,6 +519,14 @@ } } + if ( GlxRemoveContextRole == role ) { + if ( value.isValid() && value.canConvert () ) { + removeContextMode( (GlxContextMode) value.value () ); + return TRUE; + } + } + + if ( GlxFocusIndexRole == role ) { if ( value.isValid() && value.canConvert () ) { setFocusIndex( index( value.value (), 0) ); diff -r 6481344a6d67 -r d0b4e67b3a60 ui/uiengine/model/modelwrapper/modelwrapper.pro --- a/ui/uiengine/model/modelwrapper/modelwrapper.pro Fri Jun 11 13:38:23 2010 +0300 +++ b/ui/uiengine/model/modelwrapper/modelwrapper.pro Wed Jun 23 18:12:48 2010 +0300 @@ -35,4 +35,13 @@ HEADERS += inc/glxmodelwrapper.h SOURCES += src/glxmodelwrapper.cpp -DEFINES += QT_NO_DEBUG_OUTPUT QT_NO_WARNING_OUTPUT \ No newline at end of file +DEFINES += QT_NO_DEBUG_OUTPUT QT_NO_WARNING_OUTPUT + +defBlock = \ +"$${LITERAL_HASH}if defined(EABI)" \ +"DEFFILE ../eabi/glxmodelwrapper.def" \ + "$${LITERAL_HASH}else" \ + "DEFFILE ../bwins/glxmodelwrapper.def" \ + "$${LITERAL_HASH}endif" + +MMP_RULES += defBlock diff -r 6481344a6d67 -r d0b4e67b3a60 ui/viewmanagement/bwins/glxstatehandleru.def --- a/ui/viewmanagement/bwins/glxstatehandleru.def Fri Jun 11 13:38:23 2010 +0300 +++ b/ui/viewmanagement/bwins/glxstatehandleru.def Wed Jun 23 18:12:48 2010 +0300 @@ -34,4 +34,7 @@ ?exitMarkingMode@GlxStateManager@@QAEXXZ @ 33 NONAME ; void GlxStateManager::exitMarkingMode(void) ?removeCurrentModel@GlxStateManager@@QAEXXZ @ 34 NONAME ; void GlxStateManager::removeCurrentModel(void) ?createModel@GlxStateManager@@AAEXHW4NavigationDir@@@Z @ 35 NONAME ; void GlxStateManager::createModel(int, enum NavigationDir) + ?eventFilter@GlxStateManager@@UAE_NPAVQObject@@PAVQEvent@@@Z @ 36 NONAME ; bool GlxStateManager::eventFilter(class QObject *, class QEvent *) + ?vanishProgressDialog@GlxStateManager@@AAEXXZ @ 37 NONAME ; void GlxStateManager::vanishProgressDialog(void) + ?launchProgressDialog@GlxStateManager@@AAEXXZ @ 38 NONAME ; void GlxStateManager::launchProgressDialog(void) diff -r 6481344a6d67 -r d0b4e67b3a60 ui/viewmanagement/eabi/glxstatehandleru.def --- a/ui/viewmanagement/eabi/glxstatehandleru.def Fri Jun 11 13:38:23 2010 +0300 +++ b/ui/viewmanagement/eabi/glxstatehandleru.def Wed Jun 23 18:12:48 2010 +0300 @@ -34,4 +34,7 @@ _ZNK15GlxStateManager10metaObjectEv @ 33 NONAME _ZTI15GlxStateManager @ 34 NONAME _ZTV15GlxStateManager @ 35 NONAME + _ZN15GlxStateManager11eventFilterEP7QObjectP6QEvent @ 36 NONAME + _ZN15GlxStateManager20launchProgressDialogEv @ 37 NONAME + _ZN15GlxStateManager20vanishProgressDialogEv @ 38 NONAME diff -r 6481344a6d67 -r d0b4e67b3a60 ui/viewmanagement/statehandler/inc/glxstatemanager.h --- a/ui/viewmanagement/statehandler/inc/glxstatemanager.h Fri Jun 11 13:38:23 2010 +0300 +++ b/ui/viewmanagement/statehandler/inc/glxstatemanager.h Wed Jun 23 18:12:48 2010 +0300 @@ -45,83 +45,157 @@ friend class TestGlxStateManager; public : + /* + * Constructor + */ GlxStateManager(); + + /* + * Destructor + */ virtual ~GlxStateManager(); + + /* + * Fuction to launch the application from some external world + */ void launchFromExternal(); + + /* + * Clean the all externel data + */ void cleanupExternal(); - //internal exposed function + /* + * Move the views to the multiple item selection state + */ void enterMarkingMode(); + + /* + * Exit from the multiselection state + */ void exitMarkingMode(); + + /* + * Execute the commant on multiple selected item + */ bool executeCommand(qint32 commandId); + + /* + * when application goes into background or come back to foreground + * set and reset the background thumbnail generation property + */ + bool eventFilter(QObject *obj, QEvent *ev); -signals : +signals : + /* + * Send the user activities ( command ) to the external world + */ void externalCommand(int cmdId); + + /* + * TO send the signal to initialise the rest of items + * which is not created in the launch sequence + */ void setupItemsSignal(); public slots: + /* + * To launch the application + */ void launchApplication(); + + /* + * To handle the user action, view switching etc + */ void actionTriggered(qint32 id); + + /* + * To create the items which is not created in the aluch sequence + */ void setupItems(); + + /* + * call back function to monitor the change in thumbnail manager + */ void updateTNProgress( int count); public : -/* - * It will create a new state and replace the current state with new state in the stack. - * It will use in the case of state switching. - * use -1 if state does not have internal state - */ + /* + * It will create a new state and replace the current state with new state in the stack. + * It will use in the case of state switching. + * use -1 if state does not have internal state + */ void changeState(qint32 newStateId, int internalState ); -/* - * Go back to previous state - */ + + /* + * Go back to previous state + */ void previousState(); -/* - * Go back to a state in hierarchy and pop all the state upto that level. - * if state is not found, then all the state from the hierachy is removed and create a new state on level 0 - * This function will be use in the case when more then one back is required in single event. - */ + /* + * Go back to a state in hierarchy and pop all the state upto that level. + * if state is not found, then all the state from the hierachy is removed and create a new state on level 0 + * This function will be use in the case when more then one back is required in single event. + */ void goBack(qint32 stateId, int internalState); -/* - * Create a new state and current state should be pushed into stack. - * use -1 if state does not have internal state - */ + /* + * Create a new state and current state should be pushed into stack. + * use -1 if state does not have internal state + */ void nextState(qint32 newStateId, int internalState ); -/* - * It will delete the current model - */ + /* + * It will delete the current model + */ void removeCurrentModel(); -/* - * It will delete the all model used by state manager - */ + /* + * It will delete the all model used by state manager + */ void cleanAllModel(); private: -/* - * Factory function to create the state. - */ + + /* + * Launch the harvesting and TN generation progress bar dialog + */ + void launchProgressDialog(); + + /* + * remove the harvesting and TN generation progress bar dialog + */ + void vanishProgressDialog(); + + /* + * Factory function to create the state. + */ GlxState * createState(qint32 state); -/* - * Factory function to create the model. - */ + + /* + * Factory function to create the model. + */ void createModel(qint32 stateId, NavigationDir dir = NO_DIR); -/* - * Factory function to create the grid model. - */ + + /* + * Factory function to create the grid model. + */ void createGridModel(int internalState, NavigationDir dir = NO_DIR); -/* - * To set the fullscreen context based on the currrent orientation - */ + + /* + * To set the fullscreen context based on the currrent orientation + */ void setFullScreenContext(); + + /* + * Apllication event handler function + */ void eventHandler(qint32 &id); -/* - * A function to care the exit for application, in the case when application launch from internal and external - */ + + /* + * A function to care the exit for application, in the case when application launch from internal and external + */ void exitApplication(); private: diff -r 6481344a6d67 -r d0b4e67b3a60 ui/viewmanagement/statehandler/src/glxactionhandler.cpp --- a/ui/viewmanagement/statehandler/src/glxactionhandler.cpp Fri Jun 11 13:38:23 2010 +0300 +++ b/ui/viewmanagement/statehandler/src/glxactionhandler.cpp Wed Jun 23 18:12:48 2010 +0300 @@ -28,8 +28,7 @@ GlxActionHandler::~GlxActionHandler() { - foreach( GlxCommandHandler *cmdhandler, mCommandHandlerList) - delete cmdhandler; + qDeleteAll( mCommandHandlerList ); mCommandHandlerList.clear(); } diff -r 6481344a6d67 -r d0b4e67b3a60 ui/viewmanagement/statehandler/src/glxcommandhandlerfactory.cpp --- a/ui/viewmanagement/statehandler/src/glxcommandhandlerfactory.cpp Fri Jun 11 13:38:23 2010 +0300 +++ b/ui/viewmanagement/statehandler/src/glxcommandhandlerfactory.cpp Wed Jun 23 18:12:48 2010 +0300 @@ -25,6 +25,7 @@ #include #include #include +#include GlxCommandHandler* GlxCommandHandlerFactory::CreateCommandHandler(int commandId) @@ -52,7 +53,10 @@ case EGlxCmdRename: cmdHandler = new GlxCommandHandlerRename(); break; - + + case EGlxCmdComment: cmdHandler = new GlxCommandHandlerComment(); + break; + default: break; } diff -r 6481344a6d67 -r d0b4e67b3a60 ui/viewmanagement/statehandler/src/glxstatemanager.cpp --- a/ui/viewmanagement/statehandler/src/glxstatemanager.cpp Fri Jun 11 13:38:23 2010 +0300 +++ b/ui/viewmanagement/statehandler/src/glxstatemanager.cpp Wed Jun 23 18:12:48 2010 +0300 @@ -15,34 +15,40 @@ * */ -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include +//include #include -#include #include #include #include #include +#include + +//user includes +#include "glxstatemanager.h" +#include "glxviewmanager.h" +#include "glxviewids.h" +#include "glxmediamodel.h" +#include "glxgridstate.h" +#include "glxliststate.h" +#include "glxfullscreenstate.h" +#include "glxdetailstate.h" +#include "glxslideshowsettingsstate.h" +#include "glxslideshowstate.h" +#include "glxtnobserver.h" +#include "glxmodelparm.h" +#include "glxcollectionpluginall.hrh" +#include "glxcollectionplugincamera.hrh" +#include "glxcollectionpluginalbums.hrh" +#include "glxcollectionpluginimageviewer.hrh" +#include "glxexternalutility.h" +#include "glxalbummodel.h" +#include "glxloggerenabler.h" +#include "glxmediaid.h" +#include "glxactionhandler.h" +#include "glxcommandhandlers.hrh" +#include "glxplugincommandid.hrh" +#include "glxlog.h" +#include "glxtracer.h" GlxStateManager::GlxStateManager() @@ -98,6 +104,20 @@ return TRUE; } +bool GlxStateManager::eventFilter(QObject *obj, QEvent *event) +{ + TRACER("GlxStateManager::eventFilter() "); + GLX_LOG_INFO1("GlxStateManager::eventFilter() %d event type", event->type()); + + if ( event->type() == QEvent::ApplicationActivate ) { + mTNObserver->startTNMDaemon(); + } + if ( event->type() == QEvent::ApplicationDeactivate ) { + mTNObserver->stopTNMDaemon(); + } + return QObject::eventFilter(obj, event); +} + void GlxStateManager::launchApplication() { qDebug("GlxStateManager::launchApplication"); @@ -108,8 +128,7 @@ if ( mTNObserver->getTNLeftCount() > 0 ) { mViewManager->launchApplication( GLX_GRIDVIEW_ID, mCurrentModel); - mViewManager->launchProgressDialog( mTNObserver->getTNLeftCount() ); - isProgressbarRunning = true ; + launchProgressDialog(); } else { createModel( GLX_GRIDVIEW_ID ); @@ -151,24 +170,25 @@ void GlxStateManager::updateTNProgress( int count) { + TRACER("GlxStateManager::updateTNProgress() "); // this is case when progress bar is not showing // in the case of rename of an image or capture the single item // it is also launching the progress bar, to avoid this scenario add the check of count more than 5 if ( mCurrentModel && count > 5 ) { goBack( GLX_GRIDVIEW_ID, ALL_ITEM_S ) ; - cleanAllModel(); - mViewManager->launchProgressDialog ( count ) ; - isProgressbarRunning = true ; + cleanAllModel(); + launchProgressDialog(); } if ( isProgressbarRunning ){ if ( count == 0 ) { createModel( mCurrentState->id() ); mViewManager->setModel( mCurrentModel ); - isProgressbarRunning = false; + vanishProgressDialog(); } - - mViewManager->updateProgressDialog( count ); + else { + mViewManager->updateProgressDialog( count ); + } } } @@ -282,6 +302,7 @@ void GlxStateManager::removeCurrentModel() { + TRACER("GlxStateManager::removeCurrentModel() "); if ( mCurrentModel == mAllMediaModel ) { qDebug("GlxStateManager::removeCurrentModel() remove all media model"); delete mAllMediaModel ; @@ -308,6 +329,7 @@ void GlxStateManager::cleanAllModel() { + TRACER("GlxStateManager::cleanAllModel() "); delete mAllMediaModel ; mAllMediaModel = NULL ; delete mAlbumMediaModel ; @@ -319,6 +341,28 @@ mCurrentModel = NULL ; } +void GlxStateManager::launchProgressDialog() +{ + TRACER("GlxStateManager::launchProgressDialog() "); + //HbMainWindow *window = hbInstance->allMainWindows().first(); + //window->setAutomaticOrientationEffectEnabled( true ); + + QCoreApplication::instance()->installEventFilter( this ); + mViewManager->launchProgressDialog( mTNObserver->getTNLeftCount() ); + isProgressbarRunning = true ; +} + +void GlxStateManager::vanishProgressDialog() +{ + TRACER("GlxStateManager::vanishProgressDialog() "); + //HbMainWindow *window = hbInstance->allMainWindows().first(); + //window->setAutomaticOrientationEffectEnabled( false ); + + QCoreApplication::instance()->removeEventFilter( this ); + isProgressbarRunning = false; + mViewManager->updateProgressDialog( 0 ); +} + GlxState * GlxStateManager::createState(qint32 stateId) { qDebug("GlxStateManager::createState state id = %d", stateId); @@ -566,18 +610,6 @@ emit setupItemsSignal(); break; - case EGlxCmdAppBackground : - if ( isProgressbarRunning ){ - mTNObserver->stopTNMDaemon(); - } - break; - - case EGlxCmdAppForeground : - if ( isProgressbarRunning ){ - mTNObserver->startTNMDaemon(); - } - break; - default : mActionHandler->handleAction(id,mCollectionId); break; diff -r 6481344a6d67 -r d0b4e67b3a60 ui/viewmanagement/statehandler/src/glxtnobserver.cpp --- a/ui/viewmanagement/statehandler/src/glxtnobserver.cpp Fri Jun 11 13:38:23 2010 +0300 +++ b/ui/viewmanagement/statehandler/src/glxtnobserver.cpp Wed Jun 23 18:12:48 2010 +0300 @@ -66,5 +66,6 @@ GlxTNObserver::~GlxTNObserver() { TRACER("GlxTNObserver::~GlxTNObserver() "); + RProperty::Set( KTAGDPSNotification, KForceBackgroundGeneration, EFalse ); delete mTNMonitor; } diff -r 6481344a6d67 -r d0b4e67b3a60 ui/viewmanagement/statehandler/statehandler.pro --- a/ui/viewmanagement/statehandler/statehandler.pro Fri Jun 11 13:38:23 2010 +0300 +++ b/ui/viewmanagement/statehandler/statehandler.pro Wed Jun 23 18:12:48 2010 +0300 @@ -77,3 +77,13 @@ src/glxtnobserver.cpp DEFINES += QT_NO_DEBUG_OUTPUT QT_NO_WARNING_OUTPUT + +defBlock = \ +"$${LITERAL_HASH}if defined(EABI)" \ +"DEFFILE ../eabi/glxstatehandler.def" \ + "$${LITERAL_HASH}else" \ + "DEFFILE ../bwins/glxstatehandler.def" \ + "$${LITERAL_HASH}endif" + +MMP_RULES += defBlock + diff -r 6481344a6d67 -r d0b4e67b3a60 ui/viewmanagement/viewmanager/src/glxviewmanager.cpp --- a/ui/viewmanagement/viewmanager/src/glxviewmanager.cpp Fri Jun 11 13:38:23 2010 +0300 +++ b/ui/viewmanagement/viewmanager/src/glxviewmanager.cpp Wed Jun 23 18:12:48 2010 +0300 @@ -70,10 +70,8 @@ void GlxViewManager::setupItems( ) { mMenuManager = new GlxMenuManager(mMainWindow); - addBackSoftKeyAction(); - - addConnection(); - + addBackSoftKeyAction(); + addConnection(); mMenuManager->addMenu( mView->viewId(), mView->menu() ); mMenuManager->setModel( mModel ); } @@ -159,7 +157,7 @@ if ( mEffectEngine == NULL ) { mEffectEngine = new GlxEffectEngine(); mEffectEngine->registerTransitionEffect(); - connect( mEffectEngine, SIGNAL( effectFinished() ), this, SLOT( effectFinished() ) ); + connect( mEffectEngine, SIGNAL( effectFinished() ), this, SLOT( effectFinished() ), Qt::QueuedConnection ); } QList< QGraphicsItem * > itemList; @@ -587,7 +585,7 @@ connect(mBackAction, SIGNAL( triggered() ), this, SLOT( handleAction() )); if ( mEffectEngine ) { - connect( mEffectEngine, SIGNAL( effectFinished() ), this, SLOT( effectFinished() ) ); + connect( mEffectEngine, SIGNAL( effectFinished() ), this, SLOT( effectFinished() ), Qt::QueuedConnection ); } } diff -r 6481344a6d67 -r d0b4e67b3a60 ui/viewmanagement/viewmanager/viewmanager.pro --- a/ui/viewmanagement/viewmanager/viewmanager.pro Fri Jun 11 13:38:23 2010 +0300 +++ b/ui/viewmanagement/viewmanager/viewmanager.pro Wed Jun 23 18:12:48 2010 +0300 @@ -49,3 +49,13 @@ src/glxmenumanager.cpp DEFINES += QT_NO_DEBUG_OUTPUT QT_NO_WARNING_OUTPUT + +defBlock = \ +"$${LITERAL_HASH}if defined(EABI)" \ +"DEFFILE ../eabi/glxviewmanager.def" \ + "$${LITERAL_HASH}else" \ + "DEFFILE ../bwins/glxviewmanager.def" \ + "$${LITERAL_HASH}endif" + +MMP_RULES += defBlock + diff -r 6481344a6d67 -r d0b4e67b3a60 ui/views/detailsview/inc/glxdetailsview.h --- a/ui/views/detailsview/inc/glxdetailsview.h Fri Jun 11 13:38:23 2010 +0300 +++ b/ui/views/detailsview/inc/glxdetailsview.h Wed Jun 23 18:12:48 2010 +0300 @@ -20,16 +20,18 @@ #include -class HbDataForm; -class HbDataFormModelItem; -class HbDataFormModel; + class GlxMediaModel; class QAbstractItemModel; class HbIconItem; -class GlxDetailsCustomWidgets; -class GlxDetailsCustomIcon; + class GlxFavMediaModel; - +class HbDocumentLoader; +class HbLabel; +class HbPushButton; +class GlxDetailsNameLabel; +class GlxDetailsDescriptionEdit; +class GlxDetailsViewDocLoader; class GlxDetailsView : public GlxView { @@ -70,9 +72,9 @@ * Sets the model corresponding to this view. */ void setModel (QAbstractItemModel *model); -/* - * return the view item for animation - */ + /* + * return the view item for animation + */ QGraphicsItem * getAnimationItem(GlxEffect transtionEffect); @@ -81,15 +83,11 @@ void rowsRemoved(const QModelIndex &parent, int start, int end); void dataChanged(QModelIndex startIndex, QModelIndex endIndex); void updateFavourites(); + void UpdateDescription(); + void FillDetails(); private: - //Adds the Widget required to show the details - void addWidgets(); - - //Fills the data in the form - void setFormData(); - /* * Retrieves the image from the model and shows the image */ @@ -99,6 +97,8 @@ * Sets the Date to the label recieved from MDS */ void setImageName(); + + void setDesc(); /* * Sets the Date to the label received from MDS @@ -106,6 +106,21 @@ void setDate(); /* + * Sets the time to the label received from MDS + */ + void setTime(); + + /* + * Sets the size to the label received from MDS + */ + void setSize(); + + /* + * create the favourite model + */ + void setFavModel(); + + /* * Add all the model releted connection and data */ void initializeNewModel(); @@ -119,47 +134,53 @@ */ void cleanUp(); + QString sizeinStrings(int size); + /* - * create the favourite model + * connects the items to slot to respective signals */ - void setFavModel(); + void setConnections(); - + /* + * clear the connections + */ + void clearConnections(); + private: //Contains the thumbnail shown in teh details view. - HbIconItem *mDetailsIcon; + HbLabel *mDetailsIcon; //Contains the favourite icon which adds or removes the image to favourite folder - GlxDetailsCustomIcon *mFavIcon; - + HbPushButton *mFavIcon; + //The media Model to acess the attributes; not owned,dont delete. QAbstractItemModel *mModel; //The media Model to acess the attributes whether image is in favourite folder or not;owned by this view - GlxFavMediaModel *mFavModel; - - //The Model for the Form - HbDataFormModel *mDetailModel; - + GlxFavMediaModel *mFavModel; + //The reference to the Main Window HbMainWindow *mWindow; - - //The data form for the detail - HbDataForm * mDataForm; - - //Custom widgets which will contain the widgets not created/supported by data form - GlxDetailsCustomWidgets *mCustomPrototype; - + int mSelIndex; - //Contains the Datelabel item - HbDataFormModelItem *mDateLabelItem; - - //Contains the ImageLabel item - HbDataFormModelItem *mImageLabelitem; - - //Contains the Comments item - HbDataFormModelItem *mCommentsLabelitem; + //Document Loader + GlxDetailsViewDocLoader *mDocLoader; + + //Shows the Images + GlxDetailsNameLabel *mImageName; + + //Shows the descriptions + GlxDetailsDescriptionEdit *mDescriptions; + + //Shows the Date + HbLabel *mDateLabel; + + //Shows the size of the image + HbLabel *mSizeLabel; + + //Shows the time + HbLabel *mTimeLabel; }; #endif //GLXDETAILSVIEW_H diff -r 6481344a6d67 -r d0b4e67b3a60 ui/views/detailsview/src/glxdetailsview.cpp --- a/ui/views/detailsview/src/glxdetailsview.cpp Fri Jun 11 13:38:23 2010 +0300 +++ b/ui/views/detailsview/src/glxdetailsview.cpp Wed Jun 23 18:12:48 2010 +0300 @@ -16,16 +16,22 @@ */ //-------------------------------------------------------------------------------------------------------------------------------------------- + + #include #include +#include +#include +//-------------------------------------------------------------------------------------------------------------------------------------------- -//-------------------------------------------------------------------------------------------------------------------------------------------- #include #include #include #include -#include +#include +#include #include +#include #include #include @@ -33,45 +39,59 @@ #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 -#include "glxdetailscustomicon.h" -#include "glxdetailscustomwidgets.h" +#include "glxdetailsdescriptionedit.h" +#include "glxdetailsnamelabel.h" + + +#include "glxviewdocloader.h" #include +#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_SIZE 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), - mDetailModel(NULL), - mWindow(window), - mDataForm(NULL), - mCustomPrototype(NULL), - mSelIndex(0), - mDateLabelItem(NULL), - mImageLabelitem(NULL), - mCommentsLabelitem(NULL) - { - OstTraceFunctionEntry0( GLXDETAILSVIEW_GLXDETAILSVIEW_ENTRY ); - setContentFullScreen( true );//for smooth transtion between grid to full screen and vice versa +GlxDetailsView::GlxDetailsView(HbMainWindow *window) : +GlxView(GLX_DETAILSVIEW_ID), mDetailsIcon(NULL), mFavIcon(NULL), mModel( + NULL), mFavModel(NULL), mWindow(window), + mSelIndex(0),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 @@ -79,9 +99,21 @@ void GlxDetailsView::activate() { OstTraceFunctionEntry0( GLXDETAILSVIEW_ACTIVATE_ENTRY ); - setFormData(); - connect(mWindow, SIGNAL(orientationChanged(Qt::Orientation)), this, SLOT(updateLayout(Qt::Orientation))); - connect(mFavIcon,SIGNAL(updateFavourites()),this ,SLOT(updateFavourites())); + //create and set the Favourite Model + 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 ); } @@ -89,38 +121,63 @@ //initializeView //-------------------------------------------------------------------------------------------------------------------------------------------- void GlxDetailsView::initializeView(QAbstractItemModel *model) - { + { 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 (mDocLoader->findWidget( + GLX_DETAILSVIEW_VIEW)); + + HbWidget *mwidget = static_cast (mDocLoader->findWidget( + "MainWidget")); - //To show the thumbnail - if ( mDataForm == NULL) { - mDataForm = new HbDataForm(this); - mDetailModel = new HbDataFormModel(); + mDetailsIcon = static_cast (mDocLoader->findWidget( + GLX_DETAILSVIEW_IMAGE)); + mFavIcon = static_cast (mDocLoader->findWidget( + GLX_DETAILSVIEW_FAVICON)); - //custom prototype - mCustomPrototype = new GlxDetailsCustomWidgets(mDataForm); - QList protos = mDataForm->itemPrototypes(); - protos.append(mCustomPrototype); - mDataForm->setItemPrototypes(protos); + mDescriptions = static_cast (mDocLoader->findWidget( + GLX_DETAILSVIEW_DESCRPTIONTEXT)); + + mImageName = static_cast (mDocLoader->findWidget( + GLX_DETAILSVIEW_IMGNAME)); + + mDateLabel = static_cast (mDocLoader->findWidget( + GLX_DETAILSVIEW_DATETEXT)); + + mTimeLabel = static_cast (mDocLoader->findWidget( + GLX_DETAILSVIEW_TIMETEXT)); + + mSizeLabel = static_cast (mDocLoader->findWidget( + GLX_DETAILSVIEW_SIZETEXT)); - //Add the Widgets according to the mime type - addWidgets(); - } - - if( mDetailsIcon == NULL) { - mDetailsIcon = new HbIconItem(this); - mFavIcon = new GlxDetailsCustomIcon(this); - } + //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); //Set the Model - mModel = model; - initializeNewModel(); + mModel = model; //Set the Layout Correspondingly. updateLayout(mWindow->orientation()); //Shows the Image - showImage(); + showImage(); OstTraceFunctionExit0( GLXDETAILSVIEW_INITIALIZEVIEW_EXIT ); } @@ -129,16 +186,23 @@ //-------------------------------------------------------------------------------------------------------------------------------------------- void GlxDetailsView::resetView() { - OstTrace0( TRACE_NORMAL, GLXDETAILSVIEW_RESETVIEW, "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 ); - cleanUp(); + + //Remove the context created to update details + mModel->setData(QModelIndex(), (int) GlxContextComment, + GlxRemoveContextRole); + cleanUp(); + OstTraceFunctionExit0( GLXDETAILSVIEW_DEACTIVATE_EXIT ); } @@ -150,17 +214,7 @@ clearCurrentModel(); //clear the connections - if(mWindow) { - disconnect(mWindow, SIGNAL(orientationChanged(Qt::Orientation)), this, SLOT(updateLayout(Qt::Orientation))); - } - - if(mFavModel) { - disconnect( mFavModel, SIGNAL( dataChanged(QModelIndex,QModelIndex) ), this, SLOT( dataChanged(QModelIndex,QModelIndex) ) ); - } - - if(mFavIcon) { - disconnect(mFavIcon,SIGNAL(updateFavourites()),this ,SLOT(updateFavourites())); - } + clearConnections(); delete mFavModel; mFavModel = NULL; @@ -169,75 +223,7 @@ mFavIcon = NULL; delete mDetailsIcon; - mDetailsIcon = NULL; - } - -//-------------------------------------------------------------------------------------------------------------------------------------------- -//~GlxDetailsView -//-------------------------------------------------------------------------------------------------------------------------------------------- -GlxDetailsView::~GlxDetailsView() - { - OstTrace0( TRACE_IMPORTANT, GLXDETAILSVIEW_GLXDETAILSVIEW, "GlxDetailsView::~GlxDetailsView" ); - - cleanUp(); - - if(mDetailModel) { - delete mDetailModel; - mDataForm->setModel(0); - } - - if(mDataForm) { - delete mDataForm; - mDataForm = NULL; - } - } - -//-------------------------------------------------------------------------------------------------------------------------------------------- -//addWidgets -//-------------------------------------------------------------------------------------------------------------------------------------------- -void GlxDetailsView::addWidgets() - { - OstTrace0( TRACE_NORMAL, GLXDETAILSVIEW_ADDWIDGETS, "GlxDetailsView::addWidgets create Form" ); - - //----------------------------START OF CREATION OF WIDGETS---------------------------------// - // To add new widgets in the details view, add it here. - - //---------------------------IMAGE NAME LABEL --------------------------------------------// - OstTrace0( TRACE_NORMAL, DUP1_GLXDETAILSVIEW_ADDWIDGETS, "GlxDetailsView::addWidgets create Image Label" ); - mImageLabelitem = mDetailModel->appendDataFormItem(HbDataFormModelItem::TextItem, QString("Name"), NULL); - - //---------------------------DATE LABEL --------------------------------------------// - OstTrace0( TRACE_NORMAL, DUP2_GLXDETAILSVIEW_ADDWIDGETS, "GlxDetailsView::addWidgets date label" ); - mDateLabelItem = mDetailModel->appendDataFormItem((HbDataFormModelItem::DataItemType)(DateLabelItem), QString("Date"), NULL); - - - //----------------------------COMMENTS TEXT ITEM---------------------------------------------// - OstTrace0( TRACE_NORMAL, DUP5_GLXDETAILSVIEW_ADDWIDGETS, "GlxDetailsView::addWidgets comment text" ); - mCommentsLabelitem = mDetailModel->appendDataFormItem(HbDataFormModelItem::TextItem, QString("Description"), NULL); - - //----------------------------END OF CREATION OF WIDGETS-------------------------------------// - - //Set the model to the Data Form - mDataForm->setModel(mDetailModel); - } - -//-------------------------------------------------------------------------------------------------------------------------------------------- -//setFavModel -//-------------------------------------------------------------------------------------------------------------------------------------------- -void GlxDetailsView::setFavModel() - { - GlxModelParm modelParm; - - QString imagePath = (mModel->data(mModel->index(mModel->data(mModel->index(0,0),GlxFocusIndexRole).value(),0),GlxUriRole)).value(); - - if(mFavModel == NULL) { - modelParm.setCollection( KGlxCollectionPluginFavoritesAlbumId ); - modelParm.setContextMode(GlxContextFavorite); - modelParm.setPath(imagePath); - mFavModel = new GlxFavMediaModel( modelParm ); - } - QString imageName = imagePath.section('\\',-1); - connect( mFavModel, SIGNAL( dataChanged(QModelIndex,QModelIndex) ), this, SLOT( dataChanged(QModelIndex,QModelIndex) ) ); + mDetailsIcon = NULL; } //-------------------------------------------------------------------------------------------------------------------------------------------- @@ -246,25 +232,112 @@ void GlxDetailsView::setModel(QAbstractItemModel *model) { OstTrace0( TRACE_NORMAL, GLXDETAILSVIEW_SETMODEL, "GlxDetailsView::setModel" ); - if ( mModel == model ) { - return ; - } + 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 (), 0), + GlxUriRole)).value (); + + 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))); + } + } + +//-------------------------------------------------------------------------------------------------------------------------------------------- +//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))); + mModel = NULL; + } + } + +//-------------------------------------------------------------------------------------------------------------------------------------------- +//setConnections +//-------------------------------------------------------------------------------------------------------------------------------------------- +void GlxDetailsView::setConnections() + { + connect(mWindow, SIGNAL(orientationChanged(Qt::Orientation)), this, + SLOT(updateLayout(Qt::Orientation))); + connect(mFavIcon, SIGNAL(clicked()), 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) )); + } + +//-------------------------------------------------------------------------------------------------------------------------------------------- +//clearConnections +//-------------------------------------------------------------------------------------------------------------------------------------------- +void GlxDetailsView::clearConnections() + { + disconnect(mWindow, SIGNAL(orientationChanged(Qt::Orientation)), this, + SLOT(updateLayout(Qt::Orientation))); + + disconnect(mFavIcon, SIGNAL(clicked()), 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) )); + } + +//-------------------------------------------------------------------------------------------------------------------------------------------- //getAnimationItem //-------------------------------------------------------------------------------------------------------------------------------------------- QGraphicsItem * GlxDetailsView::getAnimationItem(GlxEffect transtionEffect) { OstTrace0( TRACE_NORMAL, GLXDETAILSVIEW_GETANIMATIONITEM, "GlxDetailsView::getAnimationItem" ); - if ( transtionEffect == FULLSCREEN_TO_DETAIL - || transtionEffect == DETAIL_TO_FULLSCREEN ) { + if (transtionEffect == FULLSCREEN_TO_DETAIL || transtionEffect + == DETAIL_TO_FULLSCREEN) + { return this; - } - return NULL; + } + return NULL; } //-------------------------------------------------------------------------------------------------------------------------------------------- @@ -273,98 +346,77 @@ void GlxDetailsView::updateLayout(Qt::Orientation orient) { OstTrace1( TRACE_NORMAL, GLXDETAILSVIEW_UPDATELAYOUT, "GlxDetailsView::updateLayout;orient=%d", orient ); - - qreal IconPosX = 0.0; - qreal IconPosY = 0.0; - qreal FavIconPosX = 0.0; - qreal FavIconPosY = 0.0; - qreal DataFormX = 0.0; - qreal DataFormY = 0.0; - qreal DataFormWidth = 0.0; - qreal DataFormHeight = 0.0; - - - qreal screenWidth = 0.0; - qreal screenHeight = 0.0; - qreal leftMargin = 0.0; - qreal bottomMargin = 0.0; - qreal screenMargin = 0.0; - qreal favIconSize = 0.0; - qreal chromeHeight = 0.0; - qreal middleVerticalMargin = 0.0; - - style()->parameter("hb-param-screen-width", screenWidth); - style()->parameter("hb-param-screen-height", screenHeight); + GLX_LOG_INFO("GlxDetailsView::updateLayout "); + bool loaded = false; + QString section; - style()->parameter("hb-param-margin-gene-middle-vertical", middleVerticalMargin); - style()->parameter("hb-param-margin-gene-left", leftMargin); - style()->parameter("hb-param-margin-gene-bottom", bottomMargin); - style()->parameter("hb-param-margin-gene-screen", screenMargin); - - style()->parameter("hb-param-graphic-size-primary-small", favIconSize); - style()->parameter("hb-param-widget-chrome-height", chromeHeight); - - - if(orient == Qt::Horizontal) + //Load the widgets accroding to the current Orientation + if (orient == Qt::Horizontal) { - OstTrace0( TRACE_NORMAL, DUP1_GLXDETAILSVIEW_UPDATELAYOUT, "GlxDetailsView::updateLayout HORIZONTAL" ); - setGeometry(0,0,640,360); - IconPosX = screenMargin; - IconPosY = (screenMargin + chromeHeight); - FavIconPosX = (IconPosX + GLX_IMAGE_SIZE - (favIconSize +10)); - FavIconPosY = (IconPosY + GLX_IMAGE_SIZE - (favIconSize + 10)); - DataFormX = screenMargin + GLX_IMAGE_SIZE + leftMargin ; - DataFormY = screenMargin + chromeHeight ; - - //This Commented code should be un commented , once the screen width and height size issue is solved and also - //the dataform issue of wrapping issue is solved - // DataFormWidth = screenWidth(640) - DataFormX - screenMargin ; - // DataFormHeight = screenHeight(360) - DataFormY - screenMargin ; - DataFormWidth = screenWidth - (screenMargin + screenMargin) ; - DataFormHeight = screenHeight - DataFormY; - + section = GLX_DETAILSVIEW_LSSECTION; } else { - OstTrace0( TRACE_NORMAL, DUP2_GLXDETAILSVIEW_UPDATELAYOUT, "GlxDetailsView::updateLayout VERTICAL" ); - setGeometry(0,0,screenWidth,screenHeight); - IconPosX = (screenWidth/2) - (GLX_IMAGE_SIZE/2); - IconPosY = (screenMargin + chromeHeight); - FavIconPosX = (IconPosX + GLX_IMAGE_SIZE - (favIconSize +10)); - FavIconPosY = (IconPosY + GLX_IMAGE_SIZE - (favIconSize +10)); - DataFormX = screenMargin; - DataFormY = IconPosY + GLX_IMAGE_SIZE + middleVerticalMargin + bottomMargin ; - DataFormWidth = screenWidth - (screenMargin + screenMargin) ; - DataFormHeight = screenHeight - DataFormY; + section = GLX_DETAILSVIEW_PTSECTION; } - mDetailsIcon->setPos(IconPosX,IconPosY); - //The Numerical should be updated once we get the parameters size from the layouts. - mFavIcon->setItemGeometry(QRect(FavIconPosX-2 ,FavIconPosY-2 ,favIconSize+12,favIconSize + 12)) ; - //Place the FavIcon with respect to the Widget. - mFavIcon->setItemPos(2 ,2 ); - mDataForm->setGeometry(DataFormX,DataFormY,DataFormWidth,DataFormHeight); + //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 + //below lines of code + setImageName(); + setDate(); + + GLX_LOG_INFO1("GlxDetailsView::updateLayout =%d\n",loaded); } //-------------------------------------------------------------------------------------------------------------------------------------------- //rowsRemoved //-------------------------------------------------------------------------------------------------------------------------------------------- -void GlxDetailsView::rowsRemoved(const QModelIndex &parent, int start, int end) +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 (mModel->rowCount() <= 0) + { + return emit actionTriggered(EGlxCmdEmptyData); + } + + if (start <= mSelIndex && end >= mSelIndex) + { + return emit actionTriggered(EGlxCmdBack); + } } - if ( start <= mSelIndex && end >= mSelIndex ) { - return emit actionTriggered( EGlxCmdBack ); +//-------------------------------------------------------------------------------------------------------------------------------------------- +//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 //-------------------------------------------------------------------------------------------------------------------------------------------- @@ -372,46 +424,23 @@ { OstTrace0( TRACE_NORMAL, GLXDETAILSVIEW_SHOWIMAGE, "GlxDetailsView::showImage" ); - QVariant variant = mModel->data( mModel->index(0,0), GlxFocusIndexRole ); - if ( variant.isValid() && variant.canConvert () ) { - mSelIndex = variant.value(); - } - - variant = mModel->data( mModel->index( mSelIndex ,0), GlxFsImageRole); - if ( variant.isValid() && variant.canConvert () ) + QVariant variant = mModel->data(mModel->index(0, 0), GlxFocusIndexRole); + if (variant.isValid() && variant.canConvert ()) { - QIcon itemIcon = variant.value().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->setSize(QSize(GLX_IMAGE_SIZE, GLX_IMAGE_SIZE)); + mSelIndex = variant.value (); + } + + variant = mModel->data(mModel->index(mSelIndex, 0), GlxFsImageRole); + if (variant.isValid() && variant.canConvert ()) + { + QIcon itemIcon = variant.value ().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); - mFavIcon->setItemIcon(HbIcon("qtg_graf_ratingslider_unrated")); - - qreal favIconSize = 0.0; - style()->parameter("hb-param-graphic-size-primary-small", favIconSize); - mFavIcon->setItemSize(QSize(favIconSize+10, favIconSize+10)); - } - } - -//-------------------------------------------------------------------------------------------------------------------------------------------- -//FillData -//-------------------------------------------------------------------------------------------------------------------------------------------- -void GlxDetailsView::setFormData() - { - OstTrace0( TRACE_NORMAL, GLXDETAILSVIEW_SETFORMDATA, "GlxDetailsView::setFormData" ); - - //create and set the Favourite Model - setFavModel(); - - //Call to set the Image Name - setImageName(); - - //Call to set the date in the from - setDate(); + } } //-------------------------------------------------------------------------------------------------------------------------------------------- @@ -420,12 +449,27 @@ void GlxDetailsView::setImageName() { OstTraceFunctionEntry0( GLXDETAILSVIEW_SETIMAGENAME_ENTRY ); + QString temp = ""; + QString imagePath = (mModel->data(mModel->index(mModel->data( + mModel->index(0, 0), GlxFocusIndexRole).value (), 0), + GlxUriRole)).value (); + QString imageName = imagePath.section('\\', -1); + + temp.append(imageName); + temp.append(""); + mImageName->setItemText(temp); + OstTraceFunctionExit0( GLXDETAILSVIEW_SETIMAGENAME_EXIT ); + } - QString imagePath = (mModel->data(mModel->index(mModel->data(mModel->index(0,0),GlxFocusIndexRole).value(),0),GlxUriRole)).value(); - QString imageName = imagePath.section('\\',-1); - - mImageLabelitem->setContentWidgetData("text",imageName); - OstTraceFunctionExit0( GLXDETAILSVIEW_SETIMAGENAME_EXIT ); +//-------------------------------------------------------------------------------------------------------------------------------------------- +//setImageName +//-------------------------------------------------------------------------------------------------------------------------------------------- +void GlxDetailsView::setDesc() + { + QString description = (mModel->data(mModel->index(mModel->data( + mModel->index(0, 0), GlxFocusIndexRole).value (), 0), + GlxDescRole)).value (); + mDescriptions->setItemText(description); } //-------------------------------------------------------------------------------------------------------------------------------------------- @@ -436,77 +480,101 @@ OstTraceFunctionEntry0( GLXDETAILSVIEW_SETDATE_ENTRY ); QString datestring; - QString str("dd.MM.yyyy"); - QDate date = (mModel->data(mModel->index(mModel->data(mModel->index(0,0),GlxFocusIndexRole).value(),0),GlxDateRole)).value(); - - if(date.isNull() == FALSE ) + QString dateFormat("dd.MM.yyyy"); + QDate date = (mModel->data(mModel->index(mModel->data( + mModel->index(0, 0), GlxFocusIndexRole).value (), 0), + GlxDateRole)).value (); + + datestring = QString("Date: "); + if (date.isNull() == FALSE) { - OstTrace0( TRACE_NORMAL, GLXDETAILSVIEW_SETDATE, "GlxDetailsView::setDate is not NULL" ); - datestring = date.toString(str); + OstTrace0( TRACE_NORMAL, GLXDETAILSVIEW_SETDATE, "GlxDetailsView::setDate is not NULL" ); + datestring.append(date.toString(dateFormat)); } - mDateLabelItem->setContentWidgetData("plainText",datestring); + mDateLabel->setPlainText(datestring); OstTraceFunctionExit0( GLXDETAILSVIEW_SETDATE_EXIT ); } //-------------------------------------------------------------------------------------------------------------------------------------------- -//initializeNewModel +//setTime //-------------------------------------------------------------------------------------------------------------------------------------------- -void GlxDetailsView::initializeNewModel() +void GlxDetailsView::setTime() { - OstTrace0( TRACE_NORMAL, GLXDETAILSVIEW_INITIALIZENEWMODEL, "GlxDetailsView::initializeNewModel" ); - - if ( mModel ) { - connect(mModel, SIGNAL(rowsRemoved(QModelIndex,int,int)), this, SLOT(rowsRemoved(QModelIndex,int,int))); - } + QString timestring; + QString timeFormat("h:m ap"); + QTime timevalue = (mModel->data(mModel->index(mModel->data(mModel->index( + 0, 0), GlxFocusIndexRole).value (), 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)); + } + mTimeLabel->setPlainText(timestring); } //-------------------------------------------------------------------------------------------------------------------------------------------- -//clearCurrentModel +//setSize //-------------------------------------------------------------------------------------------------------------------------------------------- -void GlxDetailsView::clearCurrentModel() +void GlxDetailsView::setSize() { - OstTrace0( TRACE_NORMAL, GLXDETAILSVIEW_CLEARCURRENTMODEL, "GlxDetailsView::clearCurrentModel" ); - - if ( mModel ) { - disconnect(mModel, SIGNAL(rowsRemoved(QModelIndex,int,int)), this, SLOT(rowsRemoved(QModelIndex,int,int))); - mModel = NULL ; - } - } + int size = 0; + size = (mModel->data(mModel->index(mModel->data(mModel->index(0, 0), + GlxFocusIndexRole).value (), 0), GlxSizeRole)).value (); + QString sizelabel; + QString sizestring; + sizelabel = QString("Size : "); + sizestring = sizeinStrings(size); + sizelabel.append(sizestring); + mSizeLabel->setPlainText(sizelabel); + + } //-------------------------------------------------------------------------------------------------------------------------------------------- //dataChanged //-------------------------------------------------------------------------------------------------------------------------------------------- void GlxDetailsView::dataChanged(QModelIndex startIndex, QModelIndex endIndex) { - Q_UNUSED(endIndex); - - QVariant variant = mFavModel->data( startIndex, GlxFavorites ); - if ( variant.isValid() && variant.canConvert () ) + Q_UNUSED(endIndex); + + QVariant variant = mFavModel->data(startIndex, GlxFavorites); + if (variant.isValid() && variant.canConvert ()) { - if(variant.value() ) - { - mFavIcon->setItemIcon(HbIcon(GLXICON_ADD_TO_FAV)); + if (variant.value ()) + { + mFavIcon->setIcon(HbIcon(GLXICON_ADD_TO_FAV)); } - else + else { - mFavIcon->setItemIcon(HbIcon(GLXICON_REMOVE_FAV)); + mFavIcon->setIcon(HbIcon(GLXICON_REMOVE_FAV)); } } } //-------------------------------------------------------------------------------------------------------------------------------------------- +//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 ()) + QVariant variant = mFavModel->data(mFavModel->index(0, 0), GlxFavorites); + if (variant.isValid() && variant.canConvert ()) { - if(variant.value() ) + if (variant.value ()) { - emit actionTriggered( EGlxCmdRemoveFromFav); + emit actionTriggered(EGlxCmdRemoveFromFav); } else { @@ -514,3 +582,35 @@ } } } + +//-------------------------------------------------------------------------------------------------------------------------------------------- +//sizeinStrings +//-------------------------------------------------------------------------------------------------------------------------------------------- +QString GlxDetailsView::sizeinStrings(int size) + { + QString sizeString; + if (size >= KBytesInGB) + { + int gbSize = size / KBytesInGB; // Size in GB + sizeString.setNum(gbSize); + sizeString.append("GB"); + } + else if (size >= KBytesInMB) + { + int mbSize = size / KBytesInMB; // Size in MB + sizeString.setNum(mbSize); + sizeString.append("MB"); + } + else if (size >= KBytesInKB) + { + TInt kBsize = size / KBytesInKB; // bytes to kB + sizeString.setNum(kBsize); + sizeString.append("KB"); + } + else + { + sizeString.setNum(size); + sizeString.append("Bytes"); + } + return sizeString; + } diff -r 6481344a6d67 -r d0b4e67b3a60 ui/views/docloaders/inc/glxviewdocloader.h --- a/ui/views/docloaders/inc/glxviewdocloader.h Fri Jun 11 13:38:23 2010 +0300 +++ b/ui/views/docloaders/inc/glxviewdocloader.h Wed Jun 23 18:12:48 2010 +0300 @@ -44,4 +44,14 @@ private: // }; +//Custom Docloader to load the details view +class GlxDetailsViewDocLoader : public HbDocumentLoader +{ +protected: + //This creates the custom widget for details + QObject* createObject(const QString &type, const QString &name); + + private: // +}; + #endif /* GLXVIEWDOCLOADER_H */ diff -r 6481344a6d67 -r d0b4e67b3a60 ui/views/docloaders/src/glxviewdocloader.cpp --- a/ui/views/docloaders/src/glxviewdocloader.cpp Fri Jun 11 13:38:23 2010 +0300 +++ b/ui/views/docloaders/src/glxviewdocloader.cpp Wed Jun 23 18:12:48 2010 +0300 @@ -30,6 +30,8 @@ #include "glxslideshowwidget.h" #include "glxslideshowview.h" #include "glxzoomwidget.h" +#include "glxdetailsnamelabel.h" +#include "glxdetailsdescriptionedit.h" //---------------------------------------------------------------------------------------- // createObject:creates the custom widget and views of fullscreen view @@ -97,3 +99,34 @@ } return HbDocumentLoader::createObject(type, name); } + + //---------------------------------------------------------------------------------------- +// createObject:creates the custom widget and views of details view +//---------------------------------------------------------------------------------------- +QObject* GlxDetailsViewDocLoader::createObject(const QString &type, const QString &name) + { + qDebug() <<"GlxDetailsViewDocLoader::createObject -->"; + + + if (GLX_DETAILSVIEW_IMGNAME == name) + { + qDebug() << "GlxDetailsViewDocLoader::createObject:GLX_DETAILSVIEW_IMGNAME -->"; + + QObject *object = new GlxDetailsNameLabel(); + object->setObjectName(name); + return object; + } + + if (GLX_DETAILSVIEW_DESCRPTIONTEXT == name) + { + qDebug() << "GlxDetailsViewDocLoader::createObject:GLX_DETAILSVIEW_DESCRPTIONTEXT -->"; + + QObject *object = new GlxDetailsDescriptionEdit(); + object->setObjectName(name); + return object; + } + + + return HbDocumentLoader::createObject(type, name); + } + diff -r 6481344a6d67 -r d0b4e67b3a60 ui/views/fullscreenview/inc/glxcoverflow.h --- a/ui/views/fullscreenview/inc/glxcoverflow.h Fri Jun 11 13:38:23 2010 +0300 +++ b/ui/views/fullscreenview/inc/glxcoverflow.h Wed Jun 23 18:12:48 2010 +0300 @@ -73,6 +73,7 @@ void changeSelectedIndex(const QModelIndex &index); void autoLeftMoveSignal(); void autoRightMoveSignal(); + void doubleTapEventReceived(QPointF position); protected slots: void panGesture ( const QPointF & delta ) ; @@ -102,6 +103,7 @@ //reset all the data of cover flow void resetCoverFlow(); int getSubState(); + void timerEvent(QTimerEvent *event); private: HbIconItem *mIconItem[NBR_ICON_ITEM]; //at most contain only five item @@ -119,6 +121,7 @@ int mSpeed; bool mZoomOn; QGraphicsItem* mMultitouchFilter; + int mTimerId; }; #endif /* GLXCOVERFLOW_H_ */ diff -r 6481344a6d67 -r d0b4e67b3a60 ui/views/fullscreenview/src/glxcoverflow.cpp --- a/ui/views/fullscreenview/src/glxcoverflow.cpp Fri Jun 11 13:38:23 2010 +0300 +++ b/ui/views/fullscreenview/src/glxcoverflow.cpp Wed Jun 23 18:12:48 2010 +0300 @@ -45,7 +45,8 @@ mMoveDir(NO_MOVE), mSpeed ( GLX_COVERFLOW_SPEED ), mZoomOn(false), - mMultitouchFilter(NULL) + mMultitouchFilter(NULL), + mTimerId(0) { //TO:DO through exception qDebug("GlxCoverFlow::GlxCoverFlow"); @@ -63,11 +64,12 @@ { qDebug("GlxCoverFlow::setCoverFlow"); for ( qint8 i = 0; i < NBR_ICON_ITEM ; i++ ) { - mIconItem[i] = new HbIconItem(this); - mIconItem[i]->grabGesture(Qt::PinchGesture, Qt::ReceivePartialGestures); - mIconItem[i]->installSceneEventFilter(mMultitouchFilter); - mIconItem[i]->setBrush(QBrush(Qt::black)); - mIconItem[i]->setSize(QSize(0,0)); + mIconItem[i] = new HbIconItem( this ); + mIconItem[i]->grabGesture( Qt::PinchGesture, Qt::ReceivePartialGestures ); + mIconItem[i]->installSceneEventFilter( mMultitouchFilter ); + mIconItem[i]->setBrush( QBrush( Qt::black ) ); + mIconItem[i]->setSize( QSize( 0, 0 ) ); + mIconItem[i]->setAlignment( Qt::AlignCenter ); } mUiOn = FALSE; mBounceBackDeltaX = GLX_BOUNCEBACK_DELTA; @@ -108,7 +110,14 @@ { if(QTapGesture *gesture = static_cast(event->gesture(Qt::TapGesture))) { if (gesture->state() == Qt::GestureFinished) { - emit coverFlowEvent( TAP_EVENT ); + if(!mTimerId) { + mTimerId = startTimer(500); + } + else { + killTimer(mTimerId); + mTimerId = 0; + emit doubleTapEventReceived(gesture->position()); + } event->accept(gesture); } } @@ -535,3 +544,13 @@ indexChanged(index); } + +void GlxCoverFlow::timerEvent(QTimerEvent *event) +{ + if(mTimerId == event->timerId()) + { + killTimer(mTimerId); + mTimerId = 0; + emit coverFlowEvent( TAP_EVENT ); + } +} \ No newline at end of file diff -r 6481344a6d67 -r d0b4e67b3a60 ui/views/fullscreenview/src/glxfullscreenview.cpp --- a/ui/views/fullscreenview/src/glxfullscreenview.cpp Fri Jun 11 13:38:23 2010 +0300 +++ b/ui/views/fullscreenview/src/glxfullscreenview.cpp Wed Jun 23 18:12:48 2010 +0300 @@ -97,9 +97,6 @@ // to make the widget light weight in order to make // transition smooth mCoverFlow->partiallyCreate( model, screenSize()); - - setStatusBarVisible(FALSE); - setTitleBarVisible(FALSE); OstTraceFunctionExit0( GLXFULLSCREENVIEW_INITIALIZEVIEW_EXIT ); } @@ -184,7 +181,10 @@ setStatusBarVisible(FALSE); setTitleBarVisible(FALSE); - + //To:Do remove it later, currently it is solving the problem of status bar is not + //visible when tap on the screen first time + setStatusBarVisible(FALSE); + setTitleBarVisible(FALSE); //for zoom might not be required after wk15 release mWindow->viewport()->setAttribute(Qt::WA_AcceptTouchEvents,true); @@ -208,7 +208,7 @@ if (!mTvOutWrapper){ mTvOutWrapper = new GlxTvOutWrapper(); - } + } OstTraceFunctionExit0( GLXFULLSCREENVIEW_ACTIVATE_EXIT ); } @@ -285,7 +285,7 @@ if(mZoomWidget) { mZoomWidget->cleanUp(); - + mZoomWidget = NULL; } OstTraceFunctionExit0( GLXFULLSCREENVIEW_CLEANUP_EXIT ); } @@ -312,10 +312,9 @@ mZoomWidget->setModel(mModel); mCoverFlow->setModel(mModel); setImageStripModel(); - if(getSubState() == IMAGEVIEWER_S) - { + if(getSubState() == IMAGEVIEWER_S) { setTitle("Image Viewer"); - } + } else if(getSubState() == FETCHER_S){ setStatusBarVisible(TRUE); setTitleBarVisible(TRUE); @@ -324,13 +323,12 @@ } void GlxFullScreenView::setHdmiModel(QAbstractItemModel* model) - { - if (mTvOutWrapper) - mTvOutWrapper->setModel(model); - - // for the first image on screen - mTvOutWrapper->setImagetoHDMI(); - } +{ + if (mTvOutWrapper) { + mTvOutWrapper->setModel(model); + mTvOutWrapper->setImagetoHDMI(); // for the first image on screen + } +} void GlxFullScreenView::setModelContext() { @@ -435,18 +433,20 @@ QVariant variant = mModel->data( mModel->index(0,0), GlxFocusIndexRole ); if ( variant.isValid() && variant.canConvert () && ( index.row() == variant.value() ) ) { - OstTraceFunctionExit0( GLXFULLSCREENVIEW_CHANGESELECTEDINDEX_EXIT ); - if (mTvOutWrapper){ - // for the image changed on deletion - mTvOutWrapper->setImagetoHDMI(); - } - return; - } - mModel->setData( index, index.row(), GlxFocusIndexRole ); + OstTraceFunctionExit0( GLXFULLSCREENVIEW_CHANGESELECTEDINDEX_EXIT ); + if (mTvOutWrapper){ + // for the image changed on deletion + mTvOutWrapper->setImagetoHDMI(); + } + return; + } + + mModel->setData( index, index.row(), GlxFocusIndexRole ); + mModel->setData( index, index.row(), GlxVisualWindowIndex ); mZoomWidget->indexChanged(index.row()); if (mTvOutWrapper){ - // for the image changed on swipe - mTvOutWrapper->setImagetoHDMI(); + // for the image changed on swipe + mTvOutWrapper->setImagetoHDMI(); } OstTraceFunctionExit0( DUP1_GLXFULLSCREENVIEW_CHANGESELECTEDINDEX_EXIT ); } @@ -639,6 +639,7 @@ if(mCoverFlow && mZoomWidget) { connect(mZoomWidget,SIGNAL( pinchGestureReceived(int) ), mCoverFlow, SLOT( zoomStarted(int) ) ); connect(mZoomWidget,SIGNAL( zoomWidgetMovedBackground(int) ), mCoverFlow, SLOT( zoomFinished(int) ) ); + connect(mCoverFlow,SIGNAL( doubleTapEventReceived(QPointF) ), mZoomWidget, SLOT( animateZoomIn(QPointF) ) ); } connect(mWindow, SIGNAL(orientationChanged(Qt::Orientation)), this, SLOT(orientationChanged(Qt::Orientation))); @@ -670,7 +671,6 @@ GLX_LOG_INFO("GlxFullScreenView::removeConnection() mUiOffTimer " ); disconnect(mUiOffTimer, SIGNAL(timeout()), this, SLOT(hideUi())); } - if(mFlipAction) { disconnect(mFlipAction, SIGNAL(triggered( )), this, SLOT(handleToolBarAction( )) ); diff -r 6481344a6d67 -r d0b4e67b3a60 ui/views/gridview/inc/glxgridview.h --- a/ui/views/gridview/inc/glxgridview.h Fri Jun 11 13:38:23 2010 +0300 +++ b/ui/views/gridview/inc/glxgridview.h Wed Jun 23 18:12:48 2010 +0300 @@ -71,11 +71,6 @@ protected : QVariant itemChange (GraphicsItemChange change, const QVariant &value) ; - - /* - * To emit the signal when application goes into background or come back to foreground - */ - bool eventFilter(QObject *obj, QEvent *ev); private slots: void indicateLongPress(const QModelIndex& index, QPointF coords); diff -r 6481344a6d67 -r d0b4e67b3a60 ui/views/gridview/src/glxgridview.cpp --- a/ui/views/gridview/src/glxgridview.cpp Fri Jun 11 13:38:23 2010 +0300 +++ b/ui/views/gridview/src/glxgridview.cpp Wed Jun 23 18:12:48 2010 +0300 @@ -30,7 +30,6 @@ #include #include #include -#include //User Includes #include "glxviewids.h" @@ -39,19 +38,16 @@ #include "glxcommandhandlers.hrh" #include "glxicondefs.h" #include "glxlocalisationstrings.h" -#include "glxlog.h" -#include "glxtracer.h" - #include "OstTraceDefinitions.h" #ifdef OST_TRACE_COMPILER_IN_USE #include "glxgridviewTraces.h" #endif -GlxGridView::GlxGridView(HbMainWindow *window) - : GlxView ( GLX_GRIDVIEW_ID ), - mWindow(window), - mModel ( NULL), +GlxGridView::GlxGridView(HbMainWindow *window) + : GlxView ( GLX_GRIDVIEW_ID ), + mWindow(window), + mModel ( NULL), mWidget(NULL), mSelectionModel(NULL), mModelWrapper(NULL), @@ -87,14 +83,14 @@ loadGridView(); connect(mWindow, SIGNAL(orientationChanged(Qt::Orientation)), this, SLOT(orientationchanged(Qt::Orientation)),Qt::UniqueConnection); if(mCountItem == NULL) { - mCountItem = new HbLabel(this); + mCountItem = new HbLabel(this); HbFrameItem *frame = new HbFrameItem(this); //graphics for mCountItem frame->frameDrawer().setFrameType(HbFrameDrawer::NinePieces); frame->frameDrawer().setFrameGraphicsName("qtg_fr_multimedia_trans"); frame->graphicsItem()->setOpacity(1); mCountItem->setBackgroundItem(frame->graphicsItem(),-1); + mCountItem->hide(); } - QCoreApplication::instance()->installEventFilter(this); OstTraceFunctionExit0( GLXGRIDVIEW_ACTIVATE_EXIT ); } @@ -104,7 +100,7 @@ mScrolling = FALSE; if (mUiOnButton){ mUiOnButton->hide(); - } + } if(mIconItem) { mIconItem->hide(); mIconItem->resetTransform(); @@ -123,7 +119,6 @@ if(mCameraButton) { mCameraButton->hide(); } - QCoreApplication::instance()->removeEventFilter(this); disconnect(mWindow, SIGNAL(orientationChanged(Qt::Orientation)), this, SLOT(orientationchanged(Qt::Orientation))); OstTraceFunctionExit0( GLXGRIDVIEW_DEACTIVATE_EXIT ); } @@ -171,7 +166,7 @@ mWidget->setDefaultImage(variantimage.value()); } mModelWrapper->setModel(mModel); - mWidget->setModel(mModelWrapper); + mWidget->setModel(mModelWrapper); if(!mSelectionModel) { mSelectionModel = new QItemSelectionModel(mModelWrapper, this); @@ -196,10 +191,10 @@ } } -void GlxGridView::addToolBar( HbToolBar *toolBar ) +void GlxGridView::addToolBar( HbToolBar *toolBar ) { - OstTraceFunctionEntry0( GLXGRIDVIEW_ADDTOOLBAR_ENTRY ); - setToolBar(toolBar); + OstTraceFunctionEntry0( GLXGRIDVIEW_ADDTOOLBAR_ENTRY ); + setToolBar(toolBar); hideorshowitems(mWindow->orientation()); OstTraceFunctionExit0( GLXGRIDVIEW_ADDTOOLBAR_EXIT ); } @@ -209,7 +204,7 @@ OstTrace0( TRACE_NORMAL, GLXGRIDVIEW_ENABLEMARKING, "GlxGridView::enableMarking" ); mWidget->setSelectionMode(HgWidget::MultiSelection); if (mMainLabel == NULL) { - mMainLabel = new HbLabel("Select Photos", this); + mMainLabel = new HbLabel("Select Photos", this); HbFrameItem *frame1 = new HbFrameItem(this); //graphics for mMainLabel frame1->frameDrawer().setFrameType(HbFrameDrawer::NinePieces); frame1->frameDrawer().setFrameGraphicsName("qtg_fr_multimedia_trans"); @@ -217,7 +212,7 @@ mMainLabel->setBackgroundItem(frame1->graphicsItem(),-1); } if (mMarkCheckBox == NULL) { - mMarkCheckBox = new HbCheckBox(GLX_OPTION_MARK_ALL, this); + mMarkCheckBox = new HbCheckBox(GLX_OPTION_MARK_ALL, this); HbFrameItem *frame2 = new HbFrameItem(this); //graphics for mMarkCheckBox frame2->frameDrawer().setFrameType(HbFrameDrawer::NinePieces); frame2->frameDrawer().setFrameGraphicsName("qtg_fr_multimedia_trans"); @@ -225,7 +220,7 @@ mMarkCheckBox->setBackgroundItem(frame2->graphicsItem(),-1); } if (mCountLabel == NULL) { - mCountLabel = new HbLabel(this); + mCountLabel = new HbLabel(this); HbFrameItem *frame3 = new HbFrameItem(this); //graphics for mCountLabel frame3->frameDrawer().setFrameType(HbFrameDrawer::NinePieces); frame3->frameDrawer().setFrameGraphicsName("qtg_fr_multimedia_trans"); @@ -240,7 +235,7 @@ } -void GlxGridView::disableMarking() +void GlxGridView::disableMarking() { OstTrace0( TRACE_NORMAL, GLXGRIDVIEW_DISABLEMARKING, "GlxGridView::disableMarking" ); mWidget->setSelectionMode(HgWidget::NoSelection); @@ -295,7 +290,11 @@ } if(isItemVisible(Hb::TitleBarItem)) { QString text; - if (getSubState() == ALL_ITEM_S) { + if(XQServiceUtil::isService()) + { + showAlbumTitle(GLX_FETCHER_TITLE); + } + else if (getSubState() == ALL_ITEM_S) { if (mAlbumName) { mAlbumName->hide(); } @@ -337,14 +336,17 @@ if (mAlbumName) { mAlbumName->hide(); } - - showNoImageString(); - - if (getSubState() == ALBUM_ITEM_S) { + + showNoImageString(); + + if (getSubState() == ALBUM_ITEM_S) { QVariant variant = mModel->data(mModel->index(0,0),GlxViewTitle); if (variant.toString() != NULL) { showAlbumTitle(variant.toString()); } + } + else if(XQServiceUtil::isService()){ + showAlbumTitle(GLX_FETCHER_TITLE); } } } @@ -358,7 +360,7 @@ QSize screenSize = ( mWindow->orientation() == Qt::Vertical ) ? QSize( deviceSize.width(), deviceSize.height() ) : QSize( deviceSize.height(), deviceSize.width() ) ; if(mAlbumName == NULL) { - mAlbumName = new HbLabel(this); + mAlbumName = new HbLabel(this); HbFrameItem *frame = new HbFrameItem(this); //graphics for mAlbumName frame->frameDrawer().setFrameType(HbFrameDrawer::NinePieces); frame->frameDrawer().setFrameGraphicsName("qtg_fr_multimedia_trans"); @@ -366,23 +368,32 @@ mAlbumName->setBackgroundItem(frame->graphicsItem(),-1); } - if(count && isItemVisible(Hb::TitleBarItem)) { - mAlbumName->setGeometry(QRectF(0,0,screenSize.width()/2,deviceSize.height()/24)); - QString text = QString(aTitle); - mAlbumName->setPlainText( text ); - mAlbumName->show(); - mCountItem->setGeometry(QRectF(screenSize.width()/2,0,screenSize.width()/2,deviceSize.height()/24)); - text = QString("(%1)").arg(count); - mCountItem->setPlainText( text ); - mCountItem->setAlignment(Qt::AlignRight); - mCountItem->show(); - } - else if((!count) && isItemVisible(Hb::TitleBarItem)) { + //If fetcher service set only title text + if((XQServiceUtil::isService() ) && isItemVisible(Hb::TitleBarItem)) { mAlbumName->setGeometry(QRectF(0,0,screenSize.width(),deviceSize.height()/24)); QString text = QString(aTitle); mAlbumName->setPlainText( text ); mAlbumName->show(); } + else{ //handle album tiltle and count display logic here + if( count && isItemVisible(Hb::TitleBarItem)) { + mAlbumName->setGeometry(QRectF(0,0,screenSize.width()/2,deviceSize.height()/24)); + QString text = QString(aTitle); + mAlbumName->setPlainText( text ); + mAlbumName->show(); + mCountItem->setGeometry(QRectF(screenSize.width()/2,0,screenSize.width()/2,deviceSize.height()/24)); + text = QString("(%1)").arg(count); + mCountItem->setPlainText( text ); + mCountItem->setAlignment(Qt::AlignRight); + mCountItem->show(); + } + else if((!count) && isItemVisible(Hb::TitleBarItem)) { + mAlbumName->setGeometry(QRectF(0,0,screenSize.width(),deviceSize.height()/24)); + QString text = QString(aTitle); + mAlbumName->setPlainText( text ); + mAlbumName->show(); + } + } } void GlxGridView::showNoImageString() @@ -396,8 +407,13 @@ style()->parameter("hb-param-widget-chrome-height", chromeHeight); midHeight -= chromeHeight; } - if (mZeroItemLabel == NULL) { - mZeroItemLabel = new HbLabel("(No Images)\n To capture images Open", this); + if (mZeroItemLabel == NULL) { + QString displayText(GLX_GRID_NO_IMAGE); + if(!XQServiceUtil::isService()) + { + displayText.append(GLX_GRID_OPEN_CAMERA); + } + mZeroItemLabel = new HbLabel(displayText, this); } mZeroItemLabel->setGeometry(QRectF(0, midHeight - deviceSize.height()/16, screenSize.width(), 3*deviceSize.height()/32)); mZeroItemLabel->setAlignment(Qt::AlignHCenter); @@ -405,10 +421,14 @@ if (mCameraButton == NULL) { mCameraButton = new HbPushButton(this); mCameraButton->setIcon(HbIcon(GLXICON_CAMERA)); + mCameraButton->hide(); connect(mCameraButton, SIGNAL(clicked(bool)), this, SLOT(cameraButtonClicked(bool))); } - mCameraButton->setGeometry(QRectF(screenSize.width()/2 - 3*deviceSize.height()/64, midHeight + deviceSize.height()/32, deviceSize.height()/32, deviceSize.height()/32)); - mCameraButton->show(); + if(!XQServiceUtil::isService()) + { + mCameraButton->setGeometry(QRectF(screenSize.width()/2 - 3*deviceSize.height()/64, midHeight + deviceSize.height()/32, deviceSize.height()/32, deviceSize.height()/32)); + mCameraButton->show(); + } } void GlxGridView::populated() @@ -416,20 +436,6 @@ 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" ); @@ -440,11 +446,11 @@ case EGlxCmdUnMarkAll : mWidget->clearSelection(); - break; + break; default : break; - } + } } QItemSelectionModel * GlxGridView::getSelectionModel() @@ -464,12 +470,12 @@ if ( transitionEffect == GRID_TO_FULLSCREEN ) { - QVariant variant = mModel->data( mModel->index(0,0), GlxFocusIndexRole ); - if ( variant.isValid() && variant.canConvert () ) + QVariant variant = mModel->data( mModel->index(0,0), GlxFocusIndexRole ); + if ( variant.isValid() && variant.canConvert () ) { - selIndex = variant.value(); - } - else + selIndex = variant.value(); + } + else { return mWidget; } @@ -493,7 +499,7 @@ mIconItem->setPos(itemRect.topLeft()); mIconItem->setZValue(mIconItem->zValue() + 20); mIconItem->show(); - return mIconItem; + return mIconItem; } else { @@ -505,7 +511,7 @@ return mWidget; } OstTraceFunctionExit0( GLXGRIDVIEW_GETANIMATIONITEM_EXIT ); - return NULL; + return NULL; } void GlxGridView::loadGridView() @@ -518,8 +524,8 @@ mWindow->viewport()->grabGesture(Qt::TapAndHoldGesture); mWidget = new HgGrid(orient); mWidget->setLongPressEnabled(true); - mWidget->setScrollBarPolicy(HgWidget::ScrollBarAutoHide); - setWidget( mWidget ); + mWidget->setScrollBarPolicy(HgWidget::ScrollBarAutoHide); + setWidget( mWidget ); addViewConnection(); hideorshowitems(orient); } @@ -532,24 +538,24 @@ } void GlxGridView::hideorshowitems(Qt::Orientation orient) { - if (mWidget && mWidget->selectionMode() == HgWidget::NoSelection) { - if(orient == Qt::Horizontal) - { + if ( mWidget && mWidget->selectionMode() == HgWidget::NoSelection ) { + if( orient == Qt::Horizontal ) { setItemVisible(Hb::AllItems, FALSE) ; setViewFlags(viewFlags() | HbView::ViewTitleBarHidden | HbView::ViewStatusBarHidden); + //To:Do remove it later, currently it is solving the problem of status bar is not + //visible when tap on the screen first time + setItemVisible(Hb::AllItems, FALSE) ; + setViewFlags(viewFlags() | HbView::ViewTitleBarHidden | HbView::ViewStatusBarHidden); showItemCount(); - if (mUiOnButton) - { + if (mUiOnButton) { mUiOnButton->show(); - } } - else - { + } + else { showHbItems(); - } + } } - - if (mWidget && mWidget->selectionMode() == HgWidget::MultiSelection) { + else if (mWidget && mWidget->selectionMode() == HgWidget::MultiSelection) { setItemVisible(Hb::TitleBarItem, FALSE) ; if (mUiOnButton) { mUiOnButton->hide(); @@ -578,8 +584,8 @@ { if(mModelWrapper && mWidget) { - QVariant variant = mModelWrapper->data( mModelWrapper->index(0,0), GlxFocusIndexRole ); - if ( variant.isValid() && variant.canConvert () ) + QVariant variant = mModelWrapper->data( mModelWrapper->index(0,0), GlxFocusIndexRole ); + if ( variant.isValid() && variant.canConvert () ) { mWidget->scrollTo( mModelWrapper->index( variant.value(),0) ); mModel->setData(mModel->index(0,0),variant.value(),GlxVisualWindowIndex); @@ -587,9 +593,9 @@ } } -QVariant GlxGridView::itemChange (GraphicsItemChange change, const QVariant &value) +QVariant GlxGridView::itemChange (GraphicsItemChange change, const QVariant &value) { - OstTrace0( TRACE_NORMAL, GLXGRIDVIEW_ITEMCHANGE, "GlxGridView::itemChange" ); + OstTrace0( TRACE_NORMAL, GLXGRIDVIEW_ITEMCHANGE, "GlxGridView::itemChange" ); static bool isEmit = true; if ( isEmit && change == QGraphicsItem::ItemVisibleHasChanged && value.toBool() ) { emit actionTriggered( EGlxCmdSetupItem ); @@ -627,21 +633,18 @@ void GlxGridView::itemSelected(const QModelIndex & index) { OstTrace1( TRACE_NORMAL, GLXGRIDVIEW_ITEMSELECTED, "GlxGridView::itemSelected;index=%d", index.row() ); - if ( mWidget->selectionMode() == HgWidget::MultiSelection ) - { + if ( mWidget->selectionMode() == HgWidget::MultiSelection ) { return ; - } - if(XQServiceUtil::isService()){ + } + if(XQServiceUtil::isService()){ emit gridItemSelected(index); return; - } - OstTraceEventStart0( EVENT_DUP1_GLXGRIDVIEW_ITEMSELECTED_START, "Fullscreen Launch Time" ); - if ( mModel ) - { + } + OstTraceEventStart0( EVENT_DUP1_GLXGRIDVIEW_ITEMSELECTED_START, "Fullscreen Launch Time" ); + if ( mModel ) { mModel->setData( index, index.row(), GlxFocusIndexRole ); - } - setItemVisible(Hb::AllItems, FALSE); - emit actionTriggered( EGlxCmdFullScreenOpen ); + } + emit actionTriggered( EGlxCmdFullScreenOpen ); OstTraceEventStop( EVENT_DUP1_GLXGRIDVIEW_ITEMSELECTED_STOP, "Fullscreen Launch Time", EVENT_DUP1_GLXGRIDVIEW_ITEMSELECTED_START ); } @@ -682,7 +685,7 @@ if ( index.row() < 0 || index.row() >= mModel->rowCount() ) { return; - } + } if(mModel) { mModel->setData( index, index.row(), GlxVisualWindowIndex); @@ -722,15 +725,15 @@ void GlxGridView::indicateLongPress(const QModelIndex& index, QPointF coords) { OstTrace0( TRACE_NORMAL, GLXGRIDVIEW_INDICATELONGPRESS, "GlxGridView::indicateLongPress" ); - + if ( mWidget->selectionMode() == HgWidget::MultiSelection ) - { + { return; - } - if ( mModel ) + } + if ( mModel ) { mModel->setData( index, index.row(), GlxFocusIndexRole ); - } + } emit itemSpecificMenuTriggered(viewId(),coords); } diff -r 6481344a6d67 -r d0b4e67b3a60 ui/views/listview/src/glxlistview.cpp --- a/ui/views/listview/src/glxlistview.cpp Fri Jun 11 13:38:23 2010 +0300 +++ b/ui/views/listview/src/glxlistview.cpp Wed Jun 23 18:12:48 2010 +0300 @@ -43,7 +43,6 @@ { qDebug("GlxListView::GlxListView()"); mDocLoader = new HbDocumentLoader(); - setContentFullScreen( true ); } void GlxListView::activate() @@ -137,13 +136,13 @@ mView = static_cast(mDocLoader->findWidget(QString(GLX_LISTVIEW_VIEW))); mListView = static_cast(mDocLoader->findWidget(QString(GLX_LISTVIEW_LIST))); - if(mListView) { + if( mListView ) { //sets the widget setWidget((QGraphicsWidget*) mView); + HbListViewItem *prototype = mListView->listItemPrototype(); + prototype->setStretchingStyle(HbListViewItem::StretchLandscape); } } - HbListViewItem *prototype = mListView->listItemPrototype(); - prototype->setStretchingStyle(HbListViewItem::StretchLandscape); } } diff -r 6481344a6d67 -r d0b4e67b3a60 ui/views/slideshowview/src/glxslideshowwidget.cpp --- a/ui/views/slideshowview/src/glxslideshowwidget.cpp Fri Jun 11 13:38:23 2010 +0300 +++ b/ui/views/slideshowview/src/glxslideshowwidget.cpp Wed Jun 23 18:12:48 2010 +0300 @@ -72,8 +72,9 @@ mIsPause = false; for ( int i = 0; i < NBR_ITEM ; i++) { - mIconItems[i] = new HbIconItem(this); - mIconItems[i]->setBrush(QBrush(Qt::black)); + mIconItems[i] = new HbIconItem( this ); + mIconItems[i]->setBrush( QBrush( Qt::black ) ); + mIconItems[i]->setAlignment( Qt::AlignCenter ); } mSlideTimer = new QTimer(); @@ -170,7 +171,7 @@ GLX_LOG_INFO3("GlxSlideShowWidget::triggeredEffect() image selected index %d array index %d index %d", mSelIndex, mItemIndex, index); mEffectEngine->runEffect( mItemList, QString("HbIconItem") ); emit slideShowEvent( EFFECT_STARTED ); - } +} void GlxSlideShowWidget::effectFinshed() { @@ -182,6 +183,7 @@ mSelIndex = ( ++mSelIndex ) % rowCount; mItemIndex = ( ++mItemIndex ) % NBR_ITEM; mModel->setData( mModel->index(mSelIndex, 0), mSelIndex, GlxFocusIndexRole ); + mModel->setData( mModel->index(mSelIndex, 0), mSelIndex, GlxVisualWindowIndex ); setIconItems( MOVE_FORWARD ); GLX_LOG_INFO2("GlxSlideShowWidget::effectFinshed() after image selected index %d array index %d ", mSelIndex, mItemIndex); @@ -315,6 +317,7 @@ mSelIndex = ( ++mSelIndex ) % rowCount; mItemIndex = ( ++mItemIndex ) % NBR_ITEM; mModel->setData( mModel->index(mSelIndex, 0), mSelIndex, GlxFocusIndexRole ); + mModel->setData( mModel->index(mSelIndex, 0), mSelIndex, GlxVisualWindowIndex ); setIconItems( MOVE_FORWARD ); startSlideShow(); @@ -331,8 +334,9 @@ mSelIndex = mSelIndex ? --mSelIndex : rowCount - 1; mItemIndex = mItemIndex ? mItemIndex - 1 : NBR_ITEM - 1; mModel->setData( mModel->index(mSelIndex, 0), mSelIndex, GlxFocusIndexRole ); + mModel->setData( mModel->index(mSelIndex, 0), mSelIndex, GlxVisualWindowIndex ); - setIconItems( MOVE_BACKWARD); + setIconItems( MOVE_BACKWARD ); startSlideShow(); emit indexchanged(); // on right swipe } diff -r 6481344a6d67 -r d0b4e67b3a60 ui/views/views.pro --- a/ui/views/views.pro Fri Jun 11 13:38:23 2010 +0300 +++ b/ui/views/views.pro Wed Jun 23 18:12:48 2010 +0300 @@ -21,6 +21,7 @@ CONFIG += hb LIBS += -lglxfavmediamodel.dll \ + -lglxmediamodel.dll \ -lglximagedecoderwrapper.dll \ -lglxloggerqt.dll \ -lshareui.dll \ @@ -31,14 +32,19 @@ -lganeswidgets.dll \ -lglxmodelwrapper.dll \ -lglxviewutilities.dll \ - -lglxzoomwidget.dll + -lglxzoomwidget.dll \ + -ldetailsnamelabel.dll \ + -ldetailsnamelabelplugin.dll \ + -ldetailsdescriptionedit.dll \ + -ldetailsdescriptioneditplugin.dll DEFINES += BUILD_GLXVIEWS INCLUDEPATH += . ../inc \ ../../inc \ - ../widgets/glxzoomwidget/inc \ - ../uiengine/model/favmediamodel/inc \ + ../widgets/glxzoomwidget/inc \ + ../uiengine/model/mediamodel/inc \ + ../uiengine/model/favmediamodel/inc \ ../uiengine/medialistwrapper/inc \ ../viewbase/inc \ ../../commonutilities/imagedecoderwrapper/inc \ @@ -48,7 +54,9 @@ ../uiengine/model/modelwrapper/inc \ ../viewutilities/effectengine/inc \ ../viewutilities/settingutility/inc \ - /epoc32/include/mw/hgwidgets + /epoc32/include/mw/hgwidgets \ + ../detailscustomwidget/detailsnamelabel/inc \ + ../detailscustomwidget/detailsdescriptionedit/inc symbian: { TARGET.UID3 = 0x200009EF @@ -62,8 +70,6 @@ fullscreenview/inc/glxcoverflow.h \ fullscreenview/inc/glxfullscreenview.h \ detailsview/inc/glxdetailsview.h \ - detailsview/inc/glxdetailscustomwidgets.h \ - detailsview/inc/glxdetailscustomicon.h \ gridview/inc/glxgridview.h \ slideshowsettingsview/inc/glxslideshowsettingsview.h \ listview/inc/glxlistview.h \ @@ -76,8 +82,6 @@ fullscreenview/src/glxcoverflow.cpp \ fullscreenview/src/glxfullscreenview.cpp \ detailsview/src/glxdetailsview.cpp \ - detailsview/src/glxdetailscustomwidgets.cpp \ - detailsview/src/glxdetailscustomicon.cpp \ gridview/src/glxgridview.cpp \ slideshowsettingsview/src/glxslideshowsettingsview.cpp \ listview/src/glxlistview.cpp \ @@ -86,4 +90,13 @@ docloaders/src/glxviewdocloader.cpp \ viewsfactory/src/glxviewsfactory.cpp -DEFINES += QT_NO_DEBUG_OUTPUT QT_NO_WARNING_OUTPUT \ No newline at end of file +DEFINES += QT_NO_DEBUG_OUTPUT QT_NO_WARNING_OUTPUT + +defBlock = \ +"$${LITERAL_HASH}if defined(EABI)" \ +"DEFFILE ../eabi/glxviews.def" \ + "$${LITERAL_HASH}else" \ + "DEFFILE ../bwins/glxviews.def" \ + "$${LITERAL_HASH}endif" + +MMP_RULES += defBlock diff -r 6481344a6d67 -r d0b4e67b3a60 ui/viewutilities/effectengine/src/glxeffectengine.cpp --- a/ui/viewutilities/effectengine/src/glxeffectengine.cpp Fri Jun 11 13:38:23 2010 +0300 +++ b/ui/viewutilities/effectengine/src/glxeffectengine.cpp Wed Jun 23 18:12:48 2010 +0300 @@ -253,13 +253,16 @@ { qDebug("GlxSlideShowEffectEngine::cleanTrnastionEfffect()"); - foreach( GlxTransitionEffectSetting *list, mTransitionEffectList) { + QHashIterator iter( mTransitionEffectList ); + + while ( iter.hasNext() ) { + iter.next(); + GlxTransitionEffectSetting *list = iter.value(); for ( int i = 0; i < list->count(); ++i ) { HbEffect::remove( list->itemType().at(i), list->effectFileList().at(i), list->eventType().at(i)) ; } - delete list; + delete list; } - mTransitionEffectList.clear(); - + mTransitionEffectList.clear(); } diff -r 6481344a6d67 -r d0b4e67b3a60 ui/viewutilities/viewutilities.pro --- a/ui/viewutilities/viewutilities.pro Fri Jun 11 13:38:23 2010 +0300 +++ b/ui/viewutilities/viewutilities.pro Wed Jun 23 18:12:48 2010 +0300 @@ -57,4 +57,13 @@ effectengine/src/glxtransitioneffect.cpp \ effectengine/src/glxeffectengine.cpp -DEFINES += QT_NO_DEBUG_OUTPUT QT_NO_WARNING_OUTPUT \ No newline at end of file +DEFINES += QT_NO_DEBUG_OUTPUT QT_NO_WARNING_OUTPUT + +defBlock = \ +"$${LITERAL_HASH}if defined(EABI)" \ +"DEFFILE ../eabi/glxviewutilities.def" \ + "$${LITERAL_HASH}else" \ + "DEFFILE ../bwins/glxviewutilities.def" \ + "$${LITERAL_HASH}endif" + +MMP_RULES += defBlock diff -r 6481344a6d67 -r d0b4e67b3a60 ui/widgets/bwins/glxzoomwidgetu.def --- a/ui/widgets/bwins/glxzoomwidgetu.def Fri Jun 11 13:38:23 2010 +0300 +++ b/ui/widgets/bwins/glxzoomwidgetu.def Wed Jun 23 18:12:48 2010 +0300 @@ -36,4 +36,5 @@ ?animationFrameChanged@GlxZoomWidget@@QAEXH@Z @ 35 NONAME ; void GlxZoomWidget::animationFrameChanged(int) ?tr@GlxZoomWidget@@SA?AVQString@@PBD0@Z @ 36 NONAME ; class QString GlxZoomWidget::tr(char const *, char const *) ?trUtf8@GlxZoomWidget@@SA?AVQString@@PBD0H@Z @ 37 NONAME ; class QString GlxZoomWidget::trUtf8(char const *, char const *, int) + ?timerEvent@GlxZoomWidget@@MAEXPAVQTimerEvent@@@Z @ 38 NONAME ; void GlxZoomWidget::timerEvent(class QTimerEvent *) diff -r 6481344a6d67 -r d0b4e67b3a60 ui/widgets/eabi/glxzoomwidgetu.def --- a/ui/widgets/eabi/glxzoomwidgetu.def Fri Jun 11 13:38:23 2010 +0300 +++ b/ui/widgets/eabi/glxzoomwidgetu.def Wed Jun 23 18:12:48 2010 +0300 @@ -42,4 +42,5 @@ _ZThn8_N13GlxZoomWidget16sceneEventFilterEP13QGraphicsItemP6QEvent @ 41 NONAME _ZThn8_N13GlxZoomWidgetD0Ev @ 42 NONAME _ZThn8_N13GlxZoomWidgetD1Ev @ 43 NONAME + _ZN13GlxZoomWidget10timerEventEP11QTimerEvent @ 44 NONAME diff -r 6481344a6d67 -r d0b4e67b3a60 ui/widgets/glxzoomwidget/glxzoomwidget.pro --- a/ui/widgets/glxzoomwidget/glxzoomwidget.pro Fri Jun 11 13:38:23 2010 +0300 +++ b/ui/widgets/glxzoomwidget/glxzoomwidget.pro Wed Jun 23 18:12:48 2010 +0300 @@ -41,8 +41,18 @@ } exportfile = "inc/glxzoomwidget.h APP_LAYER_PLATFORM_EXPORT_PATH(glxzoomwidget.h)" +exportfile += "inc/glxzoomwidget_global.h APP_LAYER_PLATFORM_EXPORT_PATH(glxzoomwidget_global.h)" BLD_INF_RULES.prj_exports += exportfile # Input HEADERS += inc/glxzoomwidget.h inc/glxzoomwidget_global.h SOURCES += src/glxzoomwidget.cpp + +defBlock = \ +"$${LITERAL_HASH}if defined(EABI)" \ +"DEFFILE ../eabi/glxzoomwidget.def" \ + "$${LITERAL_HASH}else" \ + "DEFFILE ../bwins/glxzoomwidget.def" \ + "$${LITERAL_HASH}endif" + +MMP_RULES += defBlock diff -r 6481344a6d67 -r d0b4e67b3a60 ui/widgets/glxzoomwidget/inc/glxzoomwidget.h --- a/ui/widgets/glxzoomwidget/inc/glxzoomwidget.h Fri Jun 11 13:38:23 2010 +0300 +++ b/ui/widgets/glxzoomwidget/inc/glxzoomwidget.h Wed Jun 23 18:12:48 2010 +0300 @@ -67,6 +67,7 @@ protected: bool sceneEvent(QEvent *event); bool sceneEventFilter(QGraphicsItem *watched,QEvent *event); + void timerEvent(QTimerEvent *event); protected slots: void dataChanged(QModelIndex startIndex, QModelIndex endIndex); @@ -130,6 +131,7 @@ bool mPinchGestureOngoing; //to check if decoded image is available bool mDecodedImageAvailable; + int mTimerId; }; #endif //GLXZOOMWIDGET_H diff -r 6481344a6d67 -r d0b4e67b3a60 ui/widgets/glxzoomwidget/src/glxzoomwidget.cpp --- a/ui/widgets/glxzoomwidget/src/glxzoomwidget.cpp Fri Jun 11 13:38:23 2010 +0300 +++ b/ui/widgets/glxzoomwidget/src/glxzoomwidget.cpp Wed Jun 23 18:12:48 2010 +0300 @@ -23,9 +23,10 @@ #include "glxmodelparm.h" #include "glxzoomwidget.h" -GlxZoomWidget::GlxZoomWidget(QGraphicsItem *parent):HbScrollArea(parent), mModel(NULL), mMinZValue(MINZVALUE), mMaxZValue(MAXZVALUE), mImageDecodeRequestSend(false), mPinchGestureOngoing(false), mDecodedImageAvailable(false) +GlxZoomWidget::GlxZoomWidget(QGraphicsItem *parent):HbScrollArea(parent), mModel(NULL), mMinZValue(MINZVALUE), mMaxZValue(MAXZVALUE), mImageDecodeRequestSend(false), mPinchGestureOngoing(false), mDecodedImageAvailable(false), mTimerId(0) { grabGesture(Qt::PinchGesture); + grabGesture(Qt::TapGesture); setAcceptTouchEvents(true) ; setFrictionEnabled(false); setZValue(mMinZValue); @@ -45,7 +46,7 @@ mImageDecoder = new GlxImageDecoderWrapper; //inititalizing the timer for animation - m_AnimTimeLine = new QTimeLine(1000, this); + m_AnimTimeLine = new QTimeLine(500, this); m_AnimTimeLine->setFrameRange(0, 100); connect(m_AnimTimeLine, SIGNAL(frameChanged(int)), this, SLOT(animationFrameChanged(int))); connect(m_AnimTimeLine, SIGNAL(finished()), this, SLOT(animationTimeLineFinished())); @@ -96,7 +97,10 @@ void GlxZoomWidget::cleanUp() { -// disconnect( mModel, SIGNAL( dataChanged(QModelIndex,QModelIndex) ), this, SLOT( dataChanged(QModelIndex,QModelIndex) ) ); + if(mModel) { + disconnect( mModel, SIGNAL( dataChanged(QModelIndex,QModelIndex) ), this, SLOT( dataChanged(QModelIndex,QModelIndex) ) ); + mModel = NULL; + } if(mImageDecoder) { mImageDecoder->resetDecoder(); } @@ -148,6 +152,20 @@ bool GlxZoomWidget::executeGestureEvent(QGraphicsItem *source,QGestureEvent *event) { + if(QTapGesture *gesture = static_cast(event->gesture(Qt::TapGesture))) { + if (gesture->state() == Qt::GestureFinished) { + if(!mTimerId) { + mTimerId = startTimer(500); + } + else { + killTimer(mTimerId); + mTimerId = 0; + animateZoomOut(gesture->position()); + } + } + event->accept(gesture); + return true; + } if (QGesture *pinch = event->gesture(Qt::PinchGesture)) { QPinchGesture* pinchG = static_cast(pinch); QPinchGesture::ChangeFlags changeFlags = pinchG->changeFlags(); @@ -354,6 +372,13 @@ //retreiveFocusedImage(); if(!mDecodedImageAvailable) { QPixmap targetPixmap(getFocusedImage()); + mItemSize = targetPixmap.size(); + mMaxScaleSize = mItemSize; + mMaxScaleSize.scale(mWindowSize*13, Qt::KeepAspectRatio); + mMaxScaleDecSize = mItemSize; + mMaxScaleDecSize.scale(mWindowSize*7, Qt::KeepAspectRatio); + mMinScaleSize = mItemSize* 0.7; + mMinDecScaleSize = mItemSize; mZoomItem->setPixmap(targetPixmap); finalizeWidgetTransform(); } @@ -439,7 +464,7 @@ m_AnimRefPoint = animRefPoint; QSizeF requiredSize = mItemSize; requiredSize.scale(mWindowSize*3.5, Qt::KeepAspectRatio); - m_FinalAnimatedScaleFactor = requiredSize.width()*3.5/mMinScaleSize.width(); + m_FinalAnimatedScaleFactor = requiredSize.width()/mMinDecScaleSize.width(); m_AnimTimeLine->setDirection(QTimeLine::Forward); m_AnimTimeLine->start(); // zoomImage(5, m_AnimRefPoint); @@ -448,7 +473,7 @@ void GlxZoomWidget::animateZoomOut(QPointF animRefPoint) { m_AnimRefPoint = animRefPoint; - m_FinalAnimatedScaleFactor = mMinScaleSize.width()/mCurrentSize.width(); + m_FinalAnimatedScaleFactor = mMinDecScaleSize.width()/mCurrentSize.width(); //m_AnimTimeLine->setDirection(QTimeLine::Backward); m_AnimTimeLine->start(); } @@ -456,12 +481,10 @@ { qreal scaleFactor = 1; if(m_FinalAnimatedScaleFactor > 1) { - // qreal scaleFactor = (100+ ((m_FinalAnimatedScaleFactor*100 - 100)/100)*frameNumber)/100; - scaleFactor = 1.0 + (((m_FinalAnimatedScaleFactor - 1)/100)*frameNumber); + scaleFactor = (1.0 + (((m_FinalAnimatedScaleFactor - 1)/100)*frameNumber))/(mCurrentSize.width()/mMinDecScaleSize.width()); } if(m_FinalAnimatedScaleFactor < 1) { - scaleFactor = (m_FinalAnimatedScaleFactor*100+ ((100 - m_FinalAnimatedScaleFactor*100 )/100)*frameNumber)/100; - // qreal scaleFactor = 1.0 + (((m_FinalAnimatedScaleFactor - 1)/100)*frameNumber) + scaleFactor = (m_FinalAnimatedScaleFactor+ (((1 - m_FinalAnimatedScaleFactor)/100)*frameNumber))/(mCurrentSize.width()/mMinDecScaleSize.width()); } zoomImage(scaleFactor, m_AnimRefPoint); @@ -480,3 +503,12 @@ } } + +void GlxZoomWidget::timerEvent(QTimerEvent *event) +{ + if(mTimerId == event->timerId()) + { + killTimer(mTimerId); + mTimerId = 0; + } +}