Plasma/ShareLikeConnect
Use scenario
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.
Architecture
The Share Like Connect framework is composed of many parts:
DBus
Share Like Connect knows what resource the user wants to share thanks to a DBus interface, registered on the bus name
org.kde.kactivitymanagerd
on the object
SLC/org.kde.ActivityManager.SLC
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.
Exposing your application to SLC with KActivities
You don't have to use directly DBus, use instead the KActivities::ResourceInstance class coming from the kactivities library (API doc).
Plasma Applet
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.