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. |