--- a/videocollection/videocollectionview/src/videocollectionuiloader.cpp Thu Apr 01 23:22:15 2010 +0300
+++ b/videocollection/videocollectionview/src/videocollectionuiloader.cpp Thu Apr 01 23:32:44 2010 +0300
@@ -51,19 +51,54 @@
//
VideoCollectionUiLoader::~VideoCollectionUiLoader()
{
- // selection dialog needs to be deleted manually
+ if (mTimerId)
+ {
+ killTimer(mTimerId);
+ mTimerId = 0;
+ }
+
+ // selection dialog needs to be deleted manually
+ QGraphicsWidget *widget =
+ HbDocumentLoader::findWidget(DOCML_NAME_DIALOG);
+
VideoListSelectionDialog *dialog =
- findWidget<VideoListSelectionDialog>(
- DOCML_NAME_DIALOG);
+ qobject_cast<VideoListSelectionDialog*>(widget);
delete dialog;
// clear queue and hash tables
mQueue.clear();
+ mDocmls.clear();
mWidgets.clear();
mObjects.clear();
}
// ---------------------------------------------------------------------------
+// load
+// ---------------------------------------------------------------------------
+//
+QObjectList VideoCollectionUiLoader::load( const QString &fileName, bool *ok )
+{
+ QObjectList list;
+ if (!mDocmls.contains(fileName))
+ {
+ mDocmls.append(fileName);
+ list = HbDocumentLoader::load(fileName, ok);
+ //TODO: save returned and delete on destructor
+ }
+ return list;
+}
+
+// ---------------------------------------------------------------------------
+// load
+// ---------------------------------------------------------------------------
+//
+QObjectList VideoCollectionUiLoader::load( const QString &fileName, const QString §ion , bool *ok )
+{
+ return HbDocumentLoader::load(fileName, section, ok);
+ //TODO: save returned and delete on destructor
+}
+
+// ---------------------------------------------------------------------------
// startLoading
// ---------------------------------------------------------------------------
//
@@ -79,6 +114,7 @@
true, // is widget
receiver,
DOCML_VIDEOCOLLECTIONVIEW_FILE,
+ 0,
widgetSlot);
addToQueue(params);
}
@@ -89,6 +125,7 @@
true, // is widget
receiver,
DOCML_VIDEOCOLLECTIONVIEW_FILE,
+ 0,
widgetSlot);
addToQueue(params);
}
@@ -99,6 +136,7 @@
true, // is widget
receiver,
DOCML_VIDEOCOLLECTIONVIEW_FILE,
+ 0,
widgetSlot);
addToQueue(params);
}
@@ -109,6 +147,7 @@
false, // is object
receiver,
DOCML_VIDEOCOLLECTIONVIEW_FILE,
+ 0,
objectSlot);
addToQueue(params);
}
@@ -119,6 +158,7 @@
false, // is object
receiver,
DOCML_VIDEOCOLLECTIONVIEW_FILE,
+ 0,
objectSlot);
addToQueue(params);
}
@@ -129,6 +169,7 @@
false, // is object
receiver,
DOCML_VIDEOCOLLECTIONVIEW_FILE,
+ 0,
objectSlot);
addToQueue(params);
}
@@ -139,6 +180,7 @@
true, // is widget
receiver,
DOCML_VIDEOCOLLECTIONVIEW_FILE,
+ DOCML_VIDEOCOLLECTIONVIEW_SECTION_HINT,
widgetSlot);
addToQueue(params);
}
@@ -149,6 +191,7 @@
true, // is widget
receiver,
DOCML_VIDEOCOLLECTIONVIEW_FILE,
+ DOCML_VIDEOCOLLECTIONVIEW_SECTION_HINT,
widgetSlot);
addToQueue(params);
}
@@ -159,6 +202,7 @@
true, // is widget
receiver,
DOCML_VIDEOCOLLECTIONVIEW_FILE,
+ DOCML_VIDEOCOLLECTIONVIEW_SECTION_HINT,
widgetSlot);
addToQueue(params);
}
@@ -169,6 +213,7 @@
false, // is object
receiver,
DOCML_VIDEOCOLLECTIONVIEW_FILE,
+ 0,
objectSlot);
addToQueue(params);
}
@@ -179,6 +224,7 @@
false, // is object
receiver,
DOCML_VIDEOCOLLECTIONVIEW_FILE,
+ 0,
objectSlot);
addToQueue(params);
}
@@ -189,16 +235,7 @@
false, // is object
receiver,
DOCML_VIDEOCOLLECTIONVIEW_FILE,
- objectSlot);
- addToQueue(params);
- }
- if (uiSections.contains(DOCML_NAME_SORT_BY_TOTAL_LENGTH))
- {
- VideoCollectionUiLoader::Params params(
- DOCML_NAME_SORT_BY_TOTAL_LENGTH,
- false, // is object
- receiver,
- DOCML_VIDEOCOLLECTIONVIEW_FILE,
+ 0,
objectSlot);
addToQueue(params);
}
@@ -209,6 +246,7 @@
false, // is object
receiver,
DOCML_VIDEOCOLLECTIONVIEW_FILE,
+ 0,
objectSlot);
addToQueue(params);
}
@@ -219,6 +257,7 @@
true, // is widget
receiver,
DOCML_VIDEOCOLLECTIONVIEW_FILE,
+ 0,
widgetSlot);
addToQueue(params);
}
@@ -229,6 +268,7 @@
true, // is widget
receiver,
DOCML_VIDEOCOLLECTIONVIEW_FILE,
+ DOCML_VIDEOCOLLECTIONVIEW_SECTION_LIST,
widgetSlot);
addToQueue(params);
}
@@ -239,6 +279,7 @@
true, // is widget
receiver,
DOCML_VIDEOCOLLECTIONVIEW_FILE,
+ DOCML_VIDEOCOLLECTIONVIEW_SECTION_LIST,
widgetSlot);
addToQueue(params);
}
@@ -248,6 +289,7 @@
true, // is widget
receiver,
DOCML_VIDEOSELECTIONDIALOG_FILE,
+ 0,
widgetSlot);
addToQueue(params);
}
@@ -280,6 +322,38 @@
else
{
widget = HbDocumentLoader::findWidget(name);
+ if (!widget)
+ {
+ // check if the widget is being loaded and remove it from queue
+ int count = mQueue.count();
+ for (int i = 0; i < count; i++)
+ {
+ const Params& params = mQueue.at(i);
+ if (params.mName.compare(name) == 0)
+ {
+ bool ok(true);
+
+ if(!mDocmls.contains(params.mDocml))
+ {
+ load(params.mDocml, &ok);
+
+ if (ok)
+ {
+ mDocmls.append(params.mDocml);
+ }
+ }
+ if ((params.mSection != 0) && ok)
+ {
+ load(params.mDocml, params.mSection, &ok);
+ }
+ if(ok)
+ {
+ widget = HbDocumentLoader::findWidget(params.mName);
+ }
+ break;
+ }
+ }
+ }
if (widget)
{
// initialize widget
@@ -305,6 +379,7 @@
params.mReceiver, params.mMember);
}
mQueue.removeAt(i);
+ runNext(); //removes timer if queue is empty
break;
}
}
@@ -332,6 +407,38 @@
else
{
object = HbDocumentLoader::findObject(name);
+ if (!object)
+ {
+ // check if the object is being loaded and remove it from queue
+ int count = mQueue.count();
+ for (int i = 0; i < count; i++)
+ {
+ const Params& params = mQueue.at(i);
+ if (params.mName.compare(name) == 0)
+ {
+ bool ok(true);
+
+ if(!mDocmls.contains(params.mDocml))
+ {
+ load(params.mDocml, &ok);
+
+ if (ok)
+ {
+ mDocmls.append(params.mDocml);
+ }
+ }
+ if ((params.mSection != 0) && ok)
+ {
+ load(params.mDocml, params.mSection, &ok);
+ }
+ if(ok)
+ {
+ object = HbDocumentLoader::findObject(params.mName);
+ }
+ break;
+ }
+ }
+ }
if (object)
{
// initialize widget
@@ -357,6 +464,7 @@
params.mReceiver, params.mMember);
}
mQueue.removeAt(i);
+ runNext(); //removes timer if queue is empty
break;
}
}
@@ -453,6 +561,14 @@
videoServices = VideoServices::instance();
}
videoList->initialize(*model, videoServices);
+
+ HbEffect::add(videoList,
+ EFFECT_SLIDE_IN_TO_LEFT_FILENAME,
+ EFFECT_SLIDE_IN_TO_LEFT);
+
+ HbEffect::add(videoList,
+ EFFECT_SLIDE_OUT_TO_LEFT_FILENAME,
+ EFFECT_SLIDE_OUT_TO_LEFT);
}
}
}
@@ -480,7 +596,6 @@
findObject<HbAction>(DOCML_NAME_SORT_BY_DATE);
findObject<HbAction>(DOCML_NAME_SORT_BY_NAME);
findObject<HbAction>(DOCML_NAME_SORT_BY_NUMBER_OF_ITEMS);
- findObject<HbAction>(DOCML_NAME_SORT_BY_TOTAL_LENGTH);
findObject<HbAction>(DOCML_NAME_SORT_BY_SIZE);
// add sub menu actions
@@ -490,7 +605,6 @@
mSortGroup->addAction(mMenuActions[EActionSortByDate]);
mSortGroup->addAction(mMenuActions[EActionSortByName]);
mSortGroup->addAction(mMenuActions[EACtionSortByItemCount]);
- mSortGroup->addAction(mMenuActions[EActionSortByLength]);
mSortGroup->addAction(mMenuActions[EActionSortBySize]);
// set all sub menu items checkable
@@ -513,9 +627,14 @@
{
// ensure that all the actions related to options menu are loaded
// when options menu is loaded
- findObject<HbAction>(DOCML_NAME_ADD_TO_COLLECTION);
- findObject<HbAction>(DOCML_NAME_CREATE_COLLECTION);
- findObject<HbAction>(DOCML_NAME_DELETE_MULTIPLE);
+ // when applicaton has been launched as a service,
+ // do not load components which are not required
+ if(!mIsService)
+ {
+ findObject<HbAction>(DOCML_NAME_ADD_TO_COLLECTION);
+ findObject<HbAction>(DOCML_NAME_CREATE_COLLECTION);
+ findObject<HbAction>(DOCML_NAME_DELETE_MULTIPLE);
+ }
}
}
}
@@ -577,14 +696,6 @@
mMenuActions[EACtionSortByItemCount] = action;
}
}
- else if (name.compare(DOCML_NAME_SORT_BY_TOTAL_LENGTH) == 0)
- {
- HbAction *action = qobject_cast<HbAction*>(object);
- if (action)
- {
- mMenuActions[EActionSortByLength] = action;
- }
- }
else if (name.compare(DOCML_NAME_SORT_BY_SIZE) == 0)
{
HbAction *action = qobject_cast<HbAction*>(object);
@@ -623,11 +734,23 @@
if (!widget)
{
// widget not found, try to load the docml
- load(params.mDocml, &ok);
- if (ok)
- {
- widget = HbDocumentLoader::findWidget(params.mName);
- }
+ if(!mDocmls.contains(params.mDocml))
+ {
+ load(params.mDocml, &ok);
+
+ if (ok)
+ {
+ mDocmls.append(params.mDocml);
+ }
+ }
+ if ((params.mSection != 0) && ok)
+ {
+ load(params.mDocml, params.mSection, &ok);
+ }
+ if(ok)
+ {
+ widget = HbDocumentLoader::findWidget(params.mName);
+ }
}
if (widget)
{
@@ -662,11 +785,23 @@
if (!object)
{
// widget not found, try to load the docml
- load(params.mDocml, &ok);
- if (ok)
- {
- object = HbDocumentLoader::findObject(params.mName);
- }
+ if(!mDocmls.contains(params.mDocml))
+ {
+ load(params.mDocml, &ok);
+
+ if (ok)
+ {
+ mDocmls.append(params.mDocml);
+ }
+ }
+ if ((params.mSection != 0) && ok)
+ {
+ load(params.mDocml, params.mSection, &ok);
+ }
+ if(ok)
+ {
+ object = HbDocumentLoader::findObject(params.mName);
+ }
}
if (object)
{