Plasma/ShareLikeConnect: Difference between revisions

From KDE Community Wiki
Line 25: Line 25:


=== Plasma Applet ===
=== 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.


=== Plasma DataEngine ===
=== Plasma DataEngine ===

Revision as of 19:02, 7 January 2013

Share Like Connect

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.

Plasma DataEngine

Dataengine Plugins

Public API

Writing a plugin

C++

JavaScript