diff -r 3916af29624a -r 7dd137878ff8 homescreenapp/stateplugins/hsapplibrarystateplugin/src/hscollectionstate.cpp --- a/homescreenapp/stateplugins/hsapplibrarystateplugin/src/hscollectionstate.cpp Fri Aug 13 14:38:12 2010 +0300 +++ b/homescreenapp/stateplugins/hsapplibrarystateplugin/src/hscollectionstate.cpp Wed Aug 18 10:33:57 2010 +0300 @@ -87,7 +87,7 @@ HsMainWindow &mainWindow, QState *parent) : HsBaseViewState(mainWindow, menuMode, parent), - mSortAttribute(LatestOnTopHsSortAttribute), + mSortAttribute(Hs::LatestOnTopHsSortAttribute), mCollectionId(-1) { initialize(menuViewBuilder, HsCollectionContext); @@ -131,8 +131,8 @@ if (event->type() == HsMenuEvent::eventType()) { HsMenuEvent *menuEvent = static_cast(event); QVariantMap data = menuEvent->data(); - mCollectionId = data.value(itemIdKey()).toInt(); - mCollectionType = data.value(entryTypeNameKey()).toString(); + mCollectionId = data.value(Hs::itemIdKey).toInt(); + mCollectionType = data.value(Hs::entryTypeNameKey).toString(); } HSMENUTEST_FUNC_EXIT("HsCollectionState::onEntry"); @@ -201,19 +201,20 @@ this, SLOT(deleteAction())); } - if (mCollectionType == collectionDownloadedTypeName()) { + if (mCollectionType == Hs::collectionDownloadedTypeName && + mModel->rowCount() > 0) { HbMenu *sortMenu = mViewOptions->addMenu( hbTrId("txt_applib_opt_sort_by")); //Grouped options are exclusive by default. QActionGroup *sortGroup = new QActionGroup(this); sortGroup->addAction( sortMenu->addAction( - hbTrId("txt_applib_opt_sort_by_sub_latest_on_top"), + hbTrId("txt_applib_opt_sub_latest_on_top"), this, SLOT(latestOnTopMenuAction()))); sortGroup->addAction( sortMenu->addAction( - hbTrId("txt_applib_opt_sort_by_sub_oldest_on_top"), + hbTrId("txt_applib_opt_sub_oldest_on_top"), this, SLOT(oldestOnTopMenuAction()))); foreach(QAction *action, sortMenu->actions()) { @@ -237,7 +238,7 @@ delete mModel; mModel = NULL; - this->mSortAttribute = NoHsSortAttribute; + this->mSortAttribute = Hs::NoHsSortAttribute; HsBaseViewState::stateExited(); @@ -257,10 +258,6 @@ static_cast(this), SLOT(launchItem(QModelIndex))); connect(mMenuView.data(), - SIGNAL(activated(QModelIndex)), - mMenuView.data(), - SLOT(hideSearchPanel())); - connect(mMenuView.data(), SIGNAL(longPressed(HbAbstractViewItem *, QPointF)), static_cast(this), SLOT(showContextMenu(HbAbstractViewItem *, QPointF))); @@ -284,10 +281,6 @@ static_cast(this), SLOT(launchItem(QModelIndex))); disconnect(mMenuView.data(), - SIGNAL(activated(QModelIndex)), - mMenuView.data(), - SLOT(hideSearchPanel())); - disconnect(mMenuView.data(), SIGNAL(longPressed(HbAbstractViewItem *, QPointF)), static_cast(this), SLOT(showContextMenu(HbAbstractViewItem *, QPointF))); @@ -303,49 +296,19 @@ /*! Handles context menu actions + \param action action taken in context menu */ void HsCollectionState::contextMenuAction(HbAction *action) { - HsContextAction command = - static_cast(action->data().toInt()); - - const int itemId = mContextModelIndex.data(CaItemModel::IdRole).toInt(); - - switch (command) { - case AddToHomeScreenContextAction: - addElementToHomeScreen(mContextModelIndex); - break; - case AddToCollectionContextAction: - machine()->postEvent( - HsMenuEventFactory::createAddAppsFromCollectionViewEvent( - mCollectionId, itemId)); - break; - case UninstallContextAction: - machine()->postEvent( - HsMenuEventFactory::createUninstallApplicationEvent( - itemId)); - break; - case RemoveFromCollectionContextAction: - machine()->postEvent( - HsMenuEventFactory::createRemoveAppFromCollectionEvent( - itemId, mCollectionId)); - break; - case AppSettingContextAction: - machine()->postEvent( - HsMenuEventFactory::createAppSettingsViewEvent(itemId)); - break; - case AppDetailsContextAction: - machine()->postEvent( - HsMenuEventFactory::createAppDetailsViewEvent(itemId)); - break; - case OpenContextAction: - launchItem(mContextModelIndex); - break; - default: - break; + HsBaseViewState::contextMenuAction(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)); } - - mMenuView->hideSearchPanel(); } /*! @@ -363,7 +326,7 @@ if (flags & RemovableEntryFlag){ mMenuView->reset(HsButtonContext); connect(mMenuView->contentButton(), - SIGNAL(toggled(bool)), this, SLOT(addAppsAction(bool)), + SIGNAL(clicked()), this, SLOT(addAppsAction()), Qt::UniqueConnection); } else { mMenuView->reset(HsEmptyLabelContext); @@ -399,19 +362,12 @@ \param addApps if true create event for add enties to collection. Parametr use by toggled from HbPushButton */ -void HsCollectionState::addAppsAction(bool addApps) +void HsCollectionState::addAppsAction() { // Add applications - if (addApps) { - - if (mMenuView->contentButton()) { - mMenuView->contentButton()->setChecked(false); - } - - machine()->postEvent( - HsMenuEventFactory::createAddAppsFromCollectionViewEvent( - mCollectionId)); - } + machine()->postEvent( + HsMenuEventFactory::createAddAppsFromCollectionViewEvent( + mCollectionId)); } /*! @@ -419,9 +375,7 @@ */ void HsCollectionState::addCollectionShortcutToHomeScreenAction() { - machine()->postEvent(HsMenuEventFactory::createAddToHomeScreenEvent( - mCollectionId, mMenuMode->getHsMenuMode(), - mMenuMode->getHsToken())); + addToHomeScreen(mCollectionId); } /*! @@ -456,35 +410,19 @@ } /*! - Triggers event so that a state adding to Home Screen is reached - \param index of an item to be added to homescreen. - \retval void - */ -void HsCollectionState::addElementToHomeScreen(const QModelIndex &index) -{ - QSharedPointer entry = mModel->entry(index); - - QMap attributes = entry->attributes(); - - machine()->postEvent( - HsMenuEventFactory::createAddToHomeScreenEvent( - entry->id(), mMenuMode->getHsMenuMode(), mMenuMode->getHsToken())); -} - -/*! Method setting context menu options. */ void HsCollectionState::setContextMenuOptions(HbAbstractViewItem *item, EntryFlags flags) { HbAction *openAction = mContextMenu->addAction(hbTrId( "txt_common_menu_open")); - openAction->setData(OpenContextAction); + openAction->setData(Hs::OpenAppContextAction); HbAction *addToHomeScreenAction = mContextMenu->addAction(hbTrId( "txt_applib_menu_add_to_home_screen")); - addToHomeScreenAction->setData(AddToHomeScreenContextAction); + addToHomeScreenAction->setData(Hs::AddToHomeScreenContextAction); HbAction *addToCollection = mContextMenu->addAction(hbTrId( "txt_applib_menu_add_to_collection")); - addToCollection->setData(AddToCollectionContextAction); + addToCollection->setData(Hs::AddToCollectionFromCollectionViewContextAction); HbAction *removeAction(NULL); HbAction *uninstallAction(NULL); HbAction *appSettingsAction(NULL); @@ -498,26 +436,26 @@ if (rootFlags & RemovableEntryFlag) { removeAction = mContextMenu->addAction( hbTrId("txt_applib_menu_remove_from_collection")); - removeAction->setData(RemoveFromCollectionContextAction); + removeAction->setData(Hs::RemoveFromCollectionContextAction); } if ((flags & RemovableEntryFlag)) { uninstallAction = mContextMenu->addAction(hbTrId("txt_common_menu_delete")); - uninstallAction->setData(UninstallContextAction); + uninstallAction->setData(Hs::UninstallContextAction); } QSharedPointer entry = mModel->entry(item->modelIndex()); - if (!(entry->attribute(appSettingsPlugin()).isEmpty())) { + if (!(entry->attribute(Hs::appSettingsPlugin).isEmpty())) { appSettingsAction = mContextMenu->addAction(hbTrId( "txt_common_menu_settings")); - appSettingsAction->setData(AppSettingContextAction); + appSettingsAction->setData(Hs::AppSettingContextAction); } - if (!(entry->attribute(componentIdAttributeName()).isEmpty()) && + if (!(entry->attribute(Hs::componentIdAttributeName).isEmpty()) && (flags & RemovableEntryFlag) ) { appDetailsAction = mContextMenu->addAction(hbTrId( "txt_common_menu_details")); - appDetailsAction->setData(AppDetailsContextAction); + appDetailsAction->setData(Hs::AppDetailsContextAction); } addToHomeScreenAction->setVisible( @@ -530,7 +468,7 @@ */ void HsCollectionState::latestOnTopMenuAction() { - mSortAttribute = LatestOnTopHsSortAttribute; + mSortAttribute = Hs::LatestOnTopHsSortAttribute; mModel->setSort(mSortAttribute); emit sortOrderChanged(mSortAttribute); } @@ -541,7 +479,7 @@ */ void HsCollectionState::oldestOnTopMenuAction() { - mSortAttribute = OldestOnTopHsSortAttribute; + mSortAttribute = Hs::OldestOnTopHsSortAttribute; mModel->setSort(mSortAttribute); emit sortOrderChanged(mSortAttribute); }