Frameworks/Overview

From KDE Community Wiki

This page gives an overview of available libraries and solutions in KDE Frameworks 5.


Tier 1

The frameworks in Tier 1 have Qt as their sole dependency. They do not depend on each other, or on frameworks in other tiers.

ItemModels

The ItemModels framework contains data models on top of QAbstractItemModel that help in common tasks, such as sorting, proxying and filtering.

ItemModels contains useful classes such as a model for checkable or selectable items, recursive filtering and breadcrumb selection.

KArchive

KArchive offers easy packing and unpacking of files.

KArchive comes with support for a number of popular packing codecs, such as Tar, GZip, Zip, 7z and xz and offers a self-contained and easy to use library for archiving files.

KCodecs

KCodecs offers commonly used encoding algorithms, such as base64, uu and quoted-printable specifications.

A wrapper class for the most commonly used encoding and decoding algorithms. Currently there is support for encoding and decoding input using base64, uu and the quoted-printable specifications.

KConfig

The KConfig framework offers functionality around reading and writing configuration.

KConfig consists of two parts, KConfigCore and KConfigGui. KConfigCore offers an abstract API to configuration files. It allows grouping and transparent cascading and (de-)serialization. KConfigGui offers, on top of KConfigCore, shortcuts and configuration for some common cases, such as session and window restoration.

KCoreaddons

KCoreAddons offers many commonly used solutions for caching, ui, job handling, randomization, macros and strings and shell and user handling.

KCoreAddons's KSharedDataCache is a fast, memory-mapped inter-process cache for applications. It can be used for various datatypes and is optimized for fast access. KDirWatch allows to monitor the filesystem for changes, and is essential when writing event-driven code. KJob offers a flexible job-handling API, containing simple and composite jobs, job tracking and UI delegates. KRandom allows to create random number and strings, and to randomize sequences of data. KStringHandler and KMacroExpander allow for flexible text manipulation and contain some convenience API on top of QString. KShell allows for manipulation and parsing of shell commands.

KDBusAddons

KDBusAddons provides API for registering services, KDED modules and applications according to Freedesktop standards.

KDBusAddons offers a thread-safe connection pool, and tools to register applications on the session bus as convenience API on top of QDBus.

KGuiAddons

KGuiAddons provides higher level user interface components for common tasks.

KGuiAddons provides the following things:

  • Color manipulation such as shading, tinting, lightening and mixing
  • Color collections
  • Font utilities for drawing taking text dimensions into account
  • Word-wrapping
  • Icon utilities
  • Modifier key helpers'
  • A lot of image format codecs for image de- and encoding, such as EXR, PSD, TGA, TIFF, XCF, etc.

KIdleTime

KIdleTime provides notifications of device's idle time.

KIdleTime is a platform-independent framework that allows detecting and notifying of idle time events of the device. It can, for example be used to start an action (or a job) after a certain amount of user inactivity.

KJS

KJS is a javascript parser and engine.

KJS offers parsing and execution of javascript on top of Qt.

KPlotting

KPlotting offers graph drawing functions.

KPlotting can be used to draw beautiful graphs on top of QWidgets. It takes care of transformation of data coordinates to screen coordinates, among other things.

KWidgetsAddons

KWidgetAddons contains higher-level user interface elements for common tasks.

KWidgetAddons contains widgets for the following areas:

  • Keyboard accelerators
  • Action menues and selections
  • Capacity indicator
  • Character selection
  • Color selection
  • Drag decorators
  • Fonts
  • Message boxes
  • Passwords
  • Paging of e.g. wizards
  • Popups and other dialogs
  • Rating
  • Ruler
  • Separators
  • Squeezed labels
  • Titles
  • URL line edits with drag and drop
  • View state serialization

KWindowSystem

KWindowSystem provides access to certain properties and features of the window manager.

KWindowSystem provides information about the state of the window manager and allows asking the window manager to change them using a more high-level interface than the NETWinInfo/NETRootInfo lowlevel classes.

Solid

Solid provides a platform-independent hardware abstraction layer.

Solid allows reading and manipulation of all kinds of devices, such as storage volumes, processors, networking devices, batteries, input devices, etc..

Sonnet

Sonnet provides spell-checking capabilities to applications.

Sonnet uses plugins for the actual spell-checking, and provides a Qt-style abstraction on top of these. Available backends include aspell, enchant, hspell and hunspell.

ThreadWeaver

ThreadWeaver offers a high-level API to manage threads using job- and queue-based interfaces.

ThreadWeaver allows easy scheduling of thread execution by specifying dependencies between the threads and executing them satisfying these dependencies.

Tier 2

KAuth

KAuth provides an authorization framework that can be used in combination with PolicyKit.

KAuth allows you to create actions, monitor replies and execute privileged jobs using a high-level, Qt API. Buttons that change their appearance based on provided privileges as included.

KCrash

KCrash offers crash handling functions.

KCrash allows you to set a crash handler in case your application crashes. It allows, for example, to show a crash report dialog, to call emergency save routines, and to auto-restart the application.

KI18n

KI18n is a get-text based translation framework.

KI18n allows localization of applications for all cases. It is based on gettext.

KNotifications

KNotifications allows to notify the user of events.

KNotification is a complete framework for user notifications. It allows to use different types of noticiations, such as persistent ones, and to configure details of the notifications, such as if a sound should be played, a passive popup, a script executed, etc. KNotifications supports the Freedesktop Notifications protocol.

Tier 3

kunitconversion

KUnitConversion provides common functions to convert units.

KUnitConversion allows to convert a wide range of units describing, for example:

  • Velocity
  • Mass
  • Currency
  • Density
  • Energy
  • Force
  • Length
  • Power
  • Temperature
  • Time
  • Volume
  • Area
  • Angle
  • Frequency
  • Fuel efficiency
  • Pressure