homescreenapp/stateplugins/hsapplibrarystateplugin/src/hsinstalledappsstate.cpp
changeset 55 03646e8da489
parent 51 4785f57bf3d4
child 60 30f14686fb04
child 62 341166945d65
equal deleted inserted replaced
51:4785f57bf3d4 55:03646e8da489
   156         mInstalledAppsModel
   156         mInstalledAppsModel
   157         = HsMenuService::getInstalledModel(AscendingNameHsSortAttribute);
   157         = HsMenuService::getInstalledModel(AscendingNameHsSortAttribute);
   158         mMenuView.setModel(mInstalledAppsModel);
   158         mMenuView.setModel(mInstalledAppsModel);
   159     }
   159     }
   160 
   160 
       
   161     if (mInstalledAppsModel->rowCount() == 0){
       
   162         mMenuView.setContext(HsInstalledAppsContext,HsEmptyLabelContext);
       
   163         }
       
   164 
   161     mMenuView.listView()->scrollTo(
   165     mMenuView.listView()->scrollTo(
   162         mInstalledAppsModel->index(0));
   166         mInstalledAppsModel->index(0));
   163 
   167 
   164     connect(&mMenuView,
   168     connect(&mMenuView,
   165             SIGNAL(activated(QModelIndex)),
   169             SIGNAL(activated(QModelIndex)),
   166             SLOT(listItemActivated(QModelIndex)));
   170             SLOT(listItemActivated(QModelIndex)));
   167     connect(&mMenuView,
   171     connect(&mMenuView,
   168             SIGNAL(longPressed(HbAbstractViewItem *, QPointF)),
   172             SIGNAL(longPressed(HbAbstractViewItem *, QPointF)),
   169             SLOT(listItemLongPressed(HbAbstractViewItem *, QPointF)));
   173             SLOT(listItemLongPressed(HbAbstractViewItem *, QPointF)));
   170 
   174 
       
   175     connect(mInstalledAppsModel, SIGNAL(empty(bool)),this,
       
   176             SLOT(setEmptyLabelVisibility(bool)));
       
   177 
   171     mMenuView.viewLabel()->setHeading(
   178     mMenuView.viewLabel()->setHeading(
   172         hbTrId("txt_applib_subtitle_installed"));
   179         hbTrId("txt_applib_subtitle_installed"));
   173 
   180 
   174     HSMENUTEST_FUNC_EXIT("HsInstalledAppsState::stateEntered");
   181     HSMENUTEST_FUNC_EXIT("HsInstalledAppsState::stateEntered");
   175 }
   182 }
   179  */
   186  */
   180 void HsInstalledAppsState::stateExited()
   187 void HsInstalledAppsState::stateExited()
   181 {
   188 {
   182     HSMENUTEST_FUNC_ENTRY("HsInstalledAppsState::stateExited");
   189     HSMENUTEST_FUNC_ENTRY("HsInstalledAppsState::stateExited");
   183 
   190 
       
   191     disconnect(mInstalledAppsModel, SIGNAL(empty(bool)),this,
       
   192                SLOT(setEmptyLabelVisibility(bool)));
       
   193 
   184     mMenuView.setSearchPanelVisible(false);
   194     mMenuView.setSearchPanelVisible(false);
   185     mMenuView.inactivate();
   195     mMenuView.inactivate();
   186 
   196 
   187     if (mContextMenu)
   197     if (mContextMenu)
   188         mContextMenu->close();
   198         mContextMenu->close();
   189     
   199     
   190     HSMENUTEST_FUNC_EXIT("HsInstalledAppsState::stateExited");
   200     HSMENUTEST_FUNC_EXIT("HsInstalledAppsState::stateExited");
   191     qDebug("AllAppsState::stateExited()");
   201     qDebug("AllAppsState::stateExited()");
       
   202 }
       
   203 
       
   204 /*!
       
   205  Handles button visibility
       
   206  */
       
   207 void HsInstalledAppsState::setEmptyLabelVisibility(bool visibility)
       
   208 {
       
   209     if(visibility){
       
   210         mMenuView.setContext(HsInstalledAppsContext,HsEmptyLabelContext);
       
   211     } else {
       
   212         mMenuView.setContext(HsInstalledAppsContext,HsItemViewContext);
       
   213     }
   192 }
   214 }
   193 
   215 
   194 /*!
   216 /*!
   195  Open task switcher.
   217  Open task switcher.
   196  \retval true if operation is successful.
   218  \retval true if operation is successful.
   231     // create context menu
   253     // create context menu
   232     mContextMenu = new HbMenu();
   254     mContextMenu = new HbMenu();
   233 
   255 
   234     HbAction *uninstallAction = mContextMenu->addAction(
   256     HbAction *uninstallAction = mContextMenu->addAction(
   235                                     hbTrId("txt_common_menu_delete"));
   257                                     hbTrId("txt_common_menu_delete"));
       
   258     HbAction *appDetailsAction(NULL);
   236     uninstallAction->setData(UninstallContextAction);
   259     uninstallAction->setData(UninstallContextAction);
       
   260     
       
   261     QSharedPointer<const CaEntry> entry = mInstalledAppsModel->entry(item->modelIndex());
       
   262     EntryFlags flags = item->modelIndex().data(
       
   263                            CaItemModel::FlagsRole).value<EntryFlags> ();
       
   264     
       
   265     if (!(entry->attribute(componentIdAttributeName()).isEmpty()) && 
       
   266             (flags & RemovableEntryFlag) ) {
       
   267         appDetailsAction = mContextMenu->addAction(hbTrId(
       
   268                                                 "txt_common_menu_details"));
       
   269         appDetailsAction->setData(AppDetailsContextAction);
       
   270     }      
   237 
   271 
   238     mContextModelIndex = item->modelIndex();
   272     mContextModelIndex = item->modelIndex();
   239     mContextMenu->setPreferredPos(coords);
   273     mContextMenu->setPreferredPos(coords);
   240     mContextMenu->setAttribute(Qt::WA_DeleteOnClose);
   274     mContextMenu->setAttribute(Qt::WA_DeleteOnClose);
   241     mContextMenu->open(this, SLOT(contextMenuAction(HbAction*)));
   275     mContextMenu->open(this, SLOT(contextMenuAction(HbAction*)));
   249 
   283 
   250 /*!
   284 /*!
   251  Handles context menu actions
   285  Handles context menu actions
   252  */
   286  */
   253 void HsInstalledAppsState::contextMenuAction(HbAction *action)
   287 void HsInstalledAppsState::contextMenuAction(HbAction *action)
   254 {
   288 {    
   255     HsContextAction command = static_cast<HsContextAction>(action->data().toInt());
   289     HsContextAction command = 
   256     if (command == UninstallContextAction) {
   290             static_cast<HsContextAction>(action->data().toInt());
   257         const int itemId = mContextModelIndex.data(
   291     
   258                                    CaItemModel::IdRole).toInt();
   292     const int itemId = mContextModelIndex.data(CaItemModel::IdRole).toInt();
   259         HsMenuService::executeAction(itemId, removeActionIdentifier());
   293     
   260     }   
   294     switch (command) {
       
   295         case UninstallContextAction:
       
   296             machine()->postEvent(
       
   297                 HsMenuEventFactory::createUninstallApplicationEvent(
       
   298                     itemId));
       
   299             break;
       
   300         case AppDetailsContextAction: 
       
   301             machine()->postEvent(
       
   302                 HsMenuEventFactory::createAppDetailsViewEvent(itemId));
       
   303             break;            
       
   304         default:
       
   305             break;            
       
   306     }
   261     mMenuView.setSearchPanelVisible(false);
   307     mMenuView.setSearchPanelVisible(false);
   262 }
   308 }
   263 
   309 
   264 /*!
   310 /*!
   265  Slot invoked when a back action is triggered.
   311  Slot invoked when a back action is triggered.