KDE today announces the release of KDE Frameworks 5.116.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
Breeze Icons
Add audio/ogg and audio/x-vorbis+ogg icons
Add audio/vnd.wave MIME type
Extra CMake Modules
ECMAddQch: drop trying to set IMPORTED on targets with installed config
Remove extraneous docs-build CI job that is no longer needed following the switch of api.kde.org to Gitlab CI
Disable FreeBSD tests that recently started to fail in the CI
KDED
Wait until kconf_update finished
KFileMetaData
fix handling of attribute namespacing
KI18n
KF5I18nMacros.cmake.in - don't look for python[2,3] on Windows
KCountrySubdivision: unbreak support of iso-codes >= 4.16
KImageFormats
TGA: added options support (bug 479612)
More header checks (CCBUG: 479612) (bug 479612))
KIO
Strip trailing slash in iconForStandardPath
KItemModels
Trivial fix for crash in buddy() when sourceModel isn't set yet
KPackage Framework
testpackage: Add a website so that the tests succeed
KRunner
Add default arg to AbstractRunner QVariantList constructor
KService
Fix warning: mimeType "x-scheme-handler/file" not found (bug 442721)
QQC2StyleBridge
Localization support
Syntax Highlighting
fix refs
use (?:sub){0,2} to work with all pcre versions
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
KDE’s KContacts framework provides API for locale-aware address formatting and address format metadata
since quite some time,
with an upcoming change this will all also be available for QML code directly.
Country-specific address formatting
Addresses are generally formatted differently depending on the country they are in. Such differences can
be whether the state or region is relevant/included, how different parts are ordered or how different
parts are joined in the local language/script.
If we have address information in a somewhat structured form, ie. broken up into individual parts (street,
postal code, city, country, etc), displaying that correctly requires knowledge of those formatting rules.
As this is not an uncommon problem, the KContacts framework provides C++ API for this. Using that
from QML without custom glue code is now also becoming possible.
Different formatting styles are supported (single- or multi-line, international or domestic, for display or for postal mail labels).
Address format metadata
Additionally, the metadata necessary for formatting addresses can also be queried. This is useful for example for:
Showing only the input fields in an address edit form actually relevant for a specific country.
Input validation of postal codes, as shown in the code example below.
Ordering input fields in the canonical order in a given country.
More elaborate examples can be found e.g. in Itinerary’s address/location editor.
A few weeks ago, some of us discovered that KDE apps just looked terrible when run in GNOME. A lengthy discussion on icon theming ensued, with various improvements made on both sides. The KDE effort was spearheaded by Christoph Cullmann, as already described in his post on the subject. In a nutshell, KDE apps opting into the new system that are run outside of Plasma will always have the Breeze style and icons available, unless overridden by the system or the user. Apps opting in so far include Kate, Konsole, and Dolphin. Feel free to help opt more apps in by using those commits as inspiration!
Dolphin itself also received a lot of special attention this week, in addition to other cool stuff:
New Features
Dolphin now gives you the option to enable previews for folders on remote locations. Be aware that this can cause slowdowns, and the UI tells you that, too (Sergey Katunin, Dolphin 24.08. Link):
Discover now handles the case where one of your Flatpak apps has been marked as “end of life” and replaced with another one; it gives you the opportunity to switch to the new one, or cancel and keep using the old one anyway (Harald Sitter, Plasma 6.1. Link):
UI Improvements
Dolphin’s ability to let you change things as root when kio-admin is installed has received a big upgrade: now it shows you a warning telling you what bad things you can do if you’re not careful, and also keeps a banner visible while you’re in root mode (Felix Ernst, Dolphin 24.08. Link):
Dolphin has received a number of UI improvements and better handling for viewing read-only folders (Jin Liu, Dolphin 24.08. Link)
Switched Spectacle over to using the common style for immutable toolview tabs in Kirigami apps (me: Nate Graham, Spectacle 24.08. Link):
KMenuEdit no longer annoyingly prompts you for confirmation when you delete a group (Kenny Hui, Plasma 6.1. Link)
The icons shown in our dialogs no longer themselves depict dialogs for mega dialog-ception; now they’re just normal colored icons (me: Nate Graham, Frameworks 6.3. Link):
Bug Fixes
Attempting to open multiple “New Folder” dialogs on a slow network location no longer causes Dolphin to crash (Akseli Lahtinen, Dolphin 24.08. Link)
Very small SVG images are now displayed properly in thumbnail previews (Méven Car, kio-extras 24.08. Link)
Fixed a case where our authentication system could crash and leave apps unable to request authentication (me: Nate Graham, Plasma 6.0.5. Link)
Turning on HDR mode no longer makes the screen colors wrong when using Night Color (Xaver Hugl, Plasma 6.0.5. Link)
Screens using fractional scale factors no longer get a weird row of pixels on the bottom edge that are held to the color of previously opened windows (Xaver Hugl, Plasma 6.0.5. Link)
Fixed several Plasma crashes that were introduced by porting some custom drag-and-drop code to the upstream Qt thing, but turns out to not be suitable for our purposes. Reverting to our custom code fixes the crashes (Kai Uwe Broulik, Plasma 6.1, Link 1 and link 2)
When Chromium-based browsers are running in native Wayland mode, dragging and dropping files into websites no longer makes them freeze and crash. This was a complicated bug largely caused by Chromium doing something unusual, but KWin now handles it properly (David Edmundson, Plasma 6.1. Link)
Visiting System Settings’ File Search page no longer sometimes causes a long hang when the file indexer is under heavy load (Janet Blackquill, Frameworks 6.3. Link)
If for some reason you want to use the Kickoff application launcher to search for a single character, close Kickoff, and then do the same thing again, the second search will now show results as expected (Alexander Lohnau, Frameworks 6.3. Link)
KSvg items and Kirigami.Icon used in Plasma now re-color re-colorable SVG images in the expected way when they’re displayed in Plasma irrespective of color scheme. This makes the CatWalk cat look correct while using a mixed light/dark global theme like Breeze Twilight (Marco Martin, Frameworks 6.3. Link):
106 KDE bugs of all kinds fixed over the last week Full list of bugs
…And Everything Else
This blog only covers the tip of the iceberg! If you’re hungry for more, check out https://planet.kde.org, where you can find more news from other KDE contributors.
How You Can Help
The KDE organization has become important in the world, and your time and labor have helped to bring it there! But as we grow, it’s going to be equally important that this stream of labor be made sustainable, which primarily means paying for it. Right now the vast majority of KDE runs on labor not paid for by KDE e.V. (the nonprofit foundation behind KDE, of which I am a board member), and that’s a problem. We’ve taken steps to change this with paid technical contractors—but those steps are small due to growing but still limited financial resources. If you’d like to help change that, consider donating today!
Otherwise, visit https://community.kde.org/Get_Involved to discover other ways to be part of a project that really matters. Each contributor makes a huge difference in KDE; you are not a number or a cog in a machine! You don’t have to already be a programmer, either. I wasn’t when I got started. Try it, you’ll like it! We don’t bite!
The MarkNote team is happy to announce the 1.2 release of MarkNote, KDE’s
WYSIWYG note-taking application. Marknote lets you create rich text notes and
easily organise them into notebooks. You can personalise your notebooks by
choosing an icon and accent color for each one, making it easy to distinguish
between them and keep your notes at your fingertips. Your notes are saved as
Markdown files in your Documents folder, making it easy to use your notes
outside of Marknote as well as inside the app.
Notes management
This releases brings highly wanted features like the ability to choose a custom
folder where to store your notes. Mathis Brüchert also added the ability to
change the sorting of notes from alphabetically to by date.
Mathis made the sidebar collapsable and added a focus mode where everything but
the editing page is displayed.
Finally if you prefer to just use Marknote as a Markdown editor, we made it
possible to just open any markdown files directly from the file browser or the
console. Additionally Marknote supports markdown files with a so called front
matter, which is a common way to inject metadata to markdown in static website
generators like Hugo and Jekyll.
Editing
In term of edition support, the subset of markdown supported increased again.
Now it is possible to add and edit tables.
Additionally we started transforming inline markdown directly to rich text as
you type. Support is limited to a few markdown constructs but is likely to
grow over time.
You can now customize the font used by editor.
Aside from being able to edit text, it’s now possible to also create sketches
directly from MarkNote.
Mobile Support
Mathis took care of ensuring MarkNote was fully usable when used with Plasma Mobile.
Windows and macOS support
Marknote now provides nightly builds for Windows and macOS. While the Windows
builds should be fully usable, the macOS build still has an issue where most
icons are not displayed. This should be fixed as soon as we can make use of
the new KIconTheme version.
As part of the work to improve the macOS support, Marknote also gained global
menu support for Linux.
Others
The command bar will show translated shortcuts. (Laurent Montel)
Unify spelling of MarkNote and fix typos in the README.md (Jonah Brüchert)
Get Involved
Mathis created a Matrix channel for MarkNote:
#marknote:kde.org. There is
also still a lot of small improvements that can be done everywhere and which
don’t require a lot of programming experience. Take a look at these two tasks
!31 and
!27 for some inspiration
on what you could work on.
KDE e.V., the non-profit organisation supporting the KDE community, is looking for a graphic designer to implement materials (print design, logo design, infographics, etc.) for a new environmental sustainability campaign within KDE Eco. Please see the job ad for more details about this employment opportunity.
So this is not quite an introduction since the plugin has been around for almost a year now, having been released in the 23.04 release but since I never got around to writing a blog about it, here I am.
In simple words, the formatting plugin allows one to format code easily and quickly. Well the "quickness" depends on the underlying code formatter but we try to be as quick as possible. So far if you wanted to do code formatting from within Kate, the only way to do that was to configure a tool in the External Tools plugin and then invoke it whenever you wanted to format the code. While this works it wasn't great for a few reasons. Firstly, you would loose undo history. Secondly, the buffer would jump and you would most likely loose your current position in the document. Thirdly, for every language you get a different tool and you need to remember the right tool to invoke on the right document type.
To simplify this, I decided to write a plugin that would expose a minimal UI but still provide a lot of features.
There are basically two ways to use this plugin:
Manually using the "Format Document" action.
Automatically on save
The correct formatter is invoked based on the document type in all cases. Additionally the plugin will preserve the document's undo history and user's cursor position when formatting the code so that the formatting of code doesn't disrupt user's workflow. This is especially important for automatic formatting on save.
Supported languages:
The current list of supported languages and formatters are as follows:
C/C++/ObjectiveC/ObjectiveC++/Protobuf
clang-format
Javascript/Typescript/JSX/TSX
Prettier
Json
clang-format
Prettier
jq
Dart
dartfmt
Rust
rustfmt
XML
xmllint
Go
gofmt
Zig
zigfmt
CMake
cmake-format
Pythong
autopep8
ruff
Configuring
The plugin can be configured in two ways:
Globally, from the Configure dialog
On a per project basis using the .kateproject file
When reading the config, the plugin will first try to read the config from .kateproject file and then read the global config.
disables "format on save" for cmake-format and autopep8
To configure formatting for a project, first create a .kateproject file and then add a "formatting" object to it. In the "formatting" object you can specify your settings as shown in the previous example. Example:
I was there as part of the Automation & Systematization sprint given my involvement in the release process, the "not very automatized" weekly emails about the status of CI about KDE Gear and KDE Frameworks, etc. but I think that maybe I was there more as "person that has been around a long time, ask me if you have questions about things that are documented through oral tradition"
I didn't end up doing lots of work on sprint topics themselves (though I participated in various discussions, did a bit of pair-programming with Aleix on QML accessibility issues, inspired DavidR to do the QML-text-missing-i18n check that he describes in his blog); instead I cheated a bit and used the sprint to focus on some of the KDE stuff I had a bit on my backlog, creating the KDE Gear release/24.05 branches and lots of MR reviewing and more!
Thanks KDE e.V. for sponsoring the trip, if you would like such events to continue please we need your continued donations
And remember Akademy talk submission period ends in 10 days, send your talk now!
A new revision of digiKam Recipes is available for your reading pleasure. The new version covers the auto tagging feature introduced in digiKam 8.3 and explains how to run digiKam in a container.
If you bought the book through Gumroad, you’ll find the new revision in the Library section. The book purchased through Google Play should be updated automatically to the latest version. If you have problems getting the latest revision of the book, contact the author at dmpop@cameracode.
The Kubuntu Team are thrilled to announce significant updates to KubuQA, our streamlined ISO testing tool that has now expanded its capabilities beyond Kubuntu to support Ubuntu and all its other flavors. With these enhancements, KubuQA becomes a versatile resource that ensures a smoother, more intuitive testing process for upcoming releases, including the 24.04 Noble Numbat and the 24.10 Oracular Oriole.
What is KubuQA?
KubuQA is a specialized tool developed by the Kubuntu Team to simplify the process of ISO testing. Utilizing the power of Kdialog for user-friendly graphical interfaces and VirtualBox for creating and managing virtual environments, KubuQA allows testers to efficiently evaluate ISO images. Its design focuses on accessibility, making it easy for testers of all skill levels to participate in the development process by providing clear, guided steps for testing ISOs.
New Features and Extensions
The latest update to KubuQA marks a significant expansion in its utility:
Broader Coverage: Initially tailored for Kubuntu, KubuQA now supports testing ISO images for Ubuntu and all other Ubuntu flavors. This broadened coverage ensures that any Ubuntu-based community can benefit from the robust testing framework that KubuQA offers.
Support for Latest Releases: KubuQA has been updated to include support for the newest Ubuntu release cycles, including the 24.04 Noble Numbat and the upcoming 24.10 Oracular Oriole. This ensures that communities can start testing early and often, leading to more stable and polished releases.
Enhanced User Experience: With improvements to the Kdialog interactions, testers will find the interface more intuitive and responsive, which enhances the overall testing experience.
Call to Action for Ubuntu Flavor Leads
The Kubuntu Team is keen to collaborate closely with leaders and testers from all Ubuntu flavors to adopt and adapt KubuQA for their testing needs. We believe that by sharing this tool, we can foster a stronger, more cohesive testing community across the Ubuntu ecosystem.
We encourage flavor leads to try out KubuQA, integrate it into their testing processes, and share feedback with us. This collaboration will not only improve the tool but also ensure that all Ubuntu flavors can achieve higher quality and stability in their releases.
Getting Involved
For those interested in getting involved with ISO testing using KubuQA:
Join the Community: Engage with the Kubuntu community for support and to connect with other testers. Your contributions and feedback are invaluable to the continuous improvement of KubuQA.
Conclusion
The enhancements to KubuQA signify our commitment to improving the quality and reliability of Ubuntu and its derivatives. By extending its coverage and simplifying the testing process, we aim to empower more contributors to participate in the development cycle. Whether you’re a seasoned tester or new to the community, your efforts are crucial to the success of Ubuntu.
We look forward to seeing how different communities will utilise KubuQA to enhance their testing practices. And by the way, have you thought about becoming a member of the Kubuntu Community? Join us today to make a difference in the world of open-source software!