Go to file
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
autotests SVN_SILENT made messages (.desktop file) - always resolve ours 2015-11-14 12:52:39 +00:00
docs Fix releaseinfo+productname, rm obsolet options in plasmapkg2 docbook 2015-08-03 07:21:56 +02:00
examples SVN_SILENT made messages (.desktop file) - always resolve ours 2015-11-10 12:46:43 +00:00
src [calendar] Add plugin system for Calendar events 2015-11-16 11:46:26 -05:00
tests SVN_SILENT made messages (.desktop file) - always resolve ours 2015-11-04 17:07:45 +00:00
.reviewboardrc Fix .reviewboardrc syntax 2014-06-02 17:39:23 +01:00
CMakeLists.txt Upgrade ECM and KF5 version requirements for 5.16.0 release. 2015-11-08 11:20:06 +00:00
COPYING Add COPYING and COPYING.LIB files 2013-12-23 18:39:10 +00:00
COPYING.LIB Add COPYING and COPYING.LIB files 2013-12-23 18:39:10 +00:00
KF5PlasmaConfig.cmake.in port libplasma away from sycoca as much as possible 2015-05-07 16:26:37 +02:00
KF5PlasmaMacros.cmake Remove rather outdated .svn install exclusion 2014-09-25 13:16:28 +02:00
metainfo.yaml Add metadata about the QMake and CMake packages installed by this framework and remove Links from README.md 2014-08-13 10:56:51 +02:00
README.md Add/update first line of README.md to be a short description, useful for inqlude 2015-07-27 19:41:21 +02: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.