diff -r 3916af29624a -r 7dd137878ff8 homescreenapp/stateplugins/hsapplibrarystateplugin/src/hsallappsstate.cpp --- a/homescreenapp/stateplugins/hsapplibrarystateplugin/src/hsallappsstate.cpp Fri Aug 13 14:38:12 2010 +0300 +++ b/homescreenapp/stateplugins/hsapplibrarystateplugin/src/hsallappsstate.cpp Wed Aug 18 10:33:57 2010 +0300 @@ -66,11 +66,11 @@ QState *parent) : HsBaseViewState(mainWindow, menuMode, parent), mAddModeProxyModel(0), - mSortAttribute(AscendingNameHsSortAttribute) + mSortAttribute(Hs::AscendingNameHsSortAttribute) { initialize(menuViewBuilder, HsAllAppsContext); construct(); - mAddModeProxyModel = new HsAddModeProxyModel(this); + mAddModeProxyModel = new HsAddModeProxyModel(this); mAddModeProxyModel->setSourceModel(mModel); } @@ -137,10 +137,10 @@ } int currentSortingPosition(-1); switch (mSortAttribute) { - case AscendingNameHsSortAttribute: + case Hs::AscendingNameHsSortAttribute: currentSortingPosition = 0; break; - case DescendingNameHsSortAttribute: + case Hs::DescendingNameHsSortAttribute: currentSortingPosition = 1; break; default: @@ -168,22 +168,38 @@ void HsAllAppsState::normalModeEntered() { HsBaseViewState::normalModeEntered(); - if (mMenuView->model() != mModel) { - mMenuView->setModel(mModel); - } connect(mMenuView.data(), SIGNAL(activated(QModelIndex)), static_cast(this), SLOT(launchItem(QModelIndex))); } /*! - Slot invoked when add mode entered. + Sets model for this view in depends on menuMode. + \param menuMode menu mode */ -void HsAllAppsState::addModeEntered() +void HsAllAppsState::setModel(Hs::HsMenuMode menuMode) { - HsBaseViewState::addModeEntered(); - if (mMenuView->model() != mAddModeProxyModel) { - mMenuView->setModel(mAddModeProxyModel); + if (menuMode == Hs::AddHsMenuMode) { + if (mMenuView->model() != mAddModeProxyModel) { + mMenuView->setModel(mAddModeProxyModel); + } + } else { + if (mMenuView->model() != mModel) { + mMenuView->setModel(mModel); + } + } +} + + +/*! + Scrolls view to first item at top + */ +void HsAllAppsState::scrollToBeginning() +{ + QAbstractItemModel* model = mMenuView->model(); + if (model != NULL ) { + mMenuView->listView()->scrollTo( + model->index(0,0), HbAbstractItemView::PositionAtTop); } } @@ -201,78 +217,6 @@ } /*! - Slot connected to List widget in add mode. - \param index Model index of the activated item. - */ -void HsAllAppsState::addActivated(const QModelIndex &index) -{ - mMenuView->disconnect(this); - HSMENUTEST_FUNC_ENTRY("HsAllAppsState::addActivated"); - addToHomeScreen(index); - HSMENUTEST_FUNC_EXIT("HsAllAppsState::addActivated"); -} - - -/*! - Handles context menu actions - */ -void HsAllAppsState::contextMenuAction(HbAction *action) -{ - HsContextAction command = - static_cast(action->data().toInt()); - - const int itemId = mContextModelIndex.data(CaItemModel::IdRole).toInt(); - - switch (command) { - case AddToHomeScreenContextAction: - addToHomeScreen(mContextModelIndex); - break; - case AddToCollectionContextAction: - // Addding a specific application to - // an existing collection via item specific menu. - machine()->postEvent( - HsMenuEventFactory::createAddAppsFromApplicationsViewEvent( - mSortAttribute, itemId)); - break; - case UninstallContextAction: - machine()->postEvent( - HsMenuEventFactory::createUninstallApplicationEvent(itemId)); - break; - case AppSettingContextAction: - machine()->postEvent( - HsMenuEventFactory::createAppSettingsViewEvent(itemId)); - break; - case AppDetailsContextAction: - machine()->postEvent( - HsMenuEventFactory::createAppDetailsViewEvent(itemId)); - break; - case OpenContextAction: - launchItem(mContextModelIndex); - break; - default: - break; - } - mMenuView->hideSearchPanel(); -} - -/*! - Slot connected to List widget in add mode. - Called when item long pressed. - \param item View item. - \param coords Press point coordinates. - */ -void HsAllAppsState::addLongPressed(HbAbstractViewItem *item, - const QPointF &coords) -{ - Q_UNUSED(coords); - mMenuView->disconnect(this); - HSMENUTEST_FUNC_ENTRY("HsAllAppsState::addLongPressed"); - addToHomeScreen(item->modelIndex()); - HSMENUTEST_FUNC_EXIT("HsAllAppsState::addLongPressed"); - -} - -/*! Slot called when application is adding to collection. */ void HsAllAppsState::addToCollection() @@ -300,58 +244,43 @@ #endif //COVERAGE_MEASUREMENT /*! - 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 HsAllAppsState::addToHomeScreen(const QModelIndex &index) -{ - HSMENUTEST_FUNC_ENTRY("HsAllAppsState::addToHomeScreen"); - QSharedPointer entry = mModel->entry(index); - - machine()-> postEvent(HsMenuEventFactory::createAddToHomeScreenEvent( - entry->id(), mMenuMode->getHsMenuMode(), - mMenuMode->getHsToken())); - - HSMENUTEST_FUNC_EXIT("HsAllAppsState::addToHomeScreen"); -} - -/*! Method seting context menu options. */ void HsAllAppsState::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 *addToCollectionAction = mContextMenu->addAction( hbTrId("txt_applib_menu_add_to_collection")); - addToCollectionAction->setData(AddToCollectionContextAction); + + addToCollectionAction->setData( + Hs::AddToCollectionFromApplicationsViewContextAction); HbAction *uninstallAction = mContextMenu->addAction( hbTrId("txt_common_menu_delete")); - uninstallAction->setData(UninstallContextAction); + uninstallAction->setData(Hs::UninstallContextAction); HbAction *appSettingsAction(NULL); HbAction *appDetailsAction(NULL); // check conditions and hide irrelevant menu items 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); } if (!(flags & RemovableEntryFlag)) { @@ -368,7 +297,7 @@ void HsAllAppsState::ascendingMenuAction() { HSMENUTEST_FUNC_ENTRY("HsAllAppsState::ascendingMenuAction"); - mSortAttribute = AscendingNameHsSortAttribute; + mSortAttribute = Hs::AscendingNameHsSortAttribute; mModel->setSort(mSortAttribute); HSMENUTEST_FUNC_EXIT("HsAllAppsState::ascendingMenuAction"); } @@ -379,7 +308,7 @@ void HsAllAppsState::descendingMenuAction() { HSMENUTEST_FUNC_ENTRY("HsAllAppsState::descendingMenuAction"); - mSortAttribute = DescendingNameHsSortAttribute; + mSortAttribute = Hs::DescendingNameHsSortAttribute; mModel->setSort(mSortAttribute); HSMENUTEST_FUNC_EXIT("HsAllAppsState::descendingMenuAction");