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 |
||
---|---|---|
autotests | ||
docs | ||
examples | ||
src | ||
tests | ||
.reviewboardrc | ||
CMakeLists.txt | ||
COPYING | ||
COPYING.LIB | ||
KF5PlasmaConfig.cmake.in | ||
KF5PlasmaMacros.cmake | ||
metainfo.yaml | ||
README.md |
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.