--- a/homescreenapp/serviceproviders/hsmenuserviceprovider/src/hsmenuservice.cpp Fri Jun 11 13:30:16 2010 +0300
+++ b/homescreenapp/serviceproviders/hsmenuserviceprovider/src/hsmenuservice.cpp Wed Jun 23 18:03:36 2010 +0300
@@ -92,7 +92,7 @@
HsMenuItemModel *HsMenuService::getInstalledModel(
HsSortAttribute sortAttribute)
{
- //TODO get proper items
+ //TODO get proper items
qDebug() << "HsMenuService::getInstalledModel" << "sortAttribute:"
<< sortAttribute;
HSMENUTEST_FUNC_ENTRY("HsMenuService::getInstalledModel");
@@ -191,8 +191,30 @@
{
qDebug() << "HsMenuService::executeAction entryId:" << entryId
<< "actionName:" << actionName;
+ bool ret = CaService::instance()->executeCommand(entryId, actionName);
- return CaService::instance()->executeCommand(entryId, actionName);
+ // if its remove action we need to mark all items
+ // that are being uninstalled
+ if (actionName == caCmdRemove && ret) {
+ QSharedPointer<CaEntry> entry(
+ CaService::instance()->getEntry(entryId));
+ if (!entry.isNull()) {
+ QString componentId = entry->attribute(
+ componentIdAttributeName());
+
+ CaQuery query;
+ query.setAttribute(componentIdAttributeName(), componentId);
+ QList< QSharedPointer<CaEntry> > entries
+ = CaService::instance()->getEntries(query);
+
+ for (int i = 0; i < entries.count(); i++) {
+ entries[i]->setFlags(
+ entries.first()->flags()| UninstallEntryFlag);
+ CaService::instance()->updateEntry(*entries[i]);
+ }
+ }
+ }
+ return ret;
}
/*!
@@ -397,8 +419,8 @@
QScopedPointer<CaEntry> tsEntry(new CaEntry);
tsEntry->setEntryTypeName(applicationTypeName());
tsEntry->setAttribute(
- applicationUidEntryKey(), QString::number(softwareUpdateApplicationUid));
- int retval = CaService::instance()->executeCommand(*tsEntry,
+ applicationUidEntryKey(), QString::number(softwareUpdateApplicationUid));
+ int retval = CaService::instance()->executeCommand(*tsEntry,
openActionIdentifier());
return retval;
}