210 this, SLOT(latestOnTopMenuAction())); |
210 this, SLOT(latestOnTopMenuAction())); |
211 mOldestOnTopMenuAction = mViewOptions->addAction( |
211 mOldestOnTopMenuAction = mViewOptions->addAction( |
212 hbTrId("txt_applib_menu_sort_by_oldest_on_top"), |
212 hbTrId("txt_applib_menu_sort_by_oldest_on_top"), |
213 this, SLOT(oldestOnTopMenuAction())); |
213 this, SLOT(oldestOnTopMenuAction())); |
214 |
214 |
215 if(mSortAttribute == Hs::LatestOnTopHsSortAttribute) |
215 //Default is LatestOnTopHsSortAttribute |
|
216 if(mSortAttribute == Hs::OldestOnTopHsSortAttribute) |
216 { |
217 { |
|
218 mOldestOnTopMenuAction->setVisible(false); |
|
219 } else { |
217 mLatestOnTopMenuAction->setVisible(false); |
220 mLatestOnTopMenuAction->setVisible(false); |
218 } else { |
|
219 mOldestOnTopMenuAction->setVisible(false); |
|
220 } |
221 } |
221 |
222 } |
222 } |
223 if (mCollectionType == Hs::collectionDownloadedTypeName) { |
223 |
224 mViewOptions->addAction(hbTrId("txt_applib_opt_check_software_updates"), |
224 |
225 static_cast<HsBaseViewState*>(this), SLOT(checkSoftwareUpdates())); |
|
226 mViewOptions->addAction( |
|
227 hbTrId("txt_applib_opt_view_installed_applications"), |
|
228 static_cast<HsBaseViewState*>(this), |
|
229 SLOT(openInstalledViewFromCollection())); |
|
230 } |
225 mMenuView->view()->setMenu(mViewOptions); |
231 mMenuView->view()->setMenu(mViewOptions); |
226 HSMENUTEST_FUNC_EXIT("HsAllCollectionsState::setMenuOptions"); |
232 HSMENUTEST_FUNC_EXIT("HsAllCollectionsState::setMenuOptions"); |
227 } |
233 } |
228 |
234 |
229 /*! |
235 /*! |
297 Handles context menu actions |
303 Handles context menu actions |
298 \param action action taken in context menu |
304 \param action action taken in context menu |
299 */ |
305 */ |
300 void HsCollectionState::contextMenuAction(HbAction *action) |
306 void HsCollectionState::contextMenuAction(HbAction *action) |
301 { |
307 { |
302 Hs::HsContextAction command = static_cast<Hs::HsContextAction> (action->data().toInt()); |
308 const int itemId = mContextModelIndex.data(CaItemModel::IdRole).toInt(); |
303 |
309 |
304 if (command == Hs::RemoveFromCollectionContextAction) { |
310 if (itemId > 0) { |
305 const int itemId = mContextModelIndex.data( |
311 Hs::HsContextAction command = |
306 CaItemModel::IdRole).toInt(); |
312 static_cast<Hs::HsContextAction> (action->data().toInt()); |
307 machine()->postEvent( |
313 |
308 HsMenuEventFactory::createRemoveAppFromCollectionEvent(itemId, |
314 if (command == Hs::RemoveFromCollectionContextAction) { |
309 mCollectionId)); |
315 machine()->postEvent( |
310 HsMenuService::touch(itemId); |
316 HsMenuEventFactory::createRemoveAppFromCollectionEvent(itemId, |
311 } else if ( |
317 mCollectionId)); |
312 command == Hs::AddToCollectionFromCollectionViewContextAction) { |
318 HsMenuService::touch(itemId); |
313 const int itemId = mContextModelIndex.data( |
319 } else if ( |
314 CaItemModel::IdRole).toInt(); |
320 command == Hs::AddToCollectionFromCollectionViewContextAction) { |
315 machine()->postEvent( |
321 machine()->postEvent( |
316 HsMenuEventFactory::createAddAppsFromCollectionViewEvent( |
322 HsMenuEventFactory::createAddAppsFromCollectionViewEvent( |
317 mCollectionId, itemId)); |
323 mCollectionId, itemId)); |
318 HsMenuService::touch(itemId); |
324 HsMenuService::touch(itemId); |
|
325 } else { |
|
326 HsBaseViewState::contextMenuAction(action); |
|
327 } |
319 } else { |
328 } else { |
320 HsBaseViewState::contextMenuAction(action); |
329 closeContextMenu(); |
321 } |
330 } |
322 } |
331 } |
323 |
332 |
324 /*! |
333 /*! |
325 Handler to be called when model becomes not empty or model becomes empty. |
334 Handler to be called when model becomes not empty or model becomes empty. |
434 removeAction = mContextMenu->addAction( |
443 removeAction = mContextMenu->addAction( |
435 hbTrId("txt_applib_menu_remove_from_collection")); |
444 hbTrId("txt_applib_menu_remove_from_collection")); |
436 removeAction->setData(Hs::RemoveFromCollectionContextAction); |
445 removeAction->setData(Hs::RemoveFromCollectionContextAction); |
437 } |
446 } |
438 |
447 |
439 if ((flags & RemovableEntryFlag)) { |
|
440 uninstallAction = mContextMenu->addAction(hbTrId("txt_common_menu_delete")); |
|
441 uninstallAction->setData(Hs::UninstallContextAction); |
|
442 } |
|
443 QSharedPointer<const CaEntry> entry = mModel->entry(item->modelIndex()); |
448 QSharedPointer<const CaEntry> entry = mModel->entry(item->modelIndex()); |
444 |
449 |
445 if (!(entry->attribute(Hs::appSettingsPlugin).isEmpty())) { |
450 if (!(entry->attribute(Hs::appSettingsPlugin).isEmpty())) { |
446 appSettingsAction = mContextMenu->addAction(hbTrId( |
451 appSettingsAction = mContextMenu->addAction(hbTrId( |
447 "txt_common_menu_settings")); |
452 "txt_common_menu_settings")); |
448 appSettingsAction->setData(Hs::AppSettingContextAction); |
453 appSettingsAction->setData(Hs::AppSettingContextAction); |
|
454 } |
|
455 |
|
456 if ((flags & RemovableEntryFlag)) { |
|
457 uninstallAction = mContextMenu->addAction(hbTrId("txt_common_menu_delete")); |
|
458 uninstallAction->setData(Hs::UninstallContextAction); |
449 } |
459 } |
450 |
460 |
451 if (!(entry->attribute(Hs::componentIdAttributeName).isEmpty()) && |
461 if (!(entry->attribute(Hs::componentIdAttributeName).isEmpty()) && |
452 (flags & RemovableEntryFlag) ) { |
462 (flags & RemovableEntryFlag) ) { |
453 appDetailsAction = mContextMenu->addAction(hbTrId( |
463 appDetailsAction = mContextMenu->addAction(hbTrId( |
505 machine()->postEvent( |
515 machine()->postEvent( |
506 HsMenuEventFactory::createArrangeCollectionEvent( |
516 HsMenuEventFactory::createArrangeCollectionEvent( |
507 topItemId, |
517 topItemId, |
508 mCollectionId)); |
518 mCollectionId)); |
509 } |
519 } |
|
520 |
|
521 /*! |
|
522 Triggers event so that an installed applications state is entered. |
|
523 */ |
|
524 #ifdef COVERAGE_MEASUREMENT |
|
525 #pragma CTC SKIP |
|
526 #endif //COVERAGE_MEASUREMENT |
|
527 void HsCollectionState::openInstalledViewFromCollection() |
|
528 { |
|
529 machine()->postEvent( |
|
530 HsMenuEventFactory::createOpenInstalledViewEvent( |
|
531 mCollectionId, mCollectionType)); |
|
532 } |
|
533 #ifdef COVERAGE_MEASUREMENT |
|
534 #pragma CTC ENDSKIP |
|
535 #endif //COVERAGE_MEASUREMENT |