Class IntegrationManager

Class Documentation

class appimage::desktop_integration::IntegrationManager

Public Functions

explicit IntegrationManager()

Instantiate an Integration manager that will use as XDG_DATA_HOME the one pointed by the system configuration.

explicit IntegrationManager(const std::string &xdgDataHome)

Instantiate an Integration manager that will use as XDG_DATA_HOME the one pointed by the <xdgDataHome>

IntegrationManager(const IntegrationManager &other)

Creates an IntegrationManager instance from <other> IntegrationManager

Parameters

other

IntegrationManager &operator=(const IntegrationManager &other)

Copy the <other> instance data into the current one.

Parameters

other

Returns

virtual ~IntegrationManager()
void registerAppImage(const core::AppImage &appImage) const

Register an AppImage in the system.

Extract the application main desktop entry, icons and mime type packages. Modifies their content to properly match the AppImage file location and deploy them into the use XDG_DATA_HOME appending a prefix to each file. Such prefix is composed as “<vendor id>_<appimage_path_md5>_<old_file_name>”

Parameters

appImage

void unregisterAppImage(const std::string &appImagePath) const

Unregister an AppImage in the system.

Remove all files created by the registerAppImage function. The files are identified by matching the AppImageId contained in their names. The Id is made from the MD5 checksum of the <appImagePath>.

Parameters

appImagePath

bool isARegisteredAppImage(const std::string &appImagePath) const

Check whether the AppImage pointed by <appImagePath> has been registered in the system.

Explore XDG_DATA_HOME/applications looking for Destkop Entries files with a file name that matches the current AppImage Id (MD5 checksum of the <appImagePath>)

Parameters

appImagePath

Returns

true if the AppImage is registered, false otherwise.

bool shallAppImageBeRegistered(const core::AppImage &appImage) const

Check whether the author of an AppImage doesn’t want it to be integrated.

An AppImage is considered that shall not be integrated if fulfill any of the following conditions:

  • The AppImage’s desktop file has set X-AppImage-Integrate=false.

  • The AppImage’s desktop file has set Terminal=true.

Parameters

appImage

Returns

false if any of the conditions are meet, true otherwise