end2endzone / ShellAnything

ShellAnything is a C++ open-source software which allow one to easily customize and add new options to *Windows Explorer* context menu. Define specific actions when a user right-click on a file or a directory.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Icon from hyperlink url

end2endzone opened this issue · comments

Is your feature request related to a problem? Please describe.
If would be useful to be able to set an icon from an hyperlink url.

The current only option is to manually download the icon to a local file on the hard disk and then change the Configuration File to manually create an <icon> element to that downloaded file.

With such a feature, it would allow the following new features:

  • Automating the process of downloading, naming and updating existing Configuration File with the new downloaded file.
  • Creating generic Configuration File that works for everyone.

For example, with the help of #135, it would allow creating a generic Configuration File for curl. Curl executable could be found from the PATH environment variable. But curl installation files does not contains an icon. The only icon available is from its web site's favicon.

Same from FFmpeg's icon available from https://ffmpeg.org/favicon.ico.

Describe the solution you'd like
Create a new attribute named url. When set, the attribute defines the url to an icon.
For example:

<icon url="https://curl.se/favicon.ico" />

The file should be downloaded to a cache location. The file name should be based on the url value to always use the same file name between reboot. This would prevent downloading the same file again and again. When the system encounters an icon url, it should check for the existing local cached version of the icon. If found, it should resolve to using the local file (similar to function Icon::ResolveFileExtensionIcon()). If not, it should start a download. The next time the menu is displayed, the icon should be available from the local cache.

Describe alternatives you've considered
N/A

Additional context
N/A