Hello.
On 07/12/2017 04:17 PM, Stephen Houston wrote:
Sorry that I have missed bringing this up before:
https://phab.enlightenment.org/T4996
This has been around for a while... I have the code and it is simple:
in elm_image_file_set, if the file extension is .desktop, then create an
Efreet_Desktop *desktop object and do the following:
const char *path = NULL, *key = NULL;
char buf[4096];
if (!desktop->icon)
path = NULL;
else if (strncmp(desktop->icon, "/", 1) &&
!ecore_file_exists(desktop->icon))
{
clamp = (4 * round((double)ic->inst->size/4));
path = efreet_icon_path_find(e_config->icon_theme,
desktop->icon, clamp);
if (!path)
{
if (e_util_strcmp(e_config->icon_theme, "hicolor"))
path = efreet_icon_path_find("hicolor", desktop->icon,
clamp);
}
}
else if (ecore_file_exists(desktop->icon))
{
path = desktop->icon;
}
if (!path && desktop->icon)
{
snprintf(buf, sizeof(buf), "e/icons/%s", desktop->icon);
if
(eina_list_count(e_theme_collection_items_find("base/theme/icons", buf)))
{
path = e_theme_edje_file_get("base/theme/icons", buf);
k = buf;
}
else
{
path = e_theme_edje_file_get("base/theme/icons",
"e/icons/unknown");
k = "e/icons/unknown";
}
}
else if (!path && !desktop->icon)
{
path = e_theme_edje_file_get("base/theme/icons",
"e/icons/unknown");
k = "e/icons/unknown";
}
if (path && desktop->icon && !k)
{
len = strlen(desktop->icon);
if ((len > 4) && (!strcasecmp(desktop->icon + len - 4,
".edj")))
k = "icon";
}
Then just set the path and key. The e_theme_edje* stuff of course would be
substituted with elm theme stuff of course.
No need for anything special in image_file_get as the path and key set in
file_set would return normally.
This would allow a TON of redundant code throughout E and potentially other
places to be removed and elm_icon to fully replace e_icon. I'm also sure
this would be helpful for other apps that would have a need to load a
.desktop's image.
This would be very simple to add to elm_image_file_set, with the catch
being it probably should be backported to other efl releases as well. I
really think this is a necessary functionality that should exist and is
warranted. With the simplicity of adding the code, if someone who is more
familiar with the current layout of the eo and elm stuff and who is more
familiar with backporting than I am would apply this, I think it is very
necessary.
Again, sorry for the late notice. Thoughts?
Right now we are looking at showstopper bugs that would block a release.
Not at new features suitable for re-factoring parts of the code base.
I have nothing against the idea and getting rid of code duplication is a
good goal as well, but I do not think we should start this now, so late
in the stabilization schedule.
regards
Stefan Schmidt
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel