KDE Frameworks 5.77.0

December 9, 2020. KDE today announces the release of KDE Frameworks 5.77.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


  • Fix crash in provider loading by checking reply pointer before deref (bug 427974)


  • [DocumentUrlDB] Delete child list entry from DB if empty
  • Add Presentation document type for Office OpenXML slideshow and template
  • [MetaDataMover] Fix lookup of parent document id
  • [DocumentUrlDB] Add method for trivial renames and moves
  • [MetaDataMover] Make renames a DB only operation
  • [Document] Add parent document ID and populate it
  • Replace direct syslog call with categorized logging message

Breeze Icons

  • Add text-field variants: -frameless (-> text-field), -framed
  • Add symbolic name symlink for input-* icons
  • Add icon for True Type XML font
  • Add add-subtitle
  • Change MathML icon to use a formula and use specific mime type
  • Add icon for QEMU disk image and SquashFS image
  • Add edit-move action icon
  • Add icon for core dumps
  • Add a bunch of subtitle mime types
  • Remove useless blur from kontrast icon

Extra CMake Modules

  • Fix category extraction from desktop files
  • Define install dir variable for file templates
  • Add fastlane metadata generation for Android builds
  • (Qt) WaylandScanner: Properly mark files as SKIP_AUTOMOC


  • ResultModel: expose resource MimeType
  • Add event filtering for files and directories (bug 428085)


  • Fix maintainer, that is supposed to be Allen, not me :slight_smile:
  • Add support for CONFERENCE property
  • Add alarmsTo convenience method to Calendar
  • Check that by day recurrences do not precede dtStart


  • Remove hack that broke multi level kcms in icon mode


  • Fix KConfigGroup::copyTo with KConfigBase::Notify (bug 428771)


  • Avoid to crash when factory is empty (when we return an error)
  • KFormat: Add more relative date time cases
  • Enable KPluginFactory to optionally pass KPluginMetaData to plugins


  • Remove it as it creates too many errors


  • Sync margins from AbstractKCM into SimpleKCM
  • Remove obsolete license text
  • Relicense file to LGPL-2.0-or-later
  • Relicense file to LGPL-2.0-or-later
  • Relicense file to LGPL-2.0-or-later
  • Relicense file to LGPL-2.0-or-later
  • Rewrite KeySequenceItem (and helper) to use KeySequenceRecorder (bug 427730)


  • Properly parse escaped double quotes
  • Add OpenBSD’s doas(1) support


  • Fix some leaks in OpenDocument and Office OpenXML extractors
  • Add several subtypes for OpenDocument and OpenXML document


  • Load statically linked kglobalacceld interface plugins

