Martin Klapetek fe0384f0d4 [calendar] Add plugin system for Calendar events
This adds a simple plugin interface that can be subclassed
and provide events integration with Plasma Calendar applet.

It's asynchronous and I've kept it deliberately simple.
For now the Calendar tells the plugins which date range
is being displayed, the plugins load the data and then
emit the dataReady() signal containing the events.

The events are stored in a multihash for quick access
by the Calendar's agenda part but also for overall
easy-to-use (eg. in teh model data()).

The event data is stored in EventData class, which has
a pretty self-explanatory members, except perhaps the
"isMinor" property. The intention with this is to support
namedays, where in some countries the calendars have
different name every day. This is just a minor holiday
and as such should not mark the calendar grid, otherwise
the whole grid would be in a different color.

Putting the interface here might raise the question of
depending on plasma-framework, but plugins provided by
KDE can go to plasma-workspace and other 3rd party ones
would just have to live with it. I don't think it will
be a problem but if it turns out it is, we can rethink
the placement.

REVIEW: 125817
CCBUG: 349676
CHANGELOG: Allow plugins to supply event data to Calendar applet
2015-11-16 11:46:26 -05:00
2014-06-02 17:39:23 +01:00
2013-12-23 18:39:10 +00:00
2013-12-23 18:39:10 +00:00

Plasma Framework

Foundational libraries, components, and tools of the Plasma workspaces

Introduction

The plasma framework provides the following:

  • QML components
  • A C++ library: libplasma
  • Script engines

QML components

org.kde.plasma.core

Bindings for libplasma functionality, such as DataEngine and FrameSvg, see @ref core.

org.kde.plasma.components

Graphical components for common items such as buttons, lineedits, tabbars and so on. Compatible subset of the MeeGo components used on the N9, see @ref plasmacomponents.

org.kde.plasma.extras

Extra graphical components that extend org.kde.plasma.components but are not in the standard api, see @ref plasmaextracomponents.

org.kde.plasma.plasmoid

Attached properties for manipulating the current applet or containment, see @ref libplasmaquick

libplasma

This C++ library provides:

  • rendering of SVG themes
  • loading of files from a certain filesystem structure: packages
  • data access through data engines
  • loading of the plugin structure of the workspace: containments and applets

See @ref libplasma.

Script engines

Provides support to create applets or containments in various scripting languages.

Description
No description provided
Readme 40 MiB
Languages
C++ 63.9%
QML 29.4%
CMake 3.3%
Shell 1.3%
Python 1%
Other 1%