diff -r e4f038c420f7 -r 3ac3aaebaee5 homescreenapp/stateplugins/hsapplibrarystateplugin/src/hscollectionstate.cpp --- a/homescreenapp/stateplugins/hsapplibrarystateplugin/src/hscollectionstate.cpp Mon Sep 13 13:03:23 2010 +0300 +++ b/homescreenapp/stateplugins/hsapplibrarystateplugin/src/hscollectionstate.cpp Mon Sep 20 10:19:07 2010 +0300 @@ -212,16 +212,22 @@ hbTrId("txt_applib_menu_sort_by_oldest_on_top"), this, SLOT(oldestOnTopMenuAction())); - if(mSortAttribute == Hs::LatestOnTopHsSortAttribute) + //Default is LatestOnTopHsSortAttribute + if(mSortAttribute == Hs::OldestOnTopHsSortAttribute) { - mLatestOnTopMenuAction->setVisible(false); - } else { mOldestOnTopMenuAction->setVisible(false); + } else { + mLatestOnTopMenuAction->setVisible(false); } - } - - + if (mCollectionType == Hs::collectionDownloadedTypeName) { + mViewOptions->addAction(hbTrId("txt_applib_opt_check_software_updates"), + static_cast(this), SLOT(checkSoftwareUpdates())); + mViewOptions->addAction( + hbTrId("txt_applib_opt_view_installed_applications"), + static_cast(this), + SLOT(openInstalledViewFromCollection())); + } mMenuView->view()->setMenu(mViewOptions); HSMENUTEST_FUNC_EXIT("HsAllCollectionsState::setMenuOptions"); } @@ -299,25 +305,28 @@ */ void HsCollectionState::contextMenuAction(HbAction *action) { - Hs::HsContextAction command = static_cast (action->data().toInt()); - - if (command == Hs::RemoveFromCollectionContextAction) { - const int itemId = mContextModelIndex.data( - CaItemModel::IdRole).toInt(); - machine()->postEvent( - HsMenuEventFactory::createRemoveAppFromCollectionEvent(itemId, - mCollectionId)); - HsMenuService::touch(itemId); - } else if ( - command == Hs::AddToCollectionFromCollectionViewContextAction) { - const int itemId = mContextModelIndex.data( - CaItemModel::IdRole).toInt(); - machine()->postEvent( - HsMenuEventFactory::createAddAppsFromCollectionViewEvent( - mCollectionId, itemId)); - HsMenuService::touch(itemId); + const int itemId = mContextModelIndex.data(CaItemModel::IdRole).toInt(); + + if (itemId > 0) { + Hs::HsContextAction command = + static_cast (action->data().toInt()); + + if (command == Hs::RemoveFromCollectionContextAction) { + machine()->postEvent( + HsMenuEventFactory::createRemoveAppFromCollectionEvent(itemId, + mCollectionId)); + HsMenuService::touch(itemId); + } else if ( + command == Hs::AddToCollectionFromCollectionViewContextAction) { + machine()->postEvent( + HsMenuEventFactory::createAddAppsFromCollectionViewEvent( + mCollectionId, itemId)); + HsMenuService::touch(itemId); + } else { + HsBaseViewState::contextMenuAction(action); + } } else { - HsBaseViewState::contextMenuAction(action); + closeContextMenu(); } } @@ -436,10 +445,6 @@ removeAction->setData(Hs::RemoveFromCollectionContextAction); } - if ((flags & RemovableEntryFlag)) { - uninstallAction = mContextMenu->addAction(hbTrId("txt_common_menu_delete")); - uninstallAction->setData(Hs::UninstallContextAction); - } QSharedPointer entry = mModel->entry(item->modelIndex()); if (!(entry->attribute(Hs::appSettingsPlugin).isEmpty())) { @@ -448,6 +453,11 @@ appSettingsAction->setData(Hs::AppSettingContextAction); } + if ((flags & RemovableEntryFlag)) { + uninstallAction = mContextMenu->addAction(hbTrId("txt_common_menu_delete")); + uninstallAction->setData(Hs::UninstallContextAction); + } + if (!(entry->attribute(Hs::componentIdAttributeName).isEmpty()) && (flags & RemovableEntryFlag) ) { appDetailsAction = mContextMenu->addAction(hbTrId( @@ -507,3 +517,19 @@ topItemId, mCollectionId)); } + +/*! + Triggers event so that an installed applications state is entered. + */ +#ifdef COVERAGE_MEASUREMENT +#pragma CTC SKIP +#endif //COVERAGE_MEASUREMENT +void HsCollectionState::openInstalledViewFromCollection() +{ + machine()->postEvent( + HsMenuEventFactory::createOpenInstalledViewEvent( + mCollectionId, mCollectionType)); +} +#ifdef COVERAGE_MEASUREMENT +#pragma CTC ENDSKIP +#endif //COVERAGE_MEASUREMENT