Friday, 13 September 2024
KDE today announces the release of KDE Frameworks 6.6.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 48px draw-freehand symlink. Commit. Fixes bug #491887
- Add info(-symbolic) icon symlinks. Commit.
- Add new 64px dialog icons. Commit.
- Add icon for Apple Wallet passes bundle. Commit.
- Add battery icons with power profile emblems. Commit. See bug #483805
- Add remaining symbolic icons required for Discover. Commit.
- Update accessibility icons. Commit.
- Ci: add Alpine/musl job. Commit.
- Add system-reboot-update and system-shutdown-update icons. Commit.
- Add a couple of missing monochrome category icons. Commit.
- Don't generate symlinks for app icons if we not install the icons. Commit.
- Fix issues with zoom-map icons. Commit.
- Add Spinbox-specific decrease and increase icons. Commit. See bug #491312
- Make list-remove look like a red X. Commit.
Extra CMake Modules
- ECMQueryQt: don't cache QUERY_EXECUTABLE. Commit.
- Add fallback value for SASL_PATH. Commit.
- Add SASL_PATH to prefix.sh so that libkdexoauth2.so is found. Commit.
- Allow qml target to be actually optional. Commit.
- Fix FindLibExiv2 version detection from header. Commit.
- Ci: add Alpine/musl job. Commit.
- ECMEnableSanitizers: fix greedy linker parameter replacment. Commit.
- Add private code option to ecm_add_qtwayland_(client/server)_protocol. Commit.
- Add a PRIVATE_CODE option to ecm_add_wayland_server_protocol. Commit.
- Add [PRIVATE_CODE] also to the second signature of ecm_add_wayland_server_protocol. Commit.
KCoreAddons
- ExportUrlsToPortal: check for dbus error. Commit.
- KDirWatch: don't try inotify again if it has already failed. Commit.
- Relicense some files from lgpl2-only to lgpl2.1-or-later. Commit.
- Ci: add Alpine/musl job. Commit.
- KPluginMetaData: Avoid reading metadata from plugin loader twice. Commit.
- Kcoreaddons_add_plugin: Fix typo in error message. Commit.
- Fix configuring error when QtQml is not around. Commit.
KDBusAddons
- Ci: add Alpine/musl job. Commit.
KFileMetaData
- UserMetadata: fix Win k_setxattr. Commit.
- [OfficeExtractor] Do not add word/line count if nothing has been extracted. Commit.
- [OfficeExtractor] Only try to extract content if PlainText is requested. Commit.
- [OfficeExtractor] Remove duplicate findExecutable calls, fix debug output. Commit.
- Cmake: Use KDE_INSTALL_FULL_LIBEXECDIR_KF instead of manual path mangling. Commit. Fixes bug #491462
- Add missing initializer for "Empty" PropertyInfo displayName. Commit.
- [Taglib] Use non-deprecated constructors for MPEG::File/FLAC::File. Commit.
- [Taglib] Replace deprecated length() with lengthInSeconds(). Commit.
KGlobalAccel
- Ci: add Alpine/musl job. Commit.
KGuiAddons
- Port towards QNativeInterface. Commit.
- Fail at CMake configure time if xcb Qt feature is not enabled. Commit.
- Waylandclipboard: Dont explicitly clear when transfering sources. Commit.
- [kjobwidgets] Store window in a QPointer. Commit. See bug #491637. See bug #448532
- Ci: add Alpine/musl job. Commit.
- KOverlayIconEngine: Adjust to API change in Qt 6.8 in scaled pixmap hook. Commit.
- Generate wayland code with PRIVATE_CODE. Commit.
KIconThemes
- Allow building without breeze-icons. Commit.
- Extend initTheme to ensure we properly follow the system colors. Commit.
- Add path for Android to theme locations. Commit.
- Take logical pixels in KIconEngine::createPixmap. Commit.
- [kiconengine] Adapt to Qt behavior change in scaledPixmap. Commit. Fixes bug #491677
KIO
- Test: skip kfilewidgettest focus test in Wayland. Commit.
- KFileWidget: Fix selecting directories. Commit.
- [trash] Fix restoring entries with absolute paths in disk-local trash. Commit. Fixes bug #463751
- Add missing include. Commit.
- Also search kservices5 for service menus. Commit.
- Accept service menus that use ServiceTypes to specify their types. Commit. Fixes bug #478030
- Ignore application/x-kde-onlyReplaceEmpty in paste dialog. Commit. Fixes bug #492006
- Apply 1 suggestion(s) to 1 file(s). Commit.
- PasteDialog: hide application/x-kde-* formats from the combobox. Commit.
- PreviewJob: remove obsolete support X-KDE-Protocols aware thumbnailer. Commit.
- Fix documentation for ThumbnailRequest. Commit.
- Remove dead code for changing job priorities. Commit.
- Remove unused sslMetaData member. Commit.
- Remove unneeded friend. Commit.
- KFileWidget: Enable word wrapping for the message widget. Commit.
- Add missing include. Commit.
- Remove unused function. Commit.
- Consistently use WITH_QTDBUS instead of USE_DBUS. Commit.
- Previewjob: use contains instead of supportsMimetype. Commit.
- Document variable purposes and move EntryInfo definition to the start. Commit.
- KPropertiesDialog: Add "unknown" fallback. Commit.
- KPropertiesDialog: Use original URL for extra fields. Commit.
- Remove unneeded QPointer usage. Commit.
- PreviewJob: some refactoring. Commit.
- KUrlNavigator: Support modifiers on return similar to web browsers. Commit.
- PreviewJob: fix warnings and a todo. Commit.
- KDynamicJobTracker: Use widgets fallback if server says job tracker is required. Commit.
- Correctly escape unit names. Commit. Fixes bug #488854
- KRecentDocument: add removeApplication and removeUrl. Commit. See bug #480276
- Gui/kprocessrunner: normalize working directory. Commit. Fixes bug #490966
- DropJob: special-case "downloading http URLs" drop with better text. Commit.
- Don't show "Move" item in drop menu for source files accessed using http. Commit. Fixes bug #389600
- Set up crash handling for kiod. Commit.
- Deprecate leftovers from HTTP cache control. Commit.
- KUrlNavigator: Decode url title fully. Commit.
- Make sure KCrash works for kioworker. Commit.
- Previewjob: Use thumbnailer files for any mimetypes we don't have a plugin for. Commit.
Kirigami
- Disable cachegen. Commit. Fixes bug #488326
- PlaceholderMessage: Remove the icon opacity if the message is actionable. Commit.
- ToolBarLayout: Add test for dynamic actions. Commit.
- Read willShowOnActive value as Variant and convert to Bool. Commit.
- PrivateActionToolButton: Replace onVisibleChanged with Connections. Commit.
- Fix registration name for WheelEvent. Commit.
- [icon] Only reload icon from theme if the theme has that icon. Commit. Fixes bug #491806. Fixes bug #491854. Fixes bug #491848
- PrivateActionToolButton: Hide menu if button is hidden. Commit. Fixes bug #486107
- Allow recoloring of Android icon theme. Commit.
- Ci: add Alpine/musl job. Commit.
- [icon] Fix icon colors when using Plasma platformtheme and QIcon source. Commit. Fixes bug #491274
- ShadowedImage: Expose Image.status via a readonly alias. Commit.
- PromptDialog: fix buttons overflow. Commit.
- Relicense Chip to LGPL. Commit.
- Relicense LoadingPlaceholder to LGPL. Commit.
KItemViews
- Ci: add Alpine/musl job. Commit.
KJobWidgets
- Only install D-Bus interface files when actually building with D-Bus. Commit.
KNotifications
- Don't set desktop file name for XDG activation token. Commit.
KQuickCharts
- Ci: add Alpine/musl job. Commit.
KTextEditor
- Make tests a bit faster. Commit.
- Fix clashing and missing keyboard accelerators. Commit.
- Add help texts for new editing commands. Commit.
- Move sort implementation to C++. Commit. Fixes bug #478250
- Move natsort to C++ and implement it using QCollator. Commit.
- Move the sortuniq, uniq implementation to C++. Commit. Fixes bug #478250
- Read and write font features to config. Commit.
- Fix doc.text() when first block is empty. Commit.
- Fix block splitting. Commit.
- Try to make test more robust. Commit.
- Restore previous indentation test mode based on individual files. Commit.
- Store startlines in the buffer instead of block. Commit.
- Doc: Fix code example for plugin hosting. Commit.
- No 10 second timeouts, the CI is not that consistent fast. Commit.
- Try to make test more stable. Commit.
- Improve encoding detection. Commit. Fixes bug #487594
- Fix grouping on config dialog page. Commit. Fixes bug #490617
- Optimize cursorToOffset. Commit.
- Dont indent on tab when in block selection mode. Commit. Fixes bug #448695
- Fix selection printing. Commit. Fixes bug #415570
KTextTemplate
- Ci: add Alpine/musl job. Commit.
KWidgetsAddons
- Hide toolbar when not need (e.g. in tabbed view). Commit.
- FontChoose: Allow setting font features when selecting font. Commit. Fixes bug #479686
- Expand tabbar in KPageView. Commit.
- [kjobwidgets] Store window in a QPointer. Commit. Fixes bug #491637. See bug #448532
- Support page headers in KPageView. Commit.
KWindowSystem
- Generate wayland code with PRIVATE_CODE. Commit.
Modem Manager Qt
- Ci: add Alpine/musl job. Commit.
Network Manager Qt
- Ci: add Alpine/musl job. Commit.
Syntax Highlighting
- Inc version. Commit.
- Update QFace IDL Definition to support single line comments. Commit.
- Odin.xml: Multiple fixes to the syntax. Commit.
- QFace: WordDetect without trailing space. Commit.
- Bash: add \E, \uHHHH and \UHHHHHHHH String Escape, @k parameter transformation and & in string substitution. Commit.
- Zsh: add \E, \uHHHH, \UHHHHHHHH and sinle \ as String Escape. Commit.
- Add definition for the QFace IDL. Commit.
- Modelines: add missing variables and delete some that don't work. Commit.
- Add Kate Config syntax (.kateconfig file). Commit.
- Modelines: fix spaces after remove-trailing-spaces value ; multiple values now stop parsing. Commit.
- Modelines: fix indent-mode value and remove deprecated variables. Commit.
- Detect-identical-context.py: add -p to show duplicate content. Commit.
- XML: add parameter entity declaration symbol (% in ). Commit.
- Indexer: suggest removing .* and .*$ from RegExpr with lookAhead=1. Commit.
- PHP: add { in double quote string as a Backslash Code. Commit. Fixes bug #486372
- Zsh: fix escaped line in brace condition. Commit.
- Bash: fix escaped line in brace condition. Commit. Fixes bug #487978
- Nix: fix string in attribute access. Commit. Fixes bug #491436
- Optimize AbstractHighlighterPrivate::ensureDefinitionLoaded (highlighter_benchmark is 1.1% faster). Commit.
- Ci: add Alpine/musl job. Commit.
- Indexer: suggest replacing RegExpr with Int or Float when possible. Commit.
- Add JSX as an alternative name for JavaScript React (JSX) and TSX for TypeScript React (TSX). Commit.
- Indexer: check name and alternativeNames conflict ; update alternativeNames for generated files. Commit.
- Optimize Repository::addCustomSearchPath. Commit.
- Replace QList contextDatas with std::vector: implicit sharing is not useful. Commit.
- Prefer range-based loops to loop over iterators. Commit.
- Optimize Definition::foldingEnabled() by calculating the result during loading. Commit.
- Replace DefinitionRef type with DefinitionData* in immediateIncludedDefinitions. Commit.
- Remove code duplication related to context resolution. Commit.
- Replace std::cout / std::cerr with fprintf. Commit.
- Use QStringView as key for format. Commit.
- Replace QStringView::mid,left,right with sliced. Commit.
- Replace QString::split with QStringTokenizer to avoid unnecessary list construction. Commit.
- Orgmode: add syntax highlighting to some languages. Commit.
- Optimize Repository::definition[s]For*(). Commit.
- Reduce QFileInfo usage. Commit.
- Theme_contrast_checker.py: add --scores to modify rating values. Commit.
- Theme_contrast_checker.py: displays the selected color space. Commit.
- Theme_contrast_checker.py: fix label inversion between bold and normal text. Commit.
- Ksyntaxhighlighter6: add --background-role parameter to display different possible theme backgrounds. Commit.
- Ksyntaxhighlighter6: rename ansi256Colors format to ansi256. Commit.
- Theme_contrast_checker.py: fix help of -M parameter. Commit.
- Added a link to all available syntaxes and how to test a file in an isolated environment. Commit.
- Python: raw-string with lowercase r are highlighted as regex. Commit.
- JSON: fix float that start with 0. Commit.
- JSON: add jsonlines and asciicast v2 format extensions. Commit.
Threadweaver
- Ci: add Alpine/musl job. 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.6.0 may be freely downloaded. Instructions on compiling and installing are available from the KDE Frameworks 6.6.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.6.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.