KDE • Community • Announcements

Release of KDE Frameworks 5.21.0

Also available in:

English | Català | Galician | Italiano | Nederlands | Português | Português brasileiro | Svenska | Українська

April 09, 2016. KDE today announces the release of KDE Frameworks 5.21.0.

KDE Frameworks are 70 addon libraries to Qt which provide a wide variety of commonly needed functionality in mature, peer reviewed and well tested libraries with friendly licensing terms. For an introduction see the Frameworks 5.0 release announcement.

This release is part of a series of planned monthly releases making improvements available to developers in a quick and predictable manner.

New in this Version

New framework: KActivitiesStats, a library for accessing the usage statistics data collected by the KDE activity manager.

All frameworks

Qt >= 5.4 is now required, i.e. Qt 5.3 is no longer supported.


  • Add const variant to getter method


  • Centralize batch size in config
  • Remove code blocking indexing of text/plain files without .txt extension (bug 358098)
  • Check both, filename and filecontent to determine mimetype (bug 353512)


  • ObexManager: Split error messages for missing objects

Breeze Icons

  • add breeze lokalize icons
  • sync app icons between breeze and breeze dark
  • update theme icons and remove application-system icon fix kicker groups
  • add xpi support for firefox addons (bug 359913)
  • update okular icon with the right one
  • add ktnef app icon support
  • add kmenueditor, kmouse and knotes icon
  • change audio volume muted icon to use - for mute instead of only red color (bug 360953)
  • add djvu mimetype support (bug 360136)
  • add link instead of double entry
  • add ms-shortcut icon for gnucash (bug 360776)
  • change wallpaper background to generic one
  • update icons to use an generic wallpaper
  • add the icon for konqueror (bug 360304)
  • add process-working icon for progress animation in KDE (bug 360304)
  • add software install icon and update update icon with the right color
  • add add and remove emblem icons for dolphin select, add mount icon
  • Remove stylesheet from analogclock and kickerdash applet icons
  • sync breeze and breeze dark (bug 360294)

Extra CMake Modules

  • Fix _ecm_update_iconcache to only update the install location
  • Revert "ECMQtDeclareLoggingCategory: Include <QDebug> with the generated file"

Framework Integration

  • Fallback to QCommonStyle implementation of standardIcon
  • Set a default menu close timeout


  • Removed compiler checks now that all frameworks require c++11
  • Removed QML ResourceModel as it is superseeded by KAStats::ResultModel
  • Inserting into empty QFlatSet returned an invalid iterator


  • Simplify code (qCount -> std::count, homegrown isprint -> QChar::isPrint)
  • encoding detection: fix crash in wrong usage of isprint (bug 357341)
  • Fix crash due to uninitialized variable (bug 357341)


  • KCompletionBox: force frameless window and don't set focus
  • KCompletionBox should *not* be a tooltip


  • Add support for get QStandardPaths locations inside desktop files


  • Fix kcoreaddons_desktop_to_json() on windows
  • src/lib/CMakeLists.txt - fix linking to a Threads library
  • Add stubs to allow compilation on Android


  • Avoid introspecting a DBus interface when we don't use it


  • uniform use of std::numeric_limits
  • [DeclarativeDragArea] Don't override "text" of mime data

KDELibs 4 Support

  • Fix obsolete link in kdebugdialog5 docbook
  • Don't leak Qt5::Network as required lib for the rest of the ConfigureChecks


  • Set feature macros to enable building on musl libc


  • KEmoticons: fix crash when loadProvider fails for some reason


  • Make kglobalaccel5 properly killable, fixing super slow shutdown


  • Use qt system locale langs as fallback on non UNIX


  • Clean up and refactor the xcb port of klauncher


  • FavIconsCache: sync after write, so other apps see it, and to avoid crash on destruction
  • Fix many threading issues in KUrlCompletion
  • Fix crash in rename dialog (bug 360488)
  • KOpenWithDialog: improve window title and description text (bug 359233)
  • Allow for better cross-platform deployment of io slaves by bundling protocol info in plugin meta data


  • KSelectionProxyModel: Simplify row removal handling, simplify deselection logic
  • KSelectionProxyModel: Recreate mapping on removal only if needed (bug 352369)
  • KSelectionProxyModel: Only clear firstChild mappings for top-level
  • KSelectionProxyModel: Ensure proper signalling when removing last selected
  • Make DynamicTreeModel searchable by display role


  • Do not crash if .desktop files are missing or broken


  • Handle left-button clicking on legacy systray icons (bug 358589)
  • Only use X11BypassWindowManagerHint flag on platform X11

