require [Name] entries for sandbox gadget .desktop files

This commit is contained in:
Mike Blumenkrantz 2018-01-22 15:16:56 -05:00
parent 83952a1708
commit aa9ece4722
1 changed files with 12 additions and 6 deletions

View File

@ -103,13 +103,8 @@ static char *
sandbox_name(const char *filename) sandbox_name(const char *filename)
{ {
Efreet_Desktop *ed = eina_hash_find(sandbox_gadgets, filename); Efreet_Desktop *ed = eina_hash_find(sandbox_gadgets, filename);
const char *name = ed->name ?: ed->generic_name;
char buf[1024];
if (name) return strdup(name); return strdup(ed->name);
strncpy(buf, ed->orig_path, sizeof(buf) - 1);
buf[0] = toupper(buf[0]);
return strdup(buf);
} }
static void static void
@ -973,6 +968,17 @@ gadget_dir_add(const char *filename)
snprintf(buf, sizeof(buf), "%s/%s.desktop", filename, file); snprintf(buf, sizeof(buf), "%s/%s.desktop", filename, file);
ed = efreet_desktop_new(buf); ed = efreet_desktop_new(buf);
EINA_SAFETY_ON_NULL_RETURN(ed); EINA_SAFETY_ON_NULL_RETURN(ed);
if (!ed->name)
{
char str[4096];
snprintf(str, sizeof(str), _("A gadget .desktop file was found,</ps>"
"but no [Name] entry was specified!</ps>"
"%s"), buf);
/* FIXME: maybe don't use notification here? T6630 */
e_notification_util_send(_("Gadget Error"), str);
efreet_desktop_free(ed);
return;
}
eina_hash_add(sandbox_gadgets, filename, ed); eina_hash_add(sandbox_gadgets, filename, ed);
e_gadget_external_type_add("runner_sandbox", filename, sandbox_create, NULL); e_gadget_external_type_add("runner_sandbox", filename, sandbox_create, NULL);
e_gadget_external_type_name_cb_set("runner_sandbox", filename, sandbox_name); e_gadget_external_type_name_cb_set("runner_sandbox", filename, sandbox_name);