homescreenapp/stateplugins/hsmenuworkerstateplugin/src/hsuninstallitemstate.cpp
changeset 85 35368b604b28
parent 77 4b195f3bea29
child 92 6727c5d0afc7
--- a/homescreenapp/stateplugins/hsmenuworkerstateplugin/src/hsuninstallitemstate.cpp	Wed Aug 18 09:40:07 2010 +0300
+++ b/homescreenapp/stateplugins/hsmenuworkerstateplugin/src/hsuninstallitemstate.cpp	Thu Sep 02 20:17:27 2010 +0300
@@ -89,15 +89,15 @@
     HsMenuEvent *menuEvent = static_cast<HsMenuEvent *>(event);
     QVariantMap data = menuEvent->data();
 
-    mItemId = data.value(itemIdKey()).toInt();
+    mItemId = data.value(Hs::itemIdKey).toInt();
     QSharedPointer<CaEntry> entry = CaService::instance()->getEntry(mItemId);
-    QString appType = entry->attribute(swTypeKey());
-    if (!appType.compare(javaSwType())) {
+    QString appType = entry->attribute(Hs::swTypeKey);
+    if (!appType.compare(Hs::javaSwType)) {
         // java
         createUninstallJavaMessage();
     } else {
         // other
-        createUninstallMessage();
+        createSimpleUninstallMessage();
     }
         
     HSMENUTEST_FUNC_EXIT("HsUninstallItemState::onEntry");
@@ -111,7 +111,7 @@
 void HsUninstallItemState::uninstallMessageFinished(HbAction* finishedAction)
 {
     if (static_cast<QAction*>(finishedAction) == mConfirmAction) {
-        HsMenuService::executeAction(mItemId, removeActionIdentifier());
+        HsMenuService::executeAction(mItemId, Hs::removeActionIdentifier);
     }
     mConfirmAction = NULL;
     mUninstallMessage = NULL;
@@ -138,7 +138,7 @@
     QSharedPointer<CaService> service = CaService::instance();
     QSharedPointer<CaEntry> entry = service->getEntry(mItemId);
     const int componentId =
-        entry->attribute(componentIdAttributeName()).toInt();
+        entry->attribute(Hs::componentIdAttributeName).toInt();
     
     QSharedPointer<CaSoftwareRegistry> softwareRegistry =
         CaSoftwareRegistry::create();
@@ -150,7 +150,7 @@
     if (retval) {
         CaQuery query;
         foreach (QString uid, appUids) {
-            query.setAttribute(applicationUidEntryKey(), uid);
+            query.setAttribute(Hs::applicationUidEntryKey, uid);
             QList< QSharedPointer<CaEntry> > entries =
                 service->getEntries(query);
             if (entries.length() > 0) {
@@ -191,11 +191,11 @@
  Method create uninstall confirmation message.
  \retval void
  */
-void HsUninstallItemState::createUninstallMessage()
+void HsUninstallItemState::createSimpleUninstallMessage(bool isJava)
 {
     CaQuery parentsQuery;
     parentsQuery.setChildId(mItemId);
-    parentsQuery.setEntryTypeNames(QStringList(collectionTypeName()));
+    parentsQuery.setEntryTypeNames(QStringList(Hs::collectionTypeName));
     QList<int> parentsIds = CaService::instance()->getEntryIds(
             parentsQuery);
     QString message;
@@ -211,6 +211,11 @@
 
     // create and show message box
     mUninstallMessage = HsMenuDialogFactory().create(message);
+    if( isJava ){
+        QSharedPointer<CaEntry> entry = CaService::instance()->getEntry(mItemId);
+        HbIcon icon = entry->makeIcon();
+        mUninstallMessage->setIcon(icon);
+    }
     mConfirmAction = mUninstallMessage->actions().value(0);
     
     QScopedPointer<HsMenuEntryRemovedHandler> entryObserver(
@@ -221,34 +226,6 @@
 }
 
 /*!
- Method create uninstall confirmation message.
- Used for java applications without deletion confirmation
- and with midlet name equal to app name
- \retval void
- */
-void HsUninstallItemState::createSimpleUninstallJavaMessage()
-{
-    QString message;
-    message.append(
-        HbParameterLengthLimiter("txt_applib_dialog_1_will_be_removed_from_phone_c").arg(
-            HsMenuService::getName(mItemId)));
-
-    // create and show message box
-    mUninstallMessage = HsMenuDialogFactory().create(message);
-    
-    QSharedPointer<CaEntry> entry = CaService::instance()->getEntry(mItemId);
-    HbIcon icon = entry->makeIcon();
-    mUninstallMessage->setIcon(icon);
-    mConfirmAction = mUninstallMessage->actions().value(0);
-
-    QScopedPointer<HsMenuEntryRemovedHandler> entryObserver(
-        new HsMenuEntryRemovedHandler(mItemId, this, SIGNAL(exit())));
-    entryObserver.take()->setParent(mUninstallMessage);
-
-    mUninstallMessage->open(this, SLOT(uninstallMessageFinished(HbAction*)));
-}
-
-/*!
  Method create uninstall confirmation dialog for java.
  \retval void
  */
@@ -269,7 +246,7 @@
     
     QString section;
     if (applicationsNames.isEmpty() && detailsMessage.isEmpty()) {        
-        createSimpleUninstallJavaMessage();        
+        createSimpleUninstallMessage(true);
     }
     else {
         if ( (!applicationsNames.isEmpty()) && (!detailsMessage.isEmpty())) {
@@ -307,10 +284,25 @@
             HbIcon icon = entry2->makeIcon();
             iconLabel->setIcon(icon);
 
+            CaQuery parentsQuery;
+            parentsQuery.setChildId(mItemId);
+            parentsQuery.setEntryTypeNames(QStringList(Hs::collectionTypeName));
+            QList<int> parentsIds = CaService::instance()->getEntryIds(
+                    parentsQuery);
+            
             HbLabel* textLabel =
             qobject_cast<HbLabel*>(
                 loader.findWidget(HS_UNINSTALL_DIALOG_CONFIRMATION_DIALOG_LABEL));
-            textLabel->setPlainText(textLabel->plainText().arg(componentName));
+            if (HsShortcutService::instance()->isItemShortcutWidget(mItemId) ||
+                (parentsIds.count() > 0)) {
+                textLabel->setPlainText(HbParameterLengthLimiter(
+                    "txt_applib_info_delete_1_all_its_shortcuts_and").arg(
+                            componentName));
+            } else {
+                textLabel->setPlainText(HbParameterLengthLimiter(
+                    "txt_applib_info_delete_1_and_associated_data").arg(
+                            componentName));
+            }
 
             HbLabel* detailsUninstalLabel;
             if ((mDialogType == UninstallDialogDefinition02) ||