# HG changeset patch # User hgs # Date 1277362153 -10800 # Node ID 229f037ce963a43300308ee87995e3119100197e # Parent 13331705e488df11e23d88c844d823cc2107f35c 201025 diff -r 13331705e488 -r 229f037ce963 inc/mpxvideo_debug.h --- a/inc/mpxvideo_debug.h Fri Jun 11 09:44:20 2010 +0300 +++ b/inc/mpxvideo_debug.h Thu Jun 24 09:49:13 2010 +0300 @@ -15,7 +15,7 @@ */ -// Version : %version: ou1cpsw#3 % +// Version : %version: ou1cpsw#5 % @@ -40,10 +40,10 @@ #else #ifdef _MPX_FILE_LOGGING_ #define FU_DEBUG MPXDebug::FileLog - #else + #else #define FU_DEBUG #endif -#endif +#endif class MPXDebug @@ -53,7 +53,7 @@ { VA_LIST list; VA_START(list,aFmt); - RFileLogger::WriteFormat( _L("Fusion"), + RFileLogger::WriteFormat( _L("Fusion"), _L("fusion.log"), EFileLoggingModeAppend, aFmt, @@ -76,16 +76,16 @@ class TFusionLog : public TDes16Overflow { public: - + inline static void FusionLog( TRefByValue aFmt, ... ) { - TBuf< 512 > buffer; - + TBuf< 496 > buffer; + VA_LIST list; VA_START( list, aFmt ); buffer.AppendFormatList( aFmt, list ); VA_END(list); - + FU_DEBUG(_L("#Fu# %S"), &buffer ); } }; @@ -93,7 +93,7 @@ class TEnterExitLog : public TDes16Overflow { public: - + void Overflow(TDes16& /*aDes*/) { FU_DEBUG(_L("%S Logging Overflow"), &iFunctionName); @@ -103,40 +103,40 @@ TRefByValue aFmt, ... ) { iFunctionName = HBufC::New( TDesC(aFunctionName).Length() ); - + if ( iFunctionName ) { iFunctionName->Des().Copy(aFunctionName); } - - TBuf< 512 > buffer; - + + TBuf< 496 > buffer; + VA_LIST list; VA_START( list, aFmt ); buffer.AppendFormatList( aFmt, list, this ); VA_END(list); - + FU_DEBUG(_L("#Fu# --> %S %S"), iFunctionName, &buffer ); } - + TEnterExitLog( TRefByValue aFunctionName ) { iFunctionName = HBufC::New( TDesC(aFunctionName).Length() ); - + if ( iFunctionName ) { iFunctionName->Des().Copy(aFunctionName); } - + FU_DEBUG(_L("#Fu# --> %S"), iFunctionName ); } - + ~TEnterExitLog() { FU_DEBUG(_L("#Fu# <-- %S"), iFunctionName ); delete iFunctionName; } - + private: HBufC* iFunctionName; }; diff -r 13331705e488 -r 229f037ce963 inc/videoactivitystate.h --- a/inc/videoactivitystate.h Fri Jun 11 09:44:20 2010 +0300 +++ b/inc/videoactivitystate.h Thu Jun 24 09:49:13 2010 +0300 @@ -15,7 +15,7 @@ * */ -// Version : %version: 1 % +// Version : %version: da1mmcf#3 % #ifndef __VIDEOACTIVITYSTATE_H__ #define __VIDEOACTIVITYSTATE_H__ @@ -27,36 +27,18 @@ // videoplayer activity id static const QString ACTIVITY_VIDEOPLAYER_MAINVIEW = "VideosMainView"; +// last position of the last played media clip (int) +static const QString KEY_LAST_PLAY_POSITION_ID = "_VideoActivity_last_play_position_id_"; -namespace VideoActivityData -{ - // consts to be used as key values - // plugin type (int): collectionplugin or videoplaybackplugin - static const QString KEY_VIEWPLUGIN_TYPE = "_VideoActivity_viewplugin_type_"; - - // type of collectionview plugin's widget level(int): - // all videos, collections or collection video list - static const QString KEY_WIDGET_LEVEL = "_VideoActivity_widget_level_"; - - // id of the collection whose videolist is to be shown (int). - static const QString KEY_WIDGET_ID = "_VideoActivity_view_item_id_"; +// name of the media clip last played (QString) +static const QString KEY_LAST_PLAYED_CLIP = "_VideoActivity_last_played_clip_"; - // for playback plugin: view to activate either play or details - static const QString KEY_PLAYB_VIEW = "_VideoActivity_playb_view_type_"; - - // for playback plugin: video path - static const QString KEY_VIDEO_PATH = "_VideoActivity_video_path_"; - - // for playback plugin: video playback position - static const QString KEY_VIDEO_POS = "_VideoActivity_video_pos_"; - - // for playback plugin: video playback state - static const QString KEY_PLAYB_STATE = "_VideoActivity_playb_state_"; - - // for playback plugin: video playback volume - static const QString KEY_PLAYB_VOLUME = "_VideoActivity_playb_volume_"; - -} +// Key for plugin type in activity manager +static const QString KEY_VIEWPLUGIN_TYPE = "_VideoActivity_viewplugin_type_"; + +// was the last played media clip a local clip (not streaming or prog. download) +static const QString KEY_LAST_LOCAL_PLAYBACK = "_VideoActivity_last_local_playback_"; + /** * Class is used as a static activity data container for videoplayer application diff -r 13331705e488 -r 229f037ce963 mediasettings/mediasettings.pro --- a/mediasettings/mediasettings.pro Fri Jun 11 09:44:20 2010 +0300 +++ b/mediasettings/mediasettings.pro Thu Jun 24 09:49:13 2010 +0300 @@ -20,6 +20,6 @@ symbian: { BLD_INF_RULES.prj_mmpfiles += $$LITERAL_HASH"include \"group/bld.inf\"" -#SUBDIRS += videosettingsplugin +SUBDIRS += videosettingsplugin } \ No newline at end of file diff -r 13331705e488 -r 229f037ce963 mediasettings/videosettingsplugin/inc/videosettingsgroup.h --- a/mediasettings/videosettingsplugin/inc/videosettingsgroup.h Fri Jun 11 09:44:20 2010 +0300 +++ b/mediasettings/videosettingsplugin/inc/videosettingsgroup.h Thu Jun 24 09:49:13 2010 +0300 @@ -19,6 +19,7 @@ #include #include +#include class CpItemDataHelper; class CMPSettingsModel; @@ -106,6 +107,11 @@ CpItemDataHelper& mItemDataHelper; /** + * Holds videos translation file. It's needed to localize texts in this plugin. + */ + QTranslator mTranslator; + + /** * The settings model where settings are loaded and saved. */ CMPSettingsModel* mSettingsModel; diff -r 13331705e488 -r 229f037ce963 mediasettings/videosettingsplugin/src/videosettingsgroup.cpp --- a/mediasettings/videosettingsplugin/src/videosettingsgroup.cpp Fri Jun 11 09:44:20 2010 +0300 +++ b/mediasettings/videosettingsplugin/src/videosettingsgroup.cpp Thu Jun 24 09:49:13 2010 +0300 @@ -31,9 +31,25 @@ #include #include #include -#include #include +const int PROXY_LOWEST_ACCEPTED_VALUE = 1; +const int UDP_LOWEST_ACCEPTED_VALUE = 1024; +const int PORT_HIGHEST_ACCEPTED_VALUE = 65535; + +void gValidatePortValues(int& value, int bottom, int top) +{ + if(value < bottom) + { + value = bottom; + } + + if(value > top) + { + value = top; + } +} + // --------------------------------------------------------------------------- // Constructor // --------------------------------------------------------------------------- @@ -50,28 +66,27 @@ mProxyPortItem(0) { MPX_ENTER_EXIT(_L("VideoSettingsGroup::VideoSettingsGroup()")); - + // Load the translation file. QString lang = QLocale::system().name(); - QTranslator translator; bool loaded(false); - loaded = translator.load( "videos_" + lang, QString("c:/resource/qt/translations") ); + loaded = mTranslator.load( "videos_" + lang, QString("c:/resource/qt/translations") ); if (!loaded) { - translator.load("videos_" + lang, QString("z:/resource/qt/translations") ); + mTranslator.load("videos_" + lang, QString("z:/resource/qt/translations") ); } // Install the translator HbApplication* app = qobject_cast(qApp); if(app) { - app->installTranslator(&translator); + app->installTranslator(&mTranslator); } - + this->setLabel(hbTrId("txt_videos_subhead_video_streaming_settings")); - + TRAPD(err, InitSettingsModelL()); if(err != KErrNone) { @@ -79,52 +94,52 @@ mSettingsModel = 0; return; } - + itemDataHelper.connectToForm(SIGNAL(itemShown(const QModelIndex)), this, SLOT(itemShown(const QModelIndex))); - + // Access point in use - mAccessPointItem = new VideoSettingsAccessPointEntry(itemDataHelper, + mAccessPointItem = new VideoSettingsAccessPointEntry(itemDataHelper, hbTrId("txt_videos_dblist_access_point"), this); this->appendChild(mAccessPointItem); - + // Lowest UDP port mLowestUDPPortItem = new CpSettingFormItemData(HbDataFormModelItem::TextItem, hbTrId("txt_videos_dblist_min_udp_port")); mLowestUDPPortItem->setContentWidgetData(QString("maxRows"), 1); - mItemDataHelper.addConnection(mLowestUDPPortItem, SIGNAL(editingFinished()), + mItemDataHelper.addConnection(mLowestUDPPortItem, SIGNAL(editingFinished()), this, SLOT(lowestUdpPortEditingFinished())); this->appendChild(mLowestUDPPortItem); - + // Highest UDP port mHighestUDPPortItem = new CpSettingFormItemData(HbDataFormModelItem::TextItem, hbTrId("txt_videos_dblist_max_udp_port")); mHighestUDPPortItem->setContentWidgetData(QString("maxRows"), 1); - mItemDataHelper.addConnection(mHighestUDPPortItem, SIGNAL(editingFinished()), + mItemDataHelper.addConnection(mHighestUDPPortItem, SIGNAL(editingFinished()), this, SLOT(highestUdpPortEditingFinished())); this->appendChild(mHighestUDPPortItem); - + // Use proxy mUseProxyItem = new CpSettingFormItemData(HbDataFormModelItem::CheckBoxItem, QString()); mUseProxyItem->setContentWidgetData(QString("text"), hbTrId("txt_videos_formlabel_proxy_in_use")); this->appendChild(mUseProxyItem); - + // Proxy server address mProxyServerItem = new CpSettingFormItemData(HbDataFormModelItem::TextItem, hbTrId("txt_videos_dblist_proxy_host_name")); mProxyServerItem->setContentWidgetData(QString("maxRows"), 1); mProxyServerItem->setContentWidgetData(QString("placeholderText"), hbTrId("txt_videos_dblist_none")); - mItemDataHelper.addConnection(mProxyServerItem, SIGNAL(editingFinished()), + mItemDataHelper.addConnection(mProxyServerItem, SIGNAL(editingFinished()), this, SLOT(proxyServerEditingFinished())); this->appendChild(mProxyServerItem); - + // Proxy port number mProxyPortItem = new CpSettingFormItemData(HbDataFormModelItem::TextItem, hbTrId("txt_videos_dblist_proxy_port")); mProxyPortItem->setContentWidgetData(QString("maxRows"), 1); - mItemDataHelper.addConnection(mProxyPortItem, SIGNAL(editingFinished()), + mItemDataHelper.addConnection(mProxyPortItem, SIGNAL(editingFinished()), this, SLOT(proxyPortEditingFinished())); this->appendChild(mProxyPortItem); - + loadSettings(); } @@ -135,9 +150,9 @@ VideoSettingsGroup::~VideoSettingsGroup() { MPX_ENTER_EXIT(_L("VideoSettingsGroup::~VideoSettingsGroup()")); - + TRAP_IGNORE( mSettingsModel->StoreSettingsL() ); - + delete mSettingsModel; } @@ -148,12 +163,12 @@ uint VideoSettingsGroup::getAccessPointId() { MPX_ENTER_EXIT(_L("VideoSettingsGroup::getAccessPointId()")); - + TUint32 defaultAp(0); mSettingsModel->GetDefaultAp(defaultAp); - + MPX_DEBUG(_L("Returned access point id = %i"), defaultAp); - + return defaultAp; } @@ -163,10 +178,16 @@ // void VideoSettingsGroup::setAccessPointId(const uint& defaultAp) { - MPX_ENTER_EXIT(_L("VideoSettingsGroup::setAccessPointId()"), + MPX_ENTER_EXIT(_L("VideoSettingsGroup::setAccessPointId()"), _L("defaultAp = %i"), defaultAp); - - mSettingsModel->SetDefaultAp(defaultAp); + + uint oldAp = getAccessPointId(); + + if(oldAp != defaultAp) + { + mSettingsModel->SetDefaultAp(defaultAp); + mUseProxyItem->setContentWidgetData(QString("checked"), false); + } } // --------------------------------------------------------------------------- @@ -176,18 +197,21 @@ void VideoSettingsGroup::lowestUdpPortEditingFinished() { MPX_ENTER_EXIT(_L("VideoSettingsGroup::lowestUdpPortValueChanged()")); - + int minPort = mLowestUDPPortItem->contentWidgetData(QString("text")).toString().toInt(); int maxPort = mHighestUDPPortItem->contentWidgetData(QString("text")).toString().toInt(); - + MPX_DEBUG(_L("minudp = %i, maxudp = %i"), minPort, maxPort); - + if(minPort > maxPort) { minPort = maxPort; - mLowestUDPPortItem->setContentWidgetData(QString("text"), QString::number(minPort)); } - + + gValidatePortValues(minPort, UDP_LOWEST_ACCEPTED_VALUE, PORT_HIGHEST_ACCEPTED_VALUE); + + mLowestUDPPortItem->setContentWidgetData(QString("text"), QString::number(minPort)); + mSettingsModel->SetMinUDPPort(minPort); } @@ -198,18 +222,21 @@ void VideoSettingsGroup::highestUdpPortEditingFinished() { MPX_ENTER_EXIT(_L("VideoSettingsGroup::highestUdpPortValueChanged()")); - + int maxPort = mHighestUDPPortItem->contentWidgetData(QString("text")).toString().toInt(); int minPort = mLowestUDPPortItem->contentWidgetData(QString("text")).toString().toInt(); - + MPX_DEBUG(_L("minudp = %i, maxudp = %i"), minPort, maxPort); - + if(maxPort < minPort) { maxPort = minPort; - mHighestUDPPortItem->setContentWidgetData(QString("text"), QString::number(maxPort)); } - + + gValidatePortValues(maxPort, UDP_LOWEST_ACCEPTED_VALUE, PORT_HIGHEST_ACCEPTED_VALUE); + + mHighestUDPPortItem->setContentWidgetData(QString("text"), QString::number(maxPort)); + mSettingsModel->SetMaxUDPPort(maxPort); } @@ -219,12 +246,12 @@ // void VideoSettingsGroup::useProxyToggled(int state) { - MPX_ENTER_EXIT(_L("VideoSettingsGroup::useProxyToggled()"), + MPX_ENTER_EXIT(_L("VideoSettingsGroup::useProxyToggled()"), _L("state = %i"), state); - + mProxyServerItem->setEnabled(state == Qt::Checked); mProxyPortItem->setEnabled(state == Qt::Checked); - + mSettingsModel->SetProxyMode(state == Qt::Checked ? 1 : 0); } @@ -235,11 +262,11 @@ void VideoSettingsGroup::proxyServerEditingFinished() { MPX_ENTER_EXIT(_L("VideoSettingsGroup::proxyServerValueChanged()")); - + QString text = mProxyServerItem->contentWidgetData(QString("text")).toString(); - + MPX_DEBUG(_L("new proxy server = '%s'"), text.data()); - + HBufC* proxyServer = XQConversions::qStringToS60Desc(text); TRAP_IGNORE( mSettingsModel->SetProxyHostNameL(*proxyServer) ); delete proxyServer; @@ -252,12 +279,16 @@ void VideoSettingsGroup::proxyPortEditingFinished() { MPX_ENTER_EXIT(_L("VideoSettingsGroup::proxyPortValueChanged()")); - + int proxyPort = mProxyPortItem->contentWidgetData(QString("text")).toString().toInt(); - + MPX_DEBUG(_L("new proxy port = %i"), proxyPort); - - mSettingsModel->SetProxyPort(proxyPort); + + gValidatePortValues(proxyPort, PROXY_LOWEST_ACCEPTED_VALUE, PORT_HIGHEST_ACCEPTED_VALUE); + + mProxyPortItem->setContentWidgetData(QString("text"), QString::number(proxyPort)); + + mSettingsModel->SetProxyPort(proxyPort); } // --------------------------------------------------------------------------- @@ -266,26 +297,23 @@ // void VideoSettingsGroup::itemShown(const QModelIndex& index) { - MPX_ENTER_EXIT(_L("VideoSettingsGroup::itemShown()"), + MPX_ENTER_EXIT(_L("VideoSettingsGroup::itemShown()"), _L("index row = %i"), index.row()); - + HbDataFormModelItem* modelItem = mItemDataHelper.modelItemFromModelIndex(index); - + if(modelItem == mLowestUDPPortItem || modelItem == mHighestUDPPortItem || modelItem == mProxyPortItem ) { HbLineEdit *editor = static_cast(mItemDataHelper.widgetFromModelIndex(index)); + editor->setMaxLength(5); + HbEditorInterface editorIf(editor); editorIf.setFilter(HbDigitsOnlyFilter::instance()); - - HbValidator *validator = new HbValidator(this); - int lowestAllowedPort = modelItem == mProxyPortItem ? 1 : 1024; - validator->addField(new QIntValidator(lowestAllowedPort, 65535, validator), modelItem->contentWidgetData(QString("text")).toString()); - editor->setValidator(validator); } - + if(modelItem == mProxyServerItem) { mItemDataHelper.addConnection(mUseProxyItem, SIGNAL(stateChanged(int)), this, SLOT(useProxyToggled(int))); @@ -301,7 +329,7 @@ void VideoSettingsGroup::InitSettingsModelL() { MPX_ENTER_EXIT(_L("VideoSettingsGroup::InitSettingsModelL()")); - + TUid settingsUid = {KMPSettEngImplUidROP}; mSettingsModel = CMPSettingsModel::NewL(settingsUid); mSettingsModel->LoadSettingsL(EConfigUser); @@ -314,28 +342,28 @@ void VideoSettingsGroup::loadSettings() { MPX_ENTER_EXIT(_L("VideoSettingsGroup::loadSettings()")); - + int lowestUdpPort(0); mSettingsModel->GetMinUDPPort(lowestUdpPort); mLowestUDPPortItem->setContentWidgetData(QString("text"), QString::number(lowestUdpPort)); - + int highestUdpPort(0); mSettingsModel->GetMaxUDPPort(highestUdpPort); mHighestUDPPortItem->setContentWidgetData(QString("text"), QString::number(highestUdpPort)); - + int proxyMode(0); mSettingsModel->GetProxyMode(proxyMode); mUseProxyItem->setContentWidgetData(QString("checked"), proxyMode == 1); useProxyToggled(proxyMode == 1 ? Qt::Checked : Qt::Unchecked); - - TBuf<2048> proxyServerBuf; + + TBuf<496> proxyServerBuf; mSettingsModel->GetProxyHostName(proxyServerBuf); QString proxyServer = XQConversions::s60DescToQString(proxyServerBuf); mProxyServerItem->setContentWidgetData(QString("text"), proxyServer); - + int proxyPort; mSettingsModel->GetProxyPort(proxyPort); mProxyPortItem->setContentWidgetData(QString("text"), QString::number(proxyPort)); - + mAccessPointItem->setIapId(getAccessPointId()); } diff -r 13331705e488 -r 229f037ce963 mediasettings/videosettingsplugin/tsrc/testgroup/src/testvideosettingsgroup.cpp --- a/mediasettings/videosettingsplugin/tsrc/testgroup/src/testvideosettingsgroup.cpp Fri Jun 11 09:44:20 2010 +0300 +++ b/mediasettings/videosettingsplugin/tsrc/testgroup/src/testvideosettingsgroup.cpp Thu Jun 24 09:49:13 2010 +0300 @@ -119,6 +119,9 @@ QCOMPARE( mItemHelper->mFormConnection.signal, SIGNAL(itemShown(const QModelIndex)) ); QVERIFY( mItemHelper->mFormConnection.receiver == mTestObject ); QCOMPARE( mItemHelper->mFormConnection.method, SLOT(itemShown(const QModelIndex)) ); + + // and that group has correct label + QCOMPARE( mTestObject->label(), hbTrId("txt_videos_subhead_video_streaming_settings") ); } // --------------------------------------------------------------------------- @@ -250,13 +253,30 @@ // void TestVideoSettingsGroup::testSetAccessPointId() { + QString string("test"); CMPSettingsModel::mApId = -1; - - uint ap = 3; + mTestObject->mUseProxyItem->setContentWidgetData(QString("checked"), true); + mTestObject->mProxyServerItem->setContentWidgetData(QString("text"), string); + CMPSettingsModel::mHostName = string; + // given ap id is different from the one that is saved in settingsmodel. + uint ap = 3; mTestObject->setAccessPointId(ap); + QCOMPARE( CMPSettingsModel::mApId, (int)ap ); + QVERIFY( mTestObject->mUseProxyItem->contentWidgetData(QString("checked")).toBool() == false ); + QCOMPARE( mTestObject->mProxyServerItem->contentWidgetData(QString("text")).toString(), string ); + QCOMPARE( CMPSettingsModel::mHostName, string ); + mTestObject->mUseProxyItem->setContentWidgetData(QString("checked"), true); + mTestObject->mProxyServerItem->setContentWidgetData(QString("text"), string); + CMPSettingsModel::mHostName = string; + + // given ap id is the same than the one that is saved in settingsmodel. + mTestObject->setAccessPointId(ap); QCOMPARE( CMPSettingsModel::mApId, (int)ap ); + QVERIFY( mTestObject->mUseProxyItem->contentWidgetData(QString("checked")).toBool() ); + QCOMPARE( mTestObject->mProxyServerItem->contentWidgetData(QString("text")).toString(), string ); + QCOMPARE( CMPSettingsModel::mHostName, string ); } // --------------------------------------------------------------------------- @@ -268,30 +288,61 @@ connect(this, SIGNAL(testTextSignal()), mTestObject, SLOT(lowestUdpPortEditingFinished())); - QString highText("12345"); + // normal case where min port is less than max port and both are in acceptable range. + QString highText("10000"); mTestObject->mHighestUDPPortItem->setContentWidgetData(QString("text"), highText); - QString testString("1234"); + QString testString("1024"); + mTestObject->mLowestUDPPortItem->setContentWidgetData(QString("text"), testString); + + emit testTextSignal(); + + QCOMPARE( CMPSettingsModel::mMinUdpPort, testString.toInt() ); + + // min port greater than max port, both are in acceptable range. + CMPSettingsModel::mMinUdpPort = 0; + mTestObject->mLowestUDPPortItem->setContentWidgetData(QString("text"), QString("10001")); + + emit testTextSignal(); + + QCOMPARE( CMPSettingsModel::mMinUdpPort, highText.toInt() ); + + // min port same as max port and in acceptable range. + CMPSettingsModel::mMinUdpPort = 0; + testString = "10000"; mTestObject->mLowestUDPPortItem->setContentWidgetData(QString("text"), testString); emit testTextSignal(); QCOMPARE( CMPSettingsModel::mMinUdpPort, testString.toInt() ); + // min port less than 1024 CMPSettingsModel::mMinUdpPort = 0; - mTestObject->mLowestUDPPortItem->setContentWidgetData(QString("text"), QString("12346")); + mTestObject->mLowestUDPPortItem->setContentWidgetData(QString("text"), QString("1023")); emit testTextSignal(); - QCOMPARE( CMPSettingsModel::mMinUdpPort, highText.toInt() ); + QCOMPARE( CMPSettingsModel::mMinUdpPort, 1024 ); + QCOMPARE( mTestObject->mLowestUDPPortItem->contentWidgetData(QString("text")).toString(), QString("1024") ); + // min port greater than 65535 CMPSettingsModel::mMinUdpPort = 0; - testString = "12345"; - mTestObject->mLowestUDPPortItem->setContentWidgetData(QString("text"), testString); + mTestObject->mHighestUDPPortItem->setContentWidgetData(QString("text"), QString("65536")); + mTestObject->mLowestUDPPortItem->setContentWidgetData(QString("text"), QString("65536")); emit testTextSignal(); - QCOMPARE( CMPSettingsModel::mMinUdpPort, testString.toInt() ); + QCOMPARE( CMPSettingsModel::mMinUdpPort, 65535 ); + QCOMPARE( mTestObject->mLowestUDPPortItem->contentWidgetData(QString("text")).toString(), QString("65535") ); + + // min port field empty + CMPSettingsModel::mMinUdpPort = 0; + mTestObject->mLowestUDPPortItem->setContentWidgetData(QString("text"), QString("")); + + emit testTextSignal(); + + QCOMPARE( CMPSettingsModel::mMinUdpPort, 1024 ); + QCOMPARE( mTestObject->mLowestUDPPortItem->contentWidgetData(QString("text")).toString(), QString("1024") ); } // --------------------------------------------------------------------------- @@ -303,30 +354,61 @@ connect(this, SIGNAL(testTextSignal()), mTestObject, SLOT(highestUdpPortEditingFinished())); - QString lowText("1234"); + // normal case where min port is less than max port and both are in acceptable range. + QString lowText("2000"); mTestObject->mLowestUDPPortItem->setContentWidgetData(QString("text"), lowText); - QString testString("12345"); + QString testString("65535"); mTestObject->mHighestUDPPortItem->setContentWidgetData(QString("text"), testString); emit testTextSignal(); QCOMPARE( CMPSettingsModel::mMaxUdpPort, testString.toInt() ); + // max port less than min port, both in acceptable range. CMPSettingsModel::mMaxUdpPort = 0; - mTestObject->mHighestUDPPortItem->setContentWidgetData(QString("text"), QString("1233")); + mTestObject->mHighestUDPPortItem->setContentWidgetData(QString("text"), QString("1999")); emit testTextSignal(); QCOMPARE( CMPSettingsModel::mMaxUdpPort, lowText.toInt() ); + // max port same as min port and in acceptable range. CMPSettingsModel::mMaxUdpPort = 0; - testString = "1234"; + testString = "2000"; mTestObject->mHighestUDPPortItem->setContentWidgetData(QString("text"), testString); emit testTextSignal(); QCOMPARE( CMPSettingsModel::mMaxUdpPort, testString.toInt() ); + + // max port less than 1024 + CMPSettingsModel::mMaxUdpPort = 0; + mTestObject->mHighestUDPPortItem->setContentWidgetData(QString("text"), QString("1023")); + mTestObject->mLowestUDPPortItem->setContentWidgetData(QString("text"), QString("1023")); + + emit testTextSignal(); + + QCOMPARE( CMPSettingsModel::mMaxUdpPort, 1024 ); + QCOMPARE( mTestObject->mHighestUDPPortItem->contentWidgetData(QString("text")).toString(), QString("1024") ); + + // max port greater than 65535 + CMPSettingsModel::mMaxUdpPort = 0; + mTestObject->mHighestUDPPortItem->setContentWidgetData(QString("text"), QString("65536")); + + emit testTextSignal(); + + QCOMPARE( CMPSettingsModel::mMaxUdpPort, 65535 ); + QCOMPARE( mTestObject->mHighestUDPPortItem->contentWidgetData(QString("text")).toString(), QString("65535") ); + + // max port field empty + CMPSettingsModel::mMaxUdpPort = 0; + mTestObject->mHighestUDPPortItem->setContentWidgetData(QString("text"), QString("")); + + emit testTextSignal(); + + QCOMPARE( CMPSettingsModel::mMaxUdpPort, 1024 ); + QCOMPARE( mTestObject->mHighestUDPPortItem->contentWidgetData(QString("text")).toString(), QString("1024") ); } // --------------------------------------------------------------------------- @@ -376,11 +458,40 @@ connect(this, SIGNAL(testTextSignal()), mTestObject, SLOT(proxyPortEditingFinished())); - QString testString("1234"); + // proxy port at lowest accepted range. + QString testString("1"); + mTestObject->mProxyPortItem->setContentWidgetData(QString("text"), testString); + + emit testTextSignal(); + QCOMPARE( CMPSettingsModel::mProxyPort, testString.toInt() ); + + // proxy port at highest accepted range. + testString = "65535"; mTestObject->mProxyPortItem->setContentWidgetData(QString("text"), testString); emit testTextSignal(); QCOMPARE( CMPSettingsModel::mProxyPort, testString.toInt() ); + + // proxy port 0 + mTestObject->mProxyPortItem->setContentWidgetData(QString("text"), QString("0")); + + emit testTextSignal(); + QCOMPARE( CMPSettingsModel::mProxyPort, 1 ); + QCOMPARE( mTestObject->mProxyPortItem->contentWidgetData(QString("text")).toString(), QString("1") ); + + // proxy port higher than accepted. + mTestObject->mProxyPortItem->setContentWidgetData(QString("text"), QString("65536")); + + emit testTextSignal(); + QCOMPARE( CMPSettingsModel::mProxyPort, 65535 ); + QCOMPARE( mTestObject->mProxyPortItem->contentWidgetData(QString("text")).toString(), QString("65535") ); + + // proxy port empty + mTestObject->mProxyPortItem->setContentWidgetData(QString("text"), QString("")); + + emit testTextSignal(); + QCOMPARE( CMPSettingsModel::mProxyPort, 1 ); + QCOMPARE( mTestObject->mProxyPortItem->contentWidgetData(QString("text")).toString(), QString("1") ); } // --------------------------------------------------------------------------- @@ -397,34 +508,23 @@ HbLineEdit* editor = new HbLineEdit(); mItemHelper->mWidgetReturnValue = editor; - QIntValidator* val; - mItemHelper->mModelItemReturnValue = mTestObject->mLowestUDPPortItem; HbEditorInterface::mFilter = 0; emit testShownSignal(index); QVERIFY( HbEditorInterface::mFilter == HbDigitsOnlyFilter::instance() ); - QCOMPARE( editor->mValidator->mValidators.count(), 1 ); - val = static_cast(editor->mValidator->mValidators.at(0)); - QCOMPARE( val->bottom(), 1024 ); - QCOMPARE( val->top(), 65535 ); + QCOMPARE( editor->mMaxLength, 5 ); mItemHelper->mModelItemReturnValue = mTestObject->mProxyPortItem; HbEditorInterface::mFilter = 0; emit testShownSignal(index); QVERIFY( HbEditorInterface::mFilter == HbDigitsOnlyFilter::instance() ); - QCOMPARE( editor->mValidator->mValidators.count(), 1 ); - val = static_cast(editor->mValidator->mValidators.at(0)); - QCOMPARE( val->bottom(), 1 ); - QCOMPARE( val->top(), 65535 ); + QCOMPARE( editor->mMaxLength, 5 ); mItemHelper->mModelItemReturnValue = mTestObject->mHighestUDPPortItem; HbEditorInterface::mFilter = 0; emit testShownSignal(index); QVERIFY( HbEditorInterface::mFilter == HbDigitsOnlyFilter::instance() ); - QCOMPARE( editor->mValidator->mValidators.count(), 1 ); - val = static_cast(editor->mValidator->mValidators.at(0)); - QCOMPARE( val->bottom(), 1024 ); - QCOMPARE( val->top(), 65535 ); + QCOMPARE( editor->mMaxLength, 5 ); mItemHelper->mModelItemReturnValue = mTestObject->mProxyServerItem; HbEditorInterface::mFilter = 0; diff -r 13331705e488 -r 229f037ce963 mediasettings/videosettingsplugin/tsrc/testgroup/stub/inc/hblineedit.h --- a/mediasettings/videosettingsplugin/tsrc/testgroup/stub/inc/hblineedit.h Fri Jun 11 09:44:20 2010 +0300 +++ b/mediasettings/videosettingsplugin/tsrc/testgroup/stub/inc/hblineedit.h Thu Jun 24 09:49:13 2010 +0300 @@ -34,11 +34,15 @@ virtual ~HbLineEdit(); void setValidator(HbValidator *validator); + + void setMaxLength(int max); public: HbValidator* mValidator; + int mMaxLength; + }; #endif // HBLINEEDIT_H diff -r 13331705e488 -r 229f037ce963 mediasettings/videosettingsplugin/tsrc/testgroup/stub/src/hblineedit.cpp --- a/mediasettings/videosettingsplugin/tsrc/testgroup/stub/src/hblineedit.cpp Fri Jun 11 09:44:20 2010 +0300 +++ b/mediasettings/videosettingsplugin/tsrc/testgroup/stub/src/hblineedit.cpp Thu Jun 24 09:49:13 2010 +0300 @@ -51,3 +51,12 @@ { mValidator = validator; } + +// --------------------------------------------------------------------------- +// setValidator +// --------------------------------------------------------------------------- +// +void HbLineEdit::setMaxLength(int max) +{ + mMaxLength = max; +} diff -r 13331705e488 -r 229f037ce963 videocollection/inc/videocollectiontrace.h --- a/videocollection/inc/videocollectiontrace.h Fri Jun 11 09:44:20 2010 +0300 +++ b/videocollection/inc/videocollectiontrace.h Thu Jun 24 09:49:13 2010 +0300 @@ -90,9 +90,9 @@ /** * Trace prefixes for macros with component name. */ -#define _PREFIX_TRACE( a ) TPtrC( (const TText*) L"#FuC# " L##a ) -#define _PREFIX_TRACE_2( a, b ) TPtrC( (const TText*) L"#FuC# " L##a L##b ) -#define _PREFIX_TRACE8( a ) (const char*)( "#FuC# " ##a ) +#define _PREFIX_TRACE( a ) TPtrC( (const TText*) L"#Fu#Co# " L##a ) +#define _PREFIX_TRACE_2( a, b ) TPtrC( (const TText*) L"#Fu#Co# " L##a L##b ) +#define _PREFIX_TRACE8( a ) (const char*)( "#Fu#Co# " a ) /** * Prefix error trace diff -r 13331705e488 -r 229f037ce963 videocollection/mpxmyvideoscollection/tsrc/mpxmvcolltest/conf/VCXMyVideosCollectionPluginTest.cfg --- a/videocollection/mpxmyvideoscollection/tsrc/mpxmvcolltest/conf/VCXMyVideosCollectionPluginTest.cfg Fri Jun 11 09:44:20 2010 +0300 +++ b/videocollection/mpxmyvideoscollection/tsrc/mpxmvcolltest/conf/VCXMyVideosCollectionPluginTest.cfg Thu Jun 24 09:49:13 2010 +0300 @@ -369,12 +369,10 @@ VCXMV WaitForMessages 1MINUTE KVCXMYVideosTestMessageCollectionOpened KVCXMYVideosTestMessageListComplete waittestclass VCXMV -VCXMV CreateVideoFileNoWait VcxTestVideoMpeg4 DRIVE_1 "video1_DRIVE1.mp4" ANY_SIZE 3 -VCXMV CreateVideoFileNoWait VcxTestVideoMpeg4 DRIVE_2 "video2_DRIVE2.mp4" ANY_SIZE 3 -VCXMV CreateVideoFileNoWait VcxTestVideoMpeg4 DRIVE_1 "video3_DRIVE1.mp4" ANY_SIZE 3 -VCXMV CreateVideoFileNoWait VcxTestVideoMpeg4 DRIVE_2 "video4_DRIVE2.mp4" ANY_SIZE 3 - -pause PAUSE_SIDELOAD_MINUTE +VCXMV CreateVideoFile VcxTestVideoMpeg4 DRIVE_1 "video1_DRIVE1.mp4" ANY_SIZE 3 +VCXMV CreateVideoFile VcxTestVideoMpeg4 DRIVE_2 "video2_DRIVE2.mp4" ANY_SIZE 3 +VCXMV CreateVideoFile VcxTestVideoMpeg4 DRIVE_1 "video3_DRIVE1.mp4" ANY_SIZE 3 +VCXMV CreateVideoFile VcxTestVideoMpeg4 DRIVE_2 "video4_DRIVE2.mp4" ANY_SIZE 3 VCXMV CheckMediaCount ANY_DRIVE 12 VCXMV CheckMediaDetail ANY_DRIVE 0 EVcxTestMapping_KMPXMediaGeneralFlags EVcxMyVideosVideoNew diff -r 13331705e488 -r 229f037ce963 videocollection/mpxmyvideoscollection/tsrc/mpxmvcolltest/conf/VCXMyVideosCollectionPluginTestAlbums.cfg --- a/videocollection/mpxmyvideoscollection/tsrc/mpxmvcolltest/conf/VCXMyVideosCollectionPluginTestAlbums.cfg Fri Jun 11 09:44:20 2010 +0300 +++ b/videocollection/mpxmyvideoscollection/tsrc/mpxmvcolltest/conf/VCXMyVideosCollectionPluginTestAlbums.cfg Thu Jun 24 09:49:13 2010 +0300 @@ -56,7 +56,6 @@ VCXMV RemoveAllMedia delete VCXMV - create VCXMyVideosCollectionPluginTest VCXMV VCXMV Create @@ -174,6 +173,9 @@ VCXMV WaitForMessages 1MINUTE KVCXMYVideosTestMessageCollectionOpened waittestclass VCXMV +VCXMV RefreshContents +VCXMV WaitForMessages 1MINUTE KVCXMYVideosTestMessageCollectionOpened + VCXMV CheckAlbumCount 1 print OK! @@ -502,8 +504,13 @@ VCXMV WaitForMessages 1MINUTE KVCXMYVideosTestMessageMpxAlbumInserted KVCXMYVideosTestMessageCollectionOpened waittestclass VCXMV -VCXMV CloseLevel -VCXMV WaitForMessages 1MINUTE KVCXMYVideosTestMessageCollectionOpened +delete VCXMV + +create VCXMyVideosCollectionPluginTest VCXMV +VCXMV Create + +VCXMV OpenCollection VCXCollectionMyVideos +VCXMV WaitForMessages 1MINUTE KVCXMYVideosTestMessageCollectionOpened KVCXMYVideosTestMessageListComplete waittestclass VCXMV VCXMV CheckAlbumCount 5 @@ -938,6 +945,79 @@ delete VCXMV [Endtest] +#------------------------------------------------------------------------------------ +# +# Add videos to album from collection root level +# +#------------------------------------------------------------------------------------ +[Test] +title Add videos to album from collection root level + +callsub Cleanup + +// TESTCASE START + +create VCXMyVideosCollectionPluginTest VCXMV +VCXMV Create + +VCXMV OpenCollection VCXCollectionMyVideos +VCXMV WaitForMessages 1MINUTE KVCXMYVideosTestMessageCollectionOpened KVCXMYVideosTestMessageListComplete +waittestclass VCXMV + +VCXMV CreateAlbum Album1 +VCXMV WaitForMessages 1MINUTE KVCXMYVideosTestMessageMpxAlbumInserted KVCXMYVideosTestMessageCollectionOpened +waittestclass VCXMV + +VCXMV CreateAlbum Album2 +VCXMV WaitForMessages 1MINUTE KVCXMYVideosTestMessageMpxAlbumInserted KVCXMYVideosTestMessageCollectionOpened +waittestclass VCXMV + +VCXMV OpenLevel EVcxMyVideosAllVideos +VCXMV WaitForMessages 1MINUTE KVCXMYVideosTestMessageCollectionOpened KVCXMYVideosTestMessageListComplete +waittestclass VCXMV + +VCXMV CreateVideoFile VcxTestVideoMpeg4 DRIVE_1 "video.mp4" ANY_SIZE 3 +VCXMV CheckMediaCount ANY_DRIVE 3 + +VCXMV CoolDown + +VCXMV SetUseCopiedMedias 1 + +VCXMV CloseLevel +VCXMV WaitForMessages 1MINUTE KVCXMYVideosTestMessageCollectionOpened +waittestclass VCXMV + +VCXMV AddMediasToAlbum Album2 ANY_DRIVE 0 3 +VCXMV WaitForMessages 1MINUTE KVCXMYVideosTestMessageMpxAlbumModified KVCXMYVideosTestMessageCommandComplete KVCXMYVideosTestMessageCollectionOpened +waittestclass VCXMV + +VCXMV CoolDown + +VCXMV CheckMediaDetail ANY_DRIVE Album2 EVcxTestMapping_KVcxMediaMyVideosCategoryItemCount 3 + +// Check that videos have been added. + +VCXMV SetUseCopiedMedias 0 + +VCXMV OpenLevel Album2 +VCXMV WaitForMessages 1MINUTE KVCXMYVideosTestMessageCollectionOpened KVCXMYVideosTestMessageListComplete +waittestclass VCXMV + +VCXMV CheckMediaCount ANY_DRIVE 3 + +VCXMV CloseLevel +VCXMV WaitForMessages 1MINUTE KVCXMYVideosTestMessageCollectionOpened +waittestclass VCXMV + +VCXMV OpenLevel Album1 +VCXMV WaitForMessages 1MINUTE KVCXMYVideosTestMessageCollectionOpened KVCXMYVideosTestMessageListComplete +waittestclass VCXMV + +VCXMV CheckMediaCount ANY_DRIVE 0 + +print OK! +delete VCXMV +[Endtest] #------------------------------------------------------------------------------------ # @@ -977,6 +1057,7 @@ VCXMV AddMediasToAlbum Album1 ANY_DRIVE 0 1 VCXMV WaitForMessages 1MINUTE KVCXMYVideosTestMessageMpxAlbumModified KVCXMYVideosTestMessageCommandComplete KVCXMYVideosTestMessageCollectionOpened +allownextresult KERRARGUMENT waittestclass VCXMV // Check that videos have been added. @@ -2429,7 +2510,7 @@ waittestclass VCXMV VCXMV RenameAlbum Album1 Album2 -VCXMV WaitForMessages 1MINUTE KVCXMYVideosTestMessageMpxAlbumModified KVCXMYVideosTestMessageCollectionOpened +VCXMV WaitForMessages 1MINUTE KVCXMYVideosTestMessageMpxAlbumModified waittestclass VCXMV VCXMV CheckAlbumExists Album2 @@ -2471,7 +2552,7 @@ waittestclass VCXMV VCXMV RenameAlbum Album1 "EmptyString" -VCXMV WaitForMessages 1MINUTE KVCXMYVideosTestMessageMpxAlbumModified KVCXMYVideosTestMessageCollectionOpened +VCXMV WaitForMessages 1MINUTE KVCXMYVideosTestMessageMpxAlbumModified waittestclass VCXMV allownextresult KERRNOTFOUND @@ -2482,39 +2563,6 @@ delete VCXMV [Endtest] -#------------------------------------------------------------------------------------ -# -# Rename album with long name -# -#------------------------------------------------------------------------------------ -[Test] -title Rename album with long name - -callsub Cleanup - -// TESTCASE START - -create VCXMyVideosCollectionPluginTest VCXMV -VCXMV Create - -VCXMV OpenCollection VCXCollectionMyVideos -VCXMV WaitForMessages 1MINUTE KVCXMYVideosTestMessageCollectionOpened KVCXMYVideosTestMessageListComplete -waittestclass VCXMV - -VCXMV CreateAlbum Album1 -VCXMV WaitForMessages 1MINUTE KVCXMYVideosTestMessageMpxAlbumInserted KVCXMYVideosTestMessageCollectionOpened -waittestclass VCXMV - -VCXMV RenameAlbum Album1 "2KString" -VCXMV WaitForMessages 1MINUTE KVCXMYVideosTestMessageMpxAlbumModified KVCXMYVideosTestMessageCollectionOpened -waittestclass VCXMV - -VCXMV CheckAlbumExists Album1 -VCXMV CheckAlbumCount 1 - -print OK! -delete VCXMV -[Endtest] #------------------------------------------------------------------------------------ # diff -r 13331705e488 -r 229f037ce963 videocollection/mpxmyvideoscollection/tsrc/mpxmvcolltest/conf/VCXMyVideosCollectionPluginTestCategories.cfg --- a/videocollection/mpxmyvideoscollection/tsrc/mpxmvcolltest/conf/VCXMyVideosCollectionPluginTestCategories.cfg Fri Jun 11 09:44:20 2010 +0300 +++ b/videocollection/mpxmyvideoscollection/tsrc/mpxmvcolltest/conf/VCXMyVideosCollectionPluginTestCategories.cfg Thu Jun 24 09:49:13 2010 +0300 @@ -53,8 +53,6 @@ VCXMV RemoveAllMedia delete VCXMV -print wait 30sec -pause 30000 print cleanup end [EndSub] @@ -206,34 +204,6 @@ #------------------------------------------------------------------------------------ # -# Tests opening 'TV Recordings' category when it's empty. -# -#------------------------------------------------------------------------------------ -[Test] -title TV recordings - empty -create VCXMyVideosCollectionPluginTest VCXMV -VCXMV Create - -VCXMV OpenCollection VCXCollectionMyVideos -VCXMV WaitForMessages 1MINUTE KVCXMYVideosTestMessageCollectionOpened -waittestclass VCXMV - -VCXMV OpenLevel EVcxMyVideosTvRecordings -VCXMV WaitForMessages 1MINUTE KVCXMYVideosTestMessageCollectionOpened KVCXMYVideosTestMessageListComplete -waittestclass VCXMV - -VCXMV CheckMediaCount ANY_DRIVE 0 - -VCXMV CloseLevel -VCXMV WaitForMessages 1MINUTE KVCXMYVideosTestMessageCollectionOpened -waittestclass VCXMV - -print OK! -delete VCXMV -[Endtest] - -#------------------------------------------------------------------------------------ -# # Tests opening 'Captured videos' category when it's empty. # #------------------------------------------------------------------------------------ @@ -433,36 +403,6 @@ #------------------------------------------------------------------------------------ # -# Tests opening 'TV recordings' category when device has videos with different origins. -# -#------------------------------------------------------------------------------------ -[Test] -title TV recordings - all origins -create VCXMyVideosCollectionPluginTest VCXMV -VCXMV Create -VCXMV SetFileCheck 0 - -VCXMV OpenCollection VCXCollectionMyVideos -VCXMV WaitForMessages 1MINUTE KVCXMYVideosTestMessageCollectionOpened -waittestclass VCXMV - -VCXMV OpenLevel EVcxMyVideosTvRecordings -VCXMV WaitForMessages 1MINUTE KVCXMYVideosTestMessageCollectionOpened KVCXMYVideosTestMessageListComplete -waittestclass VCXMV - -VCXMV CheckMediaCount ANY_DRIVE 1 -VCXMV CheckMediaDetail ANY_DRIVE 0 EVcxTestMapping_KMPXMediaGeneralTitle "OriginRecording" - -VCXMV CloseLevel -VCXMV WaitForMessages 1MINUTE KVCXMYVideosTestMessageCollectionOpened -waittestclass VCXMV - -print OK! -delete VCXMV -[Endtest] - -#------------------------------------------------------------------------------------ -# # Tests opening 'Captured videos' category when device has videos with different origins. # #------------------------------------------------------------------------------------ @@ -735,32 +675,6 @@ #------------------------------------------------------------------------------------ # -# Tests that category 'TV recorgins' has correct details when there's videos with different origins. -# -#------------------------------------------------------------------------------------ -[Test] -title TV recordings - category details -create VCXMyVideosCollectionPluginTest VCXMV -VCXMV Create - -VCXMV OpenCollection VCXCollectionMyVideos -VCXMV WaitForMessages 1MINUTE KVCXMYVideosTestMessageCollectionOpened -waittestclass VCXMV - -VCXMV WaitForMessages 1MINUTE KVCXMYVideosTestMessageListComplete -waittestclass VCXMV - -VCXMV CheckMediaDetail ANY_DRIVE EVcxMyVideosTvRecordings EVcxTestMapping_KMPXMediaGeneralTitle "TV recordings" -VCXMV CheckMediaDetail ANY_DRIVE EVcxMyVideosTvRecordings EVcxTestMapping_KVcxMediaMyVideosCategoryItemCount 2 -VCXMV CheckMediaDetail ANY_DRIVE EVcxMyVideosTvRecordings EVcxTestMapping_KVcxMediaMyVideosCategoryNewItemCount 1 -VCXMV CheckMediaDetail ANY_DRIVE EVcxMyVideosTvRecordings EVcxTestMapping_KVcxMediaMyVideosCategoryNewItemName "OriginRecording" - -print OK! -delete VCXMV -[Endtest] - -#------------------------------------------------------------------------------------ -# # Tests that category 'Captured videos' has correct details when there's videos with different origins. # #------------------------------------------------------------------------------------ diff -r 13331705e488 -r 229f037ce963 videocollection/mpxmyvideoscollection/tsrc/mpxmvcolltest/group/VCXMyVideosCollectionPluginTest.pkg --- a/videocollection/mpxmyvideoscollection/tsrc/mpxmvcolltest/group/VCXMyVideosCollectionPluginTest.pkg Fri Jun 11 09:44:20 2010 +0300 +++ b/videocollection/mpxmyvideoscollection/tsrc/mpxmvcolltest/group/VCXMyVideosCollectionPluginTest.pkg Thu Jun 24 09:49:13 2010 +0300 @@ -17,13 +17,17 @@ &EN ; Provide value for uid -#{"VCXMyVideosCollectionPluginTest"},(0x00000000),1,0,0,TYPE=SA, RU +#{"VCXMyVideosCollectionPluginTest"},(0x101FB3E3),1,0,0,TYPE=SA, RU ; Localised Vendor name %{"Nokia"} ; Unique Vendor name :"Nokia" +[0x101F7961],0,0,0,{"S60ProductID"} +[0x102032BE],0,0,0,{"S60ProductID"} +[0x102752AE],0,0,0,{"S60ProductID"} +[0x1028315F],0,0,0,{"S60ProductID"} ; Logo ; None @@ -53,9 +57,9 @@ ; The testframework.ini files won't install with sis, only for ATS test runs. "../init/TestFramework.ini" - "C:/TestFramework/TestFramework.ini" -"../Data/MMC/video_3gp.3gp" - "e:/testing/data/video_3gp.xxx" -"../Data/MMC/video_wmv.dat" - "e:/testing/data/video_wmv.xxx" -"../Data/MMC/video_mpeg4.mp4" - "e:/testing/data/video_mpeg4.xxx" +"../Data/MMC/video_3gp.3gp" - "c:/testing/data/video_3gp.xxx" +"../Data/MMC/video_wmv.dat" - "c:/testing/data/video_wmv.xxx" +"../Data/MMC/video_mpeg4.mp4" - "c:/testing/data/video_mpeg4.xxx" ; Embedded SIS ; None diff -r 13331705e488 -r 229f037ce963 videocollection/mpxmyvideoscollection/tsrc/mpxmvcolltest/group/bld.inf --- a/videocollection/mpxmyvideoscollection/tsrc/mpxmvcolltest/group/bld.inf Fri Jun 11 09:44:20 2010 +0300 +++ b/videocollection/mpxmyvideoscollection/tsrc/mpxmvcolltest/group/bld.inf Thu Jun 24 09:49:13 2010 +0300 @@ -15,14 +15,16 @@ * */ +#include + PRJ_PLATFORMS DEFAULT PRJ_TESTEXPORTS -../data/mmc/video_3gp.3gp /epoc32/winscw/c/testing/data/video_3gp.xxx -../data/mmc/video_mpeg4.mp4 /epoc32/winscw/c/testing/data/video_mpeg4.xxx -../data/mmc/video_wmv.dat /epoc32/winscw/c/testing/data/video_wmv.xxx +../data/mmc/video_3gp.3gp /epoc32/winscw/c/testing/data/video_3gp.xxx +../data/mmc/video_mpeg4.mp4 /epoc32/winscw/c/testing/data/video_mpeg4.xxx +../data/mmc/video_wmv.dat /epoc32/winscw/c/testing/data/video_wmv.xxx ../conf/VCXDrives.inc /epoc32/winscw/c/testframework/VCXDrives.inc ../conf/VCXErrors.inc /epoc32/winscw/c/testframework/VCXErrors.inc ../conf/vcxmvcollectionplugintest.inc /epoc32/winscw/c/testframework/vcxmvcollectionplugintest.inc @@ -30,6 +32,16 @@ ../conf/VCXMyVideosCollectionPluginTestCategories.cfg /epoc32/winscw/c/testframework/VCXMyVideosCollectionPluginTestCategories.cfg ../conf/VCXMyVideosCollectionPluginTestAlbums.cfg /epoc32/winscw/c/testframework/VCXMyVideosCollectionPluginTestAlbums.cfg +../data/mmc/video_3gp.3gp /epoc32/data/z/system/testdata/video_3gp.xxx +../data/mmc/video_mpeg4.mp4 /epoc32/data/z/system/testdata/video_mpeg4.xxx +../data/mmc/video_wmv.dat /epoc32/data/z/system/testdata/video_wmv.xxx +../conf/VCXDrives.inc /epoc32/data/z/system/testdata/VCXDrives.inc +../conf/VCXErrors.inc /epoc32/data/z/system/testdata/VCXErrors.inc +../conf/vcxmvcollectionplugintest.inc /epoc32/data/z/system/testdata/vcxmvcollectionplugintest.inc +../conf/VCXMyVideosCollectionPluginTest.cfg /epoc32/data/z/system/testdata/VCXMyVideosCollectionPluginTest.cfg +../conf/VCXMyVideosCollectionPluginTestCategories.cfg /epoc32/data/z/system/testdata/VCXMyVideosCollectionPluginTestCategories.cfg +../conf/VCXMyVideosCollectionPluginTestAlbums.cfg /epoc32/data/z/system/testdata/VCXMyVideosCollectionPluginTestAlbums.cfg + PRJ_EXPORTS PRJ_TESTMMPFILES diff -r 13331705e488 -r 229f037ce963 videocollection/mpxmyvideoscollection/tsrc/mpxmvcolltest/inc/VCXMyVideosTestUtils.h --- a/videocollection/mpxmyvideoscollection/tsrc/mpxmvcolltest/inc/VCXMyVideosTestUtils.h Fri Jun 11 09:44:20 2010 +0300 +++ b/videocollection/mpxmyvideoscollection/tsrc/mpxmvcolltest/inc/VCXMyVideosTestUtils.h Thu Jun 24 09:49:13 2010 +0300 @@ -83,7 +83,7 @@ /* * Creates a video file to the system. */ - void CreateVideoFileL( TVcxTestVideoType aVideoType, TDesC& aFileName, TInt aSize ); + void CreateVideoFileL( TVcxTestVideoType aVideoType, TDesC& aFileName, TInt aSize, TBool aUniqueName = false ); /* * Creates video files to the system. diff -r 13331705e488 -r 229f037ce963 videocollection/mpxmyvideoscollection/tsrc/mpxmvcolltest/src/VCXMyVideosCollectionPluginTestBlocks.cpp --- a/videocollection/mpxmyvideoscollection/tsrc/mpxmvcolltest/src/VCXMyVideosCollectionPluginTestBlocks.cpp Fri Jun 11 09:44:20 2010 +0300 +++ b/videocollection/mpxmyvideoscollection/tsrc/mpxmvcolltest/src/VCXMyVideosCollectionPluginTestBlocks.cpp Thu Jun 24 09:49:13 2010 +0300 @@ -2970,7 +2970,48 @@ TInt err( KErrNone ); iLastReceivedMessage = -1; - + + if(aDoSync) + { + // Disable automatic refresh. + iTester->SetAutomaticRefresh( EFalse ); + } + + RArray messages; + + for(int i = 0; i < aVideoCount; i++) + { + // Create the video. + TRAP( err, iTestUtils->CreateVideoFileL( aType, *path, aSize, ETrue ) ); + if(err != KErrNone) + { + VCXLOGLO2("CVCXMyVideosCollectionPluginTest:: CreateVideoFileL returned error: %d:", err); + } + + if( aDoSync && iTester->GetCurrentLevel() == 3 ) + { + // Wait for insertion event. + messages.Append( KVCXMYVideosTestMessageMpxVideoInserted ); + WaitForMessagesL( ETrue, messages, 60, ETrue ); + messages.Reset(); + } + } + + if( aDoSync ) + { + // Refresh. + messages.Reset(); + iTester->RefreshContentsL(); + messages.Append( KVCXMYVideosTestMessageCollectionOpened ); + CleanupClosePushL( messages ); + WaitForMessagesL( ETrue, messages, 30, ETrue ); + CleanupStack::PopAndDestroy( &messages ); + iTester->SetAutomaticRefresh( ETrue ); + } + + CleanupStack::PopAndDestroy( path ); + +#if 0 if( aVideoCount == 1 ) { // Save the path for later use. @@ -3035,6 +3076,7 @@ } } } +#endif } // ----------------------------------------------------------------------------- diff -r 13331705e488 -r 229f037ce963 videocollection/mpxmyvideoscollection/tsrc/mpxmvcolltest/src/VCXMyVideosCollectionPluginTester.cpp --- a/videocollection/mpxmyvideoscollection/tsrc/mpxmvcolltest/src/VCXMyVideosCollectionPluginTester.cpp Fri Jun 11 09:44:20 2010 +0300 +++ b/videocollection/mpxmyvideoscollection/tsrc/mpxmvcolltest/src/VCXMyVideosCollectionPluginTester.cpp Thu Jun 24 09:49:13 2010 +0300 @@ -1644,6 +1644,7 @@ delete iCollectionEntries; iCollectionEntries = NULL; iCollectionEntries = CMPXMedia::NewL( *aMessage ); + iCollectionMediaArray = iCollectionEntries->Value( KMPXMediaArrayContents ); UpdateOwnedMediaArrayL(); @@ -2822,7 +2823,7 @@ for( TInt i = 0; i < iAlbumIds.Count(); i++ ) { - // TODO: removing photos albums causes fails in opening albums. + // don't remove photos albums if( iAlbumIds[i].iId1 > 2 ) { album = CMPXMedia::NewL(); @@ -3027,7 +3028,7 @@ break; } indexOfMediaWithDrive++; - } + } } } } diff -r 13331705e488 -r 229f037ce963 videocollection/mpxmyvideoscollection/tsrc/mpxmvcolltest/src/VCXMyVideosTestUtils.cpp --- a/videocollection/mpxmyvideoscollection/tsrc/mpxmvcolltest/src/VCXMyVideosTestUtils.cpp Fri Jun 11 09:44:20 2010 +0300 +++ b/videocollection/mpxmyvideoscollection/tsrc/mpxmvcolltest/src/VCXMyVideosTestUtils.cpp Thu Jun 24 09:49:13 2010 +0300 @@ -97,115 +97,138 @@ // ----------------------------------------------------------------------------- -// CVCXMyVideosTestUtils::CreateVideoFilesL +// CVCXMyVideosTestUtils::CreateVideoFileL // ----------------------------------------------------------------------------- // -void CVCXMyVideosTestUtils::CreateVideoFileL( TVcxTestVideoType aVideoType, TDesC& aFileName, TInt aSize ) +void CVCXMyVideosTestUtils::CreateVideoFileL( TVcxTestVideoType aVideoType, TDesC& aFileName, TInt aSize, TBool aUniqueName ) { VCXLOGLO1(">>>CVcxTestVideoCreator::CreateVideoL"); - // Resolve source filename - TBuf<256> srcFileName; + // Resolve source filename + TBuf<256> srcFileName; - GetVideoFile( srcFileName, aVideoType, _L("C") ); + GetVideoFile( srcFileName, aVideoType, _L("C") ); + if( !BaflUtils::FileExists(iFs, srcFileName) ) + { + VCXLOGLO2("CVcxTestVideoCreator:: %S does not exist.", &srcFileName); + GetVideoFile( srcFileName, aVideoType, _L("E") ); if( !BaflUtils::FileExists(iFs, srcFileName) ) { VCXLOGLO2("CVcxTestVideoCreator:: %S does not exist.", &srcFileName); - GetVideoFile( srcFileName, aVideoType, _L("E") ); - if( !BaflUtils::FileExists(iFs, srcFileName) ) - { - VCXLOGLO2("CVcxTestVideoCreator:: %S does not exist.", &srcFileName); - VCXLOGLO2("CVcxTestVideoCreator:: test video file %S missing! PANIC.", &srcFileName); - User::Panic(_L("Video files missing!"), KErrNotFound); - } + VCXLOGLO2("CVcxTestVideoCreator:: test video file %S missing! PANIC.", &srcFileName); + User::Panic(_L("Video files missing!"), KErrNotFound); } - - BaflUtils::EnsurePathExistsL( iFs, aFileName.Left( aFileName.LocateReverse('\\') ) ); + } + + BaflUtils::EnsurePathExistsL( iFs, aFileName.Left( aFileName.LocateReverse('\\') ) ); + HBufC* newFileName = HBufC::NewL( 256 ); + CleanupStack::PushL( newFileName ); + + if(!aUniqueName) + { + newFileName->Des().Copy( aFileName ); BaflUtils::DeleteFile( iFs, aFileName ); - - VCXLOGLO2("CVcxTestVideoCreator:: aSize = %d", aSize); - - TInt64 wantedSize( 0 ); - - // Check the size - if( aSize == KVcxTestLargeFile3GB ) { - wantedSize = 1024*1024*1024 * 3; + } + else + { + newFileName->Des().Copy( aFileName ); + TInt dotPos = aFileName.LocateReverse('.'); + int count = 0; + while( BaflUtils::FileExists( iFs, *newFileName ) ) + { + newFileName->Des().Copy( aFileName.Left( aFileName.LocateReverse('\\') ) ); + newFileName->Des().Copy( aFileName.Left( dotPos ) ); + newFileName->Des().Append( _L("_") ); + newFileName->Des().AppendNum( count++ ); + newFileName->Des().Append( aFileName.Right( aFileName.Length() - dotPos ) ); } - else { - wantedSize = aSize; - } - - //wantedSize = wantedSize == 0 ? wantedSize -1 : wantedSize; - - VCXLOGLO2("CVcxTestVideoCreator:: Wanted file size: %Ld", wantedSize); + } + + VCXLOGLO2("CVcxTestVideoCreator:: aSize = %d", aSize); + + TInt64 wantedSize( 0 ); + + // Check the size + if( aSize == KVcxTestLargeFile3GB ) { + wantedSize = 1024*1024*1024 * 3; + } + else { + wantedSize = aSize; + } + + //wantedSize = wantedSize == 0 ? wantedSize -1 : wantedSize; + + VCXLOGLO2("CVcxTestVideoCreator:: Wanted file size: %Ld", wantedSize); - // Read source file into memory, won't work on huge files. - RFile64 srcFile; - VCXLOGLO2("CVcxTestVideoCreator:: Opening %S", &srcFileName); - User::LeaveIfError( srcFile.Open( iFs, srcFileName, EFileRead ) ); - CleanupClosePushL( srcFile ); + // Read source file into memory, won't work on huge files. + RFile64 srcFile; + VCXLOGLO2("CVcxTestVideoCreator:: Opening %S", &srcFileName); + User::LeaveIfError( srcFile.Open( iFs, srcFileName, EFileRead ) ); + CleanupClosePushL( srcFile ); + + TInt64 srcSize(0); + VCXLOGLO2("CVcxTestVideoCreator:: Getting size of %S", &srcFileName); + User::LeaveIfError( srcFile.Size( srcSize ) ); - TInt64 srcSize(0); - VCXLOGLO2("CVcxTestVideoCreator:: Getting size of %S", &srcFileName); - User::LeaveIfError( srcFile.Size( srcSize ) ); + HBufC8* data = HBufC8::NewL( srcSize ); + TPtr8 ptr( data->Des() ); + srcFile.Read( ptr, srcSize ); + CleanupStack::PopAndDestroy( &srcFile ); - HBufC8* data = HBufC8::NewL( srcSize ); - TPtr8 ptr( data->Des() ); - srcFile.Read( ptr, srcSize ); - CleanupStack::PopAndDestroy( &srcFile ); + CleanupStack::PushL( data ); + + // Write new file. + RFile64 dstFile; + VCXLOGLO1("CVcxTestVideoCreator:: Replace"); + User::LeaveIfError( dstFile.Replace( iFs, *newFileName, EFileWrite ) ); + CleanupClosePushL(dstFile); - CleanupStack::PushL( data ); + if( wantedSize <= srcSize ) + { + if( wantedSize == -1 ) + { + VCXLOGLO2("CVcxTestVideoCreator:: Writing %Ld", srcSize); + User::LeaveIfError( dstFile.Write( *data, srcSize ) ); + } + else + { + VCXLOGLO2("CVcxTestVideoCreator:: Writing %Ld", wantedSize); + User::LeaveIfError( dstFile.Write( *data, wantedSize ) ); + } + } + else + { + VCXLOGLO2("CVcxTestVideoCreator:: Writing %Ld", srcSize); + User::LeaveIfError( dstFile.Write( *data, srcSize ) ); - // Write new file. - RFile64 dstFile; - VCXLOGLO1("CVcxTestVideoCreator:: Replace"); - User::LeaveIfError( dstFile.Replace( iFs, aFileName, EFileWrite ) ); - CleanupClosePushL(dstFile); - - if( wantedSize <= srcSize ) + const TInt KVcxTest200Kilos = 1024*200; + HBufC8* buff = HBufC8::NewL( KVcxTest200Kilos ); + buff->Des().SetLength( KVcxTest200Kilos ); + CleanupStack::PushL( buff ); + TInt64 bytesToWrite = wantedSize - srcSize; + while( bytesToWrite > 0 ) { - if( wantedSize == -1 ) + if( bytesToWrite >= KVcxTest200Kilos ) { - VCXLOGLO2("CVcxTestVideoCreator:: Writing %Ld", srcSize); - User::LeaveIfError( dstFile.Write( *data, srcSize ) ); + bytesToWrite -= KVcxTest200Kilos; + User::LeaveIfError( dstFile.Write( *buff ) ); } else { - VCXLOGLO2("CVcxTestVideoCreator:: Writing %Ld", wantedSize); - User::LeaveIfError( dstFile.Write( *data, wantedSize ) ); + User::LeaveIfError( dstFile.Write( *buff, bytesToWrite ) ); + bytesToWrite = 0; } } - else - { - VCXLOGLO2("CVcxTestVideoCreator:: Writing %Ld", srcSize); - User::LeaveIfError( dstFile.Write( *data, srcSize ) ); + CleanupStack::PopAndDestroy( buff ); + } - const TInt KVcxTest200Kilos = 1024*200; - HBufC8* buff = HBufC8::NewL( KVcxTest200Kilos ); - buff->Des().SetLength( KVcxTest200Kilos ); - CleanupStack::PushL( buff ); - TInt64 bytesToWrite = wantedSize - srcSize; - while( bytesToWrite > 0 ) - { - if( bytesToWrite >= KVcxTest200Kilos ) - { - bytesToWrite -= KVcxTest200Kilos; - User::LeaveIfError( dstFile.Write( *buff ) ); - } - else - { - User::LeaveIfError( dstFile.Write( *buff, bytesToWrite ) ); - bytesToWrite = 0; - } - } - CleanupStack::PopAndDestroy( buff ); - } + CleanupStack::PopAndDestroy( &dstFile ); + CleanupStack::PopAndDestroy( data ); + + CleanupStack::PopAndDestroy( newFileName ); - CleanupStack::PopAndDestroy( &dstFile ); - CleanupStack::PopAndDestroy( data ); - - VCXLOGLO1("<<(object); VideoSortFilterProxyModel *model = wrapper.getModel(type); - videoList->initialize(*model, 0); + + VideoCollectionCommon::TCollectionLevels level = VideoCollectionCommon::ELevelInvalid; + if(name == DOCML_NAME_VC_VIDEOLISTWIDGET ) + { + level = VideoCollectionCommon::ELevelVideos; + } + else if(name == DOCML_NAME_VC_COLLECTIONWIDGET) + { + level = VideoCollectionCommon::ELevelCategory; + } + videoList->initialize(*model, 0, level); } else if (name == DOCML_NAME_DIALOG) { diff -r 13331705e488 -r 229f037ce963 videocollection/tsrc/stubs/src/videocollectionviewutils.cpp --- a/videocollection/tsrc/stubs/src/videocollectionviewutils.cpp Fri Jun 11 09:44:20 2010 +0300 +++ b/videocollection/tsrc/stubs/src/videocollectionviewutils.cpp Thu Jun 24 09:49:13 2010 +0300 @@ -28,7 +28,9 @@ QString VideoCollectionViewUtilsData::mIconString = ""; QString VideoCollectionViewUtilsData::mPressedString = ""; QVariant VideoCollectionViewUtilsData::mLastStatusAdditional = QVariant(); -VideoCollectionCommon::TCollectionLevels VideoCollectionViewUtilsData::mWidgetLevel = VideoCollectionCommon::ELevelInvalid; +VideoCollectionCommon::TCollectionLevels VideoCollectionViewUtilsData::mWidgetLevel = VideoCollectionCommon::ELevelVideos; +TMPXItemId VideoCollectionViewUtilsData::mActivityCollectionId = TMPXItemId::InvalidId(); +QString VideoCollectionViewUtilsData::mActivityCollectionName = ""; VideoCollectionViewUtils& VideoCollectionViewUtils::instance() { @@ -125,16 +127,28 @@ // not stubbed } -void VideoCollectionViewUtils::saveWidgetLevel(VideoCollectionCommon::TCollectionLevels &level) +void VideoCollectionViewUtils::setWidgetActivityLevel(const VideoCollectionCommon::TCollectionLevels &level) { - Q_UNUSED(level); - // not stubbed + VideoCollectionViewUtilsData::mWidgetLevel = level; } -VideoCollectionCommon::TCollectionLevels VideoCollectionViewUtils::loadWidgetLevel() +void VideoCollectionViewUtils::getActivityWidgetLevel(VideoCollectionCommon::TCollectionLevels &level) +{ + level = VideoCollectionViewUtilsData::mWidgetLevel; +} + +void VideoCollectionViewUtils::setCollectionActivityData(const TMPXItemId &id, const QString &name) { - return VideoCollectionViewUtilsData::mWidgetLevel; + VideoCollectionViewUtilsData::mActivityCollectionId = id; + VideoCollectionViewUtilsData::mActivityCollectionName = name; } + +void VideoCollectionViewUtils::getCollectionActivityData(TMPXItemId &id, QString &name) +{ + id = VideoCollectionViewUtilsData::mActivityCollectionId; + name = VideoCollectionViewUtilsData::mActivityCollectionName; +} + void VideoCollectionViewUtils::sortModel(VideoSortFilterProxyModel *model, bool async, VideoCollectionCommon::TCollectionLevels target) diff -r 13331705e488 -r 229f037ce963 videocollection/tsrc/stubs/src/videolistview.cpp --- a/videocollection/tsrc/stubs/src/videolistview.cpp Fri Jun 11 09:44:20 2010 +0300 +++ b/videocollection/tsrc/stubs/src/videolistview.cpp Thu Jun 24 09:49:13 2010 +0300 @@ -32,7 +32,6 @@ mUiUtils(VideoCollectionViewUtils::instance()), mWrapper(VideoCollectionWrapper::instance()), mUiLoader(uiLoader), -mIsService(false), mModelReady(false), mVideoServices(0), mCurrentList(0), @@ -61,7 +60,7 @@ // not stubbed } -int VideoListView::activateView(const TMPXItemId &itemId) +int VideoListView::activateView(TMPXItemId &itemId) { Q_UNUSED(itemId); @@ -206,11 +205,11 @@ void VideoListView::collectionOpenedSlot(bool collectionOpened, const QString& collection, - const QModelIndex &index) + const TMPXItemId &id) { Q_UNUSED(collectionOpened); Q_UNUSED(collection); - Q_UNUSED(index); + Q_UNUSED(id); // not stubbed } diff -r 13331705e488 -r 229f037ce963 videocollection/tsrc/stubs/src/videolistwidget.cpp --- a/videocollection/tsrc/stubs/src/videolistwidget.cpp Fri Jun 11 09:44:20 2010 +0300 +++ b/videocollection/tsrc/stubs/src/videolistwidget.cpp Thu Jun 24 09:49:13 2010 +0300 @@ -33,7 +33,6 @@ mVideoServices(0), mCurrentLevel(VideoCollectionCommon::ELevelInvalid), mSignalsConnected(false), - mIsService(false), mNavKeyAction(0), mContextMenu(0), mSelectionMode(HbAbstractItemView::NoSelection), @@ -49,9 +48,9 @@ } int VideoListWidget::initialize(VideoSortFilterProxyModel &model, - VideoServices *videoServices, VideoCollectionCommon::TCollectionLevels level) + bool isService, VideoCollectionCommon::TCollectionLevels level) { - Q_UNUSED(videoServices); + Q_UNUSED(isService); VideoListWidgetData::mInitializeCount++; mModel = &model; @@ -178,6 +177,11 @@ // not stubbed } +void VideoListWidget::endVideoFecthingSlot() +{ + // not stubbed +} + void VideoListWidget::scrollingStartedSlot() { // not stubbed diff -r 13331705e488 -r 229f037ce963 videocollection/tsrc/videoservicestestapp/src/videoservicestestappview.cpp --- a/videocollection/tsrc/videoservicestestapp/src/videoservicestestappview.cpp Fri Jun 11 09:44:20 2010 +0300 +++ b/videocollection/tsrc/videoservicestestapp/src/videoservicestestappview.cpp Thu Jun 24 09:49:13 2010 +0300 @@ -214,6 +214,9 @@ mErrorEdit->setText("Failed to send REQ"); qDebug() << "VideoServicesTestAppView::fetchVideo: XQAiwRequest::send returned false"; } + // req no longer needed, remove it + delete mReq; + mReq = 0; qDebug() << "VideoServicesTestAppView::fetchVideo END"; } @@ -285,6 +288,9 @@ mErrorEdit->setText("Failed to send REQ"); qDebug() << "VideoServicesTestAppView::browseCapturedVideosFinished: XQAiwRequest::send returned false"; } + // req no longer needed, remove it + delete mReq; + mReq = 0; } } @@ -324,6 +330,9 @@ mErrorEdit->setText("Failed to send REQ"); qDebug() << "VideoServicesTestAppView::fetchVideo: XQAiwRequest::send returned false"; } + // req no longer needed, remove it + delete mReq; + mReq = 0; qDebug() << "VideoServicesTestAppView::fetchVideo END"; } @@ -364,7 +373,9 @@ mErrorEdit->setText("Failed to send REQ"); qDebug() << "VideoServicesTestAppView::fetchVideo: XQAiwRequest::send returned false"; } - + // req no longer needed, remove it + delete mReq; + mReq = 0; qDebug() << "VideoServicesTestAppView::fetchVideo END"; } @@ -432,6 +443,9 @@ mErrorEdit->setText("Failed to send REQ"); qDebug() << "VideoServicesTestAppView::browseCapturedVideosFinished: XQAiwRequest::send returned false"; } + // req no longer needed, remove it + delete mReq; + mReq = 0; } } @@ -498,6 +512,9 @@ mErrorEdit->setText("Failed to send REQ"); qDebug() << "VideoServicesTestAppView::browseCapturedVideosFinished: XQAiwRequest::send returned false"; } + // req no longer needed, remove it + delete mReq; + mReq = 0; } } diff -r 13331705e488 -r 229f037ce963 videocollection/videocollectionview/conf/CI_videoplayerservicelist.confml Binary file videocollection/videocollectionview/conf/CI_videoplayerservicelist.confml has changed diff -r 13331705e488 -r 229f037ce963 videocollection/videocollectionview/conf/videolistview.confml Binary file videocollection/videocollectionview/conf/videolistview.confml has changed diff -r 13331705e488 -r 229f037ce963 videocollection/videocollectionview/conf/videolistview_2002BC63.crml Binary file videocollection/videocollectionview/conf/videolistview_2002BC63.crml has changed diff -r 13331705e488 -r 229f037ce963 videocollection/videocollectionview/conf/videoplayerservicelist.confml Binary file videocollection/videocollectionview/conf/videoplayerservicelist.confml has changed diff -r 13331705e488 -r 229f037ce963 videocollection/videocollectionview/data/videolistselectiondialog.docml --- a/videocollection/videocollectionview/data/videolistselectiondialog.docml Fri Jun 11 09:44:20 2010 +0300 +++ b/videocollection/videocollectionview/data/videolistselectiondialog.docml Thu Jun 24 09:49:13 2010 +0300 @@ -57,7 +57,7 @@ - + diff -r 13331705e488 -r 229f037ce963 videocollection/videocollectionview/inc/videocollectioncenrepdefs.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/videocollection/videocollectionview/inc/videocollectioncenrepdefs.h Thu Jun 24 09:49:13 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: +* +*/ + +#ifndef _VIDEOCOLLETIONCENREP_H_ +#define _VIDEOCOLLETIONCENREP_H_ + +// Cenrep constants. +const int KVideoCollectionViewCenrepUid(0x2002BC63); +const int KVideoCollectionViewCenrepVideoSortingRoleKey(0x1); +const int KVideoCollectionViewCenrepVideoSortingOrderKey(0x2); +const int KVideoCollectionViewCenrepCollectionsSortingRoleKey(0x3); +const int KVideoCollectionViewCenrepCollectionsSortingOrderKey(0x4); + +const int KVideoCollectionViewCenrepServiceItem1Title(0x20); +const int KVideoCollectionViewCenrepServiceItem1Text(0x21); +const int KVideoCollectionViewCenrepServiceItem1IconPath(0x22); +const int KVideoCollectionViewCenrepServiceItem1PressedIconPath(0x23); +const int KVideoCollectionViewCenrepServiceItem1ToolbarIconPath(0x24); +const int KVideoCollectionViewCenrepServiceItem1Url(0x25); +const int KVideoCollectionViewCenrepServiceItem1Uid(0x26); + +const int KVideoCollectionViewCenrepServiceItem2Title(0x27); +const int KVideoCollectionViewCenrepServiceItem2Text(0x28); +const int KVideoCollectionViewCenrepServiceItem2ToolbarIconPath(0x29); +const int KVideoCollectionViewCenrepServiceItem2Url(0x2A); +const int KVideoCollectionViewCenrepServiceItem2Uid(0x2B); + +const int KVideoCollectionViewCenrepServiceItem3Title(0x2C); +const int KVideoCollectionViewCenrepServiceItem3Text(0x2D); +const int KVideoCollectionViewCenrepServiceItem3ToolbarIconPath(0x2E); +const int KVideoCollectionViewCenrepServiceItem3Url(0x2F); +const int KVideoCollectionViewCenrepServiceItem3Uid(0x30); + +const int KVideoCollectionViewCenrepServiceItem4Title(0x31); +const int KVideoCollectionViewCenrepServiceItem4Text(0x32); +const int KVideoCollectionViewCenrepServiceItem4ToolbarIconPath(0x33); +const int KVideoCollectionViewCenrepServiceItem4Url(0x34); +const int KVideoCollectionViewCenrepServiceItem4Uid(0x35); + +const int KVideoCollectionViewCenrepServiceItem5Title(0x36); +const int KVideoCollectionViewCenrepServiceItem5Text(0x37); +const int KVideoCollectionViewCenrepServiceItem5ToolbarIconPath(0x38); +const int KVideoCollectionViewCenrepServiceItem5Url(0x39); +const int KVideoCollectionViewCenrepServiceItem5Uid(0x3A); + +const int KVideoCollectionViewCenrepServiceItem6Title(0x3B); +const int KVideoCollectionViewCenrepServiceItem6Text(0x3C); +const int KVideoCollectionViewCenrepServiceItem6ToolbarIconPath(0x3D); +const int KVideoCollectionViewCenrepServiceItem6Url(0x3E); +const int KVideoCollectionViewCenrepServiceItem6Uid(0x3F); + +#endif // _VIDEOCOLLETIONCENREP_H_ diff -r 13331705e488 -r 229f037ce963 videocollection/videocollectionview/inc/videocollectionviewplugin.h --- a/videocollection/videocollectionview/inc/videocollectionviewplugin.h Fri Jun 11 09:44:20 2010 +0300 +++ b/videocollection/videocollectionview/inc/videocollectionviewplugin.h Thu Jun 24 09:49:13 2010 +0300 @@ -22,6 +22,7 @@ class VideoCollectionUiLoader; class VideoListView; +class VideoServices; class VideoCollectionViewPlugin: public MpxViewPlugin { @@ -142,10 +143,10 @@ bool mActivated; /* - * Service mode flag. True if started as a service, otherwise false. + * Video service object. * */ - bool mIsService; + VideoServices *mVideoServices; }; #endif // VIDEOVIEWPLUGIN_H diff -r 13331705e488 -r 229f037ce963 videocollection/videocollectionview/inc/videocollectionviewutils.h --- a/videocollection/videocollectionview/inc/videocollectionviewutils.h Fri Jun 11 09:44:20 2010 +0300 +++ b/videocollection/videocollectionview/inc/videocollectionviewutils.h Thu Jun 24 09:49:13 2010 +0300 @@ -85,19 +85,39 @@ static void sortModel(VideoSortFilterProxyModel *model, bool async, VideoCollectionCommon::TCollectionLevels target); /** - * Method saves the latest videolist widget level into activity manager db + * Method saves the latest videolist widget level into local activity manager + * data container. + * + * Note that collection id will be cleared in activity data in case level is + * all videos or collection list. * - * @param level type of widget + * @param level collection level */ - static void saveWidgetLevel(VideoCollectionCommon::TCollectionLevels &level); + static void setWidgetActivityLevel(const VideoCollectionCommon::TCollectionLevels &level); + + /** + * Method gets the latest videolist widget level from local activity manager + * data container. + * + * @param level, reference to level variable where value is saved + */ + static void getActivityWidgetLevel(VideoCollectionCommon::TCollectionLevels &level); /** - * Method loads the latest videolist widget level from activity manager db. - * Possible values are ELevelCategory or ELevelVideos + * method saves provided id and string into local activity + * manager data container. * - * @return VideoCollectionCommon::TCollectionLevels + * @param id. Id to save */ - static VideoCollectionCommon::TCollectionLevels loadWidgetLevel(); + static void setCollectionActivityData(const TMPXItemId &id, const QString &name); + + /** + * method reads id and string from from local activity manager data + * container and prepares MPX item id. + * + * @param id. Id to return + */ + static void getCollectionActivityData(TMPXItemId &id, QString &name); public slots: diff -r 13331705e488 -r 229f037ce963 videocollection/videocollectionview/inc/videohintwidget.h --- a/videocollection/videocollectionview/inc/videohintwidget.h Fri Jun 11 09:44:20 2010 +0300 +++ b/videocollection/videocollectionview/inc/videohintwidget.h Thu Jun 24 09:49:13 2010 +0300 @@ -123,12 +123,7 @@ * Service icon. */ HbIcon *mServiceIcon; - - /** - * Add videos icon. - */ - HbIcon *mAddVideosIcon; - + /** * Current hint level. */ diff -r 13331705e488 -r 229f037ce963 videocollection/videocollectionview/inc/videolistview.h --- a/videocollection/videocollectionview/inc/videolistview.h Fri Jun 11 09:44:20 2010 +0300 +++ b/videocollection/videocollectionview/inc/videolistview.h Thu Jun 24 09:49:13 2010 +0300 @@ -81,7 +81,7 @@ * @param itemId, Id of the widget which is to be activated * @return 0 activation ok, < 0 if activation fails */ - int activateView(const TMPXItemId &itemId); + int activateView(TMPXItemId &itemId); /** * Deactivates current widget, disables menu and disconnects @@ -250,12 +250,12 @@ /** * Slot is connected to videolistwidgets collectionOpened -signal * - * @param collectionOpened + * @param openingCollection * @param collection contains the name of the collection opened */ - void collectionOpenedSlot(bool collectionOpened, + void collectionOpenedSlot(bool openingCollection, const QString& collection, - const QModelIndex &index); + const TMPXItemId &collectionId); /** * Slot which is called when an object has been loaded. @@ -320,12 +320,19 @@ void showAction(bool show, const QString &name); /** - * Activate to all videos view. + * Activates all videos or collections -list. + * + * @return int 0 ok */ - int activateVideosView(); + int activateMainView(); /** - * Activate to collection content view. + * Activate to collection content view when servicing. + * Only default collections are supported. If some other + * id is provided, all videos -list will be activated + * + * @param itemId. Id of collection to activate + * @return int */ int activateCollectionContentView(const TMPXItemId &itemId); @@ -359,11 +366,6 @@ VideoCollectionUiLoader* mUiLoader; /** - * Boolean for knowing when the app was started as a service. - */ - bool mIsService; - - /** * Boolean for knowing when the model is ready. */ bool mModelReady; @@ -380,6 +382,7 @@ /** * pointer to videoservices instance + * if exists, app has started as service */ VideoServices* mVideoServices; diff -r 13331705e488 -r 229f037ce963 videocollection/videocollectionview/inc/videolistwidget.h --- a/videocollection/videocollectionview/inc/videolistwidget.h Fri Jun 11 09:44:20 2010 +0300 +++ b/videocollection/videocollectionview/inc/videolistwidget.h Thu Jun 24 09:49:13 2010 +0300 @@ -69,12 +69,12 @@ * layout and activates correct view based on the current orientation * * @param model Model for this list view. - * @param videoservices + * @param isService, flag indicating app service status * @param level presetted level for the widget * @return int 0 initialization ok, < 0 if fails. */ int initialize(VideoSortFilterProxyModel &model, - VideoServices* videoServices = 0, + bool isService = false, VideoCollectionCommon::TCollectionLevels level = VideoCollectionCommon::ELevelInvalid); /** @@ -148,7 +148,7 @@ * @param true if opened, false if closed. * @param optional name string */ - void collectionOpened(bool, const QString&, const QModelIndex&); + void collectionOpened(bool, const QString&, const TMPXItemId&); /** * signal is connected to service's itemSelected -slot @@ -243,6 +243,12 @@ * */ void back(); + + /** + * connected to navi -quit action triggered signal. + * Signals fileUri with empty path for servicing to be completed + */ + void endVideoFecthingSlot(); /** * Signaled when view scrolling starts, pauses thumbnail creation. @@ -278,7 +284,7 @@ * */ void fetchThumbnailsForVisibleItems(); - + private: enum TContextActionIds @@ -307,9 +313,9 @@ void setContextMenu(); /** - * Method sets correct popup menu during browsing service. + * Method sets correct popup menu for service. */ - void setBrowsingServiceContextMenu(); + void setServiceContextMenu(); /** * Method connects signals needed by the widget @@ -325,11 +331,6 @@ void disConnectSignals(); /** - * Return if this is a browsing service. - */ - bool isBrowsingService() const; - - /** * Set navigation action. */ void setNavigationAction(); @@ -359,7 +360,8 @@ QPointer mModel; /** - * pointer to videoservices instance + * pointer to videoservices instance. If exists, + * app has started as service. */ VideoServices* mVideoServices; @@ -379,11 +381,6 @@ */ bool mSignalsConnected; - /** - * Boolean for knowing when the app was started as a service. - */ - bool mIsService; - /** * Navigation softkey action. */ diff -r 13331705e488 -r 229f037ce963 videocollection/videocollectionview/src/videocollectionuiloader.cpp --- a/videocollection/videocollectionview/src/videocollectionuiloader.cpp Fri Jun 11 09:44:20 2010 +0300 +++ b/videocollection/videocollectionview/src/videocollectionuiloader.cpp Thu Jun 24 09:49:13 2010 +0300 @@ -15,7 +15,7 @@ * */ -// Version : %version: 22 % +// Version : %version: 24 % // INCLUDE FILES #include @@ -34,7 +34,6 @@ #include "videocollectionwrapper.h" #include "videosortfilterproxymodel.h" #include "videocollectionviewutils.h" -#include "videoservices.h" #include "videocollectiontrace.h" // --------------------------------------------------------------------------- @@ -376,12 +375,7 @@ VideoCollectionViewUtils::sortModel(model, true, VideoCollectionCommon::ELevelVideos); // init widget - VideoServices *videoServices = 0; - if (mIsService) - { - videoServices = VideoServices::instance(); - } - videoList->initialize(*model, videoServices, VideoCollectionCommon::ELevelVideos); + videoList->initialize(*model, mIsService, VideoCollectionCommon::ELevelVideos); } } } @@ -399,12 +393,7 @@ if (videoList) { // init widget - VideoServices *videoServices = 0; - if (mIsService) - { - videoServices = VideoServices::instance(); - } - videoList->initialize(*model, videoServices, VideoCollectionCommon::ELevelCategory); + videoList->initialize(*model, mIsService, VideoCollectionCommon::ELevelCategory); } } } @@ -422,13 +411,8 @@ if (videoList) { // init widget - VideoServices *videoServices = 0; - if (mIsService) - { - videoServices = VideoServices::instance(); - } // cannot set level at this point yet: it can be either default or user defined collection - videoList->initialize(*model, videoServices); + videoList->initialize(*model, mIsService); } } } diff -r 13331705e488 -r 229f037ce963 videocollection/videocollectionview/src/videocollectionviewplugin.cpp --- a/videocollection/videocollectionview/src/videocollectionviewplugin.cpp Fri Jun 11 09:44:20 2010 +0300 +++ b/videocollection/videocollectionview/src/videocollectionviewplugin.cpp Thu Jun 24 09:49:13 2010 +0300 @@ -15,7 +15,7 @@ * */ -// Version : %version: 23 % +// Version : %version: 24 % // INCLUDE FILES #include @@ -41,7 +41,7 @@ : mUiLoader( 0 ) , mView( 0 ) , mActivated( false ) - , mIsService( false ) + , mVideoServices( 0 ) { FUNC_LOG; } @@ -72,14 +72,8 @@ } mUiLoader->reset(); - - if (XQServiceUtil::isService()) - { - INFO("VideoCollectionViewPlugin::createView() service flag set to true."); - mIsService = true; - } - mUiLoader->setIsService(mIsService); + mUiLoader->setIsService(XQServiceUtil::isService()); bool ok(false); @@ -145,6 +139,12 @@ mView = 0; delete mUiLoader; mUiLoader = 0; + + if(mVideoServices) + { + mVideoServices->decreaseReferenceCount(); + mVideoServices = 0; + } } // --------------------------------------------------------------------------- @@ -163,17 +163,18 @@ bool isService = XQServiceUtil::isService(); if (isService) { - VideoServices *videoServices = VideoServices::instance(); - if (videoServices) + if(!mVideoServices) { - VideoServices::TVideoService serviceType = - videoServices->currentService(); - if (serviceType == VideoServices::EBrowse) - { - // activate browsing service - itemId.iId1 = videoServices->getBrowseCategory(); - itemId.iId2 = KVcxMvcMediaTypeCategory; - } + mVideoServices = VideoServices::instance(); + } + + VideoServices::TVideoService serviceType = + mVideoServices->currentService(); + if (serviceType == VideoServices::EBrowse) + { + // activate browsing service + itemId.iId1 = mVideoServices->getBrowseCategory(); + itemId.iId2 = KVcxMvcMediaTypeCategory; } } int err = mView->activateView(itemId); diff -r 13331705e488 -r 229f037ce963 videocollection/videocollectionview/src/videocollectionviewutils.cpp --- a/videocollection/videocollectionview/src/videocollectionviewutils.cpp Fri Jun 11 09:44:20 2010 +0300 +++ b/videocollection/videocollectionview/src/videocollectionviewutils.cpp Thu Jun 24 09:49:13 2010 +0300 @@ -15,7 +15,7 @@ * */ -// Version : %version: 41 % +// Version : %version: 43 % // INCLUDE FILES #include @@ -26,30 +26,33 @@ #include #include #include +#include #include "videocollectioncommon.h" #include "videocollectionviewutils.h" #include "videosortfilterproxymodel.h" #include "videoactivitystate.h" +#include "videocollectioncenrepdefs.h" #include "videocollectiontrace.h" // Object names. const char* const VIEW_UTILS_OBJECT_NAME_STATUS_MSG = "vc:ViewUtilsStatusMessage"; const char* const VIEW_UTILS_OBJECT_NAME_MESSAGE_BOX_WARNING = "vc:ViewUtilsMessageBoxWarning"; -// Cenrep constants. -const int KVideoCollectionViewCenrepUid(0x2002BC63); -const int KVideoCollectionViewCenrepServiceIconKey(0x2); -const int KVideoCollectionViewCenrepServiceIconPressedKey(0x3); -const int KVideoCollectionViewCenrepVideoSortingRoleKey(0x5); -const int KVideoCollectionViewCenrepVideoSortingOrderKey(0x6); -const int KVideoCollectionViewCenrepCollectionsSortingRoleKey(0x7); -const int KVideoCollectionViewCenrepCollectionsSortingOrderKey(0x8); - const int KAddToCollectionDataCount(2); const int KAddToCollectionCountIndex(0); const int KAddToCollectionNameIndex(1); +// type of collectionview plugin's widget level(int): +// all videos, collections or collection video list +static const QString KEY_WIDGET_LEVEL = "_VideoActivity_widget_level_"; + +// id of the collection whose videolist is to be shown (int). +static const QString KEY_COLLECTION_ID = "_VideoActivity_collection_id_"; + +// name of the collection whose videolist is to be shown (QString) +static const QString KEY_COLLECTION_NAME = "_VideoActivity_collection_name_"; + // --------------------------------------------------------------------------- // instance @@ -207,10 +210,10 @@ { TBuf<255> iconValue; TBuf<255> pressedValue; - status = cenRep->Get(KVideoCollectionViewCenrepServiceIconKey, iconValue); + status = cenRep->Get(KVideoCollectionViewCenrepServiceItem1IconPath, iconValue); if(status == KErrNone) { - status = cenRep->Get(KVideoCollectionViewCenrepServiceIconPressedKey, pressedValue); + status = cenRep->Get(KVideoCollectionViewCenrepServiceItem1PressedIconPath, pressedValue); if(status == KErrNone) { QString iconTemp((QChar*)iconValue.Ptr(),iconValue.Length()); @@ -238,7 +241,7 @@ if(cenRep) { TBuf<255> uriValue; - if(cenRep->Get(KVideoCollectionViewCenrepServiceIconKey, uriValue) == KErrNone) + if(cenRep->Get(KVideoCollectionViewCenrepServiceItem1Url, uriValue) == KErrNone) { QString uriTemp((QChar*)uriValue.Ptr(),uriValue.Length()); uri = uriTemp; @@ -313,33 +316,93 @@ } // --------------------------------------------------------------------------- -// saveWidgetLevel +// setWidgetActivityLevel // --------------------------------------------------------------------------- // -void VideoCollectionViewUtils::saveWidgetLevel(VideoCollectionCommon::TCollectionLevels &level) +void VideoCollectionViewUtils::setWidgetActivityLevel( + const VideoCollectionCommon::TCollectionLevels &level) { FUNC_LOG; QVariant data = int(level); - VideoActivityState::instance().setActivityData(data, VideoActivityData::KEY_WIDGET_LEVEL); + VideoActivityState::instance().setActivityData(data, KEY_WIDGET_LEVEL); + + if(level != VideoCollectionCommon::ELevelDefaultColl && + level != VideoCollectionCommon::ELevelAlbum) + { + // no need to save collection related data, clear them + data.clear(); + VideoActivityState::instance().setActivityData(data, KEY_COLLECTION_ID); + VideoActivityState::instance().setActivityData(data, KEY_COLLECTION_NAME); + } } - + // --------------------------------------------------------------------------- -// loadWidgetLevel +// getActivityWidgetLevel // --------------------------------------------------------------------------- // -VideoCollectionCommon::TCollectionLevels VideoCollectionViewUtils::loadWidgetLevel() +void VideoCollectionViewUtils::getActivityWidgetLevel(VideoCollectionCommon::TCollectionLevels &level) { FUNC_LOG; - // all videos view is the default value to be returned in case nothing can be read - // from the activity manager - VideoCollectionCommon::TCollectionLevels level(VideoCollectionCommon::ELevelVideos); - QVariant data = VideoActivityState::instance().getActivityData(VideoActivityData::KEY_WIDGET_LEVEL); - if(data.toInt() == VideoCollectionCommon::ELevelCategory) + // default value is all videos list level + level = VideoCollectionCommon::ELevelVideos; + QVariant data = VideoActivityState::instance().getActivityData(KEY_WIDGET_LEVEL); + + int value = data.toInt(); + if(value == VideoCollectionCommon::ELevelCategory) { level = VideoCollectionCommon::ELevelCategory; } - return level; + else if(value == VideoCollectionCommon::ELevelDefaultColl) + { + level = VideoCollectionCommon::ELevelDefaultColl; + } + else if(value == VideoCollectionCommon::ELevelAlbum) + { + level = VideoCollectionCommon::ELevelAlbum; + } +} + +// --------------------------------------------------------------------------- +// setCollectionActivityData +// --------------------------------------------------------------------------- +// +void VideoCollectionViewUtils::setCollectionActivityData(const TMPXItemId &id, const QString &name) +{ + FUNC_LOG; + QVariant data = int(id.iId1); + VideoActivityState::instance().setActivityData(data, KEY_COLLECTION_ID); + data.clear(); + data = name; + VideoActivityState::instance().setActivityData(data, KEY_COLLECTION_NAME); +} +// --------------------------------------------------------------------------- +// getCollectionActivityData +// --------------------------------------------------------------------------- +// +void VideoCollectionViewUtils::getCollectionActivityData(TMPXItemId &id, QString &name) +{ + FUNC_LOG; + id = TMPXItemId::InvalidId(); + name = ""; + VideoCollectionCommon::TCollectionLevels level = VideoCollectionCommon::ELevelVideos; + getActivityWidgetLevel(level); + + if(level == VideoCollectionCommon::ELevelDefaultColl) + { + id.iId2 = KVcxMvcMediaTypeCategory; + } + else if(level == VideoCollectionCommon::ELevelAlbum) + { + id.iId2 = KVcxMvcMediaTypeAlbum; + } + if(id.iId2 != KMaxTUint32) + { + QVariant data = VideoActivityState::instance().getActivityData(KEY_COLLECTION_ID); + id.iId1 = data.toInt(); + data = VideoActivityState::instance().getActivityData(KEY_COLLECTION_NAME); + name = data.toString(); + } } // --------------------------------------------------------------------------- diff -r 13331705e488 -r 229f037ce963 videocollection/videocollectionview/src/videohintwidget.cpp --- a/videocollection/videocollectionview/src/videohintwidget.cpp Fri Jun 11 09:44:20 2010 +0300 +++ b/videocollection/videocollectionview/src/videohintwidget.cpp Thu Jun 24 09:49:13 2010 +0300 @@ -15,7 +15,7 @@ * */ -// Version : %version: 13 % +// Version : %version: 14 % // INCLUDE FILES #include @@ -36,12 +36,11 @@ : HbWidget( parent ) , mUiLoader( uiLoader ) , mServiceIcon( 0 ) - , mAddVideosIcon( 0 ) , mCurrentLevel( AllVideos ) , mButtonShown( false ) , mActivated( false ) { - FUNC_LOG; + FUNC_LOG; // NOP } @@ -51,9 +50,8 @@ // VideoHintWidget::~VideoHintWidget() { - FUNC_LOG; + FUNC_LOG; delete mServiceIcon; - delete mAddVideosIcon; } // --------------------------------------------------------------------------- @@ -62,7 +60,7 @@ // int VideoHintWidget::initialize() { - FUNC_LOG; + FUNC_LOG; VideoCollectionViewUtils& utils = VideoCollectionViewUtils::instance(); return utils.getServiceIconStrings(mServiceIconString, mServiceIconPressedString); } @@ -73,8 +71,8 @@ // void VideoHintWidget::setLevel(HintLevel level) { - FUNC_LOG; - INFO_1("VideoHintWidget::setLevel() level: %d", level); + FUNC_LOG; + INFO_1("VideoHintWidget::setLevel() level: %d", level); mCurrentLevel = level; if(mActivated) { updateUiComponents(); @@ -87,9 +85,9 @@ // void VideoHintWidget::setButtonShown(bool shown) { - FUNC_LOG; - INFO_1("VideoHintWidget::setButtonShown() shown: %d", shown); - mButtonShown = shown; + FUNC_LOG; + INFO_1("VideoHintWidget::setButtonShown() shown: %d", shown); + mButtonShown = shown; if(mActivated) { updateUiComponents(); } @@ -101,7 +99,7 @@ // void VideoHintWidget::orientationChangedSlot(Qt::Orientation targetOrientation) { - FUNC_LOG; + FUNC_LOG; Q_UNUSED(targetOrientation); updateUiComponents(); } @@ -112,24 +110,22 @@ // void VideoHintWidget::activate() { - FUNC_LOG; + FUNC_LOG; if (!mActivated) { - if(mServiceIconString.isEmpty() || - mServiceIconPressedString.isEmpty()) - { - return; - } - HbMainWindow *mainWnd = hbInstance->allMainWindows().value(0); connect( mainWnd, SIGNAL(orientationChanged(Qt::Orientation)), this, SLOT(orientationChangedSlot(Qt::Orientation))); - mServiceIcon = new HbIcon(mServiceIconString); - mServiceIcon->setIconName(mServiceIconPressedString, QIcon::Normal, QIcon::On); - - mAddVideosIcon = new HbIcon("qtg_mono_add_to_video_collection"); + if(!mServiceIconString.isEmpty()) + { + mServiceIcon = new HbIcon(mServiceIconString); + } + if(mServiceIcon && !mServiceIconPressedString.isEmpty()) + { + mServiceIcon->setIconName(mServiceIconPressedString, QIcon::Normal, QIcon::On); + } updateUiComponents(); @@ -145,7 +141,7 @@ // void VideoHintWidget::deactivate() { - FUNC_LOG; + FUNC_LOG; if (mActivated) { mActivated = false; @@ -164,15 +160,9 @@ { serviceButton->setIcon(HbIcon()); } - if(mServiceIcon) { - delete mServiceIcon; - mServiceIcon = 0; - } - - if(mAddVideosIcon) { - delete mAddVideosIcon; - mAddVideosIcon = 0; - } + + delete mServiceIcon; + mServiceIcon = 0; } } @@ -182,7 +172,7 @@ // void VideoHintWidget::updateUiComponents() { - FUNC_LOG; + FUNC_LOG; HbMainWindow *mainWnd = hbInstance->allMainWindows().value(0); if (mainWnd) { @@ -197,17 +187,17 @@ DOCML_NAME_NO_VIDEOS_LABEL); if (serviceButton && hintLabel && noVideosLabel) { - serviceButton->setVisible(mainWnd->orientation() == Qt::Horizontal && mButtonShown); noVideosLabel->setVisible(true); - if (mCurrentLevel == Collection) + if (mServiceIcon && mCurrentLevel == AllVideos) + { + hintLabel->setVisible(true); + serviceButton->setIcon(*mServiceIcon); + serviceButton->setVisible(mButtonShown); + } + else { hintLabel->setVisible(false); - serviceButton->setIcon(*mAddVideosIcon); - } - else - { - hintLabel->setVisible(true); - serviceButton->setIcon(*mServiceIcon); + serviceButton->setVisible(false); } } } diff -r 13331705e488 -r 229f037ce963 videocollection/videocollectionview/src/videolistview.cpp --- a/videocollection/videocollectionview/src/videolistview.cpp Fri Jun 11 09:44:20 2010 +0300 +++ b/videocollection/videocollectionview/src/videolistview.cpp Thu Jun 24 09:49:13 2010 +0300 @@ -15,7 +15,7 @@ * */ -// Version : %version: 110 % +// Version : %version: 113 % // INCLUDE FILES #include @@ -59,7 +59,6 @@ , mUiUtils( VideoCollectionViewUtils::instance() ) , mWrapper( VideoCollectionWrapper::instance() ) , mUiLoader( uiLoader ) - , mIsService( false ) , mModelReady( false ) , mViewReady( false ) , mHintLevel( VideoHintWidget::AllVideos ) @@ -103,49 +102,68 @@ cleanup(); return -1; } - - if (XQServiceUtil::isService() && !mVideoServices) + int videoListPhase = VideoCollectionUiLoaderParam::LoadPhasePrimary; + int collectionListPhase = VideoCollectionUiLoaderParam::LoadPhaseSecondary; + int collectionContentListPhase = VideoCollectionUiLoaderParam::LoadPhaseSecondary; + VideoCollectionCommon::TCollectionLevels level = VideoCollectionCommon::ELevelVideos; + if (XQServiceUtil::isService()) { - INFO("VideoListView::initializeView() service flag set to true."); - mIsService = true; - - mVideoServices = VideoServices::instance(); - + INFO("VideoListView::initializeView() initializing service."); if (!mVideoServices) { - ERROR(-1, "VideoListView::initializeView() getting services instance failed."); - cleanup(); - return -1; + mVideoServices = VideoServices::instance(); + connect(mVideoServices, SIGNAL(titleReady(const QString&)), + this, SLOT(titleReadySlot(const QString&))); } - else - { - connect(mVideoServices, SIGNAL(titleReady(const QString&)), this, SLOT(titleReadySlot(const QString&))); - } + } - QList params; - int videoListPhase = VideoCollectionUiLoaderParam::LoadPhasePrimary; - int collectionListPhase = VideoCollectionUiLoaderParam::LoadPhaseSecondary; - - if(VideoCollectionViewUtils::loadWidgetLevel() == VideoCollectionCommon::ELevelCategory) + else { - videoListPhase = VideoCollectionUiLoaderParam::LoadPhaseSecondary; - collectionListPhase = VideoCollectionUiLoaderParam::LoadPhasePrimary; - - + if(mVideoServices) + { + disconnect(mVideoServices, SIGNAL(titleReady(const QString&)), + this, SLOT(titleReadySlot(const QString&))); + mVideoServices->decreaseReferenceCount(); + mVideoServices = 0; + } + VideoCollectionViewUtils::getActivityWidgetLevel(level); + if(level == VideoCollectionCommon::ELevelCategory) + { + videoListPhase = VideoCollectionUiLoaderParam::LoadPhaseSecondary; + collectionListPhase = VideoCollectionUiLoaderParam::LoadPhasePrimary; + collectionContentListPhase = VideoCollectionUiLoaderParam::LoadPhaseSecondary; + } + else if(level == VideoCollectionCommon::ELevelDefaultColl || + level == VideoCollectionCommon::ELevelAlbum) + { + videoListPhase = VideoCollectionUiLoaderParam::LoadPhaseSecondary; + collectionListPhase = VideoCollectionUiLoaderParam::LoadPhasePrimary; + collectionContentListPhase = VideoCollectionUiLoaderParam::LoadPhasePrimary; + } } // start loading objects and widgets + QList params; + params.append(VideoCollectionUiLoaderParam( - DOCML_NAME_VC_VIDEOLISTWIDGET, - DOCML_VIDEOCOLLECTIONVIEW_FILE, - true, - videoListPhase)); + DOCML_NAME_VC_VIDEOLISTWIDGET, + DOCML_VIDEOCOLLECTIONVIEW_FILE, + true, + videoListPhase)); + params.append(VideoCollectionUiLoaderParam( - DOCML_NAME_VC_COLLECTIONWIDGET, - DOCML_VIDEOCOLLECTIONVIEW_FILE, - DOCML_VIDEOCOLLECTIONVIEW_SECTION_LIST, - true, - collectionListPhase)); - + DOCML_NAME_VC_COLLECTIONWIDGET, + DOCML_VIDEOCOLLECTIONVIEW_FILE, + DOCML_VIDEOCOLLECTIONVIEW_SECTION_LIST, + true, + collectionListPhase)); + + params.append(VideoCollectionUiLoaderParam( + DOCML_NAME_VC_COLLECTIONCONTENTWIDGET, + DOCML_VIDEOCOLLECTIONVIEW_FILE, + DOCML_VIDEOCOLLECTIONVIEW_SECTION_LIST, + true, + collectionContentListPhase)); + params.append(VideoCollectionUiLoaderParam( DOCML_NAME_OPTIONS_MENU, DOCML_VIDEOCOLLECTIONVIEW_FILE, @@ -195,13 +213,7 @@ DOCML_NAME_SORT_BY_SIZE, DOCML_VIDEOCOLLECTIONVIEW_FILE, false, - VideoCollectionUiLoaderParam::LoadPhaseSecondary)); - params.append(VideoCollectionUiLoaderParam( - DOCML_NAME_VC_COLLECTIONCONTENTWIDGET, - DOCML_VIDEOCOLLECTIONVIEW_FILE, - DOCML_VIDEOCOLLECTIONVIEW_SECTION_LIST, - true, - VideoCollectionUiLoaderParam::LoadPhaseSecondary)); // widget + VideoCollectionUiLoaderParam::LoadPhaseSecondary)); params.append(VideoCollectionUiLoaderParam( DOCML_NAME_DIALOG, DOCML_VIDEOSELECTIONDIALOG_FILE, @@ -231,16 +243,21 @@ mUiLoader->loadPhase(VideoCollectionUiLoaderParam::LoadPhasePrimary); params.clear(); + // fetch current list right away for main views + // for default and user defined collections, currentList + // will be setted during activation if(videoListPhase == VideoCollectionUiLoaderParam::LoadPhasePrimary) { mCurrentList = mUiLoader->findWidget( - DOCML_NAME_VC_VIDEOLISTWIDGET); + DOCML_NAME_VC_VIDEOLISTWIDGET ); } - else + else { mCurrentList = mUiLoader->findWidget( - DOCML_NAME_VC_COLLECTIONWIDGET); + DOCML_NAME_VC_COLLECTIONWIDGET ); } + + return 0; } @@ -259,24 +276,47 @@ // activateView() // --------------------------------------------------------------------------- // -int VideoListView::activateView(const TMPXItemId &itemId) +int VideoListView::activateView( TMPXItemId &itemId) { FUNC_LOG; - int err = 0; - + int err = -1; + // activate collection to correct view if (itemId == TMPXItemId::InvalidId()) - { - err = activateVideosView(); + { + + VideoCollectionCommon::TCollectionLevels level = VideoCollectionCommon::ELevelVideos; + if(!mVideoServices) + { + VideoCollectionViewUtils::getActivityWidgetLevel(level); + } + if(level == VideoCollectionCommon::ELevelCategory || + level == VideoCollectionCommon::ELevelVideos) + { + err = activateMainView(); + } + else if(level == VideoCollectionCommon::ELevelDefaultColl || + level == VideoCollectionCommon::ELevelAlbum) + { + // level is default or user defined collection + // see if we have item id + VideoCollectionViewUtils::getCollectionActivityData(itemId, mCollectionName); + } } - else + if(itemId != TMPXItemId::InvalidId()) { err = activateCollectionContentView(itemId); } + if(!err) + { + + err = createToolbar(); + } + // connect signals if everything went ok - if (err == 0) + if (!err) { HbMainWindow *mainWnd = hbInstance->allMainWindows().value(0); mainWnd->setOrientation(Qt::Vertical, false); @@ -302,6 +342,10 @@ err = -1; } } + else + { + deactivateView(); + } return err; } @@ -394,12 +438,11 @@ this, SLOT(modelReadySlot())); showHint(false); - } - - if(mCurrentList) - { - VideoCollectionCommon::TCollectionLevels level = mCurrentList->getLevel(); - VideoCollectionViewUtils::saveWidgetLevel(level); + if(!mVideoServices) + { + VideoCollectionCommon::TCollectionLevels level = mCurrentList->getLevel(); + VideoCollectionViewUtils::setWidgetActivityLevel(level); + } mCurrentList->deactivate(); } } @@ -455,7 +498,7 @@ mToolbarActions[ETBActionCollections] = createAction("qtg_mono_video_collection", mToolbarViewsActionGroup, SLOT(openCollectionViewSlot())); - if (!mIsService) + if (!mVideoServices) { // Services tab mToolbarActions[ETBActionServices] = createAction("qtg_mono_ovistore", @@ -476,7 +519,7 @@ if( !bar || !mToolbarActions[ETBActionAllVideos] || !mToolbarActions[ETBActionCollections] - || ( !mIsService && (!mToolbarActions[ETBActionServices] + || ( !mVideoServices && (!mToolbarActions[ETBActionServices] || !mToolbarActions[ETBActionAddVideos] || !mToolbarActions[ETBActionRemoveVideos]))) { @@ -493,21 +536,30 @@ mToolbarActions[ETBActionAllVideos]->setCheckable(true); mToolbarActions[ETBActionCollections]->setCheckable(true); - if (!mIsService) + if (!mVideoServices) { mToolbarActions[ETBActionServices]->setCheckable(false); } - - if(mCurrentList->getLevel() == VideoCollectionCommon::ELevelCategory) + VideoCollectionCommon::TCollectionLevels level = VideoCollectionCommon::ELevelVideos; + if(mCurrentList) + { + level = mCurrentList->getLevel(); + } + if(level == VideoCollectionCommon::ELevelCategory) { mToolbarActions[ETBActionCollections]->setChecked(true); + bar->addActions(mToolbarViewsActionGroup->actions()); } - else + else if(level == VideoCollectionCommon::ELevelVideos ) { mToolbarActions[ETBActionAllVideos]->setChecked(true); + bar->addActions(mToolbarViewsActionGroup->actions()); } - - bar->addActions(mToolbarViewsActionGroup->actions()); + else if(level == VideoCollectionCommon::ELevelAlbum) + { + bar->addActions(mToolbarCollectionActionGroup->actions()); + } + } return 0; @@ -582,7 +634,7 @@ } } - if (mToolbarViewsActionGroup && mToolbarCollectionActionGroup && !mIsService) + if (mToolbarViewsActionGroup && mToolbarCollectionActionGroup && !mVideoServices) { if (show) { @@ -692,10 +744,10 @@ } // --------------------------------------------------------------------------- -// activateVideosView() +// activateMainView() // --------------------------------------------------------------------------- // -int VideoListView::activateVideosView() +int VideoListView::activateMainView() { FUNC_LOG; @@ -703,24 +755,14 @@ { return -1; } - VideoCollectionCommon::TCollectionLevels level = mCurrentList->getLevel(); - int result = mCurrentList->activate(level); + int result = mCurrentList->activate(); if(result < 0) { ERROR(result, "VideoListView::activateVideosView() failed to activate."); - // activate failed, deactivate view so we get rid of dangling connections. - deactivateView(); return -1; } - - if (createToolbar() != 0) - { - ERROR(result, "VideoListView::activateVideosView() failed to create toolbar."); - deactivateView(); - return -1; - } - + return 0; } @@ -731,101 +773,76 @@ int VideoListView::activateCollectionContentView(const TMPXItemId &itemId) { FUNC_LOG; - int err = 0; - - if (itemId.iId2 == KVcxMvcMediaTypeCategory || - itemId.iId2 == KVcxMvcMediaTypeAlbum) + + // resolve collection name if possible + if(itemId.iId2 == KVcxMvcMediaTypeCategory && mCollectionName.isEmpty()) { - // currently only captured and downloaded categories are supported - switch (itemId.iId1) + if (itemId.iId1 == KVcxMvcCategoryIdDownloads) + { + mCollectionName = hbTrId("txt_videos_dblist_downloaded"); + } + else if(itemId.iId1 == KVcxMvcCategoryIdCaptured) + { + mCollectionName = hbTrId("txt_videos_dblist_captured"); + } + else { - case KVcxMvcCategoryIdDownloads: - case KVcxMvcCategoryIdCaptured: - { - VideoListWidget *collectionContentWidget = - mUiLoader->findWidget( - DOCML_NAME_VC_COLLECTIONCONTENTWIDGET); - if (collectionContentWidget && collectionContentWidget->getModel()) - { - // no need to deactivate since there cannot be previous widget - mCurrentList = collectionContentWidget; - - // resolve collection name - if (itemId.iId1 == KVcxMvcCategoryIdDownloads) - { - mCollectionName = hbTrId("txt_videos_dblist_downloaded"); - } - else if (itemId.iId1 == KVcxMvcCategoryIdCaptured) - { - mCollectionName = hbTrId("txt_videos_dblist_captured"); - } - - // activate collection content widget - mCurrentList->activate(VideoCollectionCommon::ELevelDefaultColl); - - // open the model - VideoSortFilterProxyModel *model = mCurrentList->getModel(); - model->openItem(itemId); - - // sort model - int sortRole = VideoCollectionCommon::KeyDateTime; - if (mIsService && - mVideoServices) - { - // TODO: sorting roles needs to be defined somewhere - sortRole = mVideoServices->sortRole(); - switch (sortRole) - { - // sort by name - case 2: - { - sortRole = VideoCollectionCommon::KeyTitle; - break; - } - // sort by size - case 3: - { - sortRole = VideoCollectionCommon::KeySizeValue; - break; - } - // date & time - case 1: - // fall through - default: - { - sortRole = VideoCollectionCommon::KeyDateTime; - break; - } - } - } - model->doSorting(sortRole, Qt::AscendingOrder); - - // set hint level to collections - setHintLevel(VideoHintWidget::Collection); - } - else - { - ERROR(-1, "VideoListView::activateVideosView() failed to get collection content widget."); - err = -1; - } - break; - } - default: - { - // by default open videos view - err = activateVideosView(); - break; - } + // only downloads and captured are supported in default collections + ERROR(-1, "VideoListView::activateVideosView() invalid defauld collection."); + return -1; } - + } + // at this point activation will fail if there's no collection name available + if(mCollectionName.isEmpty()) + { + ERROR(-1, "VideoListView::activateVideosView() no collection name, cannot proceed."); + return -1; } - else + + // if current list at this point is already collection content, + // no need to init again, just activate + if(mCurrentList && + (mCurrentList->getLevel() == VideoCollectionCommon::ELevelDefaultColl || + mCurrentList->getLevel() == VideoCollectionCommon::ELevelAlbum)) { - // open videos view - err = activateVideosView(); + + return mCurrentList->activate(); + } + // no currentlist, or currentlist differs, create and initialize all over + collectionOpenedSlot(true, mCollectionName, itemId); + + if((!mCurrentList || !mCurrentList->getModel()) || + (mCurrentList->getLevel() != VideoCollectionCommon::ELevelDefaultColl && + mCurrentList->getLevel() != VideoCollectionCommon::ELevelAlbum )) + { + ERROR(-1, "VideoListView::activateVideosView() failed to init and activate collection."); + return -1; } - return err; + // if we're servicing, need to fetch sorting role from client + // in normal use, sorting has set already at uiloader + + if (mVideoServices) + { + // TODO: service sorting roles needs to be defined somewhere + int sortRole = mVideoServices->sortRole(); + if(sortRole == 2) + { + sortRole = VideoCollectionCommon::KeyTitle; + } + else if(sortRole == 3) + { + sortRole = VideoCollectionCommon::KeySizeValue; + } + else + { + // default + sortRole = VideoCollectionCommon::KeyDateTime; + } + mCurrentList->getModel()->doSorting(sortRole, Qt::AscendingOrder); + } + + return 0; } // --------------------------------------------------------------------------- @@ -943,17 +960,26 @@ } model->doSorting(role, order); - if (mCurrentList == mUiLoader->findWidget(DOCML_NAME_VC_COLLECTIONCONTENTWIDGET)) + // for video related sorting, all videos list and collection content + // list, sorting orders are same all the time + VideoListWidget *anotherVideosList = 0; + VideoCollectionCommon::TCollectionLevels level = mCurrentList->getLevel(); + if (level == VideoCollectionCommon::ELevelDefaultColl || + level == VideoCollectionCommon::ELevelAlbum) { - VideoListWidget *allVideosList = mUiLoader->findWidget(DOCML_NAME_VC_VIDEOLISTWIDGET); - if(allVideosList && allVideosList->getModel()) - { - allVideosList->getModel()->doSorting(role, order); - } + anotherVideosList = mUiLoader->findWidget(DOCML_NAME_VC_VIDEOLISTWIDGET); } + else if(level == VideoCollectionCommon::ELevelVideos) + { + anotherVideosList = mUiLoader->findWidget(DOCML_NAME_VC_COLLECTIONCONTENTWIDGET); + } + if(anotherVideosList && anotherVideosList->getModel()) + { + anotherVideosList->getModel()->doSorting(role, order); + } // save sorting values only if the application is not started as a service - if (!mIsService) + if (!mVideoServices) { // save sorting values mUiUtils.saveSortingValues(role, order, mCurrentList->getLevel()); @@ -1114,8 +1140,7 @@ // void VideoListView::aboutToShowMainMenuSlot() { - if (mIsService && - mVideoServices && + if (mVideoServices && mVideoServices->currentService() == VideoServices::EBrowse) { prepareBrowseServiceMenu(); @@ -1167,7 +1192,7 @@ action->setChecked(true); } - if (!mIsService) + if (!mVideoServices) { showAction(true, DOCML_NAME_ADD_TO_COLLECTION); showAction(true, DOCML_NAME_DELETE_MULTIPLE); @@ -1176,7 +1201,7 @@ else if(mToolbarViewsActionGroup->checkedAction() == mToolbarActions[ETBActionCollections] && firstAction == mToolbarActions[ETBActionAllVideos] ) { - if (!mIsService) + if (!mVideoServices) { showAction(true, DOCML_NAME_CREATE_COLLECTION); } @@ -1203,7 +1228,7 @@ action->setChecked(true); } - if (!mIsService) + if (!mVideoServices) { showAction(true, DOCML_NAME_DELETE_MULTIPLE); } @@ -1272,16 +1297,12 @@ // collectionOpenedSlot // ------------------------------------------------------------------------------------------------- // -void VideoListView::collectionOpenedSlot(bool collectionOpened, +void VideoListView::collectionOpenedSlot(bool openingCollection, const QString& collection, - const QModelIndex &index) + const TMPXItemId &collectionId) { FUNC_LOG; - if(!mCurrentList || !mCurrentList->getModel()) - { - return; - } // clear toolbar actions. toolBar()->clearActions(); @@ -1300,27 +1321,24 @@ HbAbstractItemView::ItemAnimations animationState = collectionContentWidget->enabledAnimations(); collectionContentWidget->setEnabledAnimations(HbAbstractItemView::None); - if(collectionOpened) + if(openingCollection) { // open album view - if (!index.isValid() || !mCurrentList || mCurrentList == collectionContentWidget) + if (collectionId == TMPXItemId::InvalidId() || mCurrentList == collectionContentWidget) { // no currentlist or currentlist is already collection content -list collectionContentWidget->setEnabledAnimations(animationState); return; } - - // get item id before deactivating - TMPXItemId itemId = mCurrentList->getModel()->getMediaIdAtIndex(index); - + // get level from the item to be opened only default // or user defined collections can be activated here VideoCollectionCommon::TCollectionLevels level = VideoCollectionCommon::ELevelInvalid; - if(itemId.iId2 == KVcxMvcMediaTypeCategory) + if(collectionId.iId2 == KVcxMvcMediaTypeCategory) { level = VideoCollectionCommon::ELevelDefaultColl; } - else if(itemId.iId2 == KVcxMvcMediaTypeAlbum) + else if(collectionId.iId2 == KVcxMvcMediaTypeAlbum) { level = VideoCollectionCommon::ELevelAlbum; } @@ -1335,12 +1353,16 @@ if(!model) { // no model for content widget, cannot activate + collectionContentWidget->setEnabledAnimations(animationState); return; } - model->openItem(itemId); + model->openItem(collectionId); // deactivat current widget. - mCurrentList->deactivate(); + if(mCurrentList) + { + mCurrentList->deactivate(); + } // activate video collection content widget and set it as current list. mCurrentList = collectionContentWidget; @@ -1376,6 +1398,11 @@ } // restore animations for collection content widget collectionContentWidget->setEnabledAnimations(animationState); + if(!mVideoServices) + { + // save / clear collection related activity data + VideoCollectionViewUtils::setCollectionActivityData(collectionId, collection); + } } // ------------------------------------------------------------------------------------------------- @@ -1398,8 +1425,8 @@ else if (name.compare(DOCML_NAME_VC_COLLECTIONWIDGET) == 0) { connect( - object, SIGNAL(collectionOpened(bool, const QString&, const QModelIndex&)), - this, SLOT(collectionOpenedSlot(bool, const QString&, const QModelIndex&))); + object, SIGNAL(collectionOpened(bool, const QString&, const TMPXItemId&)), + this, SLOT(collectionOpenedSlot(bool, const QString&, const TMPXItemId&))); if(mCurrentList != object) { // this widget not yet activated so it's has been created on the second phase @@ -1411,8 +1438,8 @@ { connect(object, SIGNAL(command(int)), this, SIGNAL(command(int))); connect( - object, SIGNAL(collectionOpened(bool, const QString&, const QModelIndex&)), - this, SLOT(collectionOpenedSlot(bool, const QString&, const QModelIndex&))); + object, SIGNAL(collectionOpened(bool, const QString&, const TMPXItemId&)), + this, SLOT(collectionOpenedSlot(bool, const QString&, const TMPXItemId&))); if(mCurrentList != object) { // this widget not yet activated so it's has been created on the second phase diff -r 13331705e488 -r 229f037ce963 videocollection/videocollectionview/src/videolistwidget.cpp --- a/videocollection/videocollectionview/src/videolistwidget.cpp Fri Jun 11 09:44:20 2010 +0300 +++ b/videocollection/videocollectionview/src/videolistwidget.cpp Thu Jun 24 09:49:13 2010 +0300 @@ -70,7 +70,6 @@ mVideoServices(0), mCurrentLevel(VideoCollectionCommon::ELevelInvalid), mSignalsConnected(false), -mIsService(false), mNavKeyAction(0), mContextMenu(0), mSelectionMode(HbAbstractItemView::NoSelection), @@ -96,6 +95,12 @@ mContextMenu = 0; delete mNavKeyAction; mNavKeyAction = 0; + + if(mVideoServices) + { + mVideoServices->decreaseReferenceCount(); + mVideoServices = 0; + } } // --------------------------------------------------------------------------- @@ -103,18 +108,19 @@ // --------------------------------------------------------------------------- // int VideoListWidget::initialize(VideoSortFilterProxyModel &model, - VideoServices* videoServices, + bool isService, VideoCollectionCommon::TCollectionLevels level) { FUNC_LOG_ADDR(this); mModel = &model; - mVideoServices = videoServices; mCurrentLevel = level; - if(mVideoServices) + if(isService) { - mIsService = true; - + if(!mVideoServices) + { + mVideoServices = VideoServices::instance(); + } if(XQServiceUtil::interfaceName().contains("IVideoFetch")) { mService = VideoServices::EUriFetcher; @@ -124,6 +130,14 @@ mService = VideoServices::EBrowse; } } + else + { + if(mVideoServices) + { + mVideoServices->decreaseReferenceCount(); + mVideoServices = 0; + } + } // init list view VideoCollectionViewUtils::initListView(this); @@ -131,7 +145,7 @@ mScrollPositionTimer = new QTimer(); mScrollPositionTimer->setSingleShot(true); - if (mIsService) + if (mVideoServices) { connect(this, SIGNAL(fileUri(const QString&)), mVideoServices, SLOT(itemSelected(const QString&))); } @@ -160,7 +174,7 @@ FUNC_LOG_ADDR(this); INFO_2("VideoListWidget::activate() [0x%x]: level: %d", this, level); - if(!mModel) + if(!mModel || level == VideoCollectionCommon::ELevelInvalid) { return -1; } @@ -230,42 +244,52 @@ { FUNC_LOG_ADDR(this); - int retval(0); - - if (!mSignalsConnected) + if (mSignalsConnected) + { + return 0; + } + + if(!connect(this, SIGNAL(scrollingStarted()), this, SLOT(scrollingStartedSlot())) || + !connect(this, SIGNAL(scrollingEnded()), this, SLOT(scrollingEndedSlot())) || + !connect(this, SIGNAL(scrollPositionChanged(const QPointF &)), + this, SLOT(scrollPositionChangedSlot(const QPointF &))) || + !connect(mScrollPositionTimer, SIGNAL(timeout()), this, SLOT(scrollPositionTimerSlot())) || + !connect(this, SIGNAL(longPressed(HbAbstractViewItem *, const QPointF &)), + this, SLOT(longPressedSlot(HbAbstractViewItem *, const QPointF &)))) { - if(!connect(this, SIGNAL(scrollingStarted()), this, SLOT(scrollingStartedSlot())) || - !connect(this, SIGNAL(scrollingEnded()), this, SLOT(scrollingEndedSlot())) || - !connect(this, SIGNAL(scrollPositionChanged(const QPointF &)), - this, SLOT(scrollPositionChangedSlot(const QPointF &))) || - !connect(mScrollPositionTimer, SIGNAL(timeout()), this, SLOT(scrollPositionTimerSlot())) || - !connect(this, SIGNAL(longPressed(HbAbstractViewItem *, const QPointF &)), - this, SLOT(longPressedSlot(HbAbstractViewItem *, const QPointF &)))) - { - return -1; - } + return -1; + } - if (!isBrowsingService()) + // handle navi key trigger -signal connection + const char *slot = SLOT(quit()); + QObject *receiver = qApp; + + if(mVideoServices && mService == VideoServices::EBrowse) + { + receiver = mVideoServices; + slot = SLOT(browsingEnded()); + } + else + { + if(mCurrentLevel == VideoCollectionCommon::ELevelAlbum || + mCurrentLevel == VideoCollectionCommon::ELevelDefaultColl) { - if(VideoCollectionCommon::EModelTypeCollectionContent == mModel->getType()) - { - if (!connect(mNavKeyAction, SIGNAL(triggered()), this, SLOT(back()))) - { - retval = -1; - } - } - else - { - if (!connect(mNavKeyAction, SIGNAL(triggered()), qApp, SLOT(quit()))) - { - retval = -1; - } - } + receiver = this; + slot = SLOT(back()); + } + else if(mVideoServices && mService == VideoServices::EUriFetcher) + { + receiver = this; + slot = SLOT(endVideoFecthingSlot()); } - - mSignalsConnected = true; } - return retval; + if(!connect(mNavKeyAction, SIGNAL(triggered()), receiver, slot)) + { + return -1; + } + mSignalsConnected = true; + + return 0; } // --------------------------------------------------------------------------- @@ -296,55 +320,15 @@ mScrollPositionTimer, SIGNAL(timeout()), this, SLOT(scrollPositionTimerSlot())); } - - // check that model and navigation action exists - if (!isBrowsingService()) + if(mNavKeyAction) { - if (mModel && - mModel->getType() == VideoCollectionCommon::EModelTypeCollectionContent) - { - if (mNavKeyAction) - { - disconnect( - mNavKeyAction, SIGNAL(triggered()), - this, SLOT(back())); - } - } - else - { - if (mNavKeyAction) - { - disconnect( - mNavKeyAction, SIGNAL(triggered()), - qApp, SLOT(quit())); - } - } + mNavKeyAction->disconnect(SIGNAL(triggered())); } mSignalsConnected = false; } // --------------------------------------------------------------------------- -// isBrowsingService -// --------------------------------------------------------------------------- -// -bool VideoListWidget::isBrowsingService() const -{ - FUNC_LOG_ADDR(this); - - bool isBrowsingService = false; - - if (mIsService && - mVideoServices && - mService == VideoServices::EBrowse) - { - isBrowsingService = true; - } - - return isBrowsingService; -} - -// --------------------------------------------------------------------------- // setNavigationAction // --------------------------------------------------------------------------- // @@ -355,26 +339,16 @@ // Create navigation action if not already created if (!mNavKeyAction) { - if (isBrowsingService()) - { - mNavKeyAction = new HbAction(Hb::QuitNaviAction); - mNavKeyAction->setObjectName(LIST_WIDGET_OBJECT_NAME_NAV_KEY_QUIT); - connect(mNavKeyAction, SIGNAL(triggered()), - mVideoServices, SLOT(browsingEnded())); - } - else if (mModel) + Hb::NavigationAction navAction = Hb::QuitNaviAction; + QString objectName = LIST_WIDGET_OBJECT_NAME_NAV_KEY_QUIT; + if(mCurrentLevel == VideoCollectionCommon::ELevelAlbum || + mCurrentLevel == VideoCollectionCommon::ELevelDefaultColl) { - if (VideoCollectionCommon::EModelTypeCollectionContent == mModel->getType()) - { - mNavKeyAction = new HbAction(Hb::BackNaviAction); - mNavKeyAction->setObjectName(LIST_WIDGET_OBJECT_NAME_NAV_KEY_BACK); - } - else - { - mNavKeyAction = new HbAction(Hb::QuitNaviAction); - mNavKeyAction->setObjectName(LIST_WIDGET_OBJECT_NAME_NAV_KEY_QUIT); - } + navAction = Hb::BackNaviAction; + objectName = LIST_WIDGET_OBJECT_NAME_NAV_KEY_BACK; } + mNavKeyAction = new HbAction(navAction); + mNavKeyAction->setObjectName(LIST_WIDGET_OBJECT_NAME_NAV_KEY_BACK); } // Set navigation action only when widget is not in selection mode @@ -457,6 +431,10 @@ mContextMenu->addAction(hbTrId("txt_videos_menu_attach"), this, SLOT(openItemSlot())); mContextMenuActions[EActionAttach]->setObjectName(LIST_WIDGET_OBJECT_NAME_ACTION_ATTACH); + mContextMenuActions[EActionOpen] = + mContextMenu->addAction(hbTrId("txt_common_menu_open"), this, SLOT(openItemSlot())); + mContextMenuActions[EActionOpen]->setObjectName(LIST_WIDGET_OBJECT_NAME_ACTION_OPEN); + mContextMenuActions[EActionPlay] = mContextMenu->addAction(hbTrId("txt_videos_menu_play"), this, SLOT(playItemSlot())); mContextMenuActions[EActionPlay]->setObjectName(LIST_WIDGET_OBJECT_NAME_ACTION_PLAY); @@ -552,25 +530,17 @@ return; } - if (isBrowsingService()) + if (mVideoServices) { - setBrowsingServiceContextMenu(); + setServiceContextMenu(); return; } - if(mCurrentLevel == VideoCollectionCommon::ELevelVideos || mCurrentLevel == VideoCollectionCommon::ELevelDefaultColl) { - if (!mIsService) - { - mContextMenuActions[EActionAddToCollection]->setVisible(true); - mContextMenuActions[EActionDelete]->setVisible(true); - } - else - { - mContextMenuActions[EActionAttach]->setVisible(true); - } + mContextMenuActions[EActionAddToCollection]->setVisible(true); + mContextMenuActions[EActionDelete]->setVisible(true); mContextMenuActions[EActionPlay]->setVisible(true); mContextMenuActions[EActionDetails]->setVisible(true); } @@ -578,7 +548,7 @@ { mContextMenuActions[EActionOpen]->setVisible(true); TMPXItemId mpxId = mModel->getMediaIdAtIndex(currentIndex()); - if(!mIsService && mpxId.iId2 == KVcxMvcMediaTypeAlbum) + if(mpxId.iId2 == KVcxMvcMediaTypeAlbum) { mContextMenuActions[EActionRename]->setVisible(true); mContextMenuActions[EActionRemoveCollection]->setVisible(true); @@ -586,28 +556,38 @@ } else if(mCurrentLevel == VideoCollectionCommon::ELevelAlbum) { - if (!mIsService) - { - mContextMenuActions[EActionRemove]->setVisible(true); - mContextMenuActions[EActionDelete]->setVisible(true); - } else { - mContextMenuActions[EActionAttach]->setVisible(true); - } + mContextMenuActions[EActionRemove]->setVisible(true); + mContextMenuActions[EActionDelete]->setVisible(true); mContextMenuActions[EActionPlay]->setVisible(true); mContextMenuActions[EActionDetails]->setVisible(true); } } // --------------------------------------------------------------------------- -// setBrowsingServiceContextMenu +// setServiceContextMenu // --------------------------------------------------------------------------- // -void VideoListWidget::setBrowsingServiceContextMenu() +void VideoListWidget::setServiceContextMenu() { FUNC_LOG_ADDR(this); - mContextMenuActions[EActionPlay]->setVisible(true); - mContextMenuActions[EActionDelete]->setVisible(true); - mContextMenuActions[EActionDetails]->setVisible(true); + + if(mCurrentLevel == VideoCollectionCommon::ELevelCategory) + { + mContextMenuActions[EActionOpen]->setVisible(true); + } + else if(mCurrentLevel > VideoCollectionCommon::ELevelCategory) + { + mContextMenuActions[EActionDetails]->setVisible(true); + mContextMenuActions[EActionPlay]->setVisible(true); + if(mService == VideoServices::EBrowse) + { + mContextMenuActions[EActionDelete]->setVisible(true); + } + else if(mService == VideoServices::EUriFetcher) + { + mContextMenuActions[EActionAttach]->setVisible(true); + } + } } // --------------------------------------------------------------------------- @@ -653,8 +633,7 @@ // void VideoListWidget::doEmitActivated (const QModelIndex &index) { - if(mIsService && - mVideoServices && + if(mVideoServices && mService == VideoServices::EUriFetcher && mCurrentLevel != VideoCollectionCommon::ELevelCategory) { @@ -691,7 +670,7 @@ // signal view that item has been activated emit(collectionOpened(true, variant.toString(), - index)); + mModel->getMediaIdAtIndex(index))); } return; } @@ -958,7 +937,20 @@ { // Empty the proxy model causing the items to be removed from list widget. mModel->setAlbumInUse(TMPXItemId::InvalidId()); - emit collectionOpened(false, QString(), QModelIndex()); + emit collectionOpened(false, QString(), TMPXItemId::InvalidId()); + } +} + +// --------------------------------------------------------------------------- +// endVideoFecthingSlot +// --------------------------------------------------------------------------- +// +void VideoListWidget::endVideoFecthingSlot() +{ + if(mVideoServices && mService == VideoServices::EUriFetcher) + { + QString empty = ""; + emit fileUri(empty); } } diff -r 13331705e488 -r 229f037ce963 videocollection/videocollectionview/tsrc/testcollectionview/src/testcollectionview.cpp --- a/videocollection/videocollectionview/tsrc/testcollectionview/src/testcollectionview.cpp Fri Jun 11 09:44:20 2010 +0300 +++ b/videocollection/videocollectionview/tsrc/testcollectionview/src/testcollectionview.cpp Thu Jun 24 09:49:13 2010 +0300 @@ -15,6 +15,9 @@ * */ +#include "xqplugin.h" +#include "xqserviceutilstub.h" +#include "xqserviceproviderstub.h" #include "xqserviceutilxtra.h" #include @@ -117,9 +120,9 @@ // void TestCollectionView::cleanup() { - HbMainWindow *window = hbInstance->allMainWindows().value(0); - if (window) + if(hbInstance->allMainWindows().count() > 0) { + HbMainWindow *window = hbInstance->allMainWindows().at(0); QList views = window->views(); int count = views.count(); for (int i = 0; i < count; i++) diff -r 13331705e488 -r 229f037ce963 videocollection/videocollectionview/tsrc/testhintwidget/inc/testhintwidget.h --- a/videocollection/videocollectionview/tsrc/testhintwidget/inc/testhintwidget.h Fri Jun 11 09:44:20 2010 +0300 +++ b/videocollection/videocollectionview/tsrc/testhintwidget/inc/testhintwidget.h Thu Jun 24 09:49:13 2010 +0300 @@ -45,6 +45,7 @@ void testDeactivate(); void testUpdateUiComponents(); void testOrientationChangedSlot(); + void testSetButtonShown(); signals: diff -r 13331705e488 -r 229f037ce963 videocollection/videocollectionview/tsrc/testhintwidget/src/testhintwidget.cpp --- a/videocollection/videocollectionview/tsrc/testhintwidget/src/testhintwidget.cpp Fri Jun 11 09:44:20 2010 +0300 +++ b/videocollection/videocollectionview/tsrc/testhintwidget/src/testhintwidget.cpp Thu Jun 24 09:49:13 2010 +0300 @@ -203,19 +203,22 @@ mTestObject->mServiceIconString = QString(); mTestObject->activate(); QVERIFY(mTestObject->mServiceIcon == 0); - QVERIFY(mTestObject->isVisible() == false); - QVERIFY(mTestObject->mActivated == false); + QVERIFY(mTestObject->isVisible() == true); + QVERIFY(mTestObject->mActivated == true); // mServiceIconPressedString empty. mTestObject->mServiceIconString = "test"; mTestObject->mServiceIconPressedString = QString(); mTestObject->activate(); QVERIFY(mTestObject->mServiceIcon == 0); - QVERIFY(mTestObject->isVisible() == false); - QVERIFY(mTestObject->mActivated == false); + QVERIFY(mTestObject->isVisible() == true); + QVERIFY(mTestObject->mActivated == true); // successful case. - mTestObject->mServiceIconPressedString = "test2"; + mTestObject->mActivated = false; + mTestObject->mServiceIconString = "qtg_mono_ovistore"; + mTestObject->mServiceIconPressedString = "qtg_mono_ovistore"; + HbLabel *noVideosLabel = mUiLoader->findWidget(DOCML_NAME_NO_VIDEOS_LABEL); QVERIFY(noVideosLabel); noVideosLabel->setVisible(false); @@ -245,7 +248,6 @@ // when serviceButton does not exist mTestObject->mServiceIcon = 0; - mTestObject->mAddVideosIcon = 0; HbDocumentLoader::mFindWidgetFails = true; mTestObject->deactivate(); QVERIFY(mTestObject->mActivated == false); @@ -266,17 +268,14 @@ // when icons are non-null, but widget is not activated. mTestObject->setVisible(true); mTestObject->mServiceIcon = new HbIcon; - mTestObject->mAddVideosIcon = new HbIcon; mTestObject->deactivate(); QVERIFY(mTestObject->mServiceIcon != 0); - QVERIFY(mTestObject->mAddVideosIcon != 0); QVERIFY(mTestObject->isVisible() == true); // when icons are non-null and widget is activated. mTestObject->mActivated = true; mTestObject->deactivate(); QVERIFY(mTestObject->mServiceIcon == 0); - QVERIFY(mTestObject->mAddVideosIcon == 0); QVERIFY(mTestObject->isVisible() == false); cleanup(); @@ -294,7 +293,6 @@ init(true); mTestObject->mServiceIcon = new HbIcon(QIcon(QPixmap(QSize(100,100)))); - mTestObject->mAddVideosIcon = new HbIcon(QIcon(QPixmap(QSize(50,50)))); mTestObject->mActivated = true; HbDocumentLoader::mFindWidgetFails = true; @@ -318,9 +316,8 @@ mainWnd->setOrientation(Qt::Horizontal); mTestObject->mButtonShown = true; mTestObject->setLevel(VideoHintWidget::Collection); - QVERIFY(serviceButton->isVisible()); + QVERIFY(!serviceButton->isVisible()); QVERIFY(serviceButton->icon().isNull() == false); - QVERIFY(serviceButton->icon().qicon().cacheKey() == mTestObject->mAddVideosIcon->qicon().cacheKey()); QVERIFY(hintLabel->isVisible() == false); mTestObject->mButtonShown = false; @@ -379,4 +376,28 @@ cleanup(); } +// --------------------------------------------------------------------------- +// testSetButtonShown +// --------------------------------------------------------------------------- +// +void TestHintWidget::testSetButtonShown() +{ + HbMainWindow *mainWnd = hbInstance->allMainWindows()[0]; + + init(true); + + HbLabel *noVideosLabel = mUiLoader->findWidget(DOCML_NAME_NO_VIDEOS_LABEL); + QVERIFY(noVideosLabel); + + mTestObject->mActivated = true; + noVideosLabel->setVisible(false); + mTestObject->setButtonShown(true); + QVERIFY(noVideosLabel->isVisible()); + + mTestObject->mActivated = false; + noVideosLabel->setVisible(false); + mTestObject->setButtonShown(false); + QVERIFY(noVideosLabel->isVisible() == false); +} + // end of file diff -r 13331705e488 -r 229f037ce963 videocollection/videocollectionview/tsrc/testlistview/inc/testlistview.h --- a/videocollection/videocollectionview/tsrc/testlistview/inc/testlistview.h Fri Jun 11 09:44:20 2010 +0300 +++ b/videocollection/videocollectionview/tsrc/testlistview/inc/testlistview.h Thu Jun 24 09:49:13 2010 +0300 @@ -11,7 +11,7 @@ * * Contributors: * -* Description: tester for methods in VideoSortFilterProxyModel +* Description: tester for methods in VideoListView * */ diff -r 13331705e488 -r 229f037ce963 videocollection/videocollectionview/tsrc/testlistview/src/testlistview.cpp --- a/videocollection/videocollectionview/tsrc/testlistview/src/testlistview.cpp Fri Jun 11 09:44:20 2010 +0300 +++ b/videocollection/videocollectionview/tsrc/testlistview/src/testlistview.cpp Thu Jun 24 09:49:13 2010 +0300 @@ -15,7 +15,7 @@ * */ -// Version : %version: 46 % +// Version : %version: 48 % #define private public #include "videoservices.h" @@ -97,7 +97,7 @@ // init // --------------------------------------------------------------------------- // -void TestListView::init(bool initTestView) +void TestListView::init(bool initTestView ) { XQServiceUtilXtra::service = false; mUiLoader = new VideoCollectionUiLoader(); @@ -177,7 +177,8 @@ { if (!mTestView->mCurrentList) { - mTestView->activateView(TMPXItemId::InvalidId()); + TMPXItemId tmpId = TMPXItemId::InvalidId(); + mTestView->activateView(tmpId); } model = mTestView->mCurrentList->mModel; } @@ -265,23 +266,21 @@ mTestView->mUiLoader = 0; QVERIFY( mTestView->initializeView() < 0 ); QVERIFY( mTestView->mVideoServices == 0 ); - QVERIFY( mTestView->mIsService == false ); mTestView->mUiLoader = tmp; // service flag is false and mVideoServices is != 0 - mTestView->mIsService = false; XQServiceUtilXtra::service = false; - mTestView->mVideoServices = VideoServices::instance(); + VideoServices *tmpService = VideoServices::instance(); + mTestView->mVideoServices = tmpService; QVERIFY( mTestView->initializeView() == 0 ); - QVERIFY( mTestView->mVideoServices != 0 ); - QVERIFY( mTestView->mIsService == false ); - - // servicve flag is true, mVideoServices is 0 + QVERIFY( mTestView->mVideoServices == 0 ); + tmpService->decreaseReferenceCount(); + + // service flag is true, mVideoServices is 0 mTestView->mVideoServices = 0; XQServiceUtilXtra::service = true; QVERIFY( mTestView->initializeView() == 0 ); QVERIFY( mTestView->mVideoServices != 0 ); - QVERIFY( mTestView->mIsService == true ); XQServiceUtilXtra::service = false; cleanup(); @@ -294,7 +293,8 @@ void TestListView::testMenus() { init(); - mTestView->activateView(TMPXItemId::InvalidId()); + TMPXItemId tmpId = TMPXItemId::InvalidId(); + mTestView->activateView(tmpId); HbAction* action = 0; QList tbActions = mTestView->toolBar()->actions(); @@ -394,7 +394,8 @@ void TestListView::testCreateAction() { init(); - mTestView->activateView(TMPXItemId::InvalidId()); + TMPXItemId tmpId = TMPXItemId::InvalidId(); + mTestView->activateView(tmpId); QVERIFY(mTestView->mToolbarViewsActionGroup != 0); @@ -435,7 +436,7 @@ void TestListView::testActivateView() { VideoListWidget* videoListWidget = 0; - + TMPXItemId invalidId = TMPXItemId::InvalidId(); init(); HbMainWindow *mainWnd = hbInstance->allMainWindows().value(0); @@ -443,7 +444,7 @@ VideoListWidget *backup = mTestView->mCurrentList; mTestView->mCurrentList = 0; HbDocumentLoader::mFindWidgetFails = true; - QCOMPARE( mTestView->activateView(TMPXItemId::InvalidId()), -1 ); + QCOMPARE( mTestView->activateView(invalidId), -1 ); QVERIFY( VideoListWidgetData::mActive == false ); QVERIFY( mTestView->mCurrentList == 0 ); QCOMPARE( VideoListWidgetData::mActivateCount, 0 ); @@ -455,21 +456,21 @@ videoListWidget = mUiLoader->findWidget(DOCML_NAME_VC_VIDEOLISTWIDGET); QVERIFY(videoListWidget); VideoListWidgetData::mActivateReturnValue = -1; - QCOMPARE( mTestView->activateView(TMPXItemId::InvalidId()), -1 ); + QCOMPARE( mTestView->activateView(invalidId), -1 ); QVERIFY( VideoListWidgetData::mActive == false ); QCOMPARE( VideoListWidgetData::mActivateCount, 1 ); QCOMPARE( VideoListWidgetData::mDeactivateCount, 1 ); QVERIFY( mainWnd->mOrientationSet == false ); VideoListWidgetData::mActivateReturnValue = 0; - QCOMPARE( mTestView->activateView(TMPXItemId::InvalidId()), 0 ); + QCOMPARE( mTestView->activateView(invalidId), 0 ); QVERIFY( VideoListWidgetData::mActive ); QCOMPARE( VideoListWidgetData::mActivateCount, 2 ); QCOMPARE( VideoListWidgetData::mDeactivateCount, 1 ); QVERIFY( mainWnd->mOrientationSet ); QCOMPARE( mainWnd->mOrientation, Qt::Vertical ); - QCOMPARE( mTestView->activateView(TMPXItemId::InvalidId()), 0 ); + QCOMPARE( mTestView->activateView(invalidId), 0 ); QVERIFY( VideoListWidgetData::mActive ); QCOMPARE( VideoListWidgetData::mActivateCount, 3 ); QCOMPARE( VideoListWidgetData::mDeactivateCount, 1 ); @@ -478,8 +479,7 @@ cleanup(); - // activate view: - // -browse service + // activate collection content view: // -captured category TMPXItemId itemId = TMPXItemId::InvalidId(); init(); @@ -493,12 +493,9 @@ QCOMPARE(mTestView->mCollectionName, hbTrId("txt_videos_dblist_captured")); QCOMPARE(mTestView->mCurrentList->getLevel(), VideoCollectionCommon::ELevelDefaultColl); QCOMPARE(VideoSortFilterProxyModelData::mLastItemId, itemId); - QCOMPARE(VideoSortFilterProxyModelData::mSortRole, (int)VideoCollectionCommon::KeyDateTime); - QCOMPARE(VideoSortFilterProxyModelData::mSortOrder, Qt::AscendingOrder); cleanup(); - // activate view: - // -browse service + // activate collection content view:: // -downloaded category init(); VideoListWidgetData::reset(); @@ -511,12 +508,9 @@ QCOMPARE(mTestView->mCollectionName, hbTrId("txt_videos_dblist_downloaded")); QCOMPARE(mTestView->mCurrentList->getLevel(), VideoCollectionCommon::ELevelDefaultColl); QCOMPARE(VideoSortFilterProxyModelData::mLastItemId, itemId); - QCOMPARE(VideoSortFilterProxyModelData::mSortRole, (int)VideoCollectionCommon::KeyDateTime); - QCOMPARE(VideoSortFilterProxyModelData::mSortOrder, Qt::AscendingOrder); cleanup(); - // activate view: - // -browse service + // activate collection content view: // -other category init(); videoListWidget = mUiLoader->findWidget(DOCML_NAME_VC_VIDEOLISTWIDGET); @@ -524,27 +518,28 @@ VideoSortFilterProxyModelData::reset(); itemId.iId1 = KVcxMvcCategoryIdOther; itemId.iId2 = KVcxMvcMediaTypeCategory; - QCOMPARE(mTestView->activateView(itemId), 0); - QVERIFY(VideoListWidgetData::mActive); - QCOMPARE(VideoListWidgetData::mActivateCount, 1); + QCOMPARE(mTestView->activateView(itemId), -1); + QVERIFY(VideoListWidgetData::mActive == false); + QCOMPARE(VideoListWidgetData::mActivateCount, 0); QCOMPARE(mTestView->mCollectionName.length(), 0); - //QCOMPARE(mTestView->mCurrentList->getLevel(), VideoCollectionCommon::ELevelVideos); + // for not activated widget, defaultlevel is ELevelVideos + QCOMPARE(mTestView->mCurrentList->getLevel(), VideoCollectionCommon::ELevelVideos); QCOMPARE(VideoSortFilterProxyModelData::mLastItemId, TMPXItemId::InvalidId()); cleanup(); - // activate view: - // -browse service + // activate collection content view: // -invalid category but item id is ok init(); VideoListWidgetData::reset(); VideoSortFilterProxyModelData::reset(); itemId.iId1 = 0; itemId.iId2 = KVcxMvcMediaTypeVideo; - QCOMPARE(mTestView->activateView(itemId), 0); - QVERIFY(VideoListWidgetData::mActive); - QCOMPARE(VideoListWidgetData::mActivateCount, 1); + QCOMPARE(mTestView->activateView(itemId), -1); + QVERIFY(VideoListWidgetData::mActive == false); + QCOMPARE(VideoListWidgetData::mActivateCount, 0); QCOMPARE(mTestView->mCollectionName.length(), 0); -// QCOMPARE(mTestView->mCurrentList->getLevel(), VideoCollectionCommon::ELevelVideos); + // for not activated widget, defaultlevel is ELevelVideos + QCOMPARE(mTestView->mCurrentList->getLevel(), VideoCollectionCommon::ELevelVideos); QCOMPARE(VideoSortFilterProxyModelData::mLastItemId, TMPXItemId::InvalidId()); cleanup(); @@ -664,7 +659,7 @@ void TestListView::testDeactivateView() { VideoListWidget* videoListWidget = 0; - + TMPXItemId invalidId = TMPXItemId::InvalidId(); init(); HbMainWindow *mainWnd = hbInstance->allMainWindows().value(0); @@ -689,7 +684,7 @@ VideoListWidgetData::mActivateReturnValue = 0; mainWnd->mOrientationSet = true; - mTestView->activateView(TMPXItemId::InvalidId()); + mTestView->activateView(invalidId); mTestView->deactivateView(); QVERIFY( mUiLoader->findWidget(DOCML_NAME_OPTIONS_MENU)->isVisible() == false ); QCOMPARE( VideoListWidgetData::mActivateCount, 1 ); @@ -720,9 +715,9 @@ { VideoListWidget *videoListWidget = 0; HbGroupBox *subLabel = 0; - + TMPXItemId invalidId = TMPXItemId::InvalidId(); init(); - mTestView->activateView(TMPXItemId::InvalidId()); + mTestView->activateView(invalidId); videoListWidget = mUiLoader->findWidget(DOCML_NAME_VC_VIDEOLISTWIDGET); QVERIFY( videoListWidget ); @@ -760,9 +755,9 @@ { VideoListWidget *collectionWidget = 0; HbGroupBox *subLabel = 0; - + TMPXItemId invalidId = TMPXItemId::InvalidId(); init(); - mTestView->activateView(TMPXItemId::InvalidId()); + mTestView->activateView(invalidId); QList actions = mTestView->mToolbarViewsActionGroup->actions(); HbAction* action = static_cast(actions.at(1)); @@ -827,9 +822,10 @@ QCOMPARE(VideoSortFilterProxyModelData::mSortRole, -1); cleanup(); + TMPXItemId invalidId = TMPXItemId::InvalidId(); // Active action is not sort by. init(); - mTestView->activateView(TMPXItemId::InvalidId()); + mTestView->activateView(invalidId); action = mUiLoader->findObject(DOCML_NAME_DELETE_MULTIPLE); QVERIFY(action != 0); mUiLoader->findWidget(DOCML_NAME_OPTIONS_MENU)->setActiveAction(action); @@ -844,7 +840,7 @@ // Good cases. init(); - mTestView->activateView(TMPXItemId::InvalidId()); + mTestView->activateView(invalidId); sortMenu = mUiLoader->findWidget(DOCML_NAME_SORT_MENU); sortMenuAction->setMenu(sortMenu); HbMenuData::mMenuAction = sortMenuAction; @@ -864,22 +860,27 @@ connect(this, SIGNAL(testSignal(int)), mTestView, SLOT(startSorting())); emit testSignal(0); - QCOMPARE(VideoSortFilterProxyModelData::mDoSortingCallCount, 1); + // since current list is videolist, sorting count is 2 because both all videos and collection content are sorted + QCOMPARE(VideoSortFilterProxyModelData::mDoSortingCallCount, 2); QCOMPARE(VideoSortFilterProxyModelData::mSortRole, (int)VideoCollectionCommon::KeyTitle); QCOMPARE(VideoSortFilterProxyModelData::mSortOrder, Qt::AscendingOrder); QVERIFY(VideoSortFilterProxyModelData::mSortAsync); + VideoSortFilterProxyModelData::mDoSortingCallCount = 0; // emit test signal again, with same parameters. Sorting should be switched to // descending order. emit testSignal(0); + // since current list is videolist, sorting count is 2 because both all videos and collection content are sorted QCOMPARE(VideoSortFilterProxyModelData::mDoSortingCallCount, 2); QCOMPARE(VideoSortFilterProxyModelData::mSortRole, (int)VideoCollectionCommon::KeyTitle); QCOMPARE(VideoSortFilterProxyModelData::mSortOrder, Qt::DescendingOrder); QVERIFY(VideoSortFilterProxyModelData::mSortAsync); + VideoSortFilterProxyModelData::mDoSortingCallCount = 0; // on third emit, sorting should be switched back to ascending emit testSignal(0); - QCOMPARE(VideoSortFilterProxyModelData::mDoSortingCallCount, 3); + // since current list is videolist, sorting count is 2 because both all videos and collection content are sorted + QCOMPARE(VideoSortFilterProxyModelData::mDoSortingCallCount, 2); QCOMPARE(VideoSortFilterProxyModelData::mSortRole, (int)VideoCollectionCommon::KeyTitle); QCOMPARE(VideoSortFilterProxyModelData::mSortOrder, Qt::AscendingOrder); QVERIFY(VideoSortFilterProxyModelData::mSortAsync); @@ -889,9 +890,10 @@ sortAction = mUiLoader->findObject(DOCML_NAME_SORT_BY_DATE); QVERIFY(sortAction != 0); sortMenu->setActiveAction(sortAction); - + VideoSortFilterProxyModelData::mDoSortingCallCount = 0; emit testSignal(0); - QCOMPARE(VideoSortFilterProxyModelData::mDoSortingCallCount, 5); + // since current list is videolist, sorting count is 2 because both all videos and collection content are sorted + QCOMPARE(VideoSortFilterProxyModelData::mDoSortingCallCount, 2); QCOMPARE(VideoSortFilterProxyModelData::mSortRole, (int)VideoCollectionCommon::KeyDateTime); QCOMPARE(VideoSortFilterProxyModelData::mSortOrder, Qt::AscendingOrder); QVERIFY(VideoSortFilterProxyModelData::mSortAsync); @@ -911,7 +913,7 @@ XQServiceUtilXtra *serviceUtilXtra = XQServiceUtilXtra::instance(); serviceUtilXtra->setCurrentService(true); QCOMPARE(mTestView->initializeView(), 0); - QCOMPARE(mTestView->activateView(TMPXItemId::InvalidId()), 0); + QCOMPARE(mTestView->activateView(invalidId), 0); int sortRole = VideoCollectionViewUtilsData::mVideoSortRole; emit testSignal(0); QCOMPARE(sortRole, VideoCollectionViewUtilsData::mVideoSortRole); @@ -1012,11 +1014,11 @@ cleanup(); HbAction *action(0); - + TMPXItemId invalidId = TMPXItemId::InvalidId(); // Collections is triggered from toolbar. init(); connect(this, SIGNAL(testSignal()), mTestView, SLOT(aboutToShowMainMenuSlot())); - mTestView->activateView(TMPXItemId::InvalidId()); + mTestView->activateView(invalidId); setRowCount(1); action = mTestView->mToolbarActions[VideoListView::ETBActionCollections]; QVERIFY(action != 0); @@ -1030,7 +1032,7 @@ // All videos is triggered from toolbar. init(); connect(this, SIGNAL(testSignal()), mTestView, SLOT(aboutToShowMainMenuSlot())); - mTestView->activateView(TMPXItemId::InvalidId()); + mTestView->activateView(invalidId); setRowCount(1); action = mTestView->mToolbarActions[VideoListView::ETBActionAllVideos]; QVERIFY(action != 0); @@ -1044,7 +1046,7 @@ // Add videos action is visible. init(); connect(this, SIGNAL(testSignal()), mTestView, SLOT(aboutToShowMainMenuSlot())); - mTestView->activateView(TMPXItemId::InvalidId()); + mTestView->activateView(invalidId); mTestView->toolBar()->clearActions(); mTestView->toolBar()->addActions( mTestView->mToolbarCollectionActionGroup->actions() ); setRowCount(1); @@ -1057,7 +1059,7 @@ // Model has no items. init(); connect(this, SIGNAL(testSignal()), mTestView, SLOT(aboutToShowMainMenuSlot())); - mTestView->activateView(TMPXItemId::InvalidId()); + mTestView->activateView(invalidId); setRowCount(0); emit testSignal(); visible = visibleMenuActions(); @@ -1067,7 +1069,7 @@ // Toolbar action group is null init(); connect(this, SIGNAL(testSignal()), mTestView, SLOT(aboutToShowMainMenuSlot())); - mTestView->activateView(TMPXItemId::InvalidId()); + mTestView->activateView(invalidId); setRowCount(1); QActionGroup* actionGroup = mTestView->mToolbarViewsActionGroup; mTestView->mToolbarViewsActionGroup = NULL; @@ -1096,7 +1098,7 @@ videoServices->mCurrentService = VideoServices::EBrowse; init(true); connect(this, SIGNAL(testSignal()), mTestView, SLOT(aboutToShowMainMenuSlot())); - mTestView->activateView(TMPXItemId::InvalidId()); + mTestView->activateView(invalidId); emit testSignal(); visible = visibleMenuActions(); QCOMPARE(visible, 0); @@ -1109,7 +1111,7 @@ videoServices->mCurrentService = VideoServices::EBrowse; init(true); connect(this, SIGNAL(testSignal()), mTestView, SLOT(aboutToShowMainMenuSlot())); - mTestView->activateView(TMPXItemId::InvalidId()); + mTestView->activateView(invalidId); setRowCount(3, mTestView->mCurrentList->getModel()); emit testSignal(); QVERIFY(isActionVisible(DOCML_NAME_DELETE_MULTIPLE)); @@ -1289,13 +1291,14 @@ // void TestListView::testShowHint() { + TMPXItemId invalidId = TMPXItemId::InvalidId(); init(false); connect(this, SIGNAL(testLayoutChangedSignal()), mTestView, SLOT(layoutChangedSlot())); mTestView->mModelReady = true; // current list is null. (cannot be verified, run for coverity emit testLayoutChangedSignal(); - mTestView->activateView(TMPXItemId::InvalidId()); + mTestView->activateView(invalidId); disconnect(this, SIGNAL(testLayoutChangedSignal()), mTestView, SLOT(layoutChangedSlot())); cleanup(); @@ -1353,7 +1356,7 @@ //////// // toolbar setup - mTestView->activateView(TMPXItemId::InvalidId()); + mTestView->activateView(invalidId); mTestView->mToolbarActions[VideoListView::ETBActionRemoveVideos]->setVisible(true); // mToolbarViewsActionGroup is null @@ -1370,11 +1373,13 @@ QVERIFY(mTestView->mToolbarActions[VideoListView::ETBActionRemoveVideos]->isVisible()); mTestView->mToolbarCollectionActionGroup = tmp; - // mIsService is true - mTestView->mIsService = true; + // mVideoServices exists + VideoServices *tmpService = VideoServices::instance(); + mTestView->mVideoServices = tmpService; emit testLayoutChangedSignal(); QVERIFY(mTestView->mToolbarActions[VideoListView::ETBActionRemoveVideos]->isVisible()); - mTestView->mIsService = false; + mTestView->mVideoServices = 0; + tmpService->decreaseReferenceCount(); // show -flag is true, currentlist level != VideoCollectionCommon::ELevelDefaultColl mTestView->mCurrentList->activate(VideoCollectionCommon::ELevelAlbum); @@ -1534,6 +1539,7 @@ init(false); QVERIFY(connect(this, SIGNAL(testSignal()), mTestView, SLOT(addVideosToCollectionSlot()))); + TMPXItemId invalidId = TMPXItemId::InvalidId(); VideoSortFilterProxyModelData::mOpenedItemId = TMPXItemId(0, 2); // Not initalized, no mCurrentList @@ -1543,7 +1549,7 @@ QCOMPARE(VideoCollectionViewUtilsData::mLastError, 0); QVERIFY(mTestView->initializeView() == 0); - mTestView->activateView(TMPXItemId::InvalidId()); + mTestView->activateView(invalidId); // Selection dialog widget loading fails. VideoCollectionUiLoaderData::mFindFailure = true; @@ -1611,7 +1617,7 @@ QVERIFY(connect(this, SIGNAL(testSignal2()), mTestView, SLOT(openCollectionViewSlot()))); emit testSignal2(); disconnect(this, SIGNAL(testSignal2()), mTestView, SLOT(openCollectionViewSlot())); - mTestView->activateView(TMPXItemId::InvalidId()); + mTestView->activateView(invalidId); VideoListDataModelData::mRowCountDecrement = 1; mTestView->mCurrentList->mCurrentLevel = VideoCollectionCommon::ELevelAlbum; setRowCount(1); @@ -1643,8 +1649,10 @@ // Not initialized, no current list emit testSignal(); + TMPXItemId invalidId = TMPXItemId::InvalidId(); + QVERIFY(mTestView->initializeView() == 0); - mTestView->activateView(TMPXItemId::InvalidId()); + mTestView->activateView(invalidId); setRowCount(1); // Wrong level. diff -r 13331705e488 -r 229f037ce963 videocollection/videocollectionview/tsrc/testlistwidget/src/testlistwidget.cpp --- a/videocollection/videocollectionview/tsrc/testlistwidget/src/testlistwidget.cpp Fri Jun 11 09:44:20 2010 +0300 +++ b/videocollection/videocollectionview/tsrc/testlistwidget/src/testlistwidget.cpp Thu Jun 24 09:49:13 2010 +0300 @@ -15,7 +15,7 @@ * */ -// Version : %version: 52 % +// Version : %version: 56 % #include #include @@ -147,6 +147,7 @@ void TestListWidget::initTestCase() { qRegisterMetaType("QModelIndex"); + qRegisterMetaType("TMPXItemId"); } // --------------------------------------------------------------------------- @@ -188,7 +189,7 @@ } // --------------------------------------------------------------------------- -// testInitialize +// testInitialized // --------------------------------------------------------------------------- // void TestListWidget::testInitialize() @@ -200,14 +201,12 @@ QVERIFY(mTestWidget->initialize(*model) == 0); QVERIFY(mTestWidget->mModel == model); QVERIFY(mTestWidget->mVideoServices == 0); - QVERIFY(mTestWidget->mIsService == false); // service initialization VideoServices *service = VideoServices::instance(); - QVERIFY(mTestWidget->initialize(*model, service) == 0); + QVERIFY(mTestWidget->initialize(*model, true) == 0); QVERIFY(mTestWidget->mModel == model); QVERIFY(mTestWidget->mVideoServices == service); - QVERIFY(mTestWidget->mIsService == true); service->decreaseReferenceCount(); service = 0; @@ -228,20 +227,25 @@ QCOMPARE(HbListView::mLatestVisibility, false); QCOMPARE(VideoThumbnailTestData::mBackgroundThumbnailFetchingEnabled, 0); - // model exist, no current view default level: succeeds + // model exist, no current view default level: fails QVERIFY(mTestWidget->initialize(*model) == 0); - QVERIFY(mTestWidget->activate() == 0); + QVERIFY(mTestWidget->activate() == -1); QCOMPARE(HbMenuData::mEnabledSetted, false); - QCOMPARE(HbListView::mLatestVisibility, true); - QCOMPARE(VideoThumbnailTestData::mBackgroundThumbnailFetchingEnabled, 1); + QCOMPARE(HbListView::mLatestVisibility, false); + QCOMPARE(VideoThumbnailTestData::mBackgroundThumbnailFetchingEnabled, 0); HbMenuData::mEnabledSetted = true; HbListView::mLatestVisibility = false; HbListView::mLatestEnableValue = false; VideoThumbnailTestData::mBackgroundThumbnailFetchingEnabled = 0; - + HbView *tmpView = new HbView(); // model exists, current view exists, level neither ELevelAlbum nor ELevelDefaultColl - HbView *tmpView = new HbView(); + delete mTestWidget; + mTestWidget = 0; + mTestWidget = new ListWidgetTester(mTestUiLoader, mTempView); + model = wrapper.getModel(VideoCollectionCommon::EModelTypeAllVideos); + + QVERIFY(mTestWidget->initialize(*model, 0, VideoCollectionCommon::ELevelVideos) == 0); hbInstance->allMainWindows().value(0)->addView(tmpView); QVERIFY(mTestWidget->activate() == 0); QCOMPARE(HbMenuData::mEnabledSetted, true); @@ -277,16 +281,42 @@ // activate: // -is service // -current service is browse - VideoServices *videoServices = VideoServices::instance(); + VideoServices *videoServices = VideoServices::instance(); + delete mTestWidget; + mTestWidget = 0; + mTestWidget = new ListWidgetTester(mTestUiLoader, mTempView); videoServices->mCurrentService = VideoServices::EBrowse; + QVERIFY(mTestWidget->initialize(*model, true) == 0); + QVERIFY(mTestWidget->activate(VideoCollectionCommon::ELevelDefaultColl) == 0); + QVERIFY(mTestWidget->mNavKeyAction); + QVERIFY(HbAction::mNavAction == Hb::BackAction); + + // activate: + // -is service + // -current service is fetch + // -activating all videos delete mTestWidget; mTestWidget = 0; mTestWidget = new ListWidgetTester(mTestUiLoader, mTempView); - QVERIFY(mTestWidget->initialize(*model, videoServices) == 0); - QVERIFY(mTestWidget->activate(VideoCollectionCommon::ELevelDefaultColl) == 0); + videoServices->mCurrentService = VideoServices::EUriFetcher; + QVERIFY(mTestWidget->initialize(*model, true) == 0); + QVERIFY(mTestWidget->activate(VideoCollectionCommon::ELevelVideos) == 0); QVERIFY(mTestWidget->mNavKeyAction); QVERIFY(HbAction::mNavAction == Hb::QuitAction); + // activate: + // -is service + // -current service is fetch + // -activating album + delete mTestWidget; + mTestWidget = 0; + mTestWidget = new ListWidgetTester(mTestUiLoader, mTempView); + videoServices->mCurrentService = VideoServices::EUriFetcher; + QVERIFY(mTestWidget->initialize(*model, true) == 0); + QVERIFY(mTestWidget->activate(VideoCollectionCommon::ELevelAlbum) == 0); + QVERIFY(mTestWidget->mNavKeyAction); + QVERIFY(HbAction::mNavAction == Hb::BackAction); + hbInstance->allMainWindows().value(0)->removeView(tmpView); delete tmpView; @@ -387,7 +417,7 @@ VideoCollectionWrapper &wrapper = VideoCollectionWrapper::instance(); VideoSortFilterProxyModel *model = wrapper.getModel(VideoCollectionCommon::EModelTypeAllVideos); - QSignalSpy spysignal(mTestWidget, SIGNAL(collectionOpened(bool, const QString&, const QModelIndex&))); + QSignalSpy spysignal(mTestWidget, SIGNAL(collectionOpened(bool, const QString&, const TMPXItemId&))); QSignalSpy spysignalFileUri(mTestWidget, SIGNAL(fileUri(const QString&))); QSignalSpy spysignalActivated(mTestWidget, SIGNAL(activated(const QModelIndex&))); @@ -451,11 +481,10 @@ spysignalActivated.clear(); // current level is not ELevelCategory - // mIsService is true, variant gotten is invalid + // mVideoServices exist, variant gotten is invalid mTestWidget->mService = VideoServices::EUriFetcher; VideoListDataModelData::setData(VideoCollectionCommon::KeyTitle, QVariant()); mTestWidget->mCurrentLevel = VideoCollectionCommon::ELevelVideos; - mTestWidget->mIsService = true; mTestWidget->mVideoServices = videoServices; fetchIndex = model->index(5, 0, QModelIndex()); mTestWidget->callEmiteActivated(fetchIndex); @@ -465,7 +494,7 @@ QVERIFY(VideoSortFilterProxyModelData::mLastItemId == TMPXItemId::InvalidId()); // current level is not ELevelCategory - // mIsService is true, variant gotten is valid + // mVideoServices, variant gotten is valid mTestWidget->mService = VideoServices::EUriFetcher; VideoListDataModelData::setData(VideoCollectionCommon::KeyFilePath, data); fetchIndex = model->index(0, 0, QModelIndex()); @@ -480,8 +509,8 @@ spysignalActivated.clear(); // current level is not ELevelCategory - // mIsService is false - mTestWidget->mIsService = false; + // mVideoServices does not exists + mTestWidget->mVideoServices = 0; fetchIndex = model->index(0, 0, QModelIndex()); mTestWidget->callEmiteActivated(fetchIndex); QVERIFY(spysignal.count() == 0); @@ -563,24 +592,26 @@ QVERIFY(HbMenuData::mExecPoint != point); mTestWidget->mModel = tmp; - // gotten id != KVcxMvcMediaTypeVideo, service is true and id != KVcxMvcMediaTypeAlbum + VideoServices *videoServices = VideoServices::instance(); + + // gotten id != KVcxMvcMediaTypeVideo, service exists true and id != KVcxMvcMediaTypeAlbum VideoSortFilterProxyModelData::mItemIds.clear(); VideoSortFilterProxyModelData::mItemIds.append(TMPXItemId(1,1)); - mTestWidget->mIsService = true; + mTestWidget->mVideoServices = videoServices; mTestWidget->callLongPressedSlot(item, point); QVERIFY(HbMenuData::mExecPoint == point); - // gotten id != KVcxMvcMediaTypeVideo, service is false and id != KVcxMvcMediaTypeAlbum + // gotten id != KVcxMvcMediaTypeVideo, service does not exists and id != KVcxMvcMediaTypeAlbum VideoSortFilterProxyModelData::mItemIds.clear(); VideoSortFilterProxyModelData::mItemIds.append(TMPXItemId(1,1)); - mTestWidget->mIsService = false; + mTestWidget->mVideoServices = 0; mTestWidget->callLongPressedSlot(item, point); QVERIFY(HbMenuData::mExecPoint == point); - // gotten id != KVcxMvcMediaTypeVideo, service is false and id == KVcxMvcMediaTypeAlbum + // gotten id != KVcxMvcMediaTypeVideo, service service does not exists and id == KVcxMvcMediaTypeAlbum VideoSortFilterProxyModelData::mItemIds.clear(); VideoSortFilterProxyModelData::mItemIds.append(TMPXItemId(1,2)); - mTestWidget->mIsService = false; + mTestWidget->mVideoServices = 0; mTestWidget->callLongPressedSlot(item, point); QVERIFY(HbMenuData::mExecPoint == point); HbMenuData::mExecPoint = QPointF(); @@ -588,7 +619,7 @@ // gotten id == KVcxMvcMediaTypeVideo VideoSortFilterProxyModelData::mItemIds.clear(); VideoSortFilterProxyModelData::mItemIds.append(TMPXItemId(1,02)); - mTestWidget->mIsService = false; + mTestWidget->mVideoServices = 0; mTestWidget->callLongPressedSlot(item, point); QVERIFY(HbMenuData::mExecPoint == point); HbMenuData::mExecPoint = QPointF(); @@ -607,12 +638,11 @@ // -is service // -current service is browse HbMenuData::mExecPoint = QPointF(); - VideoServices *videoServices = VideoServices::instance(); videoServices->mCurrentService = VideoServices::EBrowse; delete mTestWidget; mTestWidget = 0; mTestWidget = new ListWidgetTester(mTestUiLoader, mTempView); - QVERIFY(mTestWidget->initialize(*model, videoServices) == 0); + QVERIFY(mTestWidget->initialize(*model, true) == 0); QVERIFY(mTestWidget->activate(VideoCollectionCommon::ELevelDefaultColl) == 0); mTestWidget->mItem->mModelIndex = model->index(0, 0, QModelIndex()); mTestWidget->callLongPressedSlot(item, point); @@ -622,19 +652,61 @@ QVERIFY(mTestWidget->mContextMenuActions[VideoListWidget::EActionDetails]->isVisible()); // long press gesture: - // -is service - // -current service is EUriFetcher + // - is service + // - current service is EUriFetcher + // - category view activated HbMenuData::mExecPoint = QPointF(); videoServices = VideoServices::instance(); videoServices->mCurrentService = VideoServices::EUriFetcher; delete mTestWidget; mTestWidget = 0; mTestWidget = new ListWidgetTester(mTestUiLoader, mTempView); - QVERIFY(mTestWidget->initialize(*model, videoServices) == 0); + QVERIFY(mTestWidget->initialize(*model, true) == 0); + QVERIFY(mTestWidget->activate(VideoCollectionCommon::ELevelCategory) == 0); + mTestWidget->mItem->mModelIndex = model->index(0, 0, QModelIndex()); + mTestWidget->callLongPressedSlot(item, point); + QCOMPARE(mTestWidget->mContextMenuActions.count(), 4); + QVERIFY(mTestWidget->mContextMenuActions[VideoListWidget::EActionOpen]->isVisible()); + QVERIFY(!mTestWidget->mContextMenuActions[VideoListWidget::EActionAttach]->isVisible()); + QVERIFY(!mTestWidget->mContextMenuActions[VideoListWidget::EActionPlay]->isVisible()); + QVERIFY(!mTestWidget->mContextMenuActions[VideoListWidget::EActionDetails]->isVisible()); + + // long press gesture: + // - is service + // - current service is EUriFetcher + // - user defined collection activated + HbMenuData::mExecPoint = QPointF(); + videoServices = VideoServices::instance(); + videoServices->mCurrentService = VideoServices::EUriFetcher; + delete mTestWidget; + mTestWidget = 0; + mTestWidget = new ListWidgetTester(mTestUiLoader, mTempView); + QVERIFY(mTestWidget->initialize(*model, true) == 0); + QVERIFY(mTestWidget->activate(VideoCollectionCommon::ELevelAlbum) == 0); + mTestWidget->mItem->mModelIndex = model->index(0, 0, QModelIndex()); + mTestWidget->callLongPressedSlot(item, point); + QCOMPARE(mTestWidget->mContextMenuActions.count(), 4); + QVERIFY(!mTestWidget->mContextMenuActions[VideoListWidget::EActionOpen]->isVisible()); + QVERIFY(mTestWidget->mContextMenuActions[VideoListWidget::EActionAttach]->isVisible()); + QVERIFY(mTestWidget->mContextMenuActions[VideoListWidget::EActionPlay]->isVisible()); + QVERIFY(mTestWidget->mContextMenuActions[VideoListWidget::EActionDetails]->isVisible()); + + // long press gesture: + // - is service + // - current service is EUriFetcher + // - default collection activated + HbMenuData::mExecPoint = QPointF(); + videoServices = VideoServices::instance(); + videoServices->mCurrentService = VideoServices::EUriFetcher; + delete mTestWidget; + mTestWidget = 0; + mTestWidget = new ListWidgetTester(mTestUiLoader, mTempView); + QVERIFY(mTestWidget->initialize(*model, true) == 0); QVERIFY(mTestWidget->activate(VideoCollectionCommon::ELevelDefaultColl) == 0); mTestWidget->mItem->mModelIndex = model->index(0, 0, QModelIndex()); mTestWidget->callLongPressedSlot(item, point); - QCOMPARE(mTestWidget->mContextMenuActions.count(), 3); + QCOMPARE(mTestWidget->mContextMenuActions.count(), 4); + QVERIFY(!mTestWidget->mContextMenuActions[VideoListWidget::EActionOpen]->isVisible()); QVERIFY(mTestWidget->mContextMenuActions[VideoListWidget::EActionAttach]->isVisible()); QVERIFY(mTestWidget->mContextMenuActions[VideoListWidget::EActionPlay]->isVisible()); QVERIFY(mTestWidget->mContextMenuActions[VideoListWidget::EActionDetails]->isVisible()); @@ -659,7 +731,7 @@ setRowCount(1); HbListView::mCurrentIndex = model->index(0, 0, QModelIndex()); mTestWidget->mItem->mModelIndex = HbListView::mCurrentIndex ; - + TMPXItemId itemId; QPointF point(1,1); itemId.iId2 = 0; @@ -701,8 +773,8 @@ // mCurrentLevel == ELevelCategory mTestWidget->mCurrentLevel = VideoCollectionCommon::ELevelCategory; - // mIsService is false - mTestWidget->mIsService = false; + // service does not exist + mTestWidget->mVideoServices = 0; mTestWidget->callLongPressedSlot(item, point); iter = mTestWidget->mContextMenuActions.begin(); QVERIFY(iter != mTestWidget->mContextMenuActions.end()); @@ -717,8 +789,9 @@ } QVERIFY(visibleCount == 1); - // mIsService is true, mpxId.iId2 != KVcxMvcMediaTypeAlbum - mTestWidget->mIsService = true; + VideoServices *videoServices = VideoServices::instance(); + // service exists, mpxId.iId2 != KVcxMvcMediaTypeAlbum + mTestWidget->mVideoServices = videoServices; mTestWidget->callLongPressedSlot(item, point); iter = mTestWidget->mContextMenuActions.begin(); QVERIFY(iter != mTestWidget->mContextMenuActions.end()); @@ -733,12 +806,11 @@ } QVERIFY(visibleCount == 1); - // mIsService is false, mpxId.iId2 == KVcxMvcMediaTypeAlbum - //VideoSortFilterProxyModelData::mItemIds.clear(); + // service does not exists , mpxId.iId2 == KVcxMvcMediaTypeAlbum VideoSortFilterProxyModelData::mItemIds.append(TMPXItemId(1,KVcxMvcMediaTypeAlbum)); HbListView::mCurrentIndex = model->index(1, 0, QModelIndex()); item->mModelIndex = model->index(1, 0, QModelIndex()); - mTestWidget->mIsService = false; + mTestWidget->mVideoServices = 0; mTestWidget->callLongPressedSlot(item, point); iter = mTestWidget->mContextMenuActions.begin(); QVERIFY(iter != mTestWidget->mContextMenuActions.end()); @@ -756,8 +828,8 @@ // mCurrentLevel == ELevelAlbum mTestWidget->mCurrentLevel = VideoCollectionCommon::ELevelAlbum; - // mIsService is false - mTestWidget->mIsService = false; + // service does not exists + mTestWidget->mVideoServices = 0; mTestWidget->callLongPressedSlot(item, point); iter = mTestWidget->mContextMenuActions.begin(); QVERIFY(iter != mTestWidget->mContextMenuActions.end()); @@ -772,14 +844,13 @@ } QVERIFY(visibleCount == 4); - // mIsService is true + // service does exists // object needs to be resetted for the service use cleanup(); init(); setRowCount(1); model = wrapper.getModel(VideoCollectionCommon::EModelTypeAllVideos); - VideoServices *videoServices = VideoServices::instance(); - mTestWidget->mIsService = true; + mTestWidget->mVideoServices = videoServices; videoServices->mCurrentService = VideoServices::EUriFetcher; mTestWidget->initialize(*model, videoServices); HbListView::mCurrentIndex = model->index(0, 0, QModelIndex()); @@ -817,6 +888,7 @@ ++iter; } QVERIFY(visibleCount == 0); + videoServices->decreaseReferenceCount(); } void TestListWidget::testDoDelayedsSlot() @@ -1315,7 +1387,7 @@ VideoCollectionWrapper &wrapper = VideoCollectionWrapper::instance(); VideoSortFilterProxyModel *model = wrapper.getModel(VideoCollectionCommon::EModelTypeAllVideos); - QSignalSpy spysignal(mTestWidget, SIGNAL(collectionOpened(bool, const QString&, const QModelIndex&))); + QSignalSpy spysignal(mTestWidget, SIGNAL(collectionOpened(bool, const QString&, const TMPXItemId&))); connect(this, SIGNAL(testSignal()), mTestWidget, SLOT(back())); // no model emit testSignal(); diff -r 13331705e488 -r 229f037ce963 videocollection/videocollectionview/tsrc/testvideocollectionviewutils/inc/testvideocollectionviewutils.h --- a/videocollection/videocollectionview/tsrc/testvideocollectionviewutils/inc/testvideocollectionviewutils.h Fri Jun 11 09:44:20 2010 +0300 +++ b/videocollection/videocollectionview/tsrc/testvideocollectionviewutils/inc/testvideocollectionviewutils.h Thu Jun 24 09:49:13 2010 +0300 @@ -81,9 +81,14 @@ void testSortModel(); /** - * verifies saveWidgetLevel & loadWidgetLevel + * verifies setWidgetLevel & getWidgetLevel */ - void testSaveAndLoadWidgetLevel(); + void testSetAndGetWidgetLevel(); + + /** + * verifies setCollectionActivityData & getCollectionActivityData + */ + void testSetAndGetCollectionActivityData(); }; diff -r 13331705e488 -r 229f037ce963 videocollection/videocollectionview/tsrc/testvideocollectionviewutils/src/testvideocollectionviewutils.cpp --- a/videocollection/videocollectionview/tsrc/testvideocollectionviewutils/src/testvideocollectionviewutils.cpp Fri Jun 11 09:44:20 2010 +0300 +++ b/videocollection/videocollectionview/tsrc/testvideocollectionviewutils/src/testvideocollectionviewutils.cpp Thu Jun 24 09:49:13 2010 +0300 @@ -16,12 +16,14 @@ */ #include +#include #include "centralrepository.h" #include "testvideocollectionviewutils.h" #include "hblabel.h" #include "hbaction.h" #include "videocollectionwrapper.h" #include "videosortfilterproxymodeldata.h" +#include "videoactivitystate.h" #include "videocollectioncommon.h" #include "centralrepository.h" #include "hbmessageboxdata.h" @@ -35,10 +37,17 @@ #undef private // following consts are copied from videocollectionviewutils.cpp -const int KVideoSortingRoleKey(0x5); -const int KVideoSortingOrderKey(0x6); -const int KCollectionsSortingRoleKey(0x7); -const int KCollectionsSortingOrderKey(0x8); +const int KVideoSortingRoleKey(0x1); +const int KVideoSortingOrderKey(0x2); +const int KCollectionsSortingRoleKey(0x3); +const int KCollectionsSortingOrderKey(0x4); +static const QString KEY_WIDGET_LEVEL = "_VideoActivity_widget_level_"; + +// id of the collection whose videolist is to be shown (int). +static const QString KEY_COLLECTION_ID = "_VideoActivity_collection_id_"; + +// name of the collection whose videolist is to be shown (QString) +static const QString KEY_COLLECTION_NAME = "_VideoActivity_collection_name_"; // --------------------------------------------------------------------------- // main @@ -626,6 +635,10 @@ } +// ----------------------------------------------------------------------------- +// testSortModel +// ----------------------------------------------------------------------------- +// void TestVideoVideoCollectionViewUtils::testSortModel() { VideoCollectionViewUtils &testObject(VideoCollectionViewUtils::instance()); @@ -697,7 +710,11 @@ QVERIFY(testObject.mCollectionsSortOrder == Qt::DescendingOrder); } -void TestVideoVideoCollectionViewUtils::testSaveAndLoadWidgetLevel() +// ----------------------------------------------------------------------------- +// testSetAndGetWidgetLevel +// ----------------------------------------------------------------------------- +// +void TestVideoVideoCollectionViewUtils::testSetAndGetWidgetLevel() { static const char* ACTIVITY_VIDEOS_MAINVIEW = "VideosMainView"; @@ -705,15 +722,78 @@ // Invalid level level = VideoCollectionCommon::ELevelInvalid; - VideoCollectionViewUtils::saveWidgetLevel(level); - level = VideoCollectionViewUtils::loadWidgetLevel(); + VideoCollectionViewUtils::setWidgetActivityLevel(level); + VideoCollectionViewUtils::getActivityWidgetLevel( level); QVERIFY(level == VideoCollectionCommon::ELevelVideos); // Category level. level = VideoCollectionCommon::ELevelCategory; - VideoCollectionViewUtils::saveWidgetLevel(level); - level = VideoCollectionViewUtils::loadWidgetLevel(); + VideoCollectionViewUtils::setWidgetActivityLevel(level); + VideoCollectionViewUtils::getActivityWidgetLevel( level); QVERIFY(level == VideoCollectionCommon::ELevelCategory); + + // make sure unneeded data is cleared + TMPXItemId id = TMPXItemId(1,1); + QString name = "name"; + VideoCollectionViewUtils::setCollectionActivityData(id, name); + level = VideoCollectionCommon::ELevelVideos; + VideoCollectionViewUtils::setWidgetActivityLevel(level); + + QVERIFY(level == VideoCollectionCommon::ELevelVideos); + QVariant data = VideoActivityState::instance().getActivityData(KEY_COLLECTION_ID); + QVERIFY(data.toInt() == 0); + data = VideoActivityState::instance().getActivityData(KEY_COLLECTION_NAME); + QVERIFY(data.toString().isEmpty()); + + id = TMPXItemId(1,1); + name = "name"; + VideoCollectionViewUtils::setCollectionActivityData(id, name); + level = VideoCollectionCommon::ELevelAlbum; + VideoCollectionViewUtils::setWidgetActivityLevel(level); + + QVERIFY(level == VideoCollectionCommon::ELevelAlbum); + data = VideoActivityState::instance().getActivityData(KEY_COLLECTION_ID); + QVERIFY(data.toInt() == 1); + data = VideoActivityState::instance().getActivityData(KEY_COLLECTION_NAME); + QVERIFY(data.toString() == "name"); + +} + +void TestVideoVideoCollectionViewUtils::testSetAndGetCollectionActivityData() +{ + TMPXItemId id = TMPXItemId(1,1); + QString name = "name"; + + // no default collection nor user defined collection + VideoCollectionCommon::TCollectionLevels level = VideoCollectionCommon::ELevelVideos; + VideoCollectionViewUtils::setWidgetActivityLevel(level); + VideoCollectionViewUtils::setCollectionActivityData(id, name); + VideoCollectionViewUtils::getCollectionActivityData(id, name); + QVERIFY(id == TMPXItemId::InvalidId()); + QVERIFY(name.isEmpty()); + + // default collection + level = VideoCollectionCommon::ELevelDefaultColl; + id = TMPXItemId(1,1); + name = "name"; + VideoCollectionViewUtils::setWidgetActivityLevel(level); + VideoCollectionViewUtils::setCollectionActivityData(id, name); + VideoCollectionViewUtils::getCollectionActivityData(id, name); + + QVERIFY(id == TMPXItemId(1, KVcxMvcMediaTypeCategory)); + QVERIFY(name == "name"); + + // user defined collection + level = VideoCollectionCommon::ELevelAlbum; + id = TMPXItemId(1,1); + name = "name"; + VideoCollectionViewUtils::setWidgetActivityLevel(level); + VideoCollectionViewUtils::setCollectionActivityData(id, name); + VideoCollectionViewUtils::getCollectionActivityData(id, name); + + QVERIFY(id == TMPXItemId(1, KVcxMvcMediaTypeAlbum)); + QVERIFY(name == "name"); + } // End of file diff -r 13331705e488 -r 229f037ce963 videocollection/videocollectionview/videocollectionview.pro --- a/videocollection/videocollectionview/videocollectionview.pro Fri Jun 11 09:44:20 2010 +0300 +++ b/videocollection/videocollectionview/videocollectionview.pro Thu Jun 24 09:49:13 2010 +0300 @@ -26,6 +26,8 @@ BLD_INF_RULES.prj_exports += \ "rom/videocollectionview.iby CORE_APP_LAYER_IBY_EXPORT_PATH(videocollectionview.iby)" \ "conf/videolistview.confml APP_LAYER_CONFML(videolistview.confml)" \ + "conf/CI_videoplayerservicelist.confml APP_LAYER_CONFML(CI_videoplayerservicelist.confml)" \ + "conf/videoplayerservicelist.confml APP_LAYER_CONFML(videoplayerservicelist.confml)" \ "conf/videolistview_2002BC63.crml APP_LAYER_CRML(videolistview_2002BC63.crml)" TARGET.CAPABILITY = ALL -TCB -DRM @@ -59,7 +61,8 @@ inc/videohintwidget.h \ inc/videocollectionviewutils.h \ inc/videocollectionuiloader.h \ - inc/videolistselectiondialog.h + inc/videolistselectiondialog.h \ + inc/videocollectioncenrepdefs.h SOURCES += src/videocollectionviewplugin.cpp \ src/videolistview.cpp \ diff -r 13331705e488 -r 229f037ce963 videocollection/videocollectionwrapper/src/videolistdatamodel_p.cpp --- a/videocollection/videocollectionwrapper/src/videolistdatamodel_p.cpp Fri Jun 11 09:44:20 2010 +0300 +++ b/videocollection/videocollectionwrapper/src/videolistdatamodel_p.cpp Thu Jun 24 09:49:13 2010 +0300 @@ -15,7 +15,7 @@ * */ -// Version : %version: 38 % +// Version : %version: 38.1.1 % // INCLUDE FILES #include @@ -361,18 +361,20 @@ unsigned int startIndex) { FUNC_LOG; - INFO_2("VideoListDataModelPrivate::appendDataToContainerL() array count: %d, start index: %d", videoArray->Count(), startIndex); - int count = videoArray->Count(); if (!videoArray || - startIndex >= count) + startIndex >= videoArray->Count()) { return; } + INFO_2("VideoListDataModelPrivate::appendDataToContainerL() array count: %d, start index: %d", videoArray->Count(), startIndex); + CMPXMedia *newMedia = 0; CMPXMedia *mediaFromArray = 0; TMPXItemId itemId = TMPXItemId::InvalidId(); + int count = videoArray->Count(); + for(int i = startIndex; i < count; ++i) { mediaFromArray = videoArray->AtL(i); diff -r 13331705e488 -r 229f037ce963 videocollection/videocollectionwrapper/videocollectionwrapper.pro --- a/videocollection/videocollectionwrapper/videocollectionwrapper.pro Fri Jun 11 09:44:20 2010 +0300 +++ b/videocollection/videocollectionwrapper/videocollectionwrapper.pro Thu Jun 24 09:49:13 2010 +0300 @@ -20,9 +20,15 @@ TARGET.UID2 = 0x1000008D TARGET.UID3 = 0x200211FD BLD_INF_RULES.prj_exports += "rom/videocollectionwrapper.iby CORE_APP_LAYER_IBY_EXPORT_PATH(videocollectionwrapper.iby)" - MMP_RULES += "DEFFILE videocollectionwrapper.def" TARGET.CAPABILITY = CAP_GENERAL_DLL TARGET.EPOCALLOWDLLDATA = 1 + defBlock = \ + "$${LITERAL_HASH}if defined(EABI)" \ + "DEFFILE ../eabi/videocollectionwrapper.def" \ + "$${LITERAL_HASH}else" \ + "DEFFILE ../bwins/videocollectionwrapper.def" \ + "$${LITERAL_HASH}endif" + MMP_RULES += defBlock } CONFIG += hb qt dll DEFINES += BUILD_VIDEOCOLLECTION_DLL diff -r 13331705e488 -r 229f037ce963 videocollection/videofiledetailsview/data/videofiledetails.docml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/videocollection/videofiledetailsview/data/videofiledetails.docml Thu Jun 24 09:49:13 2010 +0300 @@ -0,0 +1,161 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + +
diff -r 13331705e488 -r 229f037ce963 videocollection/videofiledetailsview/data/videofiledetails.qrc --- a/videocollection/videofiledetailsview/data/videofiledetails.qrc Fri Jun 11 09:44:20 2010 +0300 +++ b/videocollection/videofiledetailsview/data/videofiledetails.qrc Thu Jun 24 09:49:13 2010 +0300 @@ -1,5 +1,5 @@ - videofiledetails.xml + videofiledetails.docml diff -r 13331705e488 -r 229f037ce963 videocollection/videofiledetailsview/data/videofiledetails.xml --- a/videocollection/videofiledetailsview/data/videofiledetails.xml Fri Jun 11 09:44:20 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,155 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - -
diff -r 13331705e488 -r 229f037ce963 videocollection/videofiledetailsview/src/videofiledetailsviewplugin.cpp --- a/videocollection/videofiledetailsview/src/videofiledetailsviewplugin.cpp Fri Jun 11 09:44:20 2010 +0300 +++ b/videocollection/videofiledetailsview/src/videofiledetailsviewplugin.cpp Thu Jun 24 09:49:13 2010 +0300 @@ -15,7 +15,7 @@ * */ -// Version : %version: 76 % +// Version : %version: 76.1.1 % // INCLUDE FILES #include @@ -326,6 +326,14 @@ return; } + // Fix the size of the thumbnail, as that needs to be in 16:9 + qreal width = button->size().width(); + qreal height = width * 9 / 16; + + HbStackedWidget* thumbWidget = findWidget(VIDEO_DETAILS_THUMBNAIL); + thumbWidget->setPreferredWidth(width); + thumbWidget->setPreferredHeight(height); + if (service == VideoServices::EUriFetcher) { button->setText(hbTrId("txt_videos_button_attach")); diff -r 13331705e488 -r 229f037ce963 videoplayback/hbvideoplaybackview/controlinc/mpxvideoplaybackcontrolbar.h --- a/videoplayback/hbvideoplaybackview/controlinc/mpxvideoplaybackcontrolbar.h Fri Jun 11 09:44:20 2010 +0300 +++ b/videoplayback/hbvideoplaybackview/controlinc/mpxvideoplaybackcontrolbar.h Thu Jun 24 09:49:13 2010 +0300 @@ -15,7 +15,7 @@ * */ -// Version : %version: 2 % +// Version : %version: 3 % @@ -23,8 +23,6 @@ #define MPXVIDEOPLAYBACKCONTROLBAR_H_ - -#include #include #include @@ -48,10 +46,6 @@ void durationChanged( int duration ); void positionChanged( int position ); - private slots: - void appeared( const HbEffect::EffectStatus &status ); - void disappeared( const HbEffect::EffectStatus &status ); - private: QMPXVideoPlaybackControlsController *mController; QMPXVideoPlaybackToolBar *mToolBar; diff -r 13331705e488 -r 229f037ce963 videoplayback/hbvideoplaybackview/controlinc/mpxvideoplaybackprogressbar.h --- a/videoplayback/hbvideoplaybackview/controlinc/mpxvideoplaybackprogressbar.h Fri Jun 11 09:44:20 2010 +0300 +++ b/videoplayback/hbvideoplaybackview/controlinc/mpxvideoplaybackprogressbar.h Thu Jun 24 09:49:13 2010 +0300 @@ -15,14 +15,14 @@ * */ -// Version : %version: da1mmcf#12 % +// Version : %version: da1mmcf#13 % #ifndef MPXVIDEOPLAYBACKPROGRESSBAR_H_ #define MPXVIDEOPLAYBACKPROGRESSBAR_H_ -#include +#include #include class QTimer; @@ -30,7 +30,7 @@ class QMPXVideoPlaybackViewFileDetails; class QMPXVideoPlaybackControlsController; -class QMPXVideoPlaybackProgressBar : public HbWidget +class QMPXVideoPlaybackProgressBar : public QObject { Q_OBJECT diff -r 13331705e488 -r 229f037ce963 videoplayback/hbvideoplaybackview/controlsrc/mpxvideoplaybackcontrolbar.cpp --- a/videoplayback/hbvideoplaybackview/controlsrc/mpxvideoplaybackcontrolbar.cpp Fri Jun 11 09:44:20 2010 +0300 +++ b/videoplayback/hbvideoplaybackview/controlsrc/mpxvideoplaybackcontrolbar.cpp Thu Jun 24 09:49:13 2010 +0300 @@ -15,7 +15,7 @@ * */ -// Version : %version: 6 % +// Version : %version: 7 % @@ -24,7 +24,6 @@ #include "mpxvideoplaybackcontrolbar.h" #include "mpxvideoplaybackprogressbar.h" #include "mpxcommonvideoplaybackview.hrh" -#include "mpxvideoplaybackdocumentloader.h" #include "mpxvideoplaybackcontrolscontroller.h" @@ -32,17 +31,21 @@ // QMPXVideoPlaybackControlBar::QMPXVideoPlaybackControlBar() // ------------------------------------------------------------------------------------------------- // -QMPXVideoPlaybackControlBar::QMPXVideoPlaybackControlBar( +QMPXVideoPlaybackControlBar::QMPXVideoPlaybackControlBar( QMPXVideoPlaybackControlsController* controller ) : mController( controller ) - , mProgressBar( NULL ) { MPX_ENTER_EXIT(_L("QMPXVideoPlaybackControlBar::QMPXVideoPlaybackControlBar")); // - // button bar + // create toolbar handler // mToolBar = new QMPXVideoPlaybackToolBar( mController ); + + // + // create progressbar handler + // + mProgressBar = new QMPXVideoPlaybackProgressBar( mController ); } // ------------------------------------------------------------------------------------------------- @@ -53,6 +56,12 @@ { MPX_DEBUG(_L("QMPXVideoPlaybackControlBar::~QMPXVideoPlaybackControlBar()")); + if ( mProgressBar ) + { + delete mProgressBar; + mProgressBar = NULL; + } + if ( mToolBar ) { delete mToolBar; @@ -68,23 +77,9 @@ { MPX_ENTER_EXIT(_L("QMPXVideoPlaybackControlBar::initialize()")); - QMPXVideoPlaybackDocumentLoader *loader = mController->layoutLoader(); - - // - // Don't need to initialize buttons once it gets initialized - // - if ( mProgressBar == NULL ) + if ( mProgressBar ) { - // - // progress bar - // - QGraphicsWidget *widget = loader->findWidget( QString( "progressBarLayout" ) ); - mProgressBar = qobject_cast( widget ); - - if ( mProgressBar ) - { - mProgressBar->initialize(); - } + mProgressBar->initialize(); } } @@ -157,43 +152,6 @@ } } -// ------------------------------------------------------------------------------------------------- -// QMPXVideoPlaybackControlBar::appeared() -// ------------------------------------------------------------------------------------------------- -// -void QMPXVideoPlaybackControlBar::appeared( const HbEffect::EffectStatus &status ) -{ - MPX_DEBUG(_L("QMPXVideoPlaybackControlBar::appeared()")); - - if ( status.reason == Hb::EffectFinished ) - { - MPX_DEBUG(_L("QMPXVideoPlaybackControlBar::appeared() successful")); - } - else - { - MPX_DEBUG(_L("QMPXVideoPlaybackControlBar::appeared() NOT successful")); - } -} - -// ------------------------------------------------------------------------------------------------- -// QMPXVideoPlaybackControlBar::disappeared() -// ------------------------------------------------------------------------------------------------- -// -void QMPXVideoPlaybackControlBar::disappeared( const HbEffect::EffectStatus &status ) -{ - MPX_DEBUG(_L("QMPXVideoPlaybackControlBar::disappeared()")); - - if ( status.reason == Hb::EffectFinished ) - { - setVisible( false ); - - MPX_DEBUG(_L("QMPXVideoPlaybackControlBar::disappeared() successful")); - } - else - { - MPX_DEBUG(_L("QMPXVideoPlaybackControlBar::disappeared() NOT successful")); - } -} // ------------------------------------------------------------------------------------------------- // QMPXVideoPlaybackControlBar::durationChanged() @@ -226,7 +184,7 @@ { mProgressBar->positionChanged( position ); } - + if ( mToolBar ) { mToolBar->positionChanged( position ); diff -r 13331705e488 -r 229f037ce963 videoplayback/hbvideoplaybackview/controlsrc/mpxvideoplaybackdetailsplaybackwindow.cpp --- a/videoplayback/hbvideoplaybackview/controlsrc/mpxvideoplaybackdetailsplaybackwindow.cpp Fri Jun 11 09:44:20 2010 +0300 +++ b/videoplayback/hbvideoplaybackview/controlsrc/mpxvideoplaybackdetailsplaybackwindow.cpp Thu Jun 24 09:49:13 2010 +0300 @@ -15,7 +15,7 @@ * */ -// Version : %version: 17 % +// Version : %version: 18 % @@ -122,11 +122,11 @@ // // dim "share" button for streaming // - if ( mController->fileDetails()->mPlaybackMode == EMPXVideoStreaming || - mController->fileDetails()->mPlaybackMode == EMPXVideoLiveStreaming ) + if ( details->mPlaybackMode == EMPXVideoStreaming || + details->mPlaybackMode == EMPXVideoLiveStreaming ) { - shareButton->setEnabled( false ); - } + shareButton->setEnabled( false ); + } } } diff -r 13331705e488 -r 229f037ce963 videoplayback/hbvideoplaybackview/controlsrc/mpxvideoplaybackdocumentloader.cpp --- a/videoplayback/hbvideoplaybackview/controlsrc/mpxvideoplaybackdocumentloader.cpp Fri Jun 11 09:44:20 2010 +0300 +++ b/videoplayback/hbvideoplaybackview/controlsrc/mpxvideoplaybackdocumentloader.cpp Thu Jun 24 09:49:13 2010 +0300 @@ -15,13 +15,12 @@ * */ -// Version : %version: 13 % +// Version : %version: 14 % #include "mpxvideo_debug.h" #include "mpxvideoplaybackcontrolbar.h" -#include "mpxvideoplaybackprogressbar.h" #include "mpxvideoplaybackdocumentloader.h" #include "mpxvideoplaybackfiledetailswidget.h" #include "mpxvideoplaybackcontrolscontroller.h" @@ -66,11 +65,6 @@ object = new QMPXVideoPlaybackControlBar( mController ); object->setObjectName( name ); } - else if ( name == "progressBarLayout" ) - { - object = new QMPXVideoPlaybackProgressBar( mController ); - object->setObjectName( name ); - } else if ( name == "fileDetailsLayout" ) { object = new QMPXVideoPlaybackFileDetailsWidget( mController ); diff -r 13331705e488 -r 229f037ce963 videoplayback/hbvideoplaybackview/controlsrc/mpxvideoplaybackfiledetailswidget.cpp --- a/videoplayback/hbvideoplaybackview/controlsrc/mpxvideoplaybackfiledetailswidget.cpp Fri Jun 11 09:44:20 2010 +0300 +++ b/videoplayback/hbvideoplaybackview/controlsrc/mpxvideoplaybackfiledetailswidget.cpp Thu Jun 24 09:49:13 2010 +0300 @@ -15,7 +15,7 @@ * */ -// Version : %version: 25 % +// Version : %version: 26 % #include @@ -42,7 +42,7 @@ // QMPXVideoPlaybackFileDetailsWidget::QMPXVideoPlaybackFileDetailsWidget // ------------------------------------------------------------------------------------------------- // -QMPXVideoPlaybackFileDetailsWidget::QMPXVideoPlaybackFileDetailsWidget( +QMPXVideoPlaybackFileDetailsWidget::QMPXVideoPlaybackFileDetailsWidget( QMPXVideoPlaybackControlsController* controller ) : mController( controller ) , mListWidget( 0 ) @@ -75,7 +75,7 @@ // load fileDetails widget // QGraphicsWidget *widget = loader->findWidget( QString( "fileDetails" ) ); - + // // cast fileDetails widget to HbListWidget // @@ -89,7 +89,7 @@ // // Title - // + // makeTitleItem( details ); if ( ! mFileDetailsUpdated ) @@ -101,8 +101,8 @@ // // Description // - addItemToListWidget( - hbTrId( "txt_videos_list_description" ), details->mDescription ); + addItemToListWidget( + hbTrId( "txt_videos_list_description" ), details->mDescription ); // // Duration @@ -118,8 +118,8 @@ addItemToListWidget( hbTrId( "txt_videos_list_duration" ), - hbTrId( "txt_videos_list_l1l2l3" ).arg( hour ).arg( min ).arg( sec ) ); - } + hbTrId( "txt_videos_list_l1l2l3" ).arg( hour ).arg( min ).arg( sec ) ); + } // // Date/Time @@ -129,27 +129,27 @@ // // Location // - addItemToListWidget( hbTrId( "txt_videos_list_location" ), details->mLocation ); + addItemToListWidget( hbTrId( "txt_videos_list_location" ), details->mLocation ); // // Author // - addItemToListWidget( hbTrId( "txt_videos_list_author" ), details->mArtist ); + addItemToListWidget( hbTrId( "txt_videos_list_author" ), details->mArtist ); // // Copyright // - addItemToListWidget( hbTrId( "txt_videos_list_copyright" ), details->mCopyright ); + addItemToListWidget( hbTrId( "txt_videos_list_copyright" ), details->mCopyright ); // // Language // - addItemToListWidget( hbTrId( "txt_videos_list_language" ), details->mLanguage ); + addItemToListWidget( hbTrId( "txt_videos_list_language" ), details->mLanguage ); // // Keywords // - addItemToListWidget( hbTrId( "txt_videos_list_keywords" ), details->mKeywords ); + addItemToListWidget( hbTrId( "txt_videos_list_keywords" ), details->mKeywords ); // // Size @@ -163,14 +163,14 @@ { QString resolution = hbTrId( "txt_videos_list_l1l2" ) .arg( locale.toString( details->mVideoWidth ) ) - .arg( locale.toString( details->mVideoHeight ) ); - addItemToListWidget( hbTrId( "txt_videos_list_resolution" ), resolution ); + .arg( locale.toString( details->mVideoHeight ) ); + addItemToListWidget( hbTrId( "txt_videos_list_resolution" ), resolution ); } // // Format // - addItemToListWidget( hbTrId( "txt_videos_list_format" ), details->mMimeType ); + addItemToListWidget( hbTrId( "txt_videos_list_format" ), details->mMimeType ); // // Bitrate @@ -183,7 +183,7 @@ if ( details->mPlaybackMode == EMPXVideoLocal || details->mPlaybackMode == EMPXVideoProgressiveDownload) { - QFileInfo fileInfo( details->mClipName ); + QFileInfo fileInfo( details->mClipName ); QString folder = fileInfo.dir().dirName(); addItemToListWidget( hbTrId( "txt_videos_list_collection_name" ), folder ); } @@ -234,16 +234,16 @@ // ------------------------------------------------------------------------------------------------- // void QMPXVideoPlaybackFileDetailsWidget::makeTitleItem( QMPXVideoPlaybackViewFileDetails* details ) -{ +{ MPX_DEBUG(_L("QMPXVideoPlaybackFileDetailsWidget::makeTitleItem()")); // // Title should be the first item in file details list // if ( mController->viewMode() == EAudioOnlyView ) - { + { // - // show the title for audio-only view + // show the title for audio-only view // if ( mListWidget->count() == 0 || ! mListWidget->item( 0 )->text().contains( "Title", Qt::CaseInsensitive ) ) { @@ -253,9 +253,9 @@ { // // If title is not available, show clip name - // + // QFileInfo fileInfo( details->mClipName ); - title = fileInfo.baseName (); + title = fileInfo.completeBaseName(); } // @@ -270,7 +270,7 @@ else if ( mListWidget->count() && mListWidget->item( 0 )->text().contains( "Title", Qt::CaseInsensitive ) ) { - // + // // title is displayed under the status pane for video clips, // so hide the title for this details view // @@ -283,17 +283,17 @@ // ------------------------------------------------------------------------------------------------- // void QMPXVideoPlaybackFileDetailsWidget::makeSizeItem( QMPXVideoPlaybackViewFileDetails* details ) -{ +{ if ( details->mPlaybackMode == EMPXVideoLocal || details->mPlaybackMode == EMPXVideoProgressiveDownload ) { - QFileInfo fileInfo( details->mClipName ); - + QFileInfo fileInfo( details->mClipName ); + // // to prevent overflow, get an unsigned value of file size // ulong fileSize = fileInfo.size(); - + // // convert file size to KB, MB, GB accordingly // @@ -329,9 +329,9 @@ int temp = size * 10; size = (float)temp / 10; - addItemToListWidget( + addItemToListWidget( hbTrId( "txt_videos_list_file_size" ), scale.arg( locale.toString( size ) ) ); - } + } } } @@ -340,7 +340,7 @@ // ------------------------------------------------------------------------------------------------- // void QMPXVideoPlaybackFileDetailsWidget::makeBitRateItem( QMPXVideoPlaybackViewFileDetails* details ) -{ +{ if ( details->mBitRate > 0 ) { HbExtendedLocale locale = HbExtendedLocale::system(); @@ -353,17 +353,17 @@ { bitrate /= KILOBYTE; } - + if ( bitrate > KILOBYTE ) { bitrate /= KILOBYTE; scale = hbTrId( "txt_videos_list_l1_mbps" ); } - + int temp = bitrate * 10; bitrate = (float)temp / 10; - addItemToListWidget( + addItemToListWidget( hbTrId( "txt_videos_list_bitrate" ), scale.arg( locale.toString( bitrate ) ) ); } } @@ -373,18 +373,18 @@ // ------------------------------------------------------------------------------------------------- // void QMPXVideoPlaybackFileDetailsWidget::addItemToListWidget( QString item, QString text ) -{ +{ MPX_ENTER_EXIT(_L("QMPXVideoPlaybackFileDetailsWidget::addItemToListWidget")); - + if ( text.count() > 0 ) { - MPX_DEBUG(_L("QMPXVideoPlaybackFileDetailsWidget::addItemToListWidget( %s %s )"), + MPX_DEBUG(_L("QMPXVideoPlaybackFileDetailsWidget::addItemToListWidget( %s %s )"), item.data(), text.data() ); - + HbListWidgetItem* listWidgetItem = new HbListWidgetItem(); listWidgetItem->setText( item ); listWidgetItem->setSecondaryText( text ); - + mListWidget->addItem( listWidgetItem ); } } @@ -394,21 +394,21 @@ // ------------------------------------------------------------------------------------------------- // void QMPXVideoPlaybackFileDetailsWidget::makeDateTimeItem( QMPXVideoPlaybackViewFileDetails* details ) -{ +{ MPX_ENTER_EXIT(_L("QMPXVideoPlaybackFileDetailsWidget::makeDateTimeItem")); - + // // attempt to get 'created' and 'last modified' date/time from metadata first, // if it's not available, then get it from the file system // - + if ( details->mPlaybackMode == EMPXVideoLocal || details->mPlaybackMode == EMPXVideoProgressiveDownload ) - { + { QDateTime dateTime; - QFileInfo fileInfo( details->mClipName ); + QFileInfo fileInfo( details->mClipName ); HbExtendedLocale locale = HbExtendedLocale::system(); - + // // Date created // @@ -420,15 +420,15 @@ { dateTime = fileInfo.created(); } - + // // convert 'created' date/time to proper string format // according to its current locale // QString date = locale.format( dateTime.date(), r_qtn_date_usual ); QString time = locale.format( dateTime.time(), r_qtn_time_long_with_zero ); - addItemToListWidget( hbTrId( "txt_videos_list_date" ), date + " " + time ); - + addItemToListWidget( hbTrId( "txt_videos_list_date" ), date + " " + time ); + // // Date modified // @@ -440,15 +440,15 @@ { dateTime = fileInfo.lastModified(); } - + // // convert 'last modified' date/time to proper string format // according to its current locale // date = locale.format( dateTime.date(), r_qtn_date_usual ); time = locale.format( dateTime.time(), r_qtn_time_long_with_zero ); - addItemToListWidget( hbTrId( "txt_videos_list_modified" ), date + " " + time ); - } + addItemToListWidget( hbTrId( "txt_videos_list_modified" ), date + " " + time ); + } } //End of file diff -r 13331705e488 -r 229f037ce963 videoplayback/hbvideoplaybackview/controlsrc/mpxvideoplaybackprogressbar.cpp --- a/videoplayback/hbvideoplaybackview/controlsrc/mpxvideoplaybackprogressbar.cpp Fri Jun 11 09:44:20 2010 +0300 +++ b/videoplayback/hbvideoplaybackview/controlsrc/mpxvideoplaybackprogressbar.cpp Thu Jun 24 09:49:13 2010 +0300 @@ -15,7 +15,7 @@ * */ -// Version : %version: da1mmcf#23 % +// Version : %version: da1mmcf#24 % @@ -41,10 +41,9 @@ // QMPXVideoPlaybackProgressBar::QMPXVideoPlaybackProgressBar // ------------------------------------------------------------------------------------------------- // -QMPXVideoPlaybackProgressBar::QMPXVideoPlaybackProgressBar( +QMPXVideoPlaybackProgressBar::QMPXVideoPlaybackProgressBar( QMPXVideoPlaybackControlsController* controller ) : mController( controller ) - , mDuration( -1 ) , mDraggingPosition( 0 ) , mSetPosition( -1 ) , mNeedToResumeAfterSetPosition( false ) @@ -68,7 +67,7 @@ if ( mSeekingTimer ) { disconnect( mSeekingTimer, SIGNAL( timeout() ), this, SLOT( handleSeekingTimeout() ) ); - + if ( mSeekingTimer->isActive() ) { mSeekingTimer->stop(); @@ -95,11 +94,11 @@ if ( loader && ! mInitialized ) { mInitialized = true; - mLiveStreaming = + mLiveStreaming = ( mController->fileDetails()->mPlaybackMode == EMPXVideoLiveStreaming )? true:false; // - // Create a timer for seeking. + // Create a timer for seeking. // We will issue SetPosition every KSeekingTimeOut msec to show the current frame to user // mSeekingTimer = new QTimer(); @@ -119,7 +118,7 @@ // // If we init the progress bar after pp sends the duration informatin - // we need to set the duration manually + // we need to set the duration manually // durationChanged( (qreal)mController->fileDetails()->mDuration / (qreal)KPbMilliMultiplier ); @@ -135,7 +134,7 @@ frameItem->frameDrawer().setFrameGraphicsName( "qtg_fr_multimedia_trans" ); frameItem->frameDrawer().setFrameType( HbFrameDrawer::NinePieces ); frameItem->frameDrawer().setFillWholeRect( true ); - setBackgroundItem( frameItem ); + mProgressSlider->setBackgroundItem( frameItem ); } } @@ -149,6 +148,7 @@ if ( mLiveStreaming ) { + mDuration = 0; mProgressSlider->setMaxText( "Live" ); } else @@ -251,7 +251,7 @@ // QMPXVideoPlaybackProgressBar::handleSliderPressed // ------------------------------------------------------------------------------------------------- // -void QMPXVideoPlaybackProgressBar::handleSliderPressed() +void QMPXVideoPlaybackProgressBar::handleSliderPressed() { MPX_ENTER_EXIT(_L("QMPXVideoPlaybackProgressBar::handleSliderPressed()")); @@ -265,7 +265,7 @@ if( mController->state() == EPbStatePlaying ) { mNeedToResumeAfterSetPosition = true; - mController->handleCommand( EMPXPbvCmdCustomPause ); + mController->handleCommand( EMPXPbvCmdCustomPause ); } } @@ -273,7 +273,7 @@ // QMPXVideoPlaybackProgressBar::handleSliderMoved // ------------------------------------------------------------------------------------------------- // -void QMPXVideoPlaybackProgressBar::handleSliderMoved( int value ) +void QMPXVideoPlaybackProgressBar::handleSliderMoved( int value ) { MPX_DEBUG(_L("QMPXVideoPlaybackProgressBar::handleSliderMoved() position = %d"), value); @@ -324,7 +324,7 @@ { mSeekingTimer->stop(); } - + mController->resetDisappearingTimers( EMPXTimerReset ); int value = mProgressSlider->sliderValue(); @@ -364,7 +364,7 @@ MPX_DEBUG(_L("QMPXVideoPlaybackProgressBar::updateControlsWithFileDetails()")); if ( ! details->mPausableStream || ! details->mSeekable ) - { + { mProgressSlider->setEnabled( false ); } else if ( ! mProgressSlider->isEnabled() ) @@ -372,7 +372,8 @@ mProgressSlider->setEnabled( true ); } - backgroundItem()->setVisible( ( mController->viewMode() == EFullScreenView )? ETrue:EFalse ); + mProgressSlider->backgroundItem()->setVisible( + ( mController->viewMode() == EFullScreenView )? ETrue:EFalse ); } // ------------------------------------------------------------------------------------------------- @@ -388,18 +389,18 @@ case EPbStatePlaying: case EPbStatePaused: { - if ( ! isEnabled() ) + if ( ! mProgressSlider->isEnabled() ) { - setEnabled( true ); + mProgressSlider->setEnabled( true ); } break; } default: { - if ( isEnabled() ) + if ( mProgressSlider->isEnabled() ) { - setEnabled( false ); + mProgressSlider->setEnabled( false ); } break; } diff -r 13331705e488 -r 229f037ce963 videoplayback/hbvideoplaybackview/controlsrc/mpxvideoplaybackstatuspanecontrol.cpp --- a/videoplayback/hbvideoplaybackview/controlsrc/mpxvideoplaybackstatuspanecontrol.cpp Fri Jun 11 09:44:20 2010 +0300 +++ b/videoplayback/hbvideoplaybackview/controlsrc/mpxvideoplaybackstatuspanecontrol.cpp Thu Jun 24 09:49:13 2010 +0300 @@ -15,7 +15,7 @@ * */ -// Version : %version: 17 % +// Version : %version: 19 % @@ -42,10 +42,10 @@ // QMPXVideoPlaybackStatusPaneControl::QMPXVideoPlaybackStatusPaneControl() // ------------------------------------------------------------------------------------------------- // -QMPXVideoPlaybackStatusPaneControl::QMPXVideoPlaybackStatusPaneControl( - QMPXVideoPlaybackControlsController* controller, - TMPXVideoPlaybackControls index, - HbWidget* widget, +QMPXVideoPlaybackStatusPaneControl::QMPXVideoPlaybackStatusPaneControl( + QMPXVideoPlaybackControlsController* controller, + TMPXVideoPlaybackControls index, + HbWidget* widget, TUint controlproperties ) : QMPXVideoPlaybackFullScreenControl( controller, index, widget, controlproperties ) , mActionBack( NULL ) @@ -181,7 +181,7 @@ if ( title.count() == 0 ) { QFileInfo fileInfo( mController->fileDetails()->mClipName ); - title = fileInfo.baseName (); + title = fileInfo.completeBaseName(); } QGraphicsWidget *qWidget = mController->layoutLoader()->findWidget( QString( "title" ) ); @@ -210,12 +210,13 @@ { // // Set TitleBar transparent and go back to preview view with back key - // + // disconnect( mActionBack, SIGNAL( triggered() ), this, SLOT( openFullScreenView() ) ); connect( mActionBack, SIGNAL( triggered() ), mController->view(), SLOT( closePlaybackView() ) ); - mController->view()->setViewFlags( - HbView::HbViewFlags( HbView::ViewTitleBarTransparent | HbView::ViewStatusBarTransparent ) ); + mController->view()->setViewFlags( mController->view()->viewFlags() | + HbView::ViewTitleBarTransparent | + HbView::ViewStatusBarTransparent ); mTitleLabel->setVisible( true ); mTitleGroupBox->setVisible( false ); @@ -226,7 +227,7 @@ { // // Set TitleBar opaque and go back to full screen view with back key - // + // disconnect( mActionBack, SIGNAL( triggered() ), mController->view(), SLOT( closePlaybackView() ) ); connect( mActionBack, SIGNAL( triggered() ), this, SLOT( openFullScreenView() ) ); @@ -241,7 +242,7 @@ { // // Set TitleBar opaque and go back to preview view with back key - // + // disconnect( mActionBack, SIGNAL( triggered() ), this, SLOT( openFullScreenView() ) ); connect( mActionBack, SIGNAL( triggered() ), mController->view(), SLOT( closePlaybackView() ) ); diff -r 13331705e488 -r 229f037ce963 videoplayback/hbvideoplaybackview/controlsrc/mpxvideoplaybacktoolbar.cpp --- a/videoplayback/hbvideoplaybackview/controlsrc/mpxvideoplaybacktoolbar.cpp Fri Jun 11 09:44:20 2010 +0300 +++ b/videoplayback/hbvideoplaybackview/controlsrc/mpxvideoplaybacktoolbar.cpp Thu Jun 24 09:49:13 2010 +0300 @@ -15,14 +15,13 @@ * */ -// Version : %version: 6 % +// Version : %version: 7 % #include #include -#include #include #include #include @@ -44,7 +43,7 @@ // QMPXVideoPlaybackToolBar::QMPXVideoPlaybackToolBar() // ------------------------------------------------------------------------------------------------- // -QMPXVideoPlaybackToolBar::QMPXVideoPlaybackToolBar( +QMPXVideoPlaybackToolBar::QMPXVideoPlaybackToolBar( QMPXVideoPlaybackControlsController* controller ) : mController( controller ) , mSeekStartTimer( NULL ) @@ -59,8 +58,7 @@ mToolBar = mController->view()->toolBar(); mToolBar->setOrientation( Qt::Horizontal ); - HbEffect::disable( mToolBar ); - + mController->view()->hideItems( Hb::ToolBarItem ); initialize(); @@ -74,7 +72,6 @@ { MPX_DEBUG(_L("QMPXVideoPlaybackToolBar::~QMPXVideoPlaybackToolBar()")); - HbEffect::enable( mToolBar ); mToolBar->clearActions(); for ( int i = 0 ; i < mButtonIcons.count() ; i++ ) @@ -170,7 +167,7 @@ mButtonActions[EMPX1stButton]->setIcon( *mButtonIcons[EMPXNaturalIcon] ); // - // Attach/Share button + // Attach/Share button // mButtonIcons[EMPXAttachIcon]->setIconName( "qtg_mono_attach" ); mButtonIcons[EMPXShareIcon]->setIconName( "qtg_mono_share" ); @@ -184,26 +181,26 @@ mDuration = (qreal)mController->fileDetails()->mDuration / (qreal)KPbMilliMultiplier; // - // Create a timer for seeking. + // Create a timer for seeking. // We will issue SetPosition every KSeekingTimeOut msec to show the current frame to user // mSeekStartTimer = new QTimer(); mSeekStartTimer->setSingleShot( true ); mSeekStartTimer->setInterval( KSeekStartTimeOut ); - + // // get window size // - RWindow *window = mController->view()->getWindow(); + RWindow *window = mController->view()->getWindow(); TRect displayRect = TRect( TPoint( window->Position() ), TSize( window->Size() ) ); - + // // get window aspect ratio // if device is in portrait mode, width > height // if device is in landscape mode, width < height // TReal32 width = (TReal32) displayRect.Width(); - TReal32 height = (TReal32) displayRect.Height(); + TReal32 height = (TReal32) displayRect.Height(); mDisplayAspectRatio = (width > height)? (width / height) : (height / width); } } @@ -233,7 +230,7 @@ { mSeekingState = EMPXFastForwarding; - mController->handleCommand( EMPXPbvCmdSeekForward ); + mController->handleCommand( EMPXPbvCmdSeekForward ); } } @@ -272,7 +269,7 @@ if ( mSeekingState == EMPXFastForwarding ) { - mController->handleCommand( EMPXPbvCmdEndSeek ); + mController->handleCommand( EMPXPbvCmdEndSeek ); } else { @@ -310,7 +307,7 @@ if ( mSeekingState == EMPXRewinding ) { - mController->handleCommand( EMPXPbvCmdEndSeek ); + mController->handleCommand( EMPXPbvCmdEndSeek ); } else { @@ -341,7 +338,7 @@ MPX_DEBUG(_L("QMPXVideoPlaybackToolBar::changeAspectRatio()")); mController->resetDisappearingTimers( EMPXTimerReset ); - + TMPXVideoPlaybackViewCommandIds cmd = EMPXPbvCmdStretchAspectRatio; switch( mAspectRatio ) @@ -409,7 +406,7 @@ // // If we are in attach service or audio only view, then don't update the icon. // Aspect ratio icon slots are shared with attach and share icon. - // Just update the mAspectRatio + // Just update the mAspectRatio // and once we go back to full screen, we will show the correct aspect ratio icon // if ( ! mController->isAttachOperation() && mController->viewMode() == EFullScreenView ) @@ -431,7 +428,7 @@ mButtonActions[EMPX1stButton]->setIcon( *mButtonIcons[EMPXNaturalIcon] ); break; } - } + } } } @@ -531,11 +528,11 @@ else { // - // check if video clip has same aspect ratio as display window + // check if video clip has same aspect ratio as display window // - TReal32 videoAspectRatio = (TReal32) details->mVideoWidth / (TReal32) details->mVideoHeight; + TReal32 videoAspectRatio = (TReal32) details->mVideoWidth / (TReal32) details->mVideoHeight; bool enabled = ( mDisplayAspectRatio == videoAspectRatio )? false : true; - + // // enable or dim 'aspect ratio' buttons accordingly // @@ -548,7 +545,7 @@ this, SLOT( changeAspectRatio() ) ); } } - } + } else if ( mController->viewMode() == EAudioOnlyView ) { // @@ -574,7 +571,7 @@ if ( mButtons.count() ) { disconnect( mButtons[EMPX1stButton], SIGNAL( released() ), 0, 0 ); - connect( mButtons[EMPX1stButton], SIGNAL( released() ), + connect( mButtons[EMPX1stButton], SIGNAL( released() ), mController, SLOT( sendVideo() ) ); } } @@ -615,7 +612,7 @@ } // - // toolbar creates button once it gets visible, so we don't know exact timing when toolbar + // toolbar creates button once it gets visible, so we don't know exact timing when toolbar // creates button, so start timer to get layout information once the toolbar gets visible. // This is needed since we don't use toolbar in proper way. // @@ -624,9 +621,9 @@ mRetrieveButtonTimer = new QTimer(); mRetrieveButtonTimer->setSingleShot( false ); mRetrieveButtonTimer->setInterval( KRetrieveButtonTimeOut ); - connect( mRetrieveButtonTimer, SIGNAL( timeout() ), this, SLOT( retrieveButtons() ) ); + connect( mRetrieveButtonTimer, SIGNAL( timeout() ), this, SLOT( retrieveButtons() ) ); - mRetrieveButtonTimer->start(); + mRetrieveButtonTimer->start(); } durationChanged( (qreal)mController->fileDetails()->mDuration / (qreal)KPbMilliMultiplier ); @@ -708,7 +705,7 @@ if ( mRetrieveButtonTimer->isActive() ) { mRetrieveButtonTimer->stop(); - } + } } for ( int i = 0 ; i < layout->count() ; i++ ) @@ -744,10 +741,10 @@ { connect( mButtons[EMPX1stButton], SIGNAL( released() ), this, SLOT( changeAspectRatio() ) ); - } + } else if ( mController->viewMode() == EAudioOnlyView ) { - connect( mButtons[EMPX1stButton], SIGNAL( released() ), + connect( mButtons[EMPX1stButton], SIGNAL( released() ), mController, SLOT( sendVideo() ) ); } } diff -r 13331705e488 -r 229f037ce963 videoplayback/hbvideoplaybackview/hbvideoplaybackview.pro --- a/videoplayback/hbvideoplaybackview/hbvideoplaybackview.pro Fri Jun 11 09:44:20 2010 +0300 +++ b/videoplayback/hbvideoplaybackview/hbvideoplaybackview.pro Thu Jun 24 09:49:13 2010 +0300 @@ -14,7 +14,7 @@ # Description: Project file for building Videoplayer components # # -# Version : %version: da1mmcf#23 % +# Version : %version: 24 % TEMPLATE = lib @@ -30,6 +30,13 @@ INCLUDEPATH += $$MW_LAYER_SYSTEMINCLUDE \ $$APP_LAYER_SYSTEMINCLUDE SYSTEMINCLUDE BLD_INF_RULES.prj_exports += "rom/hbvideoplaybackview.iby CORE_APP_LAYER_IBY_EXPORT_PATH(hbvideoplaybackview.iby)" + defBlock = \ + "$${LITERAL_HASH}if defined(EABI)" \ + "DEFFILE ../eabi/hbvideoplaybackview.def" \ + "$${LITERAL_HASH}else" \ + "DEFFILE ../bwins/hbvideoplaybackview.def" \ + "$${LITERAL_HASH}endif" + MMP_RULES += defBlock } INCLUDEPATH += ../../inc \ diff -r 13331705e488 -r 229f037ce963 videoplayback/hbvideoplaybackview/resources/hbvideoplaybackview.docml --- a/videoplayback/hbvideoplaybackview/resources/hbvideoplaybackview.docml Fri Jun 11 09:44:20 2010 +0300 +++ b/videoplayback/hbvideoplaybackview/resources/hbvideoplaybackview.docml Thu Jun 24 09:49:13 2010 +0300 @@ -1,11 +1,11 @@ - + - + @@ -20,7 +20,7 @@ - + @@ -33,32 +33,26 @@ - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + - + - - - + + + @@ -66,7 +60,7 @@ - + @@ -93,9 +87,9 @@ - - - + + + @@ -109,33 +103,33 @@ - - + + - + - - + + - + - + - + @@ -143,54 +137,54 @@ - - + + + - - + - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + diff -r 13331705e488 -r 229f037ce963 videoplayback/hbvideoplaybackview/tsrc/testmpxvideoplaybackcontrolbar/stub/inc/hbeffect.h --- a/videoplayback/hbvideoplaybackview/tsrc/testmpxvideoplaybackcontrolbar/stub/inc/hbeffect.h Fri Jun 11 09:44:20 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,56 +0,0 @@ -/* -* Copyright (c) 2010 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: Implementation of HbEffect -* -*/ - -// Version : %version: 2 % - - - -#ifndef HBEFFECT_H -#define HBEFFECT_H - -#include - - -class HbEffect : public HbWidget -{ - Q_OBJECT - - public: - struct EffectStatus - { - Hb::EffectEvent reason; - }; - - public: - static bool add( QGraphicsItem *item, const QString &filePath, const QString &effectEvent ); - static bool remove( QGraphicsItem *item, const QString &filePath, const QString &effectEvent ); - - static bool start( QGraphicsItem *item, - const QString &effectEvent, - QObject *receiver = 0, - const char *member = 0 ); - - static bool cancel( QGraphicsItem *item ); - - static bool effectRunning( QGraphicsItem *item, const QString &effectEvent = QString() ); - - private: - void started(); -}; - -#endif /*HBEFFECT_H*/ - diff -r 13331705e488 -r 229f037ce963 videoplayback/hbvideoplaybackview/tsrc/testmpxvideoplaybackcontrolbar/stub/inc/mpxvideoplaybackcontrolscontroller.h --- a/videoplayback/hbvideoplaybackview/tsrc/testmpxvideoplaybackcontrolbar/stub/inc/mpxvideoplaybackcontrolscontroller.h Fri Jun 11 09:44:20 2010 +0300 +++ b/videoplayback/hbvideoplaybackview/tsrc/testmpxvideoplaybackcontrolbar/stub/inc/mpxvideoplaybackcontrolscontroller.h Thu Jun 24 09:49:13 2010 +0300 @@ -15,7 +15,7 @@ * */ -// Version : %version: 1 % +// Version : %version: 2 % @@ -31,7 +31,6 @@ #include "mpxvideoplaybackviewfiledetails.h" // FORWARD DECLARATIONS -class QMPXVideoPlaybackDocumentLoader; class QMPXVideoPlaybackControlsController ; // DATA TYPES @@ -90,15 +89,12 @@ */ inline QMPXVideoPlaybackViewFileDetails* fileDetails(); - inline QMPXVideoPlaybackDocumentLoader* layoutLoader(); - TPlaybackViewMode viewMode(); void changeViewMode( TPlaybackViewMode viewMode, bool transitionEffect = true ); public: QMPXVideoPlaybackViewFileDetails *mFileDetails; - QMPXVideoPlaybackDocumentLoader *mLoader; TMPXPlaybackState mState; TPlaybackViewMode mViewMode; @@ -129,16 +125,6 @@ } // ------------------------------------------------------------------------------------------------- -// QMPXVideoPlaybackControlsController::layoutLoader -// ------------------------------------------------------------------------------------------------- -// -inline -QMPXVideoPlaybackDocumentLoader* QMPXVideoPlaybackControlsController::layoutLoader() -{ - return mLoader; -} - -// ------------------------------------------------------------------------------------------------- // QMPXVideoPlaybackControlsController::viewMode // ------------------------------------------------------------------------------------------------- // diff -r 13331705e488 -r 229f037ce963 videoplayback/hbvideoplaybackview/tsrc/testmpxvideoplaybackcontrolbar/stub/inc/mpxvideoplaybackdocumentloader.h --- a/videoplayback/hbvideoplaybackview/tsrc/testmpxvideoplaybackcontrolbar/stub/inc/mpxvideoplaybackdocumentloader.h Fri Jun 11 09:44:20 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,52 +0,0 @@ -/* -* Copyright (c) 2010 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: Implementation of QMPXVideoPlaybackDocumentLoader -* -*/ - -// Version : %version: 1 % - - - -#ifndef MPXVIDEOPLAYBACKDOCUMENTHANDLER_H_ -#define MPXVIDEOPLAYBACKDOCUMENTHANDLER_H_ - - -#include - -class QList; -class QGraphicsWidget; -class QMPXVideoPlaybackControlsController; - -class QMPXVideoPlaybackDocumentLoader : public QObject -{ - public: - QMPXVideoPlaybackDocumentLoader( QMPXVideoPlaybackControlsController *controller ); - - virtual ~QMPXVideoPlaybackDocumentLoader(); - - public: - QGraphicsWidget* findWidget( const QString &name ); - - private: - QGraphicsWidget* createWidget( const QString &name ); - int exist( const QString &name ); - - private: - QList mWidgets; - QMPXVideoPlaybackControlsController *mController; -}; - -#endif /*MPXVIDEOPLAYBACKDOCUMENTHANDLER_H_*/ - diff -r 13331705e488 -r 229f037ce963 videoplayback/hbvideoplaybackview/tsrc/testmpxvideoplaybackcontrolbar/stub/src/hbeffect.cpp --- a/videoplayback/hbvideoplaybackview/tsrc/testmpxvideoplaybackcontrolbar/stub/src/hbeffect.cpp Fri Jun 11 09:44:20 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,108 +0,0 @@ -/* -* Copyright (c) 2010 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: Implementation of HbEffect -* -*/ - -// Version : %version: 3 % - - - -#include "mpxvideo_debug.h" -#include "hbeffect.h" - - -// ------------------------------------------------------------------------------------------------- -// HbEffect::add -// ------------------------------------------------------------------------------------------------- -// -bool HbEffect::add( QGraphicsItem *item, const QString &filePath, const QString &effectEvent ) -{ - MPX_DEBUG(_L("HbEffect::add") ); - - Q_UNUSED( item ); - Q_UNUSED( filePath ); - Q_UNUSED( effectEvent ); - - return true; -} - -// ------------------------------------------------------------------------------------------------- -// HbEffect::remove -// ------------------------------------------------------------------------------------------------- -// -bool HbEffect::remove( QGraphicsItem *item, const QString &filePath, const QString &effectEvent ) -{ - MPX_DEBUG(_L("HbEffect::remove") ); - - Q_UNUSED( item ); - Q_UNUSED( filePath ); - Q_UNUSED( effectEvent ); - - return true; -} - -// ------------------------------------------------------------------------------------------------- -// HbEffect::start -// ------------------------------------------------------------------------------------------------- -// -bool HbEffect::start( - QGraphicsItem *item, const QString &effectEvent, QObject *receiver, const char *member ) -{ - MPX_DEBUG(_L("HbEffect::start") ); - - Q_UNUSED( item ); - Q_UNUSED( effectEvent ); - - HbEffect::EffectStatus status; - status.reason = Hb::EffectFinished; - - QMetaObject::invokeMethod( - receiver, - member, - Qt::AutoConnection, - QGenericReturnArgument(), - Q_ARG( HbEffect::EffectStatus, status ) ); - - return true; -} - -// ------------------------------------------------------------------------------------------------- -// HbEffect::cancel -// ------------------------------------------------------------------------------------------------- -// -bool HbEffect::cancel( QGraphicsItem *item ) -{ - MPX_DEBUG(_L("HbEffect::cancel")); - - Q_UNUSED( item ); - - return true; -} - -// ------------------------------------------------------------------------------------------------- -// HbEffect::effectRunning -// ------------------------------------------------------------------------------------------------- -// -bool HbEffect::effectRunning( QGraphicsItem *item, const QString &effectEvent ) -{ - MPX_DEBUG(_L("HbEffect::effectRunning")); - - Q_UNUSED( item ); - Q_UNUSED( effectEvent ); - - return false; -} - -// End of file diff -r 13331705e488 -r 229f037ce963 videoplayback/hbvideoplaybackview/tsrc/testmpxvideoplaybackcontrolbar/stub/src/mpxvideoplaybackcontrolscontroller.cpp --- a/videoplayback/hbvideoplaybackview/tsrc/testmpxvideoplaybackcontrolbar/stub/src/mpxvideoplaybackcontrolscontroller.cpp Fri Jun 11 09:44:20 2010 +0300 +++ b/videoplayback/hbvideoplaybackview/tsrc/testmpxvideoplaybackcontrolbar/stub/src/mpxvideoplaybackcontrolscontroller.cpp Thu Jun 24 09:49:13 2010 +0300 @@ -15,14 +15,13 @@ * */ -// Version : %version: 1 % +// Version : %version: 2 % // INCLUDE FILES -#include "mpxvideoplaybackdocumentloader.h" #include "mpxvideoplaybackcontrolscontroller.h" // ================= MEMBER FUNCTIONS ============================================================== @@ -36,7 +35,6 @@ { MPX_ENTER_EXIT(_L("QMPXVideoPlaybackControlsController::QMPXVideoPlaybackControlsController()")); - mLoader = new QMPXVideoPlaybackDocumentLoader( this ); mFileDetails = new QMPXVideoPlaybackViewFileDetails(); } diff -r 13331705e488 -r 229f037ce963 videoplayback/hbvideoplaybackview/tsrc/testmpxvideoplaybackcontrolbar/stub/src/mpxvideoplaybackdocumentloader.cpp --- a/videoplayback/hbvideoplaybackview/tsrc/testmpxvideoplaybackcontrolbar/stub/src/mpxvideoplaybackdocumentloader.cpp Fri Jun 11 09:44:20 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,124 +0,0 @@ -/* -* Copyright (c) 2010 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: Implementation of QMPXVideoPlaybackDocumentLoader -* -*/ - -// Version : %version: 2 % - - - - -#include "mpxvideo_debug.h" -#include "mpxvideoplaybackprogressbar.h" -#include "mpxvideoplaybackdocumentloader.h" -#include "mpxvideoplaybackcontrolscontroller.h" - -// ------------------------------------------------------------------------------------------------- -// QMPXVideoPlaybackDocumentLoader::QMPXVideoPlaybackDocumentLoader -// ------------------------------------------------------------------------------------------------- -// -QMPXVideoPlaybackDocumentLoader::QMPXVideoPlaybackDocumentLoader( - QMPXVideoPlaybackControlsController *controller ) -{ - MPX_ENTER_EXIT(_L("QMPXVideoPlaybackDocumentLoader::QMPXVideoPlaybackDocumentLoader()")); - - mController = controller; -} - -// ------------------------------------------------------------------------------------------------- -// QMPXVideoPlaybackDocumentLoader::~QMPXVideoPlaybackDocumentLoader -// ------------------------------------------------------------------------------------------------- -// -QMPXVideoPlaybackDocumentLoader::~QMPXVideoPlaybackDocumentLoader() -{ - MPX_DEBUG(_L("QMPXVideoPlaybackDocumentLoader::QMPXVideoPlaybackDocumentLoader") ); - - for ( int i = 0 ; i < mWidgets.count() ; i++ ) - { - mWidgets.removeAt( 0 ); - } -} - -// ------------------------------------------------------------------------------------------------- -// QMPXVideoPlaybackDocumentLoader::findWidget() -// ------------------------------------------------------------------------------------------------- -// -QGraphicsWidget *QMPXVideoPlaybackDocumentLoader::findWidget( const QString &name ) -{ - MPX_DEBUG(_L("QMPXVideoPlaybackDocumentLoader::findWidget") ); - - QGraphicsWidget *object = NULL; - - int index = exist( name ); - - if ( index == -1 ) - { - object = createWidget( name ); - } - else - { - object = mWidgets[ index ]; - } - - return object; -} - -// ------------------------------------------------------------------------------------------------- -// QMPXVideoPlaybackDocumentLoader::createWidget() -// ------------------------------------------------------------------------------------------------- -// -QGraphicsWidget *QMPXVideoPlaybackDocumentLoader::createWidget( const QString &name ) -{ - MPX_DEBUG(_L("QMPXVideoPlaybackDocumentLoader::createWidget") ); - - QGraphicsWidget *object = NULL; - - if ( name == "progressBarLayout" ) - { - object = new QMPXVideoPlaybackProgressBar( mController ); - object->setObjectName( name ); - mWidgets.append( object ); - } - - return object; -} - -// ------------------------------------------------------------------------------------------------- -// QMPXVideoPlaybackDocumentLoader::exist() -// ------------------------------------------------------------------------------------------------- -// -int QMPXVideoPlaybackDocumentLoader::exist( const QString &name ) -{ - int i = 0; - - for ( ; i < mWidgets.count() ; i++ ) - { - if( mWidgets[i]->objectName() == name ) - { - break; - } - } - - if ( i == mWidgets.count() ) - { - i = -1; - } - - MPX_DEBUG(_L("QMPXVideoPlaybackDocumentLoader::exist %d"), i ); - - return i; -} - -// End of file diff -r 13331705e488 -r 229f037ce963 videoplayback/hbvideoplaybackview/tsrc/testmpxvideoplaybackcontrolbar/testmpxvideoplaybackcontrolbar.pro --- a/videoplayback/hbvideoplaybackview/tsrc/testmpxvideoplaybackcontrolbar/testmpxvideoplaybackcontrolbar.pro Fri Jun 11 09:44:20 2010 +0300 +++ b/videoplayback/hbvideoplaybackview/tsrc/testmpxvideoplaybackcontrolbar/testmpxvideoplaybackcontrolbar.pro Thu Jun 24 09:49:13 2010 +0300 @@ -14,7 +14,7 @@ # Description: Project file for building testmpxvideoplaybackcontrolbar # # -# Version : %version: 3 % +# Version : %version: 4 % TEMPLATE = app TARGET = testmpxvideoplaybackcontrolbar @@ -30,18 +30,14 @@ # Input HEADERS += testmpxvideoplaybackcontrolbar.h \ mpxvideoplaybackcontrolscontroller.h \ - mpxvideoplaybackdocumentloader.h \ mpxvideoplaybackviewfiledetails.h \ mpxvideoplaybackprogressbar.h \ mpxvideoplaybacktoolbar.h \ - hbeffect.h \ ../../controlinc/mpxvideoplaybackcontrolbar.h SOURCES += testmpxvideoplaybackcontrolbar.cpp \ mpxvideoplaybackcontrolscontroller.cpp \ - mpxvideoplaybackdocumentloader.cpp \ mpxvideoplaybackviewfiledetails.cpp \ mpxvideoplaybackprogressbar.cpp \ mpxvideoplaybacktoolbar.cpp \ - hbeffect.cpp \ ../../controlsrc/mpxvideoplaybackcontrolbar.cpp diff -r 13331705e488 -r 229f037ce963 videoplayback/hbvideoplaybackview/tsrc/testmpxvideoplaybackdocumentloader/src/testmpxvideoplaybackdocumentloader.cpp --- a/videoplayback/hbvideoplaybackview/tsrc/testmpxvideoplaybackdocumentloader/src/testmpxvideoplaybackdocumentloader.cpp Fri Jun 11 09:44:20 2010 +0300 +++ b/videoplayback/hbvideoplaybackview/tsrc/testmpxvideoplaybackdocumentloader/src/testmpxvideoplaybackdocumentloader.cpp Thu Jun 24 09:49:13 2010 +0300 @@ -1,5 +1,5 @@ /** -* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2010 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" @@ -12,10 +12,10 @@ * Contributors: * * Description: tester for methods in TestMPXVideoPlaybackDocumentLoader -* +* */ -// Version : %version: 5 % +// Version : %version: 6 % #include @@ -49,9 +49,9 @@ pass[0] = argv[0]; pass[1] = "-o"; pass[2] = "c:\\data\\testmpxvideoplaybackdocumentloader.txt"; - + int res = QTest::qExec(&tv, 3, pass); - + return res; } @@ -102,9 +102,6 @@ QObject *object = mLoader->createObject( "", "controlBarLayout" ); QVERIFY( object->objectName() == "controlBarLayout" ); - object = mLoader->createObject( "", "progressBarLayout" ); - QVERIFY( object->objectName() == "progressBarLayout" ); - object = mLoader->createObject( "", "fileDetailsLayout" ); QVERIFY( object->objectName() == "fileDetailsLayout" ); diff -r 13331705e488 -r 229f037ce963 videoplayback/hbvideoplaybackview/tsrc/testmpxvideoplaybackdocumentloader/stub/inc/mpxvideoplaybackprogressbar.h --- a/videoplayback/hbvideoplaybackview/tsrc/testmpxvideoplaybackdocumentloader/stub/inc/mpxvideoplaybackprogressbar.h Fri Jun 11 09:44:20 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,42 +0,0 @@ -/* -* Copyright (c) 2010 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: Implementation of QMPXVideoPlaybackProgressBar -* -*/ - -// Version : %version: 1 % - - - -#ifndef MPXVIDEOPLAYBACKPROGRESSBAR_H_ -#define MPXVIDEOPLAYBACKPROGRESSBAR_H_ - -#include - -class QMPXVideoPlaybackControlsController; - -class QMPXVideoPlaybackProgressBar : public QObject -{ - Q_OBJECT - - public: - QMPXVideoPlaybackProgressBar( QMPXVideoPlaybackControlsController* controller ); - virtual ~QMPXVideoPlaybackProgressBar(); - - public: - QMPXVideoPlaybackControlsController *mController; -}; - -#endif /*MPXVIDEOPLAYBACKPROGRESSBAR_H_*/ - diff -r 13331705e488 -r 229f037ce963 videoplayback/hbvideoplaybackview/tsrc/testmpxvideoplaybackdocumentloader/stub/src/mpxvideoplaybackprogressbar.cpp --- a/videoplayback/hbvideoplaybackview/tsrc/testmpxvideoplaybackdocumentloader/stub/src/mpxvideoplaybackprogressbar.cpp Fri Jun 11 09:44:20 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,45 +0,0 @@ -/* -* Copyright (c) 2010 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: Implementation of QMPXVideoPlaybackProgressBar -* -*/ - -// Version : %version: 1 % - - -#include "mpxvideo_debug.h" -#include "mpxvideoplaybackprogressbar.h" -#include "mpxvideoplaybackcontrolscontroller.h" - -// ------------------------------------------------------------------------------------------------- -// QMPXVideoPlaybackProgressBar::QMPXVideoPlaybackProgressBar -// ------------------------------------------------------------------------------------------------- -// -QMPXVideoPlaybackProgressBar::QMPXVideoPlaybackProgressBar( - QMPXVideoPlaybackControlsController* controller ) - : mController( controller ) -{ - MPX_ENTER_EXIT(_L("QMPXVideoPlaybackProgressBar::QMPXVideoPlaybackProgressBar()")); -} - -// ------------------------------------------------------------------------------------------------- -// QMPXVideoPlaybackProgressBar::~QMPXVideoPlaybackProgressBar -// ------------------------------------------------------------------------------------------------- -// -QMPXVideoPlaybackProgressBar::~QMPXVideoPlaybackProgressBar() -{ - MPX_ENTER_EXIT(_L("QMPXVideoPlaybackProgressBar::~QMPXVideoPlaybackProgressBar()")); -} - -//End of file diff -r 13331705e488 -r 229f037ce963 videoplayback/hbvideoplaybackview/tsrc/testmpxvideoplaybackdocumentloader/testmpxvideoplaybackdocumentloader.pro --- a/videoplayback/hbvideoplaybackview/tsrc/testmpxvideoplaybackdocumentloader/testmpxvideoplaybackdocumentloader.pro Fri Jun 11 09:44:20 2010 +0300 +++ b/videoplayback/hbvideoplaybackview/tsrc/testmpxvideoplaybackdocumentloader/testmpxvideoplaybackdocumentloader.pro Thu Jun 24 09:49:13 2010 +0300 @@ -14,7 +14,7 @@ # Description: Project file for building testmpxvideoplaybackdocumentloader # # -# Version : %version: 5 % +# Version : %version: 6 % TEMPLATE = app TARGET = testmpxvideoplaybackdocumentloader @@ -32,7 +32,6 @@ mpxvideoplaybackcontrolscontroller.h \ mpxvideoplaybackfiledetailswidget.h \ mpxvideoplaybackdetailsplaybackwindow.h \ - mpxvideoplaybackprogressbar.h \ mpxvideoplaybackcontrolbar.h \ ../../controlinc/mpxvideoplaybackdocumentloader.h @@ -40,6 +39,5 @@ mpxvideoplaybackcontrolscontroller.cpp \ mpxvideoplaybackfiledetailswidget.cpp \ mpxvideoplaybackdetailsplaybackwindow.cpp \ - mpxvideoplaybackprogressbar.cpp \ mpxvideoplaybackcontrolbar.cpp \ ../../controlsrc/mpxvideoplaybackdocumentloader.cpp diff -r 13331705e488 -r 229f037ce963 videoplayback/hbvideoplaybackview/tsrc/testmpxvideoviewwrapper/src/testmpxvideoviewwrapper.cpp --- a/videoplayback/hbvideoplaybackview/tsrc/testmpxvideoviewwrapper/src/testmpxvideoviewwrapper.cpp Fri Jun 11 09:44:20 2010 +0300 +++ b/videoplayback/hbvideoplaybackview/tsrc/testmpxvideoviewwrapper/src/testmpxvideoviewwrapper.cpp Thu Jun 24 09:49:13 2010 +0300 @@ -1,5 +1,5 @@ /** -* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +* 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" @@ -12,10 +12,10 @@ * Contributors: * * Description: tester for methods in VideoSortFilterProxyModel -* +* */ -// Version : %version: 8 % +// Version : %version: 9 % #include #include @@ -53,16 +53,16 @@ { HbApplication app(argc, argv); HbMainWindow window; - + TestMPXVideoViewWrapper tv; char *pass[3]; pass[0] = argv[0]; pass[1] = "-o"; pass[2] = "c:\\data\\testmpxvideoviewwrapper.txt"; - + int res = QTest::qExec(&tv, 3, pass); - + return res; } @@ -71,9 +71,9 @@ // --------------------------------------------------------------------------- // void TestMPXVideoViewWrapper::init() -{ +{ mBaseVideoView = new HbVideoBasePlaybackView(); - TRAPD( err, mVideoViewWrapper = CMPXVideoViewWrapper::NewL( mBaseVideoView ) ); + TRAPD( err, mVideoViewWrapper = CMPXVideoViewWrapper::NewL( mBaseVideoView ) ); QVERIFY( err == KErrNone ); } @@ -86,7 +86,7 @@ if ( mVideoViewWrapper ) { delete mVideoViewWrapper; - mVideoViewWrapper = NULL; + mVideoViewWrapper = NULL; } if ( mBaseVideoView ) @@ -102,9 +102,9 @@ TRAPD(err, mVideoViewWrapper->RequestMediaL()); QVERIFY( err == KErrNone ); - + QVERIFY( mVideoViewWrapper->iMediaRequestStatus == MediaRequested ); - + cleanup(); } @@ -114,13 +114,13 @@ TRAPD(err, mVideoViewWrapper->RequestMediaL()); QVERIFY( err == KErrNone ); - + mVideoViewWrapper->iFileDetails->mPlaybackMode = EMPXVideoLiveStreaming; QVERIFY( mVideoViewWrapper->IsLive() ); mVideoViewWrapper->iFileDetails->mPlaybackMode = EMPXVideoLocal; QVERIFY( ! mVideoViewWrapper->IsLive() ); - + cleanup(); } @@ -130,7 +130,7 @@ mVideoViewWrapper->iPlaylistView = true; QVERIFY( mVideoViewWrapper->IsPlaylist() == true ); - + mVideoViewWrapper->iPlaylistView = false; QVERIFY( mVideoViewWrapper->IsPlaylist() == false ); @@ -140,180 +140,180 @@ void TestMPXVideoViewWrapper::testHandleCommand() { init(); - + TRAPD( errReqMedia, mVideoViewWrapper->RequestMediaL() ); QVERIFY( errReqMedia == KErrNone ); // // Test 'Play' command // - TRAPD( errHdlCmd, mVideoViewWrapper->HandleCommandL( EMPXPbvCmdPlay ) ); + TRAPD( errHdlCmd, mVideoViewWrapper->HandleCommandL( EMPXPbvCmdPlay ) ); QVERIFY( errHdlCmd == KErrNone ); QVERIFY( mVideoViewWrapper->iPlaybackUtility->iCommand == EPbCmdPlay ); - + // // Test 'Pause' command // - TRAP( errHdlCmd, mVideoViewWrapper->HandleCommandL( EMPXPbvCmdPause ) ); + TRAP( errHdlCmd, mVideoViewWrapper->HandleCommandL( EMPXPbvCmdPause ) ); QVERIFY( errHdlCmd == KErrNone ); QVERIFY( mVideoViewWrapper->iPlaybackUtility->iCommand == EPbCmdPause ); // // Test 'Close' command // - TRAP( errHdlCmd, mVideoViewWrapper->HandleCommandL( EMPXPbvCmdClose ) ); + TRAP( errHdlCmd, mVideoViewWrapper->HandleCommandL( EMPXPbvCmdClose ) ); QVERIFY( errHdlCmd == KErrNone ); QVERIFY( mVideoViewWrapper->iPlaybackUtility->iCommand == EPbCmdClose ); - + // // Test 'Seek Forward' command // - TRAP( errHdlCmd, mVideoViewWrapper->HandleCommandL( EMPXPbvCmdSeekForward ) ); + TRAP( errHdlCmd, mVideoViewWrapper->HandleCommandL( EMPXPbvCmdSeekForward ) ); QVERIFY( errHdlCmd == KErrNone ); QVERIFY( mVideoViewWrapper->iPlaybackUtility->iCommand == EPbCmdStartVideoSeekingForward ); // // Test 'Seek Backward' command // - TRAP( errHdlCmd, mVideoViewWrapper->HandleCommandL( EMPXPbvCmdSeekBackward ) ); + TRAP( errHdlCmd, mVideoViewWrapper->HandleCommandL( EMPXPbvCmdSeekBackward ) ); QVERIFY( errHdlCmd == KErrNone ); QVERIFY( mVideoViewWrapper->iPlaybackUtility->iCommand == EPbCmdStartVideoSeekingBackward ); - + // // Test 'End Seek' command // - TRAP( errHdlCmd, mVideoViewWrapper->HandleCommandL( EMPXPbvCmdEndSeek ) ); + TRAP( errHdlCmd, mVideoViewWrapper->HandleCommandL( EMPXPbvCmdEndSeek ) ); QVERIFY( errHdlCmd == KErrNone ); QVERIFY( mVideoViewWrapper->iPlaybackUtility->iCommand == EPbCmdStopVideoSeeking ); - + // // Test 'PlayPause' command // mVideoViewWrapper->iPlaybackState = EPbStatePlaying; - TRAP( errHdlCmd, mVideoViewWrapper->HandleCommandL( EMPXPbvCmdPlayPause ) ); + TRAP( errHdlCmd, mVideoViewWrapper->HandleCommandL( EMPXPbvCmdPlayPause ) ); QVERIFY( errHdlCmd == KErrNone ); QVERIFY( mVideoViewWrapper->iPlaybackUtility->iCommand == EPbCmdPause ); mVideoViewWrapper->iPlaybackState = EPbStatePaused; - TRAP( errHdlCmd, mVideoViewWrapper->HandleCommandL( EMPXPbvCmdPlayPause ) ); + TRAP( errHdlCmd, mVideoViewWrapper->HandleCommandL( EMPXPbvCmdPlayPause ) ); QVERIFY( errHdlCmd == KErrNone ); QVERIFY( mVideoViewWrapper->iPlaybackUtility->iCommand == EPbCmdPlay ); // // Test 'Stop' command // - TRAP( errHdlCmd, mVideoViewWrapper->HandleCommandL( EMPXPbvCmdStop ) ); + TRAP( errHdlCmd, mVideoViewWrapper->HandleCommandL( EMPXPbvCmdStop ) ); QVERIFY( errHdlCmd == KErrNone ); QVERIFY( mVideoViewWrapper->iPlaybackUtility->iCommand == EPbCmdStop ); - + // // Test 'Decrease Volume' command // - TRAP( errHdlCmd, mVideoViewWrapper->HandleCommandL( EMPXPbvCmdDecreaseVolume ) ); + TRAP( errHdlCmd, mVideoViewWrapper->HandleCommandL( EMPXPbvCmdDecreaseVolume ) ); QVERIFY( errHdlCmd == KErrNone ); QVERIFY( mVideoViewWrapper->iPlaybackUtility->iCommand == EPbCmdHandleDecreaseVolume ); - + // // Test 'Increase Volume' command // - TRAP( errHdlCmd, mVideoViewWrapper->HandleCommandL( EMPXPbvCmdIncreaseVolume ) ); + TRAP( errHdlCmd, mVideoViewWrapper->HandleCommandL( EMPXPbvCmdIncreaseVolume ) ); QVERIFY( errHdlCmd == KErrNone ); QVERIFY( mVideoViewWrapper->iPlaybackUtility->iCommand == EPbCmdHandleIncreaseVolume ); - + // // Test 'Natural Aspect Ratio' command // - TRAP( errHdlCmd, mVideoViewWrapper->HandleCommandL( EMPXPbvCmdNaturalAspectRatio ) ); + TRAP( errHdlCmd, mVideoViewWrapper->HandleCommandL( EMPXPbvCmdNaturalAspectRatio ) ); QVERIFY( errHdlCmd == KErrNone ); QVERIFY( mVideoViewWrapper->iDisplayHandler->iCommand == EPbCmdNaturalAspectRatio ); - + // // Test 'Zoom Aspect Ratio' command // - TRAP( errHdlCmd, mVideoViewWrapper->HandleCommandL( EMPXPbvCmdZoomAspectRatio ) ); + TRAP( errHdlCmd, mVideoViewWrapper->HandleCommandL( EMPXPbvCmdZoomAspectRatio ) ); QVERIFY( errHdlCmd == KErrNone ); QVERIFY( mVideoViewWrapper->iDisplayHandler->iCommand == EPbCmdZoomAspectRatio ); - + // // Test 'Stretch Aspect Ratio' command // - TRAP( errHdlCmd, mVideoViewWrapper->HandleCommandL( EMPXPbvCmdStretchAspectRatio ) ); + TRAP( errHdlCmd, mVideoViewWrapper->HandleCommandL( EMPXPbvCmdStretchAspectRatio ) ); QVERIFY( errHdlCmd == KErrNone ); QVERIFY( mVideoViewWrapper->iDisplayHandler->iCommand == EPbCmdStretchAspectRatio ); - + // // Test 'Mute' command // - TRAP( errHdlCmd, mVideoViewWrapper->HandleCommandL( EMPXPbvCmdMute ) ); + TRAP( errHdlCmd, mVideoViewWrapper->HandleCommandL( EMPXPbvCmdMute ) ); QVERIFY( errHdlCmd == KErrNone ); QVERIFY( mVideoViewWrapper->iPlaybackUtility->iCommand == EPbCmdMuteVolume ); - + // // Test 'Un-mute' command // - TRAP( errHdlCmd, mVideoViewWrapper->HandleCommandL( EMPXPbvCmdUnMute ) ); + TRAP( errHdlCmd, mVideoViewWrapper->HandleCommandL( EMPXPbvCmdUnMute ) ); QVERIFY( errHdlCmd == KErrNone ); QVERIFY( mVideoViewWrapper->iPlaybackUtility->iCommand == EPbCmdUnMuteVolume ); - + // // Test 'Short Press Backward' command // - TRAP( errHdlCmd, mVideoViewWrapper->HandleCommandL( EMPXPbvCmdShortPressBackward ) ); + TRAP( errHdlCmd, mVideoViewWrapper->HandleCommandL( EMPXPbvCmdShortPressBackward ) ); QVERIFY( errHdlCmd == KErrNone ); QVERIFY( mVideoViewWrapper->iPlaybackUtility->iProperty == EPbPropertyPosition ); - + // // Test 'Reset Controls' command // - TRAP( errHdlCmd, mVideoViewWrapper->HandleCommandL( EMPXPbvCmdResetControls ) ); + TRAP( errHdlCmd, mVideoViewWrapper->HandleCommandL( EMPXPbvCmdResetControls ) ); QVERIFY( errHdlCmd == KErrNone ); QVERIFY( mVideoViewWrapper->iPlaybackUtility->iCommand == EPbCmdInitView ); - + // // Test 'Next List Item' command // mVideoViewWrapper->iPlaylistView = true; - mVideoViewWrapper->iFileDetails->mMultiItemPlaylist = true; - TRAP( errHdlCmd, mVideoViewWrapper->HandleCommandL( EMPXPbvCmdNextListItem ) ); + mVideoViewWrapper->iFileDetails->mMultiItemPlaylist = true; + TRAP( errHdlCmd, mVideoViewWrapper->HandleCommandL( EMPXPbvCmdNextListItem ) ); QVERIFY( errHdlCmd == KErrNone ); QVERIFY( mVideoViewWrapper->iPlaybackUtility->iCommand == EPbCmdNext ); - + // // Test 'Previous List Item' command // - TRAP( errHdlCmd, mVideoViewWrapper->HandleCommandL( EMPXPbvCmdPreviousListItem ) ); + TRAP( errHdlCmd, mVideoViewWrapper->HandleCommandL( EMPXPbvCmdPreviousListItem ) ); QVERIFY( errHdlCmd == KErrNone ); QVERIFY( mVideoViewWrapper->iPlaybackUtility->iCommand == EPbCmdPrevious ); - + // // Test 'End Of Clip' command // - TRAP( errHdlCmd, mVideoViewWrapper->HandleCommandL( EMPXPbvCmdEndOfClip ) ); + TRAP( errHdlCmd, mVideoViewWrapper->HandleCommandL( EMPXPbvCmdEndOfClip ) ); QVERIFY( errHdlCmd == KErrNone ); QVERIFY( mVideoViewWrapper->iPlaybackUtility->iCommand == EPbCmdEndofClipReached ); - + // // Test 'Custom Pause' command // - TRAP( errHdlCmd, mVideoViewWrapper->HandleCommandL( EMPXPbvCmdCustomPause ) ); + TRAP( errHdlCmd, mVideoViewWrapper->HandleCommandL( EMPXPbvCmdCustomPause ) ); QVERIFY( errHdlCmd == KErrNone ); QVERIFY( mVideoViewWrapper->iPlaybackUtility->iCommand == EPbCmdCustomPause ); - + // // Test 'Custom Play' command // - TRAP( errHdlCmd, mVideoViewWrapper->HandleCommandL( EMPXPbvCmdCustomPlay ) ); + TRAP( errHdlCmd, mVideoViewWrapper->HandleCommandL( EMPXPbvCmdCustomPlay ) ); QVERIFY( errHdlCmd == KErrNone ); QVERIFY( mVideoViewWrapper->iPlaybackUtility->iCommand == EPbCmdCustomPlay ); - + // // Test 'RealOne Bitmap Timeout' command // mVideoViewWrapper->iMediaRequestStatus = MediaDelivered; - TRAP( errHdlCmd, mVideoViewWrapper->HandleCommandL( EMPXPbvCmdRealOneBitmapTimeout ) ); + TRAP( errHdlCmd, mVideoViewWrapper->HandleCommandL( EMPXPbvCmdRealOneBitmapTimeout ) ); QVERIFY( errHdlCmd == KErrNone ); QVERIFY( mVideoViewWrapper->iPlaybackUtility->iCommand == EPbCmdPlay ); - + cleanup(); } @@ -323,11 +323,11 @@ TRAPD(errReqMedia, mVideoViewWrapper->RequestMediaL()); QVERIFY( errReqMedia == KErrNone ); - + mVideoViewWrapper->HandlePluginError( KErrNotSupported ); - + QVERIFY( mVideoViewWrapper->iView->mCurrentError == KErrNotSupported ); - + cleanup(); } @@ -339,51 +339,51 @@ // Test Video Msg //*************************** CMPXMessage* message = NULL; - TRAP_IGNORE( - message = CMPXMessage::NewL(); + TRAP_IGNORE( + message = CMPXMessage::NewL(); message->SetTObjectValueL( KMPXMessageGeneralId, KMPXMediaIdVideoPlayback ); message->SetTObjectValueL ( KMPXMediaVideoPlaybackCommand, EPbCmdTvOutEvent ); message->SetTObjectValueL( KMPXMediaVideoTvOutConnected, ETrue ); ); mVideoViewWrapper->HandlePlaybackMessage( message, KErrNone ); - QVERIFY( mVideoViewWrapper->iFileDetails->mTvOutConnected ); + QVERIFY( mVideoViewWrapper->iFileDetails->mTvOutConnected ); if ( message ) { delete message; message = NULL; - } + } //*************************** // Test General Msg //*************************** - TRAP_IGNORE( + TRAP_IGNORE( message = CMPXMessage::NewL(); message->SetTObjectValueL( KMPXMessageGeneralId, KMPXMessageGeneral ); - message->SetTObjectValueL( KMPXMessageGeneralEvent, 28 ); // EReachedEndOfPlaylist = 28 + message->SetTObjectValueL( KMPXMessageGeneralEvent, 28 ); // EReachedEndOfPlaylist = 28 message->SetTObjectValueL( KMPXMessageGeneralType, 0 ); - message->SetTObjectValueL( KMPXMessageGeneralData, 0 ); + message->SetTObjectValueL( KMPXMessageGeneralData, 0 ); ); - mVideoViewWrapper->HandlePlaybackMessage( message, KErrNone ); - QVERIFY( ! mVideoViewWrapper->iView->mViewActive ); + mVideoViewWrapper->HandlePlaybackMessage( message, KErrNone ); + QVERIFY( ! mVideoViewWrapper->iView->mViewActive ); if ( message ) { delete message; message = NULL; - } + } //*************************** // Test Video Msg with err //*************************** TRAP_IGNORE( message = CMPXMessage::NewL() ); mVideoViewWrapper->HandlePlaybackMessage( message, KErrNotFound ); - QVERIFY( mVideoViewWrapper->iView->mCurrentError == KErrNotFound ); + QVERIFY( mVideoViewWrapper->iView->mCurrentError == KErrNotFound ); if ( message ) { delete message; message = NULL; - } - + } + cleanup(); } @@ -417,7 +417,7 @@ // Duration // int value = 5000; - TRAPD(errHdlProp, mVideoViewWrapper->HandlePropertyL( EPbPropertyDuration, value, KErrNone ) ); + TRAPD(errHdlProp, mVideoViewWrapper->HandlePropertyL( EPbPropertyDuration, value, KErrNone ) ); QVERIFY( errHdlProp == KErrNone ); QVERIFY( mVideoViewWrapper->iControlsController->mReceivedEvent == EMPXControlCmdSetDuration ); @@ -428,7 +428,7 @@ // value = 500; - TRAP(errHdlProp, mVideoViewWrapper->HandlePropertyL( EPbPropertyPosition, value, KErrNone ) ); + TRAP(errHdlProp, mVideoViewWrapper->HandlePropertyL( EPbPropertyPosition, value, KErrNone ) ); QVERIFY( errHdlProp == KErrNone ); QVERIFY( mVideoViewWrapper->iControlsController->mReceivedEvent == EMPXControlCmdSetPosition ); @@ -439,7 +439,7 @@ // value = 10; - TRAP(errHdlProp, mVideoViewWrapper->HandlePropertyL( EPbPropertyVolume, value, KErrNone ) ); + TRAP(errHdlProp, mVideoViewWrapper->HandlePropertyL( EPbPropertyVolume, value, KErrNone ) ); QVERIFY( errHdlProp == KErrNone ); QVERIFY( mVideoViewWrapper->iControlsController->mReceivedEvent == EMPXControlCmdSetVolume ); @@ -450,7 +450,7 @@ // value = 1; - TRAP(errHdlProp, mVideoViewWrapper->HandlePropertyL( EPbPropertyMute, value, KErrNone ) ); + TRAP(errHdlProp, mVideoViewWrapper->HandlePropertyL( EPbPropertyMute, value, KErrNone ) ); QVERIFY( errHdlProp == KErrNone ); QVERIFY( mVideoViewWrapper->iControlsController->mReceivedEvent == EMPXControlCmdSetVolume ); @@ -463,19 +463,19 @@ { init(); - mVideoViewWrapper->iFileDetails->clearFileDetails(); + mVideoViewWrapper->iFileDetails->clearFileDetails(); CMPXCommand* cmd = NULL; - + TRAP_IGNORE( cmd = CMPXCommand::NewL() ); if ( cmd ) { TRAPD(errRetFileName, mVideoViewWrapper->RetrieveFileNameAndModeL( cmd ) ); QVERIFY( errRetFileName == KErrNone ); - - QVERIFY( mVideoViewWrapper->iPlaybackUtility->iCommand == EPbCmdInitView ); - + + QVERIFY( mVideoViewWrapper->iPlaybackUtility->iCommand == EPbCmdInitView ); + QCOMPARE( mVideoViewWrapper->iFileDetails->mClipName, QString("testClip.3gp")); delete cmd; @@ -500,8 +500,8 @@ { init(); - TRAPD(err, mVideoViewWrapper->DoClosePlayerL()); - QVERIFY( err == KErrNone ); + TRAPD(err, mVideoViewWrapper->DoClosePlayer()); + QVERIFY( err == KErrNone ); QVERIFY( ! mVideoViewWrapper->iView->mViewActive ); @@ -562,7 +562,7 @@ TRAPD( errHdlCmd, mVideoViewWrapper->HandleCommandL( EMPXPbvCmdDecreaseVolume ) ); QVERIFY( mVideoViewWrapper->iPlaybackUtility->iCommand == EPbCmdHandleDecreaseVolume ); - QVERIFY( errHdlCmd == KErrNone ); + QVERIFY( errHdlCmd == KErrNone ); QVERIFY( mVideoViewWrapper->iFileDetails->mAudioEnabled ); @@ -584,7 +584,7 @@ QVERIFY( mVideoViewWrapper->iPlaybackUtility->iProperty == EPbPropertyPosition ); QVERIFY( mVideoViewWrapper->iPlaybackUtility->iPropertyValue == 0 ); - QVERIFY( errHdlCmd == KErrNone ); + QVERIFY( errHdlCmd == KErrNone ); cleanup(); } @@ -651,8 +651,8 @@ TRect rect( 0, 0, 50, 50 ); - mVideoViewWrapper->UpdateVideoRect( - rect.iTl.iX, rect.iTl.iY, rect.iBr.iX, rect.iBr.iY, false ); + mVideoViewWrapper->UpdateVideoRect( + rect.iTl.iX, rect.iTl.iY, rect.iBr.iX, rect.iBr.iY, false ); QVERIFY( rect == mVideoViewWrapper->iDisplayHandler->iRect ); @@ -687,22 +687,22 @@ CMPXMessage* message = NULL; TRAP_IGNORE( - message = CMPXMessage::NewL(); + message = CMPXMessage::NewL(); message->SetTObjectValueL( KMPXMessageGeneralId, KMPXMediaIdVideoPlayback ); message->SetTObjectValueL ( KMPXMediaVideoPlaybackCommand, EPbCmdPluginError ); message->SetTObjectValueL( KMPXMediaVideoError, KErrNotSupported ); ); - - mVideoViewWrapper->HandleVideoPlaybackMessage( message ); - - QCOMPARE( mVideoViewWrapper->iView->mCurrentError, KErrNotSupported ); + + mVideoViewWrapper->HandleVideoPlaybackMessage( message ); + + QCOMPARE( mVideoViewWrapper->iView->mCurrentError, KErrNotSupported ); if ( message ) { delete message; - message = NULL; + message = NULL; } - + cleanup(); } @@ -711,23 +711,23 @@ init(); CMPXCommand* cmd = NULL; - + TRAP_IGNORE( cmd = CMPXCommand::NewL() ); - - mVideoViewWrapper->HandlePlaybackCommandComplete( cmd, KErrNone ); - + + mVideoViewWrapper->HandlePlaybackCommandComplete( cmd, KErrNone ); + QVERIFY( mVideoViewWrapper ); - + delete cmd; - cmd = NULL; - + cmd = NULL; + cleanup(); } void TestMPXVideoViewWrapper::testHandleMedia() { init(); - + CMPXMedia* media = NULL; // @@ -735,38 +735,38 @@ // TRAP_IGNORE( RArray suppIds; - CleanupClosePushL( suppIds ); + CleanupClosePushL( suppIds ); suppIds.AppendL( KMPXMediaIdGeneral ); suppIds.AppendL( KMPXMediaIdVideo ); - + media = CMPXMedia::NewL( suppIds.Array() ); CleanupStack::PopAndDestroy( &suppIds ); - + media->SetTObjectValueL( TMPXAttribute( KMPXMediaVideoError ), KErrCancel ); ); - + TRAPD( err, mVideoViewWrapper->HandleMediaL( *media, KErrNone ) ); QVERIFY( err == KErrNone ); - + QCOMPARE( mVideoViewWrapper->iView->mCurrentError, KErrCancel ); QVERIFY( ! mVideoViewWrapper->iControlsController->mFileDetailsAdded ); QVERIFY( mVideoViewWrapper->iMediaRequestStatus == MediaNotRequested ); if ( media ) - { + { delete media; - media = NULL; + media = NULL; } - + // // working case - RN logo is not visible // TRAP_IGNORE( RArray suppIds; - CleanupClosePushL( suppIds ); + CleanupClosePushL( suppIds ); suppIds.AppendL( KMPXMediaIdGeneral ); suppIds.AppendL( KMPXMediaIdVideo ); - + media = CMPXMedia::NewL( suppIds.Array() ); CleanupStack::PopAndDestroy( &suppIds ); ); @@ -787,9 +787,9 @@ QVERIFY( mVideoViewWrapper->iMediaRequestStatus == MediaDelivered ); if ( media ) - { + { delete media; - media = NULL; + media = NULL; } // @@ -797,10 +797,10 @@ // TRAP_IGNORE( RArray suppIds; - CleanupClosePushL( suppIds ); + CleanupClosePushL( suppIds ); suppIds.AppendL( KMPXMediaIdGeneral ); suppIds.AppendL( KMPXMediaIdVideo ); - + media = CMPXMedia::NewL( suppIds.Array() ); CleanupStack::PopAndDestroy( &suppIds ); ); @@ -822,9 +822,9 @@ QVERIFY( mVideoViewWrapper->iMediaRequestStatus == MediaDelivered ); if ( media ) - { + { delete media; - media = NULL; + media = NULL; } cleanup(); diff -r 13331705e488 -r 229f037ce963 videoplayback/hbvideoplaybackview/tsrc/testprogressbar/src/testprogressbar.cpp --- a/videoplayback/hbvideoplaybackview/tsrc/testprogressbar/src/testprogressbar.cpp Fri Jun 11 09:44:20 2010 +0300 +++ b/videoplayback/hbvideoplaybackview/tsrc/testprogressbar/src/testprogressbar.cpp Thu Jun 24 09:49:13 2010 +0300 @@ -1,5 +1,5 @@ /** -* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2010 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" @@ -12,10 +12,10 @@ * Contributors: * * Description: tester for methods in TestMPXVideoPlaybackButtonBar -* +* */ -// Version : %version: 5 % +// Version : %version: 6 % #include @@ -50,9 +50,9 @@ pass[0] = argv[0]; pass[1] = "-o"; pass[2] = "c:\\data\\testprogressbar.txt"; - + int res = QTest::qExec(&tv, 3, pass); - + return res; } @@ -74,7 +74,7 @@ { MPX_ENTER_EXIT(_L("TestProgressBar::setup()")); - mController = new QMPXVideoPlaybackControlsController(); + mController = new QMPXVideoPlaybackControlsController(); mProgBar = new QMPXVideoPlaybackProgressBar( mController ); mProgBar->initialize(); @@ -114,7 +114,7 @@ // // If it is playing state // - mController->mState = EPbStatePlaying; + mController->mState = EPbStatePlaying; emit mProgBar->mProgressSlider->press(); @@ -126,8 +126,8 @@ // // If it is pause state // - mController->mState = EPbStatePaused; - mController->mCommand = EMPXPbvCmdStop; + mController->mState = EPbStatePaused; + mController->mCommand = EMPXPbvCmdStop; emit mProgBar->mProgressSlider->press(); @@ -155,7 +155,7 @@ mProgBar->mDuration = 120; mProgBar->mProgressSlider->mSliderValue = 130; mController->mTimerAction = EMPXTimerCancel; - mController->mCommand = EMPXPbvCmdStop; + mController->mCommand = EMPXPbvCmdStop; emit mProgBar->mProgressSlider->release(); QVERIFY( mController->mTimerAction == EMPXTimerReset ); @@ -167,21 +167,21 @@ // mProgBar->mProgressSlider->mSliderValue = -1; mController->mTimerAction = EMPXTimerCancel; - mController->mCommand = EMPXPbvCmdStop; - mController->mValue = 100; + mController->mCommand = EMPXPbvCmdStop; + mController->mValue = 100; emit mProgBar->mProgressSlider->release(); QVERIFY( mController->mTimerAction == EMPXTimerReset ); QVERIFY( ! mProgBar->mSliderDragging ); QVERIFY( mController->mCommand == EMPXPbvCmdSetPosition ); QVERIFY( mController->mValue == 0 ); - + // // 0 <= moved position < duration // mProgBar->mProgressSlider->mSliderValue = 60; mController->mTimerAction = EMPXTimerCancel; - mController->mCommand = EMPXPbvCmdStop; + mController->mCommand = EMPXPbvCmdStop; emit mProgBar->mProgressSlider->release(); QVERIFY( mController->mTimerAction == EMPXTimerReset ); @@ -299,11 +299,11 @@ // test for 1st block of cases mProgBar->updateState( EPbStatePlaying ); - QVERIFY( mProgBar->isEnabled() ); + QVERIFY( mProgBar->mProgressSlider->isEnabled() ); // test for 2nd block of cases mProgBar->updateState( EPbStateBuffering ); - QVERIFY( ! mProgBar->isEnabled() ); + QVERIFY( ! mProgBar->mProgressSlider->isEnabled() ); cleanup(); } @@ -399,7 +399,7 @@ setup(); - mProgBar->mDraggingPosition = 10; + mProgBar->mDraggingPosition = 10; mProgBar->mDuration = 30; mProgBar->mSetPosition = 0; diff -r 13331705e488 -r 229f037ce963 videoplayback/hbvideoplaybackview/tsrc/testvideodisplayhandler/src/testvideodisplayhandler.cpp --- a/videoplayback/hbvideoplaybackview/tsrc/testvideodisplayhandler/src/testvideodisplayhandler.cpp Fri Jun 11 09:44:20 2010 +0300 +++ b/videoplayback/hbvideoplaybackview/tsrc/testvideodisplayhandler/src/testvideodisplayhandler.cpp Thu Jun 24 09:49:13 2010 +0300 @@ -212,24 +212,44 @@ { setup(); + // + // get window size + // + RWindow *window = mBaseVideoView->getWindow(); + TRect displayRect = TRect( TPoint( window->Position() ), TSize( window->Size() ) ); + + // + // get window aspect ratio + // if device is in landscape mode, width > height + // if device is in portrait mode, width < height + // + TReal32 width = (TReal32) displayRect.Width(); + TReal32 height = (TReal32) displayRect.Height(); + TReal32 displayAspectRatio = (width > height)? (width / height) : (height / width); + + // + // aspect ratio zoom + // mFileDetails = new QMPXVideoPlaybackViewFileDetails(); mFileDetails->mVideoHeight = 280; mFileDetails->mVideoWidth = 600; - - RWindow *window = mBaseVideoView->getWindow(); - TRect displayRect = TRect( window->Position().iX, - window->Position().iY, - window->Position().iX + window->Size().iWidth, - window->Position().iY + window->Size().iHeight ); - - TReal displayAspectRatio = (TReal32)displayRect.Width() / (TReal32)displayRect.Height(); - int aspectRatio = mDispHdlr->SetDefaultAspectRatioL( mFileDetails, displayAspectRatio ); QVERIFY( aspectRatio == EMMFZoom ); - mDispHdlr->RemoveDisplayWindow(); + // + // aspect ratio stretch + // + mFileDetails->mVideoHeight = 144; + mFileDetails->mVideoWidth = 220; + + aspectRatio = mDispHdlr->SetDefaultAspectRatioL( mFileDetails, displayAspectRatio ); + + QVERIFY( aspectRatio == EMMFStretch ); + + mDispHdlr->RemoveDisplayWindow(); + cleanup(); } diff -r 13331705e488 -r 229f037ce963 videoplayback/hbvideoplaybackview/viewinc/mpxvideoviewwrapper.h --- a/videoplayback/hbvideoplaybackview/viewinc/mpxvideoviewwrapper.h Fri Jun 11 09:44:20 2010 +0300 +++ b/videoplayback/hbvideoplaybackview/viewinc/mpxvideoviewwrapper.h Thu Jun 24 09:49:13 2010 +0300 @@ -15,7 +15,7 @@ * */ -// Version : %version: da1mmcf#14 % +// Version : %version: da1mmcf#16 % @@ -64,14 +64,14 @@ virtual ~CMPXVideoViewWrapper(); private: - CMPXVideoViewWrapper( HbVideoBasePlaybackView* aView ); + CMPXVideoViewWrapper( HbVideoBasePlaybackView* aView ); void ConstructL(); public: virtual void HandleCommandL( TInt aCommand ); void RetrieveFileNameAndModeL( CMPXCommand* aCmd ); - + /* * From MMPXViewActivationObserver * Handle view activation. @@ -80,7 +80,7 @@ * @param aPreviousViewType Previous view type Uid. */ inline void HandleViewActivation( const TUid& /*aCurrentViewType*/, - const TUid& /*aPreviousViewType*/ ) {} + const TUid& /*aPreviousViewType*/ ) {} /** * From MMPXPlaybackObserver @@ -163,19 +163,19 @@ */ void SetPropertyL( TMPXPlaybackProperty aProperty, TInt aValue ); virtual void RetrievePdlInformationL(); - + TBool IsLive(); - + TBool IsPlaylist(); - - void IssueVideoAppForegroundCmdL(TBool aForeground); - - void RequestMediaL(); - + + void IssueVideoAppForegroundCmdL(TBool aForeground); + + void RequestMediaL(); + void CreateGeneralPlaybackCommandL( TMPXPlaybackCommand aCmd, TBool aDoSync = ETrue ); - + TBool IsAppInFrontL(); - + /* * Activates an active object to close the player * @since 5.0 @@ -203,14 +203,14 @@ * @param aPtr Pointer to callback class * @return KErrNone */ - static TInt ClosePlayerL( TAny* aPtr ); + static TInt ClosePlayer( TAny* aPtr ); /* * Called to stop and exit the player * @since 3.2 * @return void */ - void DoClosePlayerL(); + void DoClosePlayer(); void HandleVideoPlaybackMessage( CMPXMessage* aMessage ); @@ -248,7 +248,7 @@ void HandleGeneralPlaybackMessageL( CMPXMessage* aMessage ); - void SetAspectRatioL( TMPXVideoPlaybackCommand aCmd ); + void SetAspectRatioL( TMPXVideoPlaybackCommand aCmd ); void HandleVolumeCmdL( TMPXPlaybackCommand aCmd ); @@ -268,9 +268,13 @@ CMPXVideoPlaybackDisplayHandler* iDisplayHandler; CMPXVideoPlaybackUserInputHandler* iUserInputHandler; QMPXVideoPlaybackControlsController* iControlsController; - + TMPXMediaRequestStatus iMediaRequestStatus; TBool iPlaylistView; + int iPlayPosition; + + public: + friend class HbVideoBasePlaybackView; }; #endif // __MPXVIDEOVIEWWRAPPER_H__ diff -r 13331705e488 -r 229f037ce963 videoplayback/hbvideoplaybackview/viewsrc/hbvideobaseplaybackview.cpp --- a/videoplayback/hbvideoplaybackview/viewsrc/hbvideobaseplaybackview.cpp Fri Jun 11 09:44:20 2010 +0300 +++ b/videoplayback/hbvideoplaybackview/viewsrc/hbvideobaseplaybackview.cpp Thu Jun 24 09:49:13 2010 +0300 @@ -15,7 +15,7 @@ * */ -// Version : %version: da1mmcf#41 % +// Version : %version: da1mmcf#43 % @@ -40,11 +40,14 @@ #include #include +#include #include "mpxvideo_debug.h" #include "mpxvideoviewwrapper.h" #include "mpxvideoplaybackuids.hrh" #include "hbvideobaseplaybackview.h" +#include "videoactivitystate.h" +#include "mpxvideoplaybackviewfiledetails.h" #include "mpxcommonvideoplaybackview.hrh" @@ -58,6 +61,7 @@ : mVideoMpxWrapper( NULL ) , mTimerForClosingView( NULL ) , mActivated( false ) + , mStayPaused ( false ) { MPX_ENTER_EXIT(_L("HbVideoBasePlaybackView::HbVideoBasePlaybackView()")); } @@ -79,6 +83,23 @@ mTimerForClosingView->setSingleShot( true ); mTimerForClosingView->setInterval( 10 ); connect( mTimerForClosingView, SIGNAL( timeout() ), this, SIGNAL( activatePreviousView() ) ); + + // + // Read activity data ... + // If last playback was forced to terminate due to low memory (GOOM, etc.) + // then the clip needs to be restored to the last played position + // and the state needs to be paused, since forced termination can only occur for + // background apps - so if this happened Video Player must have been in background + // which implies paused state + // + int lastViewType = VideoActivityState::instance().getActivityData(KEY_VIEWPLUGIN_TYPE).toInt(); + if ( lastViewType == MpxHbVideoCommon::PlaybackView ) + { + QVariant data = VideoActivityState::instance().getActivityData(KEY_LAST_PLAY_POSITION_ID); + mLastPlayPosition = data.toInt(); + + mStayPaused = true; + } } // ------------------------------------------------------------------------------------------------- @@ -119,14 +140,14 @@ { MPX_ENTER_EXIT(_L("HbVideoBasePlaybackView::handleActivateView()")); - TRAP_IGNORE( mVideoMpxWrapper = CMPXVideoViewWrapper::NewL( this ) ); + MPX_TRAPD( err, mVideoMpxWrapper = CMPXVideoViewWrapper::NewL( this ) ); QCoreApplication::instance()->installEventFilter( this ); // // Request the needed Media from the Playback Plugin // - TRAP_IGNORE( mVideoMpxWrapper->RequestMediaL() ); + MPX_TRAP( err, mVideoMpxWrapper->RequestMediaL() ); menu()->close(); @@ -148,6 +169,8 @@ { MPX_ENTER_EXIT(_L("HbVideoBasePlaybackView::handleDeactivateView()")); + saveActivityData(); + mActivated = false; QCoreApplication::instance()->removeEventFilter( this ); @@ -170,6 +193,25 @@ } // ------------------------------------------------------------------------------------------------- +// HbVideoBasePlaybackView::saveActivityData() +// ------------------------------------------------------------------------------------------------- +// +void HbVideoBasePlaybackView::saveActivityData() +{ + MPX_DEBUG( _L("HbVideoBasePlaybackView::saveActivityData()") ); + + // save the activity data + QVariant data = QString( mVideoMpxWrapper->iFileDetails->mClipName ); + VideoActivityState::instance().setActivityData(data, KEY_LAST_PLAYED_CLIP); + + data = int( mVideoMpxWrapper->iPlayPosition ); + VideoActivityState::instance().setActivityData(data, KEY_LAST_PLAY_POSITION_ID); + + data = bool( mVideoMpxWrapper->iFileDetails->mPlaybackMode == EMPXVideoLocal ); + VideoActivityState::instance().setActivityData(data, KEY_LAST_LOCAL_PLAYBACK); +} + +// ------------------------------------------------------------------------------------------------- // HbVideoBasePlaybackView::handleClosePlaybackView() // ------------------------------------------------------------------------------------------------- // diff -r 13331705e488 -r 229f037ce963 videoplayback/hbvideoplaybackview/viewsrc/mpxvideoplaybackdisplayhandler.cpp --- a/videoplayback/hbvideoplaybackview/viewsrc/mpxvideoplaybackdisplayhandler.cpp Fri Jun 11 09:44:20 2010 +0300 +++ b/videoplayback/hbvideoplaybackview/viewsrc/mpxvideoplaybackdisplayhandler.cpp Thu Jun 24 09:49:13 2010 +0300 @@ -15,7 +15,7 @@ * */ -// Version : %version: 21 % +// Version : %version: 22 % #include #include @@ -275,18 +275,22 @@ // // if can't find out match aspect ratio in dat file, - // choose the scaling type through the rule - // videoAspectRatio - aDisplayAspectRatio > 0.1 ==> zoom - // videoAspectRatio - aDisplayAspectRatio < 0.1 ==> stretch - // videoAspectRatio = aDisplayAspectRatio ==> natural + // choose the scaling type through the rule + // aspectRatioDiff = videoAspectRatio - aDisplayAspectRatio + // aspectRatioDiff == 0 ==> natural + // aspectRatioDiff > 0.1 ==> zoom + // aspectRatioDiff < - 0.3 ==> natural + // aspectRatioDiff >= - 0.3 and <= 0.1 ==> stretch // + if ( i == cnt ) { if ( videoAspectRatio - aDisplayAspectRatio > 0.1 ) { scalingType = EMMFZoom; } - else if ( videoAspectRatio != aDisplayAspectRatio ) + else if ( ( videoAspectRatio != aDisplayAspectRatio ) && + ( videoAspectRatio - aDisplayAspectRatio > (- 0.3) ) ) { scalingType = EMMFStretch; } diff -r 13331705e488 -r 229f037ce963 videoplayback/hbvideoplaybackview/viewsrc/mpxvideoviewwrapper.cpp --- a/videoplayback/hbvideoplaybackview/viewsrc/mpxvideoviewwrapper.cpp Fri Jun 11 09:44:20 2010 +0300 +++ b/videoplayback/hbvideoplaybackview/viewsrc/mpxvideoviewwrapper.cpp Thu Jun 24 09:49:13 2010 +0300 @@ -15,7 +15,7 @@ * */ -// Version : %version: da1mmcf#33 % +// Version : %version: da1mmcf#37 % @@ -266,7 +266,7 @@ } case EMPXPbvCmdPlayPause: { - MPX_DEBUG(_L("CMPXVideoViewWrapper::HandleCommandL() EMPXPbvCmdPause")); + MPX_DEBUG(_L("CMPXVideoViewWrapper::HandleCommandL() EMPXPbvCmdPlayPause")); if ( iPlaybackState == EPbStatePlaying ) { @@ -351,7 +351,7 @@ if ( iPlaylistView && iFileDetails->mMultiItemPlaylist ) { - iPlaybackUtility->CommandL( EPbCmdNext ); + CreateGeneralPlaybackCommandL( EPbCmdNext ); } else { @@ -366,13 +366,11 @@ if ( iPlaylistView && iFileDetails->mMultiItemPlaylist ) { - // - // the command is being sent twice on purpose - // one EMPXPbvCmdPreviousListItem command only sets the position to 0 - // the second cmd actually goes to the previous item in the list + // + // Need to send sync message to go back to a previous clip + // regardless of current positoin // - iPlaybackUtility->CommandL( EPbCmdPrevious ); - iPlaybackUtility->CommandL( EPbCmdPrevious ); + CreateGeneralPlaybackCommandL( EPbCmdPrevious ); } else { @@ -1053,7 +1051,9 @@ { iControlsController->handleEvent( EMPXControlCmdSetPosition, aValue ); } - + + iPlayPosition = aValue; + break; } case EPbPropertyDuration: @@ -1105,6 +1105,8 @@ // void CMPXVideoViewWrapper::RetrieveFileNameAndModeL( CMPXCommand* aCmd ) { + MPX_ENTER_EXIT(_L("CMPXVideoViewWrapper::RetrieveFileNameAndModeL()")); + // // set attributes on the command // @@ -1128,29 +1130,29 @@ if ( ! iCloseAO->IsActive() ) { - iCloseAO->Start( TCallBack( CMPXVideoViewWrapper::ClosePlayerL, this ) ); + iCloseAO->Start( TCallBack( CMPXVideoViewWrapper::ClosePlayer, this ) ); } } // ------------------------------------------------------------------------------------------------- -// CMPXVideoViewWrapper::ClosePlayerL +// CMPXVideoViewWrapper::ClosePlayer // ------------------------------------------------------------------------------------------------- // -TInt CMPXVideoViewWrapper::ClosePlayerL( TAny* aPtr ) +TInt CMPXVideoViewWrapper::ClosePlayer( TAny* aPtr ) { - MPX_DEBUG(_L("CMPXVideoViewWrapper::ClosePlayerL()")); + MPX_DEBUG(_L("CMPXVideoViewWrapper::ClosePlayer()")); - static_cast(aPtr)->DoClosePlayerL(); + static_cast(aPtr)->DoClosePlayer(); return KErrNone; } // ------------------------------------------------------------------------------------------------- -// CMPXVideoViewWrapper::DoClosePlayerL +// CMPXVideoViewWrapper::DoClosePlayer // ------------------------------------------------------------------------------------------------- // -void CMPXVideoViewWrapper::DoClosePlayerL() +void CMPXVideoViewWrapper::DoClosePlayer() { - MPX_ENTER_EXIT(_L("CMPXVideoViewWrapper::DoClosePlayerL()")); + MPX_ENTER_EXIT(_L("CMPXVideoViewWrapper::DoClosePlayer()")); iView->doClosePlayer(); } @@ -1505,7 +1507,21 @@ } } - CreateGeneralPlaybackCommandL( EPbCmdPlay ); + // if coming back after a forced termination, the playback position must + // be restored and state be set to paused, as forced termination can only + // happen when app is on background, in which case Video Player is paused + // by default + if ( iView->mStayPaused ) + { + CreateGeneralPlaybackCommandL( EPbCmdPause ); + SetPropertyL( EPbPropertyPosition, iView->mLastPlayPosition ); + iView->mStayPaused = false; + } + else + { + CreateGeneralPlaybackCommandL( EPbCmdPlay ); + } + } } diff -r 13331705e488 -r 229f037ce963 videoplayback/inc/hbvideobaseplaybackview.h --- a/videoplayback/inc/hbvideobaseplaybackview.h Fri Jun 11 09:44:20 2010 +0300 +++ b/videoplayback/inc/hbvideobaseplaybackview.h Thu Jun 24 09:49:13 2010 +0300 @@ -15,7 +15,7 @@ * */ -// Version : %version: da1mmcf#17 % +// Version : %version: da1mmcf#18 % @@ -101,6 +101,10 @@ void gestureEvent( QGestureEvent* event ); + private: + + void saveActivityData(); + protected: // data CMPXVideoViewWrapper *mVideoMpxWrapper; @@ -108,6 +112,8 @@ bool mActivated; bool mSyncClose; + int mLastPlayPosition; + bool mStayPaused; public: friend class CMPXVideoViewWrapper; diff -r 13331705e488 -r 229f037ce963 videoplayback/videohelix/inc/mpxvideoplaybackstate.h --- a/videoplayback/videohelix/inc/mpxvideoplaybackstate.h Fri Jun 11 09:44:20 2010 +0300 +++ b/videoplayback/videohelix/inc/mpxvideoplaybackstate.h Thu Jun 24 09:49:13 2010 +0300 @@ -16,7 +16,7 @@ */ -// Version : %version: 20 % +// Version : %version: 21 % #ifndef _CMPXVIDEOPLAYBACKSTATE_H_ @@ -225,6 +225,7 @@ virtual void HandleStop(); virtual void HandleForeground(); virtual void HandleBackground(); + virtual void HandlePause(); // general method virtual void HandleSetPositionL(TInt aPosition); diff -r 13331705e488 -r 229f037ce963 videoplayback/videohelix/src/mpxvideoplaybackstate.cpp --- a/videoplayback/videohelix/src/mpxvideoplaybackstate.cpp Fri Jun 11 09:44:20 2010 +0300 +++ b/videoplayback/videohelix/src/mpxvideoplaybackstate.cpp Thu Jun 24 09:49:13 2010 +0300 @@ -16,7 +16,7 @@ */ -// Version : %version: 45 % +// Version : %version: 47 % // @@ -1275,6 +1275,16 @@ CommandHandleForeground(); } +// ------------------------------------------------------------------------------------------------ +// CMPXInitialisedState::HandlePause() +// ------------------------------------------------------------------------------------------------ +void CMPXInitialisedState::HandlePause() +{ + MPX_ENTER_EXIT(_L("CMPXInitialisedState::HandlePause()")); + + iVideoPlaybackCtlr->iPlaybackMode->HandlePause(); +} + // ************************************************************************************************* // // CMPXPlayingState @@ -1638,6 +1648,14 @@ { IssuePlayCommand( EMPXVideoPlaying, MMPXPlaybackPluginObserver::EPPlaying, EFalse ); } + else + { + // As the custom play command could not resume the playback. Send a pause event to + // the view though the MPX FW to get the view state in sync playback plugin. + iVideoPlaybackCtlr->iMPXPluginObs->HandlePluginEvent( MMPXPlaybackPluginObserver::EPPaused, + 0, + KErrNone ); + } } // ------------------------------------------------------------------------------------------------- diff -r 13331705e488 -r 229f037ce963 videoplayback/videohelix/tsrc/ut_videohelixtest/inc/videohelixtest.h --- a/videoplayback/videohelix/tsrc/ut_videohelixtest/inc/videohelixtest.h Fri Jun 11 09:44:20 2010 +0300 +++ b/videoplayback/videohelix/tsrc/ut_videohelixtest/inc/videohelixtest.h Thu Jun 24 09:49:13 2010 +0300 @@ -15,7 +15,7 @@ * */ -// Version : %version: e003sa33#15 % +// Version : %version: 16 % #ifndef __VHPPTESTCASE_H__ @@ -35,10 +35,10 @@ #include #include -#include -#include -#include -#include +#include +#include +#include +#include #include #include "timeoutController.h" diff -r 13331705e488 -r 229f037ce963 videoplayerapp/videoplayerengine/src/videoplayerengine.cpp --- a/videoplayerapp/videoplayerengine/src/videoplayerengine.cpp Fri Jun 11 09:44:20 2010 +0300 +++ b/videoplayerapp/videoplayerengine/src/videoplayerengine.cpp Thu Jun 24 09:49:13 2010 +0300 @@ -15,7 +15,7 @@ * */ -// Version : %version: 33 % +// Version : %version: da1mmcf#35 % #include @@ -150,13 +150,20 @@ // check latest plugin type from activity manager data and create + activate it // CollectionView (default) and playbackview are the ones that are accepted MpxHbVideoCommon::MpxHbVideoViewType viewType = MpxHbVideoCommon::CollectionView; - int typeGotten = VideoActivityState::instance().getActivityData(VideoActivityData::KEY_VIEWPLUGIN_TYPE).toInt(); - if(typeGotten == MpxHbVideoCommon::CollectionView || typeGotten == MpxHbVideoCommon::PlaybackView) + int typeGotten = VideoActivityState::instance().getActivityData(KEY_VIEWPLUGIN_TYPE).toInt(); + + if ( typeGotten == MpxHbVideoCommon::PlaybackView ) { + createPlaybackView(); viewType = MpxHbVideoCommon::MpxHbVideoViewType(typeGotten); + QVariant data = VideoActivityState::instance().getActivityData(KEY_LAST_PLAYED_CLIP); + playMedia( data.toString() ); } - loadPluginAndCreateView( viewType ); - activateView( viewType ); + else + { + loadPluginAndCreateView( viewType ); + activateView( viewType ); + } } } @@ -462,22 +469,31 @@ HbActivityManager *actManager = qobject_cast(qApp)->activityManager(); // + // deactivate is the final point for current plugin to save it's activity data into + // VideoActivityState before they are saved to to activity manager + // + mCurrentViewPlugin->deactivateView(); + + // // get and save recent view type: either playback or collection view plugins are currently used. // activity will not be saved from the details plugin // int viewType = MpxHbVideoCommon::CollectionView; if(mCurrentViewPlugin == mPlaybackViewPlugin) { - viewType = MpxHbVideoCommon::PlaybackView; + // for playback view, the state preservation and restoration should only be done + // for loacl clips (non-streaming) - so set KEY_VIEWPLUGIN_TYPE to PlaybackView only + // for local clips. Otherwise the default value CollectionView should be set. + // + QVariant playdata = VideoActivityState::instance().getActivityData(KEY_LAST_LOCAL_PLAYBACK); + if ( playdata.toBool() ) + { + viewType = MpxHbVideoCommon::PlaybackView; + } } - data = viewType; - localActivity.setActivityData(data, VideoActivityData::KEY_VIEWPLUGIN_TYPE); - // - // deactivate is the final point for current plugin to save it's activity data into - // VideoActivityState before they are saved to to activity manager - // - mCurrentViewPlugin->deactivateView(); + data = viewType; + localActivity.setActivityData(data, KEY_VIEWPLUGIN_TYPE); // save data to activity manager actManager->addActivity(ACTIVITY_VIDEOPLAYER_MAINVIEW, diff -r 13331705e488 -r 229f037ce963 videoplayerapp/videoplayerengine/videoplayerengine.pro --- a/videoplayerapp/videoplayerengine/videoplayerengine.pro Fri Jun 11 09:44:20 2010 +0300 +++ b/videoplayerapp/videoplayerengine/videoplayerengine.pro Thu Jun 24 09:49:13 2010 +0300 @@ -14,7 +14,7 @@ # Description: Project file for building Videoplayer components # # -# Version : %version: 26 % +# Version : %version: 27 % TEMPLATE = lib @@ -31,6 +31,13 @@ INCLUDEPATH += $$MW_LAYER_SYSTEMINCLUDE \ $$APP_LAYER_SYSTEMINCLUDE SYSTEMINCLUDE BLD_INF_RULES.prj_exports += "rom/videoplayerengine.iby CORE_APP_LAYER_IBY_EXPORT_PATH(videoplayerengine.iby)" + defBlock = \ + "$${LITERAL_HASH}if defined(EABI)" \ + "DEFFILE ../eabi/videoplayerengine.def" \ + "$${LITERAL_HASH}else" \ + "DEFFILE ../bwins/videoplayerengine.def" \ + "$${LITERAL_HASH}endif" + MMP_RULES += defBlock } INCLUDEPATH += ../../inc \ @@ -48,6 +55,7 @@ -lxqservice.dll \ -lxqserviceutil.dll \ -lflogger.dll \ + -lefsrv DEPENDPATH += ../../inc ../inc inc VPATH += src