KDE Frameworks 5.85.0

Friday, 13 August 2021

KDE today announces the release of KDE Frameworks 5.85.0.

KDE Frameworks are 83 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 KDE Frameworks 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


  • Implement a getter for Provider’s icon data

Breeze Icons

  • React to Telegram’s new ID and show the Breeze icon
  • React to Inkscape’s new ID and show the Breeze icon (bug 440498)
  • also add zoom-fit-page symlink for 32px
  • align look of 22 px zoom-fit-{width,height} icons with others
  • add zoom-fit-page symlink for 22px
  • Symlink draw-cuboid to shape-cuboid
  • Add temperature icons

Extra CMake Modules

  • [ecmcheckoutboundlicense] Ensure that last source file is always processed
  • Handle case where zero must be kept
  • ecm_setup_version: deal with 0-prefixed version values in PROJECT mode
  • modules/ECMGenerateHeaders.cmake - avoid uninitialized warning
  • suppress tar errors
  • FindGperf: support version check
  • Define NOMINMAX on Windows
  • KDECompilerSettings: properly use KDE_QT_MODERNCODE_DEFINITIONS_LEVEL
  • Add Find7z & Findgzip
  • Don’t install logging categories files on Android
  • Handle case where ECM_GLOBAL_FIND_VERSION is undefined
  • Enable the usage of -Bsymbolic-functions
  • KDECompilerSettings: add KDE_COMPILERSETTINGS_LEVEL & more settings

KDE Doxygen Tools

  • do not download KDE accounts file automatically
  • require Python 3 in CMake
  • Preprocessing: use tree-walk speedup
  • Preprocessing: document how to speed up tree-walk a little
  • Utils: document what causes repopath-lookup failures
  • Fancyname: look for CMake project() command preceded only by spaces
  • Accept multi-line ‘project(…)’ in ‘CMakeLists.txt’
  • Add more dependencies to requirements.txt


  • Only pkg_check_modules() if PkgConfig is found
  • Add support for static builds
  • Use official gzip MIME/Media type application/gzip
  • Report KArchive_HAVE_ZSTD in CMake Config file to consumers
  • Deprecate remaining KFilterDev API in favour of KCompressionDevice


  • Fixup include dir into pkgconfig file
  • Hide fields, to enforce uniform use of setFieldDirty()
  • Fix formating in apidoc for free busy
  • Add ownerChanged signal
  • Add metadata properties to calendar
  • Add base class for calendar plugins
  • More completion field consistency and dirtyness checks
  • Mark mCompleted as dirty if it changes, and also reset status


  • Officially specify X-DocPath in the KCModule desktop file definition
  • Deprecate KCModuleProxy::aboutData
  • Add overload to pass in args in KCMultiDialog::addModule
  • Deprecate X-KDE-FactoryName and KCModuleInfo::handle
  • Deprecate KCMultiDialog::configCommitted(QByteArray) signal
  • Deprecate KSettings and KCModuleInfo based methods
  • help:/ urls are already handled by KUrlHandler from KGuiAddons


  • Unbreak build with gperf < 3.1


  • KConfig: fix deletion of an entry that is also in kdeglobals
  • Do not create a vector and a QByteArray just to discard it immediately
  • Only query for existing config file when it’s necessary
  • Use specific API to compare QByteArrays
  • Cache global config files


  • [KCModule] Deprecate ctor that takes KAboutData
  • Make sure commandbar has unique actions
  • add icons for all zoom standard actions
  • KCommandBar update
  • Show fuzzy matches in command bar
  • enable auto-switching color scheme for Windows apps when Default color scheme is active
  • Fix crash when calling KHamburgerMenu::setMenuBar(nullptr)


  • New class KNetworkMounts: network mounts performance optimizations
  • PluginMetaData::supportsMimeType(): check for exact matches first
  • KPluginMetaData: warn if library metadata can’t be loaded
  • Introduce KFileUtils::findAllUniqueFiles method
  • KTextToHTML: support also irc & ircs URLs
  • Expose KAboutComponent::version as a property
  • Deprecate JSON parameter in kcoreaddons_add_plugin
  • Deprecate KPluginLoader::pluginVersion


  • Support static builds
  • fix lifetime of MetadataINIWriter


  • KDBusService: Pass the activation token upon activation
  • Add compile time guards round QX11Info usage
  • Fix DesktopStartup ID handling


  • Implement aspect ratio correction for Lanczos effect
  • Introduce Lanczos filter element

