diff -r 32e56106abf2 -r 66b5fe3c07fd homescreenapp/stateplugins/hsapplibrarystateplugin/src/hsinstalledappsstate.cpp --- a/homescreenapp/stateplugins/hsapplibrarystateplugin/src/hsinstalledappsstate.cpp Mon Sep 27 11:52:00 2010 +0300 +++ b/homescreenapp/stateplugins/hsapplibrarystateplugin/src/hsinstalledappsstate.cpp Wed Oct 06 16:06:24 2010 +0300 @@ -136,21 +136,18 @@ \param item the context menu is built for. \param flags of the \item. */ -void HsInstalledAppsState::setContextMenuOptions(HbAbstractViewItem *item, EntryFlags flags) +void HsInstalledAppsState::setContextMenuOptions( + HbAbstractViewItem *item, EntryFlags flags) { + Q_UNUSED(item) + Q_UNUSED(flags) HbAction *uninstallAction = mContextMenu->addAction( - hbTrId("txt_common_menu_delete")); - HbAction *appDetailsAction(NULL); + hbTrId("txt_common_menu_delete")); uninstallAction->setData(Hs::UninstallContextAction); - QSharedPointer entry = mModel->entry(item->modelIndex()); - - if (!(entry->attribute(Hs::componentIdAttributeName).isEmpty()) && - (flags & RemovableEntryFlag) ) { - appDetailsAction = mContextMenu->addAction(hbTrId( - "txt_common_menu_details")); - appDetailsAction->setData(Hs::AppDetailsContextAction); - } + HbAction *appDetailsAction = mContextMenu->addAction( + hbTrId("txt_common_menu_details")); + appDetailsAction->setData(Hs::AppDetailsContextAction); } @@ -172,14 +169,13 @@ qDebug("AllAppsState::stateEntered()"); HSMENUTEST_FUNC_ENTRY("HsInstalledAppsState::stateEntered"); - mMenuView->viewLabel()->setHeading( - hbTrId("txt_applib_subtitle_installed")); - if (!mModel) { mModel = HsMenuService::getInstalledModel(mSortAttribute); } - + + updateLabel(); + if (mModel->rowCount() == 0) { mMenuView->reset(HsEmptyLabelContext); } @@ -189,20 +185,24 @@ mMenuView->listView()->scrollTo( mModel->index(0)); } - + setMenuOptions(); connect(mMenuView.data(), SIGNAL(longPressed(HbAbstractViewItem *, QPointF)), SLOT(showContextMenu(HbAbstractViewItem *, QPointF))); - + connect(mMenuView.data(), SIGNAL(activated(QModelIndex)), SLOT(launchDetails(QModelIndex))); connect(mModel, SIGNAL(empty(bool)),this, SLOT(setEmptyLabelVisibility(bool))); - + + connect(mModel, SIGNAL(countChange()),this, + SLOT(updateLabel())); + + HsBaseViewState::stateEntered(); HSMENUTEST_FUNC_EXIT("HsInstalledAppsState::stateEntered"); @@ -215,9 +215,12 @@ { HSMENUTEST_FUNC_ENTRY("HsInstalledAppsState::stateExited"); + disconnect(mModel, SIGNAL(countChange()),this, + SLOT(updateLabel())); + disconnect(mModel, SIGNAL(empty(bool)),this, SLOT(setEmptyLabelVisibility(bool))); - + disconnect(mMenuView.data(), SIGNAL(activated(QModelIndex)), this, SLOT(launchDetails(QModelIndex))); @@ -249,6 +252,16 @@ } /*! + Slot update label. + */ +void HsInstalledAppsState::updateLabel() +{ + mMenuView->viewLabel()->setHeading( + hbTrId("txt_applib_subtitle_installed").arg( + mModel->rowCount())); +} + +/*! Menu softkey back action slot */ #ifdef COVERAGE_MEASUREMENT @@ -284,8 +297,12 @@ */ void HsInstalledAppsState::launchDetails(const QModelIndex &index) { - machine()->postEvent(HsMenuEventFactory::createAppDetailsViewEvent( - index.data(CaItemModel::IdRole).toInt())); + QSharedPointer entry = mModel->entry(index); + if (!entry.isNull() && !(entry->flags() & UninstallEntryFlag)) { + + machine()->postEvent(HsMenuEventFactory::createAppDetailsViewEvent( + index.data(CaItemModel::IdRole).toInt())); + } } #ifdef COVERAGE_MEASUREMENT