KDE GUI Addons

  • Make shortcut inhibition work from the get-go (bug 407395)
  • Fix potential crash in wayland inhibitor teardown (bug 429267)
  • CMake: Find Qt5::GuiPrivate when Wayland support is enabled
  • Add KeySequenceRecorder as base for KKeySequenceWidget and KeySequenceItem (bug 407395)


  • Fix rounding of sun position events less than 30s before the next hour
  • Avoid parsing each holiday file twice in defaultRegionCode()
  • Compute the astro seasons only once per occurrence
  • Fix holiday region lookup for ISO 3166-2 codes
  • Make HolidayRegion copyable/movable
  • Add support for calculating civil twilight times


  • Load statically linked system poller plugins


  • No longer decrease color depth to 8 for 16 bit uncompressed PSD files


  • NewFile Dialog: allow to accept directory creation before stat has run (bug 429838)
  • Don’t leak DeleteJob thread
  • KUrlNavBtn: make opening subdirs from dropdown menu with the keyboard work (bug 428226)
  • DropMenu: Use translated shortcuts
  • [ExecutableFileOpenDialog] focus Cancel button
  • Places view: highlight place only when it is displayed (bug 156678)
  • Add property to display plugin actions in “Actions” submenu
  • Remove newly introduced method
  • KIO::iconNameForUrl: resolve icon for remote files based on name (bug 429530)
  • [kfilewidget] Use new standard shortcut for “Create Folder”
  • Refactor context menu loading and make it more scalable
  • RenameDialog: allow to overwrite when files are older (bug 236884)
  • DropJob: use new edit-move icon for ‘Move Here’
  • Fix moc_predefs.h gen when ccache is enabled through -DCMAKE_CXX_COMPILER=ccache CMAKE_CXX_COMPILER_ARG1=g++
  • We require Qt 5.13 now, so remove ifdef
  • Port KComboBox to QComboBox
  • Doc fix requested by Méven Car @meven
  • Refactor some loops using modern C++
  • Cleanup dead code
  • Remove redundant check if key exists
  • Simplify code for RequiredNumberOfUrls
  • Remove some blank lines
  • Simplify code and make it more consistent
  • ioslaves: fix remote:/ root permissions
  • KFileItem: isWritable use KProtocolManager for remote files
  • Add overload to prepend actions to the “Actions” menu
  • Use modern code style
  • Do not add unnecessary separators (bug 427830)
  • Use a braced initializer_list instead of « operator
  • MkPathJob: rewrite conditionally compiled code to improve readablity


  • Make GlobalDrawer header set the position of ToolBars/TabBars/DialogButtonBoxes
  • inViewport attached property
  • fix header slide on touchscreen
  • Refactor AbstractapplicationHeader with a new “ScrollIntention” concept
  • on desktop always fill anchors to parent
  • [controls/BasicListItem]: Don’t anchor to nonexistent item
  • Don’t display avatar text on small size
  • Remove # and @ from the extraction process of avatar initial
  • Initialise property in sizeGroup
  • use mouse interaction on isMobile for easier testing
  • Hotfix leading/trailing using trailing values for leading separator margin
  • [controls/BasicListItem]: Add leading/trailing properties
  • fix sheet positioning on contents resize
  • Apply old behavior in wide mode and don’t add topMargin in FormLayout
  • Fix form layout on small screen
  • You can’t use an AbstractListItem in a SwipeListItem
  • Fix “Unable to assign [undefined] to int” in OverlaySheet
  • [overlaysheet]: Don’t do a janky transition when content height changes
  • [overlaysheet]: Animate height changes
  • Fix overlay sheet positioning
  • always set index when clicking on a page
  • fix FAB s dragging in RTL mode
  • Refine list separator appearance (bug 428739)
  • fix drawer hanles in RTL mode
  • Fix rendering borders the proper size with software fallback (bug 427556)
  • Don’t place software fallback item outside of shadowed rectangle item bounds
  • Use fwidth() for smoothing in low power mode (bug 427553)
  • Also render a background color in low power mode
  • Enable transparent rendering for Shadowed(Border) Texture in lowpower
  • Do not cancel alpha components for shadowed rectangle in low power mode
  • Don’t use a lower smoothing value when rendering ShadowedBorderTexture’s texture
  • Remove “cut out” steps from shadowed rectangle and related shaders
  • Use icon.name instead of iconName in the doc
  • [Avatar] Make icon use an icon size close to the text size
  • [Avatar] Make the initials use more space and improve vertical alignment
  • [Avatar] Expose sourceSize and smooth properties for anyone who wants to animate the size
  • [Avatar] Set the source size to prevent images from being blurry
  • [Avatar] Set the foreground color once
  • [Avatar] Change background gradient
  • [Avatar] Change border width to 1px to match other bother widths
  • [Avatar] Make padding, verticalPadding and horizontalPadding always work
  • [avatar]: Add gradient to colours


  • KRearrangeColumnsProxyModel: only column 0 has children


  • Install player & engine servicetype def. files by file name matching type


  • Fix uninstalling when the entry isn’t cached
  • When we call to check for updates, we expect updates (bug 418082)
  • Reuse QWidgets dialog (bug 429302)
  • Wrap compatibility block in KNEWSTUFFCORE_BUILD_DEPRECATED_SINCE
  • Do not write cache for intermediate states
  • Use enum for uncompression instead of string values
  • Fix entry disappearing too early from updatable page (bug 427801)
  • Add DetailsLoadedEvent enum to new signal
  • Rework adoption API (bug 417983)
  • Fix a couple of stragglers with old provider url
  • Remove entry from cache before inserting new entry (bug 424919)


  • Don’t pass transient hint (bug 422042)
  • Fix case-sensitive error of AppKit header on macOS
  • Do not invoke invalid notification actions
  • Fix memory handling for notifybysnore