KDELibs 4 Support

  • Port metainfo KIO slave to JSON metadata
  • Update translatable timezone list


  • Add a max width to the content


  • Update holiday_kz_kk
  • Update holiday_kz_ru
  • Update Mexican holidays
  • Create mu_fr_catholic
  • Update mu_en, mu_en_islamic


  • Introduce KIconLoader::hasCustomPalette
  • [KIconDialog] Revamp UI (bug 401408)


  • exr: Repair compability with openexr2
  • exr: Override the actual function signature


  • Fixes crash in KLauncher::idleTimeout() caused by unblockable destruction of IdleSlave objects (bug 426387)


  • Fix OOB read in LegacyCodec::decodeFileNameUTF8() if not zero-terminated
  • KMountPoint: add missing resolving of symlinks when using libmount
  • Message dialogs: wrap the text (bug 440545)
  • Explicitly link against KF5::CoreAddons for KPluginFactory
  • KProcessRunner: Use systemsettings desktop name if it’s started
  • Fix creating thumbnails for items under desktop:/ (bug 438691)
  • Split KCMs into separate plugins
  • Fixing allowing caching logic
  • KPropertiesDialog: consider the “recursive” setting when applying permissions
  • KPropertiesDialog: fix applying permissions recursively (bug 225658)
  • kcoredirlister: refactor code to work better with std::set
  • xdgactivation: Use the provided service instance
  • [KFilePlacesItem] Don’t show capacity bar for iso9660 mounts
  • KMountPoint: fetch mount options from the mount-flags
  • KProtocolInfo: don’t call KProtocolInfo::archiveMimetypes() on an empty string
  • Do not translate default names
  • Fix selecting binaries from component chooser KCM
  • KMountPoint: use libraries from util-linux in the Linux code path
  • KUrlNavigator: do not hardcode supported archive formats


  • [InlineMessage] Correct spacing between close button and action buttons (bug 440604)
  • [ScrollView] Don’t scroll with arrow keys if the view isn’t scrollable (bug 439459)
  • SearchField: Disable predictive text
  • Introduce hasPlatformMenuBar
  • Allow to add additional content to the about page
  • Ensure that icon sizes are consistent for mobile before 5.23
  • [OverlaySheet] Add title property
  • Add “Get Involved” URL button to the About Page
  • SwipeDelegate: Only set the parent as the flickable when the parent is a Flickable
  • Add dialog-close to list of icons to bundle
  • Show KAboutComponents in the AboutPage
  • Add method to push page as a new window on the desktop
  • Use iconSizes for floating action button
  • Adjust sidebar item size to account for mobile
  • Adjust floating action button sizes to account for mobile
  • Remove x1.5 mobile icon sizing
  • [apptemplate] Increase Qt and KF5 min versions
  • Make MnemonicAttached active property writable
  • Pagepool item and url accessors
  • Show author/credits task (bug 438442)
  • Show the app name in the about page title
  • PageRow can take ownership of a drawer’s contents


  • Rework UploadDialog, add QML version, and a new ProvidersModel
  • Simplify lookup of knsrc files using KFileUtils::findAllUniqueFiles method
  • Forward Attica provider icons to KNSCore::Provider
  • Handle payload-only entries during update operations


  • Add placeholders for window title and application display name

KPackage Framework

  • Deprecate kpackage_install_bundled_package cmake function
  • Reduce severity of warnings about appstream generations
  • Deprecate implicitly defining X-KDE-ParentApp by parent structure
  • Introduce new KPackageStructure property to identify plugins & packages
  • Include a warning when setting the path without a structure


  • Install private personmanager header


  • Deprecate RunnerManager::runnerMetaDataList(QString parentApp) method
  • Deprecate TryExec property for runners
  • Use KFileUtils::findAllUniqueFiles to locate DBus runners


  • Network mounts performance optimizations
  • KateView: speed up large view jumps
  • ensure close button on top for replace
  • move close button to right for bottom widgets


  • Make currency conversion table fetching explicit

