diff -r 341166945d65 -r 52b0f64eeb51 homescreenapp/stateplugins/hsapplibrarystateplugin/src/hscollectionstate.cpp --- a/homescreenapp/stateplugins/hsapplibrarystateplugin/src/hscollectionstate.cpp Fri Jun 25 19:19:22 2010 +0300 +++ b/homescreenapp/stateplugins/hsapplibrarystateplugin/src/hscollectionstate.cpp Fri Jul 09 14:36:01 2010 +0300 @@ -15,30 +15,26 @@ * */ -#include - +#include +#include +#include #include #include #include -#include -#include -#include -#include -#include -#include -#include +#include +#include +#include +#include + +#include "hsapp_defs.h" #include "hsmenuevent.h" +#include "hsmenueventfactory.h" #include "hsmenuservice.h" #include "hsmenumodewrapper.h" #include "hsmenuitemmodel.h" -#include "hsmenuviewbuilder.h" -#include "cadefs.h" -#include "caentry.h" #include "hscollectionstate.h" #include "hsaddappstocollectionstate.h" -#include "hsapp_defs.h" -#include "hsmainwindow.h" /*! \class HsCollectionState @@ -55,11 +51,6 @@ */ /*! - \var HsCollectionState::mCollectionsSortAttribute - All collections sort order. - */ - -/*! \var HsCollectionState::mCollectionId The id of the current collection. */ @@ -69,35 +60,6 @@ The type of the current collection. */ -/*! - \var HsCollectionState::mMenuView - The List View widget. - */ - -/*! - \var HsCollectionState::mSecondarySoftkeyAction - Secondary Softkey action. - Backstepping functionality. - Own. - */ - -/*! - \var HsCollectionState::mOldNavigationAction - Old navigation icon. - Not own. - */ - -/*! - \var HsCollectionState::mCollectionModel - Item Model for the List. - Own. - */ - -/*! - \var HsCollectionState::mOptions - Options menu. - Own. - */ /*! \fn void HsCollectionState::sortOrderChanged(SHsSortAttribute sortOrder); @@ -114,24 +76,19 @@ /*! Constructor. \param menuViewBuilder Menu view builder. - \param menuMode reference to object representing menu mode (add mode on/add mode off). + \param menuMode menu mode object (add mode on/add mode off). + \param mainWindow main window wrapper. \param parent Owner. */ HsCollectionState::HsCollectionState(HsMenuViewBuilder &menuViewBuilder, HsMenuModeWrapper &menuMode, HsMainWindow &mainWindow, QState *parent) : - HsBaseViewState(parent), + HsBaseViewState(mainWindow, menuMode, parent), mSortAttribute(LatestOnTopHsSortAttribute), - mCollectionsSortAttribute(CustomHsSortAttribute), - mCollectionId(-1), - mMenuView(menuViewBuilder, HsCollectionContext), - mMenuMode(menuMode), - mSecondarySoftkeyAction(new HbAction(Hb::BackNaviAction, this)), - mCollectionModel(0), - mOptions(0), mContextModelIndex(), mContextMenu(0), - mMainWindow(mainWindow) + mCollectionId(-1) { + initialize(menuViewBuilder, HsCollectionContext); construct(); } @@ -146,12 +103,7 @@ parent() != 0 ? parent()->objectName() : QString(""); setObjectName(parentName + "/collectionstate"); - connect(this, SIGNAL(entered()),SLOT(stateEntered())); - connect(this, SIGNAL(exited()),SLOT(stateExited())); - - mMenuView.collectionButton()->setCheckable(true); - makeConnect(); - mMenuView.view()->setNavigationAction(mSecondarySoftkeyAction); + mMenuView->collectionButton()->setCheckable(true); HSMENUTEST_FUNC_EXIT("HsCollectionState::construct"); } @@ -161,11 +113,8 @@ */ HsCollectionState::~HsCollectionState() { - makeDisconnect(); - mMenuView.inactivate(); - mMenuView.setModel(NULL); - mMenuView.view()->setNavigationAction(NULL); - delete mCollectionModel; + mMenuView->inactivate(); + mMenuView->view()->setNavigationAction(NULL); } @@ -192,101 +141,114 @@ /*! Slot invoked when a state is entered. */ - - void HsCollectionState::stateEntered() { HSMENUTEST_FUNC_ENTRY("HsCollectionState::stateEntered"); - - mMainWindow.setCurrentView(mMenuView); - mMenuView.activate(); - - if (!mCollectionModel) { - mCollectionModel = + HsBaseViewState::stateEntered(); + makeConnect(); + if (!mModel) { + mModel = HsMenuService::getCollectionModel( mCollectionId, mSortAttribute, mCollectionType); } - + EntryFlags flags = - mCollectionModel->root().data(CaItemModel::FlagsRole).value< + mModel->root().data(CaItemModel::FlagsRole).value< EntryFlags> (); - if (mCollectionModel->rowCount() == 0){ + if (mModel->rowCount() == 0){ if (flags & RemovableEntryFlag){ - mMenuView.setContext(HsCollectionContext,HsButtonContext); + mMenuView->setContext(HsCollectionContext,HsButtonContext); } else { - mMenuView.setContext(HsCollectionContext,HsEmptyLabelContext); + mMenuView->setContext(HsCollectionContext,HsEmptyLabelContext); } - mMenuView.disableSearch(true); + mMenuView->disableSearch(true); } else { - mMenuView.setContext(HsCollectionContext,HsItemViewContext); - mMenuView.disableSearch(false); + mMenuView->setContext(HsCollectionContext,HsItemViewContext); + mMenuView->disableSearch(false); } - connect(mCollectionModel, SIGNAL(modelReset()), SLOT(updateLabel())); - connect(mCollectionModel, SIGNAL(empty(bool)),this, + connect(mModel, SIGNAL(modelReset()), SLOT(updateLabel())); + connect(mModel, SIGNAL(empty(bool)),this, SLOT(handleEmptyChange(bool))); - connect(mCollectionModel, SIGNAL(empty(bool)),this, + connect(mModel, SIGNAL(empty(bool)),this, SLOT(lockSearchButton(bool))); - mMenuView.setModel(mCollectionModel); + mMenuView->setModel(mModel); + + mMenuView->listView()->scrollTo( + mModel->index(0), HbAbstractItemView::PositionAtTop); - mMenuView.listView()->scrollTo( - mCollectionModel->index(0), HbAbstractItemView::PositionAtTop); + mMenuView->viewLabel()->setHeading( + mModel->root().data(Qt::DisplayRole).toString()); + setMenuOptions(); + + HSMENUTEST_FUNC_EXIT("HsCollectionState::stateEntered"); +} - mMenuView.viewLabel()->setHeading( - mCollectionModel->root().data(Qt::DisplayRole).toString()); +/*! + Creates and installs menu options for the view + */ +void HsCollectionState::setMenuOptions() +{ + HSMENUTEST_FUNC_ENTRY("HsAllCollectionsState::setMenuOptions"); - if (!mOptions) { - mOptions = new HbMenu(); - mOptions->addAction(hbTrId("txt_applib_opt_task_switcher"), - this, + EntryFlags flags = + mModel->root().data(CaItemModel::FlagsRole).value (); + + QScopedPointer viewOptions(new HbMenu); + + viewOptions->addAction(hbTrId("txt_applib_opt_task_switcher"), + static_cast(this), SLOT(openTaskSwitcher())); - if (flags & RemovableEntryFlag) { - mOptions->addAction(hbTrId("txt_applib_opt_add_content"), this, - SLOT(addAppsAction())); - } - - mOptions->addAction(hbTrId("txt_applib_opt_add_to_home_screen"), - this, SLOT(addCollectionShortcutToHomeScreenAction())); + if (flags & RemovableEntryFlag) { + viewOptions->addAction(hbTrId("txt_applib_opt_add_content"), this, + SLOT(addAppsAction())); + } - if (flags & RemovableEntryFlag) { - mOptions->addAction( - hbTrId("txt_common_opt_rename_item"), + viewOptions->addAction(hbTrId("txt_applib_opt_add_to_home_screen"), + this, SLOT(addCollectionShortcutToHomeScreenAction())); + + if (flags & RemovableEntryFlag) { + if (mModel->rowCount() > 0) { + viewOptions->addAction( + hbTrId("txt_applib_opt_arrange"), this, - SLOT(renameAction())); - mOptions->addAction( - hbTrId("txt_common_opt_delete"), - this, - SLOT(deleteAction())); + SLOT(createArrangeCollection())); } - if (mCollectionType == collectionDownloadedTypeName()) { - HbMenu *sortMenu = mOptions->addMenu( - hbTrId("txt_applib_opt_sort_by")); - //Grouped options are exclusive by default. - QActionGroup *sortGroup = new QActionGroup(mOptions); - sortGroup->addAction( - sortMenu->addAction( - hbTrId("txt_applib_opt_sort_by_sub_latest_on_top"), - this, - SLOT(latestOnTopMenuAction()))); - sortGroup->addAction( - sortMenu->addAction( - hbTrId("txt_applib_opt_sort_by_sub_oldest_on_top"), - this, - SLOT(oldestOnTopMenuAction()))); - foreach(QAction *action, sortMenu->actions()) { - action->setCheckable(true); - } - static const int defaultSortingPosition = 0; - sortGroup->actions().at(defaultSortingPosition)->setChecked(true); + viewOptions->addAction( + hbTrId("txt_common_opt_rename_item"), + this, + SLOT(renameAction())); + viewOptions->addAction( + hbTrId("txt_common_opt_delete"), + this, + SLOT(deleteAction())); + } + if (mCollectionType == collectionDownloadedTypeName()) { + HbMenu *sortMenu = viewOptions->addMenu( + hbTrId("txt_applib_opt_sort_by")); + //Grouped options are exclusive by default. + QActionGroup *sortGroup = new QActionGroup(viewOptions.data()); + sortGroup->addAction( + sortMenu->addAction( + hbTrId("txt_applib_opt_sort_by_sub_latest_on_top"), + this, + SLOT(latestOnTopMenuAction()))); + sortGroup->addAction( + sortMenu->addAction( + hbTrId("txt_applib_opt_sort_by_sub_oldest_on_top"), + this, + SLOT(oldestOnTopMenuAction()))); + foreach(QAction *action, sortMenu->actions()) { + action->setCheckable(true); } - - mOptions->setParent(this); - mMenuView.view()->setMenu(mOptions); + static const int defaultSortingPosition = 0; + sortGroup->actions().at(defaultSortingPosition)->setChecked(true); } - HSMENUTEST_FUNC_EXIT("HsCollectionState::stateEntered"); + mMenuView->view()->setMenu(viewOptions.take()); + HSMENUTEST_FUNC_EXIT("HsAllCollectionsState::setMenuOptions"); } /*! @@ -295,29 +257,22 @@ void HsCollectionState::stateExited() { HSMENUTEST_FUNC_ENTRY("HsCollectionState::stateExited"); - - mMenuView.inactivate(); - mMenuView.setSearchPanelVisible(false); - mMenuView.disableSearch(false); - disconnect(mCollectionModel, SIGNAL(empty(bool)),this, + makeDisconnect(); + mMenuView->disableSearch(false); + disconnect(mModel, SIGNAL(empty(bool)),this, SLOT(handleEmptyChange(bool))); - disconnect(mCollectionModel, SIGNAL(empty(bool)),this, + disconnect(mModel, SIGNAL(empty(bool)),this, SLOT(lockSearchButton(bool))); - disconnect(mCollectionModel, SIGNAL(modelReset()), + disconnect(mModel, SIGNAL(modelReset()), this, SLOT(updateLabel())); - delete mCollectionModel; - mCollectionModel = NULL; - mOptions->close(); - delete mOptions; - mOptions = NULL; - if (mContextMenu) - mContextMenu->close(); + delete mModel; + mModel = NULL; this->mSortAttribute = NoHsSortAttribute; - + HsBaseViewState::stateExited(); - + HSMENUTEST_FUNC_EXIT("HsCollectionState::stateExited"); qDebug("CollectionState::stateExited()"); } @@ -327,15 +282,21 @@ */ void HsCollectionState::makeConnect() { - connect(mSecondarySoftkeyAction, SIGNAL(triggered()), - SLOT(backSteppingAction())); - connect(&mMenuView, + connect(mBackKeyAction, SIGNAL(triggered()), + static_cast(this), SLOT(openAppLibrary())); + connect(mMenuView.data(), + SIGNAL(activated(QModelIndex)), + static_cast(this), + SLOT(launchItem(QModelIndex))); + connect(mMenuView.data(), SIGNAL(activated(QModelIndex)), - SLOT(listItemActivated(QModelIndex))); - connect(&mMenuView, + mMenuView.data(), + SLOT(hideSearchPanel())); + connect(mMenuView.data(), SIGNAL(longPressed(HbAbstractViewItem *, QPointF)), - SLOT(listItemLongPressed(HbAbstractViewItem *, QPointF))); - connect(mMenuView.collectionButton(), + static_cast(this), + SLOT(showContextMenu(HbAbstractViewItem *, QPointF))); + connect(mMenuView->collectionButton(), SIGNAL(toggled(bool)), this, SLOT(addAppsAction(bool))); } @@ -344,130 +305,24 @@ */ void HsCollectionState::makeDisconnect() { - disconnect(mMenuView.collectionButton(), + disconnect(mMenuView->collectionButton(), SIGNAL(toggled(bool)), this, SLOT(addAppsAction(bool))); - disconnect(mSecondarySoftkeyAction, SIGNAL(triggered()), - this, SLOT(backSteppingAction())); - - disconnect(&mMenuView, - SIGNAL(activated(QModelIndex)), - this, SLOT(listItemActivated(QModelIndex))); - - disconnect(&mMenuView, - SIGNAL(longPressed(HbAbstractViewItem *, QPointF)), - this, SLOT(listItemLongPressed(HbAbstractViewItem *, QPointF))); -} - -/*! - Open task switcher. - \retval true if operation is successful. - */ -bool HsCollectionState::openTaskSwitcher() -{ - return HsMenuService::launchTaskSwitcher(); -} - -/*! - Slot connected to List widget. - \param index Model index of the activated item. - */ -void HsCollectionState::listItemActivated(const QModelIndex &index) -{ - HSMENUTEST_FUNC_ENTRY("HsCollectionState::listItemActivated"); - - QSharedPointer entry = mCollectionModel->entry(index); - - if (entry->entryTypeName() == widgetTypeName()) { - EntryFlags flags = index.data(CaItemModel::FlagsRole).value< - EntryFlags> (); - if (!(flags & UninstallEntryFlag)) { - machine()->postEvent( - HsMenuEventFactory::createPreviewHSWidgetEvent( - entry->id(), entry->entryTypeName(), entry->attribute( - widgetUriAttributeName()), entry->attribute( - widgetLibraryAttributeName()))); - - const int itemId = index.data(CaItemModel::IdRole).toInt(); - HsMenuService::touch(itemId); - } - } else { - QVariant data = mCollectionModel->data(index, CaItemModel::IdRole); - int errCode = HsMenuService::executeAction(data.toInt()); - if (errCode != 0) { - createApplicationLaunchFailMessage(errCode,index.data(CaItemModel::IdRole).toInt()); - } - } - - mMenuView.setSearchPanelVisible(false); - HSMENUTEST_FUNC_EXIT("HsCollectionState::listItemActivated"); -} + disconnect(mBackKeyAction, SIGNAL(triggered()), + static_cast(this), SLOT(openAppLibrary())); -/*! - Handles long-item-pressed event in all apps view by showing context menu - \param item the event pertains to - \param coords press point coordinates. - \retval void - */ -void HsCollectionState::listItemLongPressed(HbAbstractViewItem *item, - const QPointF &coords) -{ - HSMENUTEST_FUNC_ENTRY("HsCollectionState::listItemLongPressed"); - - EntryFlags flags = item->modelIndex().data(CaItemModel::FlagsRole).value< - EntryFlags> (); - - if (!(flags & UninstallEntryFlag)) { - // create context menu - mContextMenu = new HbMenu(); - - HbAction *addShortcutAction = mContextMenu->addAction(hbTrId( - "txt_applib_menu_add_to_home_screen")); - addShortcutAction->setData(AddToHomeScreenContextAction); - HbAction *addToCollection = mContextMenu->addAction(hbTrId( - "txt_applib_menu_add_to_collection")); - addToCollection->setData(AddToCollectionContextAction); - 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 = - mCollectionModel->root().data(CaItemModel::FlagsRole).value< - EntryFlags> (); - - if (rootFlags & RemovableEntryFlag) { - removeAction = mContextMenu->addAction( - hbTrId("txt_applib_menu_remove_from_collection")); - removeAction->setData(RemoveFromCollectionContextAction); - } - - if ((flags & RemovableEntryFlag)) { - uninstallAction = mContextMenu->addAction(hbTrId("txt_common_menu_delete")); - uninstallAction->setData(UninstallContextAction); - } - QSharedPointer entry = mCollectionModel->entry(item->modelIndex()); - - if (!(entry->attribute(appSettingsPlugin()).isEmpty())) { - appSettingsAction = mContextMenu->addAction(hbTrId( - "txt_common_menu_settings")); - appSettingsAction->setData(AppSettingContextAction); - } - - if (!(entry->attribute(componentIdAttributeName()).isEmpty()) && - (flags & RemovableEntryFlag) ) { - appDetailsAction = mContextMenu->addAction(hbTrId( - "txt_common_menu_details")); - appDetailsAction->setData(AppDetailsContextAction); - } - mContextModelIndex = item->modelIndex(); - mContextMenu->setPreferredPos(coords); - mContextMenu->setAttribute(Qt::WA_DeleteOnClose); - mContextMenu->open(this, SLOT(contextMenuAction(HbAction*))); - } - - HSMENUTEST_FUNC_EXIT("HsCollectionState::listItemLongPressed"); + disconnect(mMenuView.data(), + SIGNAL(activated(QModelIndex)), + 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))); } /*! @@ -475,7 +330,7 @@ */ void HsCollectionState::contextMenuAction(HbAction *action) { - HsContextAction command = + HsContextAction command = static_cast(action->data().toInt()); const int itemId = mContextModelIndex.data(CaItemModel::IdRole).toInt(); @@ -486,8 +341,8 @@ break; case AddToCollectionContextAction: machine()->postEvent( - HsMenuEventFactory::createAddAppsFromCallectionViewEvent( - mCollectionId, itemId, mCollectionsSortAttribute)); + HsMenuEventFactory::createAddAppsFromCollectionViewEvent( + mCollectionId, itemId)); break; case UninstallContextAction: machine()->postEvent( @@ -499,66 +354,68 @@ HsMenuEventFactory::createRemoveAppFromCollectionEvent( itemId, mCollectionId)); break; - case AppSettingContextAction: + case AppSettingContextAction: machine()->postEvent( HsMenuEventFactory::createAppSettingsViewEvent(itemId)); break; - case AppDetailsContextAction: + case AppDetailsContextAction: machine()->postEvent( HsMenuEventFactory::createAppDetailsViewEvent(itemId)); - break; + break; default: break; } - - mMenuView.setSearchPanelVisible(false); + + mMenuView->setSearchPanelVisible(false); } /*! Handles button visibility - \param empty if true set empty text label or button to add entries to collection + \param empty if true set empty text label or button to add entries to collection. */ void HsCollectionState::handleEmptyChange(bool empty) { EntryFlags flags = - mCollectionModel->root().data(CaItemModel::FlagsRole).value< + mModel->root().data(CaItemModel::FlagsRole).value< EntryFlags> (); if (empty){ if (flags & RemovableEntryFlag){ - mMenuView.setContext(HsCollectionContext,HsButtonContext); + mMenuView->setContext(HsCollectionContext,HsButtonContext); } else { - mMenuView.setContext(HsCollectionContext,HsEmptyLabelContext); + mMenuView->setContext(HsCollectionContext,HsEmptyLabelContext); } } else { - mMenuView.setContext(HsCollectionContext,HsItemViewContext); + mMenuView->setContext(HsCollectionContext,HsItemViewContext); } + setMenuOptions(); } /*! - Handles lock serch button - \param lock if true lock search button + Handles lock search button + \param lock if true lock search button. */ void HsCollectionState::lockSearchButton(bool lock) { - mMenuView.disableSearch(lock); + mMenuView->disableSearch(lock); } /*! Menu add applications action slot - \param addApps if true create event for add enties to collection. Parametr use by toggled from HbPushButton + \param addApps if true create event for add enties to collection. + Parametr use by toggled from HbPushButton */ void HsCollectionState::addAppsAction(bool addApps) { // Add applications if (addApps) { - mMenuView.collectionButton()->setChecked(false); + mMenuView->collectionButton()->setChecked(false); machine()->postEvent( - HsMenuEventFactory::createAddAppsFromCallectionViewEvent( + HsMenuEventFactory::createAddAppsFromCollectionViewEvent( mCollectionId)); - } + } } /*! @@ -567,8 +424,8 @@ void HsCollectionState::addCollectionShortcutToHomeScreenAction() { machine()->postEvent(HsMenuEventFactory::createAddToHomeScreenEvent( - mCollectionId, mMenuMode.getHsMenuMode(), - mMenuMode.getHsToken())); + mCollectionId, mMenuMode->getHsMenuMode(), + mMenuMode->getHsToken())); } /*! @@ -590,40 +447,79 @@ } /*! - Menu softkey back action slot - */ -void HsCollectionState::backSteppingAction() -{ - machine()->postEvent(HsMenuEventFactory::createOpenAppLibraryEvent()); -} - -/*! Updates label */ void HsCollectionState::updateLabel() { HSMENUTEST_FUNC_ENTRY("HsCollectionState::updateLabel"); - if (mCollectionModel) { - mMenuView.viewLabel()->setHeading( - mCollectionModel->root().data(Qt::DisplayRole).toString()); + if (mModel) { + mMenuView->viewLabel()->setHeading( + mModel->root().data(Qt::DisplayRole).toString()); } HSMENUTEST_FUNC_EXIT("HsCollectionState::updateLabel"); } /*! Triggers event so that a state adding to Home Screen is reached - \param index of an item to be added to homescreen + \param index of an item to be added to homescreen. \retval void */ void HsCollectionState::addElementToHomeScreen(const QModelIndex &index) { - QSharedPointer entry = mCollectionModel->entry(index); + QSharedPointer entry = mModel->entry(index); QMap attributes = entry->attributes(); machine()->postEvent( HsMenuEventFactory::createAddToHomeScreenEvent( - entry->id(), mMenuMode.getHsMenuMode(), mMenuMode.getHsToken())); + entry->id(), mMenuMode->getHsMenuMode(), mMenuMode->getHsToken())); +} + +/*! + Method seting context menu options. + */ +void HsCollectionState::setContextMenuOptions(HbAbstractViewItem *item, EntryFlags flags) +{ + HbAction *addShortcutAction = mContextMenu->addAction(hbTrId( + "txt_applib_menu_add_to_home_screen")); + addShortcutAction->setData(AddToHomeScreenContextAction); + HbAction *addToCollection = mContextMenu->addAction(hbTrId( + "txt_applib_menu_add_to_collection")); + addToCollection->setData(AddToCollectionContextAction); + 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 = + mModel->root().data(CaItemModel::FlagsRole).value< + EntryFlags> (); + + if (rootFlags & RemovableEntryFlag) { + removeAction = mContextMenu->addAction( + hbTrId("txt_applib_menu_remove_from_collection")); + removeAction->setData(RemoveFromCollectionContextAction); + } + + if ((flags & RemovableEntryFlag)) { + uninstallAction = mContextMenu->addAction(hbTrId("txt_common_menu_delete")); + uninstallAction->setData(UninstallContextAction); + } + QSharedPointer entry = mModel->entry(item->modelIndex()); + + if (!(entry->attribute(appSettingsPlugin()).isEmpty())) { + appSettingsAction = mContextMenu->addAction(hbTrId( + "txt_common_menu_settings")); + appSettingsAction->setData(AppSettingContextAction); + } + + if (!(entry->attribute(componentIdAttributeName()).isEmpty()) && + (flags & RemovableEntryFlag) ) { + appDetailsAction = mContextMenu->addAction(hbTrId( + "txt_common_menu_details")); + appDetailsAction->setData(AppDetailsContextAction); + } } /*! @@ -633,7 +529,7 @@ void HsCollectionState::latestOnTopMenuAction() { mSortAttribute = LatestOnTopHsSortAttribute; - mCollectionModel->setSort(mSortAttribute); + mModel->setSort(mSortAttribute); emit sortOrderChanged(mSortAttribute); } @@ -644,16 +540,29 @@ void HsCollectionState::oldestOnTopMenuAction() { mSortAttribute = OldestOnTopHsSortAttribute; - mCollectionModel->setSort(mSortAttribute); + mModel->setSort(mSortAttribute); emit sortOrderChanged(mSortAttribute); } /*! - Slot for setting all collections sort order - \param sortOrder all collections sort order + A Slot called when an arrange operation + is invoked for a static collection. */ -void HsCollectionState::collectionsSortOrder( - HsSortAttribute sortOrder) +void HsCollectionState::createArrangeCollection() { - mCollectionsSortAttribute = sortOrder; + // Arrange collection via the Arrange view + int topItemId(0); + + const QList array = + mMenuView->listView()->visibleItems(); + + if (array.count() >= 1) { + QModelIndex idx = array[0]->modelIndex(); + topItemId = idx.data(CaItemModel::IdRole).toInt(); + } + + machine()->postEvent( + HsMenuEventFactory::createArrangeCollectionEvent( + topItemId, + mCollectionId)); }