homescreenapp/stateplugins/hsapplibrarystateplugin/src/hscollectionstate.cpp
changeset 90 3ac3aaebaee5
parent 86 e4f038c420f7
child 97 66b5fe3c07fd
equal deleted inserted replaced
86:e4f038c420f7 90:3ac3aaebaee5
   210                 this, SLOT(latestOnTopMenuAction()));
   210                 this, SLOT(latestOnTopMenuAction()));
   211         mOldestOnTopMenuAction = mViewOptions->addAction(
   211         mOldestOnTopMenuAction = mViewOptions->addAction(
   212                 hbTrId("txt_applib_menu_sort_by_oldest_on_top"),
   212                 hbTrId("txt_applib_menu_sort_by_oldest_on_top"),
   213                 this, SLOT(oldestOnTopMenuAction()));
   213                 this, SLOT(oldestOnTopMenuAction()));
   214 
   214 
   215         if(mSortAttribute == Hs::LatestOnTopHsSortAttribute)
   215         //Default is LatestOnTopHsSortAttribute
       
   216         if(mSortAttribute == Hs::OldestOnTopHsSortAttribute)
   216         {
   217         {
       
   218             mOldestOnTopMenuAction->setVisible(false);
       
   219         } else {            
   217             mLatestOnTopMenuAction->setVisible(false);
   220             mLatestOnTopMenuAction->setVisible(false);
   218         } else {
       
   219             mOldestOnTopMenuAction->setVisible(false);
       
   220         }
   221         }
   221 
   222     }
   222     }
   223     if (mCollectionType == Hs::collectionDownloadedTypeName) {
   223 
   224         mViewOptions->addAction(hbTrId("txt_applib_opt_check_software_updates"),
   224 
   225             static_cast<HsBaseViewState*>(this), SLOT(checkSoftwareUpdates()));
       
   226         mViewOptions->addAction(
       
   227             hbTrId("txt_applib_opt_view_installed_applications"),
       
   228             static_cast<HsBaseViewState*>(this),
       
   229             SLOT(openInstalledViewFromCollection()));
       
   230     }
   225     mMenuView->view()->setMenu(mViewOptions);
   231     mMenuView->view()->setMenu(mViewOptions);
   226     HSMENUTEST_FUNC_EXIT("HsAllCollectionsState::setMenuOptions");
   232     HSMENUTEST_FUNC_EXIT("HsAllCollectionsState::setMenuOptions");
   227 }
   233 }
   228 
   234 
   229 /*!
   235 /*!
   297  Handles context menu actions
   303  Handles context menu actions
   298  \param action action taken in context menu
   304  \param action action taken in context menu
   299  */
   305  */
   300 void HsCollectionState::contextMenuAction(HbAction *action)
   306 void HsCollectionState::contextMenuAction(HbAction *action)
   301 	{
   307 	{
   302     Hs::HsContextAction command = static_cast<Hs::HsContextAction> (action->data().toInt());
   308     const int itemId = mContextModelIndex.data(CaItemModel::IdRole).toInt();
   303 
   309     
   304     if (command == Hs::RemoveFromCollectionContextAction) {
   310     if (itemId > 0) {
   305         const int itemId = mContextModelIndex.data(
   311         Hs::HsContextAction command = 
   306             CaItemModel::IdRole).toInt();
   312                 static_cast<Hs::HsContextAction> (action->data().toInt());
   307         machine()->postEvent(
   313     
   308             HsMenuEventFactory::createRemoveAppFromCollectionEvent(itemId,
   314         if (command == Hs::RemoveFromCollectionContextAction) {
   309             mCollectionId));
   315             machine()->postEvent(
   310         HsMenuService::touch(itemId);
   316                 HsMenuEventFactory::createRemoveAppFromCollectionEvent(itemId,
   311     } else if (
   317                 mCollectionId));
   312         command == Hs::AddToCollectionFromCollectionViewContextAction) {
   318             HsMenuService::touch(itemId);
   313         const int itemId = mContextModelIndex.data(
   319         } else if (
   314             CaItemModel::IdRole).toInt();
   320             command == Hs::AddToCollectionFromCollectionViewContextAction) {
   315         machine()->postEvent(
   321             machine()->postEvent(
   316             HsMenuEventFactory::createAddAppsFromCollectionViewEvent(
   322                 HsMenuEventFactory::createAddAppsFromCollectionViewEvent(
   317             mCollectionId, itemId));
   323                 mCollectionId, itemId));
   318         HsMenuService::touch(itemId);
   324             HsMenuService::touch(itemId);
       
   325         } else {
       
   326             HsBaseViewState::contextMenuAction(action);
       
   327         }
   319     } else {
   328     } else {
   320         HsBaseViewState::contextMenuAction(action);
   329         closeContextMenu();
   321     }
   330     }
   322 }
   331 }
   323 
   332 
   324 /*!
   333 /*!
   325  Handler to be called when model becomes not empty or model becomes empty.
   334  Handler to be called when model becomes not empty or model becomes empty.
   434         removeAction = mContextMenu->addAction(
   443         removeAction = mContextMenu->addAction(
   435                            hbTrId("txt_applib_menu_remove_from_collection"));
   444                            hbTrId("txt_applib_menu_remove_from_collection"));
   436         removeAction->setData(Hs::RemoveFromCollectionContextAction);
   445         removeAction->setData(Hs::RemoveFromCollectionContextAction);
   437     }
   446     }
   438 
   447 
   439     if ((flags & RemovableEntryFlag)) {
       
   440         uninstallAction = mContextMenu->addAction(hbTrId("txt_common_menu_delete"));
       
   441         uninstallAction->setData(Hs::UninstallContextAction);
       
   442     }
       
   443     QSharedPointer<const CaEntry> entry = mModel->entry(item->modelIndex());
   448     QSharedPointer<const CaEntry> entry = mModel->entry(item->modelIndex());
   444 
   449 
   445     if (!(entry->attribute(Hs::appSettingsPlugin).isEmpty())) {
   450     if (!(entry->attribute(Hs::appSettingsPlugin).isEmpty())) {
   446         appSettingsAction = mContextMenu->addAction(hbTrId(
   451         appSettingsAction = mContextMenu->addAction(hbTrId(
   447                                                 "txt_common_menu_settings"));
   452                                                 "txt_common_menu_settings"));
   448         appSettingsAction->setData(Hs::AppSettingContextAction);
   453         appSettingsAction->setData(Hs::AppSettingContextAction);
       
   454     }
       
   455 
       
   456     if ((flags & RemovableEntryFlag)) {
       
   457         uninstallAction = mContextMenu->addAction(hbTrId("txt_common_menu_delete"));
       
   458         uninstallAction->setData(Hs::UninstallContextAction);
   449     }
   459     }
   450 
   460 
   451     if (!(entry->attribute(Hs::componentIdAttributeName).isEmpty()) &&
   461     if (!(entry->attribute(Hs::componentIdAttributeName).isEmpty()) &&
   452             (flags & RemovableEntryFlag) ) {
   462             (flags & RemovableEntryFlag) ) {
   453         appDetailsAction = mContextMenu->addAction(hbTrId(
   463         appDetailsAction = mContextMenu->addAction(hbTrId(
   505     machine()->postEvent(
   515     machine()->postEvent(
   506         HsMenuEventFactory::createArrangeCollectionEvent(
   516         HsMenuEventFactory::createArrangeCollectionEvent(
   507             topItemId,
   517             topItemId,
   508             mCollectionId));
   518             mCollectionId));
   509 }
   519 }
       
   520 
       
   521 /*!
       
   522  Triggers event so that an installed applications state is entered.
       
   523  */
       
   524 #ifdef COVERAGE_MEASUREMENT
       
   525 #pragma CTC SKIP
       
   526 #endif //COVERAGE_MEASUREMENT
       
   527 void HsCollectionState::openInstalledViewFromCollection()
       
   528 {
       
   529     machine()->postEvent(
       
   530         HsMenuEventFactory::createOpenInstalledViewEvent(
       
   531         mCollectionId, mCollectionType));
       
   532 }
       
   533 #ifdef COVERAGE_MEASUREMENT
       
   534 #pragma CTC ENDSKIP
       
   535 #endif //COVERAGE_MEASUREMENT