ApplicationItem::~ApplicationItem() {
}
+
+bool ApplicationItem::load() {
+ GKeyFileWrapper key_file;
+
+ for (;;) {
+ if (!key_file.load(myID)) {
+ break;
+ }
+
+ if (key_file.getString(DESKTOP_ENTRY_GROUP, DESKTOP_ENTRY_TYPE_FIELD) != "Application") {
+ break;
+ }
+
+ myName = key_file.getLocaleString(DESKTOP_ENTRY_GROUP, DESKTOP_ENTRY_NAME_FIELD);
+ myComment = key_file.getLocaleString(DESKTOP_ENTRY_GROUP, DESKTOP_ENTRY_COMMENT_FIELD);
+ myIcon = key_file.getString(DESKTOP_ENTRY_GROUP, DESKTOP_ENTRY_ICON_FIELD);
+ myService = key_file.getString(DESKTOP_ENTRY_GROUP, DESKTOP_ENTRY_SERVICE_FIELD);
+ myExec = key_file.getString(DESKTOP_ENTRY_GROUP, DESKTOP_ENTRY_EXEC_FIELD);
+ myTextDomain = key_file.getString(DESKTOP_ENTRY_GROUP, DESKTOP_ENTRY_TEXT_DOMAIN);
+
+ break;
+ }
+
+ return (myEnabled = checkSanity());
+}
+
+void ApplicationItem::activate(osso_context_t *context) {
+ bool result = false;
+
+ if (myService.empty() || !(result = osso_rpc_run_with_defaults(context, myService.c_str(), "top_application", NULL, DBUS_TYPE_INVALID) == OSSO_OK)) {
+ runApplication(getExec());
+ return true;
+ } else {
+ return result;
+ }
+}