Package Framework

  • After installing a package, load it
  • if the package exists and up to date don't fail
  • Add Package::cryptographicHash(QCryptographicHash::Algorithm)


  • Set the contact uri as person uri in PersonData when no person exists
  • Set a name for the database connection


  • Import runner template from KAppTemplate


  • Fix new kbuildsycoca warning, when a mimetype inherits from an alias
  • Fix handling of x-scheme-handler/* in mimeapps.list
  • Fix handling of x-scheme-handler/* in mimeapps.list parsing (bug 358159)


  • Revert "Open/Save config page: Use term "Folder" instead of "Directory""
  • enforce UTF-8
  • Open/Save config page: Use term "Folder" instead of "Directory"
  • kateschemaconfig.cpp: use correct filters with open/save dialogs (bug 343327)
  • c.xml: use default style for control flow keywords
  • isocpp.xml: use default style "dsControlFlow" for control flow keywords
  • c/isocpp: add more C standard types
  • KateRenderer::lineHeight() returns an int
  • printing: use font size from selected printing schema (bug 356110)
  • cmake.xml speedup: Use WordDetect instead of RegExpr
  • Change tab width to 4 instead of 8
  • Fix changing the current line number color
  • Fix selecting completion item with the mouse (bug 307052)
  • Add syntax highlighting for gcode
  • Fix the MiniMap selection background painting
  • Fix encoding for gap.xml (use UTF-8)
  • Fix nested comment blocks (bug 358692)


  • Take content margins into account when calculating size hints


  • Fix editing toolbars loses plugged actions


  • ConnectionSettings: Initialize gateway ping timeout
  • New TunSetting and Tun connection type
  • Create devices for all known types

Oxygen Icons

  • Install index.theme to same directory it always was in
  • Install into oxygen/base/ so icons move from apps don't clash with version installed by those apps
  • Replicate symlinks from breeze-icons
  • Add new emblem-added and emblem-remove icons for sync with breeze

Plasma Framework

  • [calendar] Fix calendar applet not clearing selection when hiding (bug 360683)
  • update audio icon to use stylesheet
  • update audio mute icon (bug 360953)
  • Fixing the force-creation of applets when plasma is immutable
  • [Fading Node] Don't mix opacity separately (bug 355894)
  • [Svg] Don't reparse configuration in response to Theme::applicationPaletteChanged
  • Dialog: Set SkipTaskbar/Pager states before showing window (bug 332024)
  • Reintroduce busy property in Applet
  • Make sure PlasmaQuick export file is properly found
  • Don't import an nonexistent layout
  • Make it possible for an applet to offer a test object
  • Replace QMenu::exec with QMenu::popup
  • FrameSvg: Fix dangling pointers in sharedFrames when theme changes
  • IconItem: Schedule pixmap update when window changes
  • IconItem: Animate active and enabled change even with animations disabled
  • DaysModel: Make update a slot
  • [Icon Item] Don't animate from previous pixmap when it has been invisible
  • [Icon Item] Don't call loadPixmap in setColorGroup
  • [Applet] Don't overwrite "Persistent" flag of Undo notification
  • Allowing to override plasma mutability setting on containment creation
  • Add icon/titleChanged
  • Remove QtScript dependency
  • Header of plasmaquick_export.h is in plasmaquick folder
  • Install some plasmaquick headers

Installing binary packages

On Linux, using packages for your favorite distribution is the recommended way to get access to KDE Frameworks. Binary package distro install instructions.

Compiling from sources

The complete source code for KDE Frameworks 5.21.0 may be freely downloaded. Instructions on compiling and installing KDE Frameworks 5.21.0 are available from the KDE Frameworks 5.21.0 Info Page.

Building from source is possible using the basic cmake .; make; make install commands. For a single Tier 1 framework, this is often the easiest solution. People interested in contributing to frameworks or tracking progress in development of the entire set are encouraged to use kdesrc-build. Frameworks 5.21.0 requires Qt 5.4.

A detailed listing of all Frameworks and other third party Qt libraries is at inqlude.org, the curated archive of Qt libraries. A complete list with API documentation is on api.kde.org.


Those interested in following and contributing to the development of Frameworks can check out the git repositories, follow the discussions on the KDE Frameworks Development mailing list and contribute patches through review board. Policies and the current state of the project and plans are available at the Frameworks wiki. Real-time discussions take place on the #kde-devel IRC channel on freenode.net.

You can discuss and share ideas on this release in the comments section of the dot article.

Supporting KDE

KDE is a Free Software community that exists and grows only because of the help of many volunteers that donate their time and effort. KDE is always looking for new volunteers and contributions, whether it is help with coding, bug fixing or reporting, writing documentation, translations, promotion, money, etc. All contributions are gratefully appreciated and eagerly accepted. Please read through the Donations page for further information or become a KDE e.V. supporting member through our new Join the Game initiative.

About KDE

KDE is an international technology team that creates free and open source software for desktop and portable computing. Among KDE's products are a modern desktop system for Linux and UNIX platforms, comprehensive office productivity and groupware suites and hundreds of software titles in many categories including Internet and web applications, multimedia, entertainment, educational, graphics and software development. KDE software is translated into more than 60 languages and is built with ease of use and modern accessibility principles in mind. KDE's full-featured applications run natively on Linux, BSD, Solaris, Windows and macOS.

Trademark Notices. KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. Linux is a registered trademark of Linus Torvalds. UNIX is a registered trademark of The Open Group in the United States and other countries. All other trademarks and copyrights referred to in this announcement are the property of their respective owners.

Press Contacts

For more information send us an email:

Global navigation links