diff -r 23b5d6a29cce -r 4785f57bf3d4 homescreenapp/stateplugins/hsapplibrarystateplugin/src/hscollectionstate.cpp --- a/homescreenapp/stateplugins/hsapplibrarystateplugin/src/hscollectionstate.cpp Fri May 14 15:43:04 2010 +0300 +++ b/homescreenapp/stateplugins/hsapplibrarystateplugin/src/hscollectionstate.cpp Thu May 27 12:46:08 2010 +0300 @@ -37,7 +37,7 @@ #include "hscollectionstate.h" #include "hsaddappstocollectionstate.h" #include "hsapp_defs.h" - +#include "hsmainwindow.h" /*! \class HsCollectionState @@ -118,6 +118,7 @@ */ HsCollectionState::HsCollectionState(HsMenuViewBuilder &menuViewBuilder, HsMenuModeWrapper &menuMode, + HsMainWindow &mainWindow, QState *parent) : QState(parent), mSortAttribute(LatestOnTopHsSortAttribute), @@ -127,7 +128,8 @@ mMenuMode(menuMode), mSecondarySoftkeyAction(new HbAction(Hb::BackNaviAction, this)), mCollectionModel(0), - mOptions(0), mContextModelIndex(), mContextMenu(0) + mOptions(0), mContextModelIndex(), mContextMenu(0), + mMainWindow(mainWindow) { construct(); } @@ -196,21 +198,16 @@ { HSMENUTEST_FUNC_ENTRY("HsCollectionState::stateEntered"); + mMainWindow.setCurrentView(mMenuView); mMenuView.activate(); if (!mCollectionModel) { mCollectionModel = HsMenuService::getCollectionModel( mCollectionId, mSortAttribute, mCollectionType); - } else { - if (mCollectionType == collectionDownloadedTypeName()) { - mCollectionModel->setFlagsOn(RemovableEntryFlag | VisibleEntryFlag); - } else { - mCollectionModel->setFlagsOn(VisibleEntryFlag); - } - mCollectionModel->setParentId(mCollectionId); - mCollectionModel->setSort(LatestOnTopHsSortAttribute); } + + connect(mCollectionModel, SIGNAL(modelReset()), SLOT(updateLabel())); mMenuView.setModel(mCollectionModel); @@ -285,6 +282,8 @@ mMenuView.setSearchPanelVisible(false); mMenuView.inactivate(); + disconnect(mCollectionModel, SIGNAL(modelReset()), + this, SLOT(updateLabel())); delete mCollectionModel; mCollectionModel = NULL; delete mOptions; @@ -292,6 +291,7 @@ if (mContextMenu) mContextMenu->close(); HSMENUTEST_FUNC_EXIT("HsCollectionState::stateExited"); + this->mSortAttribute = NoHsSortAttribute; qDebug("CollectionState::stateExited()"); } @@ -308,7 +308,6 @@ connect(&mMenuView, SIGNAL(longPressed(HbAbstractViewItem *, QPointF)), SLOT(listItemLongPressed(HbAbstractViewItem *, QPointF))); - connect(mCollectionModel, SIGNAL(modelReset()),SLOT(updateLabel())); } /*! @@ -319,9 +318,6 @@ disconnect(mSecondarySoftkeyAction, SIGNAL(triggered()), this, SLOT(backSteppingAction())); - disconnect(mCollectionModel, SIGNAL(modelReset()), - this, SLOT(updateLabel())); - disconnect(&mMenuView, SIGNAL(activated(QModelIndex)), this, SLOT(listItemActivated(QModelIndex))); @@ -391,6 +387,7 @@ HbAction *removeAction(NULL); HbAction *uninstallAction(NULL); HbAction *appSettingsAction(NULL); + HbAction *appDetailsAction(NULL); // we do not add remove option in locked collection // check conditions and hide irrelevant menu items EntryFlags rootFlags = @@ -417,7 +414,13 @@ "txt_common_menu_settings")); appSettingsAction->setData(AppSettingContextAction); } - + + if (!(entry->attribute(componentIdAttributeName()).isEmpty()) && + entry->entryTypeName() == applicationTypeName() ) { + appDetailsAction = mContextMenu->addAction(hbTrId( + "txt_common_menu_details")); + appDetailsAction->setData(AppDetailsContextAction); + } mContextModelIndex = item->modelIndex(); mContextMenu->setPreferredPos(coords); mContextMenu->setAttribute(Qt::WA_DeleteOnClose); @@ -458,6 +461,10 @@ machine()->postEvent( HsMenuEventFactory::createAppSettingsViewEvent(itemId)); break; + case AppDetailsContextAction: + machine()->postEvent( + HsMenuEventFactory::createAppDetailsViewEvent(itemId)); + break; default: break; }