A very useful feature in many applications is sharing their content with a Web service. Many of them implement this feature, but with a different implementation, a different set of services and a different user interface. A similar problem is connecting Application content to the activities, assigning tags or rating files.
Solution: a common user interface that lives right in the workspace, that is shared between all applications that want to share something on the web or connect items to activities.
The Share Like Connect framework is composed of many parts:
Share Like Connect knows what resource the user wants to share thanks to a DBus interface, registered on the bus name
on the object
with the methods focussedResourceURI, focussedResourceMimeType, focussedResourceTitle to set the current focused uri, its mime type and its user-readable name. The resource that will be shared is always the currently focused one.
You don't have to use directly DBus, use instead the KActivities::ResourceInstance class coming from the kactivities library (API doc).
The Share, Like and Connect actions are shown by a Plasma applet, positioned by default in the panel. Each of those 3 actions will be represented by an icon, "active" only if there is a "current URI" advertised by the focused window and there is at least one plugin that supports the action for the current URI.
The Plasma Share Like Connect DataEngine is identified by the plugin name org.kde.sharelikeconnect. It has 4 sources:
The Share, Like and Connect sources have an associated Service: it supports a singleoperation: executeAction, which has 3 parameters: