diff -r e4f038c420f7 -r 3ac3aaebaee5 homescreenapp/stateplugins/hsapplibrarystateplugin/src/hsbaseviewstate.cpp --- a/homescreenapp/stateplugins/hsapplibrarystateplugin/src/hsbaseviewstate.cpp Mon Sep 13 13:03:23 2010 +0300 +++ b/homescreenapp/stateplugins/hsapplibrarystateplugin/src/hsbaseviewstate.cpp Mon Sep 20 10:19:07 2010 +0300 @@ -329,55 +329,58 @@ static_cast(action->data().toInt()); const int itemId = mContextModelIndex.data(CaItemModel::IdRole).toInt(); - - switch (command) { - case Hs::AddToHomeScreenContextAction: - addToHomeScreen(itemId); - break; - case Hs::AddToCollectionFromApplicationsViewContextAction: - // Addding a specific application to - // an existing collection via item specific menu. - machine()->postEvent( - HsMenuEventFactory::createAddAppsFromApplicationsViewEvent( - Hs::NoHsSortAttribute, itemId)); - break; - case Hs::AddToCollectionFromCollectionViewContextAction: - machine()->postEvent( - HsMenuEventFactory::createAddAppsFromCollectionViewEvent( - -1, itemId)); - break; - case Hs::UninstallContextAction: - machine()->postEvent( - HsMenuEventFactory::createUninstallApplicationEvent( - itemId)); - break; - case Hs::AppSettingContextAction: - machine()->postEvent( - HsMenuEventFactory::createAppSettingsViewEvent(itemId)); - break; - case Hs::AppDetailsContextAction: - machine()->postEvent( - HsMenuEventFactory::createAppDetailsViewEvent(itemId)); - break; - case Hs::OpenAppContextAction: - launchItem(mContextModelIndex); - break; - case Hs::RenameCollectionContextAction: - machine()->postEvent( - HsMenuEventFactory::createRenameCollectionEvent(itemId)); - break; - case Hs::DeleteCollectionContextAction: - machine()->postEvent( - HsMenuEventFactory::createDeleteCollectionEvent(itemId)); - break; - case Hs::OpenCollectionContextAction: - openCollection(mContextModelIndex); - break; - default: - break; + + if (itemId > 0) { + switch (command) { + case Hs::AddToHomeScreenContextAction: + addToHomeScreen(itemId); + break; + case Hs::AddToCollectionFromApplicationsViewContextAction: + // Addding a specific application to + // an existing collection via item specific menu. + machine()->postEvent( + HsMenuEventFactory::createAddAppsFromApplicationsViewEvent( + Hs::NoHsSortAttribute, itemId)); + break; + case Hs::AddToCollectionFromCollectionViewContextAction: + machine()->postEvent( + HsMenuEventFactory::createAddAppsFromCollectionViewEvent( + -1, itemId)); + break; + case Hs::UninstallContextAction: + machine()->postEvent( + HsMenuEventFactory::createUninstallApplicationEvent( + itemId)); + break; + case Hs::AppSettingContextAction: + machine()->postEvent( + HsMenuEventFactory::createAppSettingsViewEvent(itemId)); + break; + case Hs::AppDetailsContextAction: + machine()->postEvent( + HsMenuEventFactory::createAppDetailsViewEvent(itemId)); + break; + case Hs::OpenAppContextAction: + launchItem(mContextModelIndex); + break; + case Hs::RenameCollectionContextAction: + machine()->postEvent( + HsMenuEventFactory::createRenameCollectionEvent(itemId)); + break; + case Hs::DeleteCollectionContextAction: + machine()->postEvent( + HsMenuEventFactory::createDeleteCollectionEvent(itemId)); + break; + case Hs::OpenCollectionContextAction: + openCollection(mContextModelIndex); + break; + default: + break; + } + HsMenuService::touch(itemId); + } else { + closeContextMenu(); } - - HsMenuService::touch(itemId); } /*! @@ -461,3 +464,16 @@ *mMenuMode, Hs::AddHsMenuMode, addModeState)); } +/*! + Triggers event so that an installed applications state is entered. + */ +#ifdef COVERAGE_MEASUREMENT +#pragma CTC SKIP +#endif //COVERAGE_MEASUREMENT +void HsBaseViewState::openInstalledView() +{ + machine()->postEvent(HsMenuEventFactory::createOpenInstalledViewEvent()); +} +#ifdef COVERAGE_MEASUREMENT +#pragma CTC ENDSKIP +#endif //COVERAGE_MEASUREMENT