videocollection/videocollectionview/src/videocollectionuiloader.cpp
changeset 35 3738fe97f027
parent 34 bbb98528c666
child 36 8aed59de29f9
equal deleted inserted replaced
34:bbb98528c666 35:3738fe97f027
    49 // VideoCollectionUiLoader
    49 // VideoCollectionUiLoader
    50 // ---------------------------------------------------------------------------
    50 // ---------------------------------------------------------------------------
    51 //
    51 //
    52 VideoCollectionUiLoader::~VideoCollectionUiLoader()
    52 VideoCollectionUiLoader::~VideoCollectionUiLoader()
    53 {
    53 {
    54     // selection dialog needs to be deleted manually
    54     if (mTimerId)
       
    55     {
       
    56         killTimer(mTimerId);
       
    57         mTimerId = 0;
       
    58     }
       
    59 
       
    60 	// selection dialog needs to be deleted manually
       
    61     QGraphicsWidget *widget =
       
    62         HbDocumentLoader::findWidget(DOCML_NAME_DIALOG);
       
    63 
    55     VideoListSelectionDialog *dialog =
    64     VideoListSelectionDialog *dialog =
    56         findWidget<VideoListSelectionDialog>(
    65         qobject_cast<VideoListSelectionDialog*>(widget);
    57             DOCML_NAME_DIALOG);
       
    58     delete dialog;
    66     delete dialog;
    59     
    67     
    60     // clear queue and hash tables
    68     // clear queue and hash tables
    61     mQueue.clear();
    69     mQueue.clear();
       
    70     mDocmls.clear();
    62     mWidgets.clear();
    71     mWidgets.clear();
    63     mObjects.clear();
    72     mObjects.clear();
       
    73 }
       
    74 
       
    75 // ---------------------------------------------------------------------------
       
    76 // load
       
    77 // ---------------------------------------------------------------------------
       
    78 //
       
    79 QObjectList VideoCollectionUiLoader::load( const QString &fileName, bool *ok )
       
    80 {
       
    81 	QObjectList list;
       
    82 	if (!mDocmls.contains(fileName))
       
    83 	{
       
    84 		mDocmls.append(fileName);
       
    85 		list = HbDocumentLoader::load(fileName, ok);
       
    86 		//TODO: save returned and delete on destructor
       
    87 	}
       
    88 	return list;
       
    89 }
       
    90 
       
    91 // ---------------------------------------------------------------------------
       
    92 // load
       
    93 // ---------------------------------------------------------------------------
       
    94 //
       
    95 QObjectList VideoCollectionUiLoader::load( const QString &fileName, const QString &section , bool *ok )
       
    96 {
       
    97 	return HbDocumentLoader::load(fileName, section, ok);
       
    98 	//TODO: save returned and delete on destructor
    64 }
    99 }
    65 
   100 
    66 // ---------------------------------------------------------------------------
   101 // ---------------------------------------------------------------------------
    67 // startLoading
   102 // startLoading
    68 // ---------------------------------------------------------------------------
   103 // ---------------------------------------------------------------------------
    77         VideoCollectionUiLoader::Params params(
   112         VideoCollectionUiLoader::Params params(
    78             DOCML_NAME_VC_HEADINGBANNER,
   113             DOCML_NAME_VC_HEADINGBANNER,
    79             true, // is widget
   114             true, // is widget
    80             receiver,
   115             receiver,
    81             DOCML_VIDEOCOLLECTIONVIEW_FILE,
   116             DOCML_VIDEOCOLLECTIONVIEW_FILE,
       
   117             0,
    82             widgetSlot);
   118             widgetSlot);
    83         addToQueue(params);
   119         addToQueue(params);
    84     }
   120     }
    85     if (uiSections.contains(DOCML_NAME_VC_VIDEOLISTWIDGET))
   121     if (uiSections.contains(DOCML_NAME_VC_VIDEOLISTWIDGET))
    86     {
   122     {
    87         VideoCollectionUiLoader::Params params(
   123         VideoCollectionUiLoader::Params params(
    88             DOCML_NAME_VC_VIDEOLISTWIDGET,
   124             DOCML_NAME_VC_VIDEOLISTWIDGET,
    89             true, // is widget
   125             true, // is widget
    90             receiver,
   126             receiver,
    91             DOCML_VIDEOCOLLECTIONVIEW_FILE,
   127             DOCML_VIDEOCOLLECTIONVIEW_FILE,
       
   128             0,
    92             widgetSlot);
   129             widgetSlot);
    93         addToQueue(params);
   130         addToQueue(params);
    94     }
   131     }
    95     if (uiSections.contains(DOCML_NAME_OPTIONS_MENU))
   132     if (uiSections.contains(DOCML_NAME_OPTIONS_MENU))
    96     {
   133     {
    97         VideoCollectionUiLoader::Params params(
   134         VideoCollectionUiLoader::Params params(
    98             DOCML_NAME_OPTIONS_MENU,
   135             DOCML_NAME_OPTIONS_MENU,
    99             true, // is widget
   136             true, // is widget
   100             receiver,
   137             receiver,
   101             DOCML_VIDEOCOLLECTIONVIEW_FILE,
   138             DOCML_VIDEOCOLLECTIONVIEW_FILE,
       
   139             0,
   102             widgetSlot);
   140             widgetSlot);
   103         addToQueue(params);
   141         addToQueue(params);
   104     }
   142     }
   105     if (uiSections.contains(DOCML_NAME_ADD_TO_COLLECTION))
   143     if (uiSections.contains(DOCML_NAME_ADD_TO_COLLECTION))
   106     {
   144     {
   107         VideoCollectionUiLoader::Params params(
   145         VideoCollectionUiLoader::Params params(
   108             DOCML_NAME_ADD_TO_COLLECTION,
   146             DOCML_NAME_ADD_TO_COLLECTION,
   109             false, // is object
   147             false, // is object
   110             receiver,
   148             receiver,
   111             DOCML_VIDEOCOLLECTIONVIEW_FILE,
   149             DOCML_VIDEOCOLLECTIONVIEW_FILE,
       
   150             0,
   112             objectSlot);
   151             objectSlot);
   113         addToQueue(params);
   152         addToQueue(params);
   114     }
   153     }
   115     if (uiSections.contains(DOCML_NAME_CREATE_COLLECTION))
   154     if (uiSections.contains(DOCML_NAME_CREATE_COLLECTION))
   116     {
   155     {
   117         VideoCollectionUiLoader::Params params(
   156         VideoCollectionUiLoader::Params params(
   118             DOCML_NAME_CREATE_COLLECTION,
   157             DOCML_NAME_CREATE_COLLECTION,
   119             false, // is object
   158             false, // is object
   120             receiver,
   159             receiver,
   121             DOCML_VIDEOCOLLECTIONVIEW_FILE,
   160             DOCML_VIDEOCOLLECTIONVIEW_FILE,
       
   161             0,
   122             objectSlot);
   162             objectSlot);
   123         addToQueue(params);
   163         addToQueue(params);
   124     }
   164     }
   125     if (uiSections.contains(DOCML_NAME_DELETE_MULTIPLE))
   165     if (uiSections.contains(DOCML_NAME_DELETE_MULTIPLE))
   126     {
   166     {
   127         VideoCollectionUiLoader::Params params(
   167         VideoCollectionUiLoader::Params params(
   128             DOCML_NAME_DELETE_MULTIPLE,
   168             DOCML_NAME_DELETE_MULTIPLE,
   129             false, // is object
   169             false, // is object
   130             receiver,
   170             receiver,
   131             DOCML_VIDEOCOLLECTIONVIEW_FILE,
   171             DOCML_VIDEOCOLLECTIONVIEW_FILE,
       
   172             0,
   132             objectSlot);
   173             objectSlot);
   133         addToQueue(params);
   174         addToQueue(params);
   134     }
   175     }
   135     if (uiSections.contains(DOCML_NAME_VC_VIDEOHINTWIDGET))
   176     if (uiSections.contains(DOCML_NAME_VC_VIDEOHINTWIDGET))
   136     {
   177     {
   137         VideoCollectionUiLoader::Params params(
   178         VideoCollectionUiLoader::Params params(
   138             DOCML_NAME_VC_VIDEOHINTWIDGET,
   179             DOCML_NAME_VC_VIDEOHINTWIDGET,
   139             true, // is widget
   180             true, // is widget
   140             receiver,
   181             receiver,
   141             DOCML_VIDEOCOLLECTIONVIEW_FILE,
   182             DOCML_VIDEOCOLLECTIONVIEW_FILE,
       
   183             DOCML_VIDEOCOLLECTIONVIEW_SECTION_HINT,
   142             widgetSlot);
   184             widgetSlot);
   143         addToQueue(params);
   185         addToQueue(params);
   144     }
   186     }
   145     if (uiSections.contains(DOCML_NAME_HINT_BUTTON))
   187     if (uiSections.contains(DOCML_NAME_HINT_BUTTON))
   146     {
   188     {
   147         VideoCollectionUiLoader::Params params(
   189         VideoCollectionUiLoader::Params params(
   148             DOCML_NAME_HINT_BUTTON,
   190             DOCML_NAME_HINT_BUTTON,
   149             true, // is widget
   191             true, // is widget
   150             receiver,
   192             receiver,
   151             DOCML_VIDEOCOLLECTIONVIEW_FILE,
   193             DOCML_VIDEOCOLLECTIONVIEW_FILE,
       
   194             DOCML_VIDEOCOLLECTIONVIEW_SECTION_HINT,
   152             widgetSlot);
   195             widgetSlot);
   153         addToQueue(params);
   196         addToQueue(params);
   154     }
   197     }
   155     if (uiSections.contains(DOCML_NAME_NO_VIDEOS_LABEL))
   198     if (uiSections.contains(DOCML_NAME_NO_VIDEOS_LABEL))
   156     {
   199     {
   157         VideoCollectionUiLoader::Params params(
   200         VideoCollectionUiLoader::Params params(
   158             DOCML_NAME_NO_VIDEOS_LABEL,
   201             DOCML_NAME_NO_VIDEOS_LABEL,
   159             true, // is widget
   202             true, // is widget
   160             receiver,
   203             receiver,
   161             DOCML_VIDEOCOLLECTIONVIEW_FILE,
   204             DOCML_VIDEOCOLLECTIONVIEW_FILE,
       
   205             DOCML_VIDEOCOLLECTIONVIEW_SECTION_HINT,
   162             widgetSlot);
   206             widgetSlot);
   163         addToQueue(params);
   207         addToQueue(params);
   164     }
   208     }
   165     if (uiSections.contains(DOCML_NAME_SORT_BY_DATE))
   209     if (uiSections.contains(DOCML_NAME_SORT_BY_DATE))
   166     {
   210     {
   167         VideoCollectionUiLoader::Params params(
   211         VideoCollectionUiLoader::Params params(
   168             DOCML_NAME_SORT_BY_DATE,
   212             DOCML_NAME_SORT_BY_DATE,
   169             false, // is object
   213             false, // is object
   170             receiver,
   214             receiver,
   171             DOCML_VIDEOCOLLECTIONVIEW_FILE,
   215             DOCML_VIDEOCOLLECTIONVIEW_FILE,
       
   216             0,
   172             objectSlot);
   217             objectSlot);
   173         addToQueue(params);
   218         addToQueue(params);
   174     }
   219     }
   175     if (uiSections.contains(DOCML_NAME_SORT_BY_NAME))
   220     if (uiSections.contains(DOCML_NAME_SORT_BY_NAME))
   176     {
   221     {
   177         VideoCollectionUiLoader::Params params(
   222         VideoCollectionUiLoader::Params params(
   178             DOCML_NAME_SORT_BY_NAME,
   223             DOCML_NAME_SORT_BY_NAME,
   179             false, // is object
   224             false, // is object
   180             receiver,
   225             receiver,
   181             DOCML_VIDEOCOLLECTIONVIEW_FILE,
   226             DOCML_VIDEOCOLLECTIONVIEW_FILE,
       
   227 			0,
   182             objectSlot);
   228             objectSlot);
   183         addToQueue(params);
   229         addToQueue(params);
   184     }
   230     }
   185     if (uiSections.contains(DOCML_NAME_SORT_BY_NUMBER_OF_ITEMS))
   231     if (uiSections.contains(DOCML_NAME_SORT_BY_NUMBER_OF_ITEMS))
   186     {
   232     {
   187         VideoCollectionUiLoader::Params params(
   233         VideoCollectionUiLoader::Params params(
   188             DOCML_NAME_SORT_BY_NUMBER_OF_ITEMS,
   234             DOCML_NAME_SORT_BY_NUMBER_OF_ITEMS,
   189             false, // is object
   235             false, // is object
   190             receiver,
   236             receiver,
   191             DOCML_VIDEOCOLLECTIONVIEW_FILE,
   237             DOCML_VIDEOCOLLECTIONVIEW_FILE,
   192             objectSlot);
   238 			0,
   193         addToQueue(params);
       
   194     }
       
   195     if (uiSections.contains(DOCML_NAME_SORT_BY_TOTAL_LENGTH))
       
   196     {
       
   197         VideoCollectionUiLoader::Params params(
       
   198             DOCML_NAME_SORT_BY_TOTAL_LENGTH,
       
   199             false, // is object
       
   200             receiver,
       
   201             DOCML_VIDEOCOLLECTIONVIEW_FILE,
       
   202             objectSlot);
   239             objectSlot);
   203         addToQueue(params);
   240         addToQueue(params);
   204     }
   241     }
   205     if (uiSections.contains(DOCML_NAME_SORT_BY_SIZE))
   242     if (uiSections.contains(DOCML_NAME_SORT_BY_SIZE))
   206     {
   243     {
   207         VideoCollectionUiLoader::Params params(
   244         VideoCollectionUiLoader::Params params(
   208             DOCML_NAME_SORT_BY_SIZE,
   245             DOCML_NAME_SORT_BY_SIZE,
   209             false, // is object
   246             false, // is object
   210             receiver,
   247             receiver,
   211             DOCML_VIDEOCOLLECTIONVIEW_FILE,
   248             DOCML_VIDEOCOLLECTIONVIEW_FILE,
       
   249             0,
   212             objectSlot);
   250             objectSlot);
   213         addToQueue(params);
   251         addToQueue(params);
   214     }
   252     }
   215     if (uiSections.contains(DOCML_NAME_SORT_MENU))
   253     if (uiSections.contains(DOCML_NAME_SORT_MENU))
   216     {
   254     {
   217         VideoCollectionUiLoader::Params params(
   255         VideoCollectionUiLoader::Params params(
   218             DOCML_NAME_SORT_MENU,
   256             DOCML_NAME_SORT_MENU,
   219             true, // is widget
   257             true, // is widget
   220             receiver,
   258             receiver,
   221             DOCML_VIDEOCOLLECTIONVIEW_FILE,
   259             DOCML_VIDEOCOLLECTIONVIEW_FILE,
       
   260             0,
   222             widgetSlot);
   261             widgetSlot);
   223         addToQueue(params);
   262         addToQueue(params);
   224     }
   263     }
   225     if (uiSections.contains(DOCML_NAME_VC_COLLECTIONWIDGET))
   264     if (uiSections.contains(DOCML_NAME_VC_COLLECTIONWIDGET))
   226     {
   265     {
   227         VideoCollectionUiLoader::Params params(
   266         VideoCollectionUiLoader::Params params(
   228             DOCML_NAME_VC_COLLECTIONWIDGET,
   267             DOCML_NAME_VC_COLLECTIONWIDGET,
   229             true, // is widget
   268             true, // is widget
   230             receiver,
   269             receiver,
   231             DOCML_VIDEOCOLLECTIONVIEW_FILE,
   270             DOCML_VIDEOCOLLECTIONVIEW_FILE,
       
   271             DOCML_VIDEOCOLLECTIONVIEW_SECTION_LIST,
   232             widgetSlot);
   272             widgetSlot);
   233         addToQueue(params);
   273         addToQueue(params);
   234     }
   274     }
   235     if (uiSections.contains(DOCML_NAME_VC_COLLECTIONCONTENTWIDGET))
   275     if (uiSections.contains(DOCML_NAME_VC_COLLECTIONCONTENTWIDGET))
   236     {
   276     {
   237         VideoCollectionUiLoader::Params params(
   277         VideoCollectionUiLoader::Params params(
   238             DOCML_NAME_VC_COLLECTIONCONTENTWIDGET,
   278             DOCML_NAME_VC_COLLECTIONCONTENTWIDGET,
   239             true, // is widget
   279             true, // is widget
   240             receiver,
   280             receiver,
   241             DOCML_VIDEOCOLLECTIONVIEW_FILE,
   281             DOCML_VIDEOCOLLECTIONVIEW_FILE,
       
   282             DOCML_VIDEOCOLLECTIONVIEW_SECTION_LIST,
   242             widgetSlot);
   283             widgetSlot);
   243         addToQueue(params);
   284         addToQueue(params);
   244     }
   285     }
   245     if (uiSections.contains(DOCML_NAME_DIALOG))
   286     if (uiSections.contains(DOCML_NAME_DIALOG))
   246     {
   287     {
   247         VideoCollectionUiLoader::Params params(DOCML_NAME_DIALOG,
   288         VideoCollectionUiLoader::Params params(DOCML_NAME_DIALOG,
   248             true, // is widget
   289             true, // is widget
   249             receiver,
   290             receiver,
   250             DOCML_VIDEOSELECTIONDIALOG_FILE,
   291             DOCML_VIDEOSELECTIONDIALOG_FILE,
       
   292             0,
   251             widgetSlot);
   293             widgetSlot);
   252         addToQueue(params);
   294         addToQueue(params);
   253     }
   295     }
   254 }
   296 }
   255 
   297 
   278     
   320     
   279     // 2. load from document
   321     // 2. load from document
   280     else
   322     else
   281     {
   323     {
   282         widget = HbDocumentLoader::findWidget(name);
   324         widget = HbDocumentLoader::findWidget(name);
       
   325         if (!widget)
       
   326         {
       
   327             // check if the widget is being loaded and remove it from queue
       
   328             int count = mQueue.count();
       
   329             for (int i = 0; i < count; i++)
       
   330             {
       
   331                 const Params& params = mQueue.at(i);
       
   332                 if (params.mName.compare(name) == 0)
       
   333                 {
       
   334 					bool ok(true);
       
   335 					
       
   336 					if(!mDocmls.contains(params.mDocml))
       
   337 					{
       
   338 						load(params.mDocml, &ok);
       
   339 
       
   340 						if (ok)
       
   341 						{
       
   342 							mDocmls.append(params.mDocml);
       
   343 						}
       
   344 					}
       
   345 					if ((params.mSection != 0) && ok)
       
   346 					{
       
   347 						load(params.mDocml, params.mSection, &ok);
       
   348 					}
       
   349 					if(ok)
       
   350 					{
       
   351 						widget = HbDocumentLoader::findWidget(params.mName);
       
   352 					}
       
   353                     break;
       
   354                 }
       
   355             }            
       
   356         }
   283         if (widget)
   357         if (widget)
   284         {
   358         {
   285             // initialize widget
   359             // initialize widget
   286             initWidget(widget, name);
   360             initWidget(widget, name);
   287             
   361             
   303                         disconnect(
   377                         disconnect(
   304                             this, SIGNAL(widgetReady(QGraphicsWidget*, const QString&)),
   378                             this, SIGNAL(widgetReady(QGraphicsWidget*, const QString&)),
   305                             params.mReceiver, params.mMember);
   379                             params.mReceiver, params.mMember);
   306                     }
   380                     }
   307                     mQueue.removeAt(i);
   381                     mQueue.removeAt(i);
       
   382                     runNext(); //removes timer if queue is empty
   308                     break;
   383                     break;
   309                 }
   384                 }
   310             }            
   385             }            
   311         }
   386         }
   312     }
   387     }
   330     
   405     
   331     // 2. load from document and cancel async loading
   406     // 2. load from document and cancel async loading
   332     else
   407     else
   333     {
   408     {
   334         object = HbDocumentLoader::findObject(name);
   409         object = HbDocumentLoader::findObject(name);
       
   410         if (!object)
       
   411         {
       
   412             // check if the object is being loaded and remove it from queue
       
   413             int count = mQueue.count();
       
   414             for (int i = 0; i < count; i++)
       
   415             {
       
   416                 const Params& params = mQueue.at(i);
       
   417                 if (params.mName.compare(name) == 0)
       
   418                 {
       
   419 					bool ok(true);
       
   420 					
       
   421 					if(!mDocmls.contains(params.mDocml))
       
   422 					{
       
   423 						load(params.mDocml, &ok);
       
   424 
       
   425 						if (ok)
       
   426 						{
       
   427 							mDocmls.append(params.mDocml);
       
   428 						}
       
   429 					}
       
   430 					if ((params.mSection != 0) && ok)
       
   431 					{
       
   432 						load(params.mDocml, params.mSection, &ok);
       
   433 					}
       
   434 					if(ok)
       
   435 					{
       
   436 						object = HbDocumentLoader::findObject(params.mName);
       
   437 					}
       
   438                     break;
       
   439                 }
       
   440             }            
       
   441         }
   335         if (object)
   442         if (object)
   336         {
   443         {
   337             // initialize widget
   444             // initialize widget
   338             initObject(object, name);
   445             initObject(object, name);
   339             
   446             
   355                         disconnect(
   462                         disconnect(
   356                             this, SIGNAL(objectReady(QObject*, const QString&)),
   463                             this, SIGNAL(objectReady(QObject*, const QString&)),
   357                             params.mReceiver, params.mMember);
   464                             params.mReceiver, params.mMember);
   358                     }
   465                     }
   359                     mQueue.removeAt(i);
   466                     mQueue.removeAt(i);
       
   467                     runNext(); //removes timer if queue is empty
   360                     break;
   468                     break;
   361                 }
   469                 }
   362             }            
   470             }            
   363         }
   471         }
   364     }
   472     }
   451                     if (mIsService)
   559                     if (mIsService)
   452                     {
   560                     {
   453                         videoServices = VideoServices::instance();
   561                         videoServices = VideoServices::instance();
   454                     }
   562                     }
   455                     videoList->initialize(*model, videoServices);
   563                     videoList->initialize(*model, videoServices);
       
   564 
       
   565                     HbEffect::add(videoList,
       
   566                                    EFFECT_SLIDE_IN_TO_LEFT_FILENAME,
       
   567                                    EFFECT_SLIDE_IN_TO_LEFT);
       
   568 
       
   569                     HbEffect::add(videoList,
       
   570                             EFFECT_SLIDE_OUT_TO_LEFT_FILENAME,
       
   571                             EFFECT_SLIDE_OUT_TO_LEFT);
   456                 }
   572                 }
   457             }
   573             }
   458         }
   574         }
   459         else if (name.compare(DOCML_NAME_DIALOG) == 0)
   575         else if (name.compare(DOCML_NAME_DIALOG) == 0)
   460         {
   576         {
   478                 // ensure that all the actions related to sort menu are loaded
   594                 // ensure that all the actions related to sort menu are loaded
   479                 // when sort menu is loaded
   595                 // when sort menu is loaded
   480                 findObject<HbAction>(DOCML_NAME_SORT_BY_DATE);
   596                 findObject<HbAction>(DOCML_NAME_SORT_BY_DATE);
   481                 findObject<HbAction>(DOCML_NAME_SORT_BY_NAME);
   597                 findObject<HbAction>(DOCML_NAME_SORT_BY_NAME);
   482                 findObject<HbAction>(DOCML_NAME_SORT_BY_NUMBER_OF_ITEMS);
   598                 findObject<HbAction>(DOCML_NAME_SORT_BY_NUMBER_OF_ITEMS);
   483                 findObject<HbAction>(DOCML_NAME_SORT_BY_TOTAL_LENGTH);
       
   484                 findObject<HbAction>(DOCML_NAME_SORT_BY_SIZE);
   599                 findObject<HbAction>(DOCML_NAME_SORT_BY_SIZE);
   485 
   600 
   486                 // add sub menu actions
   601                 // add sub menu actions
   487                 if (!mSortGroup)
   602                 if (!mSortGroup)
   488                 {
   603                 {
   489                     mSortGroup = new QActionGroup(menu);
   604                     mSortGroup = new QActionGroup(menu);
   490                     mSortGroup->addAction(mMenuActions[EActionSortByDate]);
   605                     mSortGroup->addAction(mMenuActions[EActionSortByDate]);
   491                     mSortGroup->addAction(mMenuActions[EActionSortByName]);
   606                     mSortGroup->addAction(mMenuActions[EActionSortByName]);
   492                     mSortGroup->addAction(mMenuActions[EACtionSortByItemCount]);
   607                     mSortGroup->addAction(mMenuActions[EACtionSortByItemCount]);
   493                     mSortGroup->addAction(mMenuActions[EActionSortByLength]);
       
   494                     mSortGroup->addAction(mMenuActions[EActionSortBySize]);
   608                     mSortGroup->addAction(mMenuActions[EActionSortBySize]);
   495                     
   609                     
   496                     // set all sub menu items checkable
   610                     // set all sub menu items checkable
   497                     foreach (QAction *action, menu->actions()) 
   611                     foreach (QAction *action, menu->actions()) 
   498                     {
   612                     {
   511         }
   625         }
   512         else if (name.compare(DOCML_NAME_OPTIONS_MENU) == 0)
   626         else if (name.compare(DOCML_NAME_OPTIONS_MENU) == 0)
   513         {
   627         {
   514             // ensure that all the actions related to options menu are loaded
   628             // ensure that all the actions related to options menu are loaded
   515             // when options menu is loaded
   629             // when options menu is loaded
   516             findObject<HbAction>(DOCML_NAME_ADD_TO_COLLECTION);
   630         	// when applicaton has been launched as a service,
   517             findObject<HbAction>(DOCML_NAME_CREATE_COLLECTION);
   631         	// do not load components which are not required
   518             findObject<HbAction>(DOCML_NAME_DELETE_MULTIPLE);
   632         	if(!mIsService)
       
   633         	{
       
   634 				findObject<HbAction>(DOCML_NAME_ADD_TO_COLLECTION);
       
   635 				findObject<HbAction>(DOCML_NAME_CREATE_COLLECTION);
       
   636 				findObject<HbAction>(DOCML_NAME_DELETE_MULTIPLE);
       
   637         	}
   519         }
   638         }
   520     }
   639     }
   521 }
   640 }
   522 
   641 
   523 // ---------------------------------------------------------------------------
   642 // ---------------------------------------------------------------------------
   573         {
   692         {
   574             HbAction *action = qobject_cast<HbAction*>(object);
   693             HbAction *action = qobject_cast<HbAction*>(object);
   575             if (action)
   694             if (action)
   576             {
   695             {
   577                 mMenuActions[EACtionSortByItemCount] = action;
   696                 mMenuActions[EACtionSortByItemCount] = action;
   578             }
       
   579         }
       
   580         else if (name.compare(DOCML_NAME_SORT_BY_TOTAL_LENGTH) == 0)
       
   581         {
       
   582             HbAction *action = qobject_cast<HbAction*>(object);
       
   583             if (action)
       
   584             {
       
   585                 mMenuActions[EActionSortByLength] = action;
       
   586             }
   697             }
   587         }
   698         }
   588         else if (name.compare(DOCML_NAME_SORT_BY_SIZE) == 0)
   699         else if (name.compare(DOCML_NAME_SORT_BY_SIZE) == 0)
   589         {
   700         {
   590             HbAction *action = qobject_cast<HbAction*>(object);
   701             HbAction *action = qobject_cast<HbAction*>(object);
   621                     QGraphicsWidget *widget =
   732                     QGraphicsWidget *widget =
   622                         HbDocumentLoader::findWidget(params.mName);
   733                         HbDocumentLoader::findWidget(params.mName);
   623                     if (!widget)
   734                     if (!widget)
   624                     {
   735                     {
   625                         // widget not found, try to load the docml
   736                         // widget not found, try to load the docml
   626                         load(params.mDocml, &ok);
   737                     	if(!mDocmls.contains(params.mDocml))
   627                         if (ok)
   738 						{
   628                         {
   739 							load(params.mDocml, &ok);
   629                             widget = HbDocumentLoader::findWidget(params.mName);
   740 
   630                         }
   741 							if (ok)
       
   742 							{
       
   743 								mDocmls.append(params.mDocml);
       
   744 							}
       
   745 						}
       
   746 						if ((params.mSection != 0) && ok)
       
   747 						{
       
   748 							load(params.mDocml, params.mSection, &ok);
       
   749 						}
       
   750 						if(ok)
       
   751 						{
       
   752 							widget = HbDocumentLoader::findWidget(params.mName);
       
   753 						}
   631                     }
   754                     }
   632                     if (widget)
   755                     if (widget)
   633                     {
   756                     {
   634                         // widget found, add it to the hash
   757                         // widget found, add it to the hash
   635                         if (!mWidgets.contains(params.mName))
   758                         if (!mWidgets.contains(params.mName))
   660                     QObject *object =
   783                     QObject *object =
   661                         HbDocumentLoader::findObject(params.mName);
   784                         HbDocumentLoader::findObject(params.mName);
   662                     if (!object)
   785                     if (!object)
   663                     {
   786                     {
   664                         // widget not found, try to load the docml
   787                         // widget not found, try to load the docml
   665                         load(params.mDocml, &ok);
   788 						if(!mDocmls.contains(params.mDocml))
   666                         if (ok)
   789 						{
   667                         {
   790 							load(params.mDocml, &ok);
   668                             object = HbDocumentLoader::findObject(params.mName);
   791 
   669                         }
   792 							if (ok)
       
   793 							{
       
   794 								mDocmls.append(params.mDocml);
       
   795 							}
       
   796 						}
       
   797 						if ((params.mSection != 0) && ok)
       
   798 						{
       
   799 							load(params.mDocml, params.mSection, &ok);
       
   800 						}
       
   801 						if(ok)
       
   802 						{
       
   803 							object = HbDocumentLoader::findObject(params.mName);
       
   804 						}
   670                     }
   805                     }
   671                     if (object)
   806                     if (object)
   672                     {
   807                     {
   673                         // object found, add it to the hash
   808                         // object found, add it to the hash
   674                         if (!mObjects.contains(params.mName))
   809                         if (!mObjects.contains(params.mName))