Page MenuHomePhabricator

Application is missing icon
Closed, WontfixPublic

Description

Currently the executables of the applications are missing icons. Ideally it should be possible to have a "icons" folder in each application directory, where icons may be placed. If an icon exists in a format for a specific plattform it will then be used.

See
http://qt-project.org/doc/qt-4.7/appicon.html
for more information

Event Timeline

See branch bug-11813-enable-customizable-executable-icons for suggested implementation

Currently reading into desktop files:

[Desktop Entry]
Version=1.0
Type=Application
Name=<APPLICATION_NAME>
GenericName=<GENERIC_APPLICATION_NAME>
Comment=<APPLICATION_COMMENT>
TryExec=<APPLICATION_PATH>
Exec=<APPLICATION_PATH> &
Categories=Application;Science;ImageProcessing;MedicalSoftware;
Icon=<APPLICATION_PATH>/share/icons/<APPLICATION_NAME>.png

Where all fields in <> have to be replaced for the corresponding application. Currently taking a look at when and how to determine the application path and where to put the .desktop files.

For specs see:
http://developer.gnome.org/desktop-entry-spec/

or

http://www.freedesktop.org/wiki/Specifications/desktop-entry-spec

Placing the .desktop files in /usr/share/applications/ or /usr/share/application/ would require root privileges, which in my opinion is not desirable. I will try to find out, whether they have to be placed there.

http://developer.gnome.org/integration-guide/stable/desktop-files.html.en seems to indicate, that it has to be put in one of those two directories:

"Place this file in the /usr/share/applications directory so that it is accessible by everyone, or in ~/.local/share/applications if you only wish to make it accessible to a single user. Which is used should depend on whether your application is installed systemwide or into a user's home directory. GNOME monitors these directories for changes, so simply copying the file to the right location is enough to register it with the desktop."

So I would suggest using the current implementation and avoiding the entire .desktop issue altogether.

I have just tested the .desktop usage and it works fine on ubuntu. After placing a mitkDiffusion.desktop file in the ~/.local/share/applications and launching

update-desktop-database ~/.local/share/applications

new entry appeared in the Applications launcher menu. If we provide this mechanism, we also need to provide an 'uninstall' script which simply removes the mitkDiffusion.desktop file and launches the update-desktop-database again.

[015253]: Merge branch 'bug-11813-enable-customizable-executable-icons'

Merged commits:

2012-05-02 17:48:43 Caspar Goch [393856]
Changed style to conform to rest


2012-05-02 12:14:25 Caspar Goch [5fe2c0]
Added icons to core App


2012-05-02 12:11:40 Caspar Goch [361c8b]
Added icons to extapp


2012-05-02 12:11:30 Caspar Goch [9ab72d]
Added icons to mitkDiffusion


2012-05-02 12:11:12 Caspar Goch [6898a5]
Added possibility to add icons to applications

First implementation only for windows (tested) and Mac (not tested yet)

My bad, I missed the "~" part.

Still, as we have no installer for linux, we could provide "install.sh" and "uninstall.sh" for users.

Personally I would not be happy with executing those during cmake/build, as this would mean having a desktop entry for every single binary you build on your system (which might be in the tens). Therefore I would tend to move this post release.

Removing the block, but leaving the bug open for discussion and possible future implementation.

The simplest solution is -> We just add following files to the tarball created by 'make package':

  • README
  • mitkDiffusion.desktop
  • install.sh -> copies the .desktop into the ./local/share/applications and runs the desktop update, the application icon is in the ./bin directory
  • uninstall.sh -> removes the .desktop from ./local/share/applications and runs the desktop update

It is not done by just copying, the install script has to make sure, that the paths are correct.

This could for example be done by not adding a .desktop file but having the script echo one with the paths appropriately replaced.

Reassigning to Jan, as he works on the linux script part.

Jan, if you do not think you will manage this for the release, just unblock.

I am moving this to party as it is in fact of general interest.

kislinsk claimed this task.
kislinsk added a subscriber: kislinsk.
This task was automatically closed because it wasn't updated at least since July 2016 (over 2 years). Please re-open this task if you think that it is still relevant. This most probably means that you will resolve it.