KPackage Framework

  • Drop X-KDE-PluginInfo-Depends


  • Deprecate embed() method, for lack of usage
  • Make KParts use KPluginMetaData instead of KAboutData


  • Rework line smoothing algorithm
  • Move applying interpolation to the polish step
  • Properly center point delegates on line chart and size them with line width
  • Add a “smooth” checkbox to line chart example
  • Ensure line chart point delegates are properly cleaned up
  • Also show name in tooltip on Line chart page example
  • Document LineChartAttached and fix a typo in LineChart docs
  • Add name and shortName properties to LineChartAttached
  • Document pointDelegate property more thoroughly
  • Remove previousValues member and fix stacked line charts
  • Use pointDelegate in Line chart example to display values on hover
  • Add support for “point delegate” to Line charts
  • LineChart: Move point calculation from updatePaintNode to polish


  • Deprecate KDE4 package remnants
  • Make use of new KPluginMetaData plugin constructor support of KPluginLoader


  • [kapplicationtrader] Fix API docs
  • KSycoca: recreate DB when version < expected version
  • KSycoca: Keep track of resources Files of KMimeAssociation


  • Port KComboBox to QComboBox
  • use KSyntaxHighlighting themeForPalette
  • fix i18n call, missing argument (bug 429096)
  • Improve the automatic theme selection


  • Don’t emit the passwordChanged signal twice
  • Add KMessageDialog, an async-centric variant of KMessageBox
  • Restore the old default popup mode of KActionMenu
  • Port KActionMenu to QToolButton::ToolButtonPopupMode


  • Load statically linked integration plugins
  • Port away from pid() to processId()


  • Introduce HideLibraries and deprecate HideKdeVersion
  • Rewrite KKeySequenceWidget to use KeySequenceRecorder (bug 407395)

Plasma Framework

  • [Representation] Only remove top/bottom padding when header/footer is visible
  • [PlasmoidHeading] Use technique from Representation for inset/margins
  • Add a Representation component
  • [Desktop theme] Rename hint-inset-side-margin to hint-side-inset
  • [FrameSvg] Rename insetMargin to inset
  • [PC3] Use PC3 Scrollbar in ScrollView
  • [Breeze] Report inset hint
  • [FrameSvg*] Rename shadowMargins to inset
  • [FrameSvg] Cache shadow margins and honor prefixes
  • Finish the animation before changing the length of the progressbar highlight (bug 428955)
  • [textfield] Fix clear button overlapping text (bug 429187)
  • Show drop menu at correct global position
  • Use gzip -n to prevent embedded buildtimes
  • Use KPluginMetaData to list containmentActions
  • Port packageStructure loading from KPluginTrader
  • Use KPluginMetaData to list DataEngines
  • [TabBar] Add highlight on keyboard focus
  • [FrameSvg*] Expose shadows margins
  • Make MarginAreasSeparator value more clear
  • [TabButton] Align center icon and text when text is beside the icon
  • [SpinBox] Fix logic error in scroll directionality
  • fix mobile scrollbar in RTL mode
  • [PC3 ToolBar] Don’t disable borders
  • [PC3 ToolBar] Use correct svg margin properties for padding
  • [pc3/scrollview] Remove pixelAligned
  • Add margin areas


  • [bluetooth] Fix sharing multiple files (bug 429620)
  • Read translated plugin action label (bug 429510)


  • button: rely on down, not pressed for styling
  • Reduce the size of round buttons on mobile
  • fix mobile scrollbar in RTL mode
  • fix progressbar in RTL mode
  • fix RTL display for RangeSlider


  • Include errno.h for EBUSY/EPERM
  • FstabBackend: return DeviceBusy where umount failed on EBUSY (bug 411772)
  • Fix detection of recent libplist and libimobiledevice

Syntax Highlighting

  • fix dependencies of the generated files
  • indexer: fix some issues and disable 2 checkers (capture group and keyword with delimiter)
  • indexer: load all xml files in memory for easy checking
  • C++ highlighting: update to Qt 5.15
  • relaunch syntax generators when the source file is modified
  • systemd unit: update to systemd v247
  • ILERPG: simplify and test
  • Zsh, Bash, Fish, Tcsh: add truncate and tsort in unixcommand keywords
  • Latex: some math environments can be nested (bug 428947)
  • Bash: many fixes and improvements
  • add –syntax-trace=stackSize
  • php.xml: Fix matching endforeach
  • Move bestThemeForApplicationPalette from KTextEditor here
  • debchangelog: add Trixie
  • alert.xml: Add NOQA yet another popular alert in source code
  • cmake.xml: Upstream decided to postpond cmake_path for the next release

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.77.0 may be freely downloaded. Instructions on compiling and installing KDE Frameworks 5.77.0 are available from the KDE Frameworks 5.77.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.77.0 requires Qt 5.13.

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.