KWallet Framework

  • Don’t use gpgme.h


  • Fix check for mmap failure (bug 421868)


  • Update some widget pictures
  • kmimetypeeditor: display an error message if keditfiletype couldn’t be started (bug 437701)
  • Wrapp unisged int getter for rating in KWIDGETSADDONS_BUILD_DEPRECATED_SINCE
  • Deprecate KRatingWidget::ratingChanged(unsigned int) signal


  • Support static builds


  • commandbar: collect actions using the guiFactory (bug 439526)
  • Fix KShortcutsDialog build
  • KShortcutsDialog: add another, simpler, constructor


  • Add find_dependency for QtDBus
  • Make dependency on QtXml private


  • Feature: add assigned-mac-address
  • Expose mDNS configuration used by NM plugins

Oxygen Icons

  • new color version for notification icon
  • improved icons from yesterday+ missing resolutions
  • preferences-desktop-notification-bell icon
  • kdf icon

Plasma Framework

  • Don’t pointlessly create new KPluginMetaData
  • Fix Units::roundToIconSize() returning incorrect sizes with non-Qt scaling (bug 381794)
  • Turn WindowThumbnail into a texture provider
  • Handle huge icons in Units::roundToIconSize() (bug 356446)
  • Deprecate plasma/version.h header & contained methods
  • Add a bit more contrast to event indicator in calendar (bug 437203)
  • Improve the code of the actions in the plasmoid heading
  • Theme::currentThemeHasImage should not return true if parent themes match (bug 439847)
  • Remove x1.5 mobile icon sizing
  • PlasmoidHeader: re-add backgroundMetrics
  • PlasmoidHeader: Make it based on T.ToolBar, deprecate location


  • Support binary content in QR codes
  • Constrain rendering by the minimum size, not the preferred size


  • [JobView] Show error when configuration fails to load
  • Replace xdg-mime invokation with KApplicationTrader
  • Make sure empty list placeholder has some space around it


  • Introduce MenuBar implementation
  • Use flat instead of raised for flat buttons and toolbuttons (bug 438525)
  • DialogButtonBox: remove unnecessary lines
  • DialogButtonBox: Set standard icons for standard buttons


  • Remove the HAL backend; HAL is long gone
  • Udev client: replace a warning message with a debug one (bug 425178)
  • Enable bsdisks_extensions from FreeBSD on OpenBSD
  • Enable OpenBSD UDisk2 support
  • Port framework away from LGPL-2.0-only


  • Fix language not being correctly guessed when sentence ends in a dot

Syntax Highlighting

  • toml.xml: forbid 0_digits in integers
  • toml.xml: support single-quoted keys
  • Python: Fix r"" and derivatives (bug 440412)
  • Python: Make unescaped single quote (’ or “) strings non-multiline
  • make update_kate_editor_org bsd compatible
  • Python: Fix single quote bytes literals (b”") (bug 440089)
  • cmake.xml: Drop version related find_package() vars
  • cmake.xml: Update variables for find_package() interface
  • cmake.xml: Add CMake 3.21 features
  • XML: add Attribute Separator style (= in )
  • XSLT: Enhance highlighter colors (like XML) + region for tag
  • Ini: value as int, float or keyword only if it represents the full value
  • Agda: update keyword list to Agda 2.6.2
  • XML: fix <! DOCTYPE detection and reordered rules for faster reading (+20%)
  • Python: }} in a f-string as an escape character and add ! a flag
  • systemd unit: update to systemd v249
  • systemd unit: fix highlighting of unit name
  • Mark katehighlightingindexer as a non-GUI executable
  • Disable using QtXMLPatterns with sanitizer build
  • Indexer: suggest LineContinue instead of RegExpr
  • move coroutine keywords in controlflow and replace some keyword rule with WordDetect

Security information

The released code has been GPG-signed using the following key: pub rsa2048/58D0EE648A48B3BB 2016-09-05 David Faure faure@kde.org Primary key fingerprint: 53E6 B47B 45CE A3E0 D5B7 4577 58D0 EE64 8A48 B3BB

Installing binary packages

On Linux, using packages for your favorite distribution is the recommended way to get access to KDE Frameworks. Get KDE Software on Your Linux Distro wiki page

Compiling from sources

The complete source code for KDE Frameworks 5.85.0 may be freely downloaded. Instructions on compiling and installing KDE Frameworks 5.85.0 are available from the KDE Frameworks 5.85.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.85.0 requires Qt 5.15.

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.

Get Involved

Those interested in following and contributing to the development of Frameworks can check out the git repositories and follow the discussions on the KDE Frameworks Development mailing list. 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.

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 Supporting KDE page for further information or become a KDE e.V. supporting member through our Join the Game initiative.