Friday, 14 March 2025
KDE today announces the release of KDE Frameworks 6.12.0.
KDE Frameworks are 72 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
Breeze Icons
- Remove themed SmartGit icon. Commit.
- Let the GNOME icon loader re-color our window-close icons. Commit. Fixes bug #500950
- Add -symbolic symlinks for value-decrease/increase. Commit. Fixes bug #494086
- Add MIME-type icons for kdenlive project files. Commit.
- Fix fill-rule-even-odd.svg and fill-rule-nonzero.svg. Commit.
- Borrow debug function from Qt documentation. Commit.
- Simplify qrcAlias to not use as much memory. Commit.
- Force folder creation. Commit.
- Remove inkscape icons. Commit.
- Safe half of memory for duplicate checking. Commit.
- Add battery-profile-balanced symlink. Commit.
Extra CMake Modules
- Consider BSL-1.0 as GPL-compatible. Commit.
- Improve docs for ECM QML modules. Commit.
- Drop old > 2 cmake version conditional branch. Commit.
- Require cmake >= 3.16 for the tests too. Commit.
- Add tests for KDE_INSTALL_APP_TEMPLATES. Commit.
- Unless setting KDE_INSTALL_APP_TEMPLATES, kde_package_app_templates is skipped when cross-compiling. Commit.
- Try to also satisfy Google Play's version code constraints. Commit.
- Generate Gradle version include file as part of ecm_add_android_apk(). Commit.
KArchive
- KF6 TODOs are now KF7 TODOs. Commit.
- Kgzipfilter.cpp use nullptr instead of zero. Commit.
- Use 'const QString' declarations for test filenames. Commit.
- Move all test data files to data directory. Commit.
- 7zip: Add default naming for files without a name. Commit. Fixes bug #496175
- Add error checking for writing back temp files in KTar. Commit.
- Handle errors in KTar::writeLonglink. Commit.
- Remove stale TODO. Commit.
- Refactor KXzFilter::init to use QScopeGuard. Commit.
KCMUtils
- ScrollView: don't move focus to empty toolbar. Commit.
- Kcmultidialog: set AccessibleName for ScrollArea. Commit.
- Kcmultidialog: only focus ScrollArea if scrollable. Commit.
- Src/kcmultidialog.cpp - prevent a crash in KCMultiDialogPrivate::apply(). Commit.
- Restore non-default highlight for widget kcms. Commit.
KConfigWidgets
- KRecentFilesAction: Don't call into QMimeDatabase to get what we already have. Commit.
KDeclarative
- KeySequenceItem: Only steal shortcut if the user accepted. Commit.
KDE Daemon
- Add Restart=on-failure to plasma-kded6 service configuration. Commit.
KFileMetaData
- [dump] Always build utility, even when tests are disabled. Commit.
- [XmlExtractor] Use non-deprecated QDomDocument::setContent overload. Commit.
- [dump] Build/install utility even when tests are disabled. Commit.
- Exiv2: Avoid calling enableBMFF for exiv2 >= 0.28.3. Commit.
- Odf: port to new QDomDocument::setContent version. Commit.
- [autotests] Remove leftover unused CMake variable. Commit.
- [ExtractorPlugin] Declare private helpers as deprecated. Commit.
- [ExtractorCollection] Warn if metadata is invalid. Commit.
- [ExtractorCollection] Warn if an extractor has no metadata. Commit.
- [ExtractorPlugin] Improve documentation. Commit. See bug #398101
- [ExtractorPlugin] Define the interface ID in a single place. Commit.
KGuiAddons
- Add KKeySequenceRecorder patterns. Commit.
KIconThemes
- Do not remove all instances of "-symbolic" at once. Commit.
KImageformats
- Use of heif_context_add_XMP_metadata instead. Commit.
- Sct: qRound with param bigger than max int is undefined. Commit.
- Sct: Use height instead of width when calculating dotsPerMeterY. Commit.
- MicroExif: search for the TIFF signature. Commit.
- MicroExif: API improvements and minor bugfixes. Commit.
- Fix compilation error. Commit.
- Added support for resolution and EXIF/XMP metadata to HEIF. Commit.
- JXR: Added rotation (transformation) support. Commit.
- JXR: added support to EXIF metadata. Commit.
- AVIF: added support to XMP and EXIF metadata. Commit.
- Added pixel limit detected by experimental tests. Commit.
- Jxl: fix build with Qt before 6.8.0. Commit.
- JP2: Disable ICC profile writing when saving an image with OpenJPEG V2.5.3 or lesser and improve the format detection on reading. Commit.
- Heif: improve handling of grayscale ICC profiles. Commit.
- Improve printing details when writetest fails. Commit.
- Update HEIF writetest templates. Commit.
- Added JXL to CMYK formats. Commit.
KIO
- KFileItem: fix stat() argument for URLs with local hostname. Commit.
- KUrlNavigatorButton: Use icon name we got after stat. Commit.
- KUrlNavigatorButton: Look up icon only when URL is set. Commit.
- Add background to KUrlNavigator. Commit. See bug #475106
- Add Fedora Packages search. Commit.
- Add kde icons to web shortcuts. Commit.
- Urifilters: Change the query url for wordreference.com. Commit.
- Remove the spaces between words in the DuckDuckGo provider. Commit.
- Shorten the Wikipedia search provider. Commit.
- Kurlnavigator: restrict middle click pasting from selection clipboard. Commit. Fixes bug #486229
- Filewidgets/kfilefiltercombo: std::copy_if instead of std::remove_if without std::erase. Commit.
- KDirListerTest:testDeleteCurrentDir: there can be duplicated delete events. Commit.
- Widgets/kabstractfileitemactionplugin: update header documentation. Commit.
- Widgets/kabstractfileitemactionplugin: add a TODO KF7. Commit.
- Fail loading admin.so outside of the KIO PLUGINDIR. Commit.
- PreviewJob: Don't try to get thumbnail for empty files. Commit.
- Update broken links in kde_apps urifilter. Commit. Fixes bug #498278
Kirigami
- ScrollablePage: fix width and height binding loops. Commit. Fixes bug #459284
- Columnview: Fill width column when only one column is present. Commit.
- Platform: Use the old color set for disabled colors in PlatformTheme. Commit. Fixes bug #495694
- Add a PageStack attached property. Commit.
- Dialog: fix width and height binding loops. Commit. Fixes bug #494420
- Controls, layouts: set Accessible.name for Mnemonics. Commit.
- Mnemonicattached: add plainTextLabel property. Commit.
- Primitives/Separator: mark as non-focusable for a11y. Commit.
KNotifications
- Add xml/yaml linting. Commit.
KTextEditor
- Remove static_assert to avoid compiler warnings. Commit.
- Add "gc" motion for vim to Toggle Comment. Commit. Fixes bug #490195
- Fix boundary condition in argument hint navigation. Commit.
- Fix line no info tooltip persists on right click. Commit.
- Improve wording of Copy as HTML whatsthis. Commit.
- Add "Copy as HTML" to context menu. Commit.
- Don't reset revision on reload but increment it. Commit. Fixes bug #499311
- Katedocument: Optimize mimeType. Commit.
- Compute at least inside cursorToX with floats. Commit. Fixes bug #499669
- Fix scrolling to search results in wrapped long lines. Commit. Fixes bug #448765
- Renderer: simplify text ranges comparison function. Commit.
- Add direct camel/subword movement actions. Commit.
KUnitConversion
- Rename variable as KFUNITCONVERT_NO_DOWNLOAD. Commit.
KWidgetsAddons
- Allow limiting the selectable range of a KDatePicker. Commit.
- KFontRequester: Force frame around sample label. Commit.
- Correct DateKeywords option check in KDateComboBox::initDateWidget. Commit.
- Set a QComboBox placeholder when KSelectAction is on a toolbar. Commit.
- KActionMenu: Apply popupMode to existing widgets. Commit.
- Add 1840d8fb to .git-blame-ignore-revs. Commit.
- Run clang-format. Commit.
- KCapacityBar: Allow to specify state in drawCapacityBar. Commit.
- Fix popup menu position. Commit.
KWindowSystem
- Add xml/yaml linting. Commit.
Network Manager Qt
- Expose AccessPoint bandwidth property. Commit.
Syntax Highlighting
- Fix XML syntax for Hjson syntax highlighting. Commit.
- Add syntax highlighting file for Hjson (syntax extension to JSON). Commit.
- Don't ignore the result of QFile::open. Commit.
- Adjust stan tests to new hl state. Commit.
- Update Stan language for newer keywords. Commit.
- Add example SPDX and alerts comments in test.gleam. Commit.
- Replace inlined license by SPDX-License-Identifier in gleam.xml top comment. Commit.
- Refactor
alerts
keywords tocrash keywords
and addimport keyword
list. Commit. - Increment gleam.xml version number. Commit.
- Add example documentation comments. Commit.
- Refactor comments and improve import highlighting. Commit.
Threadweaver
- Increase required CMake version for example. Commit.
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 6.12.0 may be freely downloaded. Instructions on compiling and installing are available from the KDE Frameworks 6.12.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 6.12.0 requires Qt 6.5.0.
A detailed listing of all Frameworks 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 Libera Chat.
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.