Feature requests and bugs should be posted on bugs.kde.org, but for bugs make sure to fill in the template and provide as much information as possible.
Changelog:
1.1.1
Bugfixes:
Subtitles menu not including manually added subtitles
Duration in the playlist being 0
Preview popup being visible for audio files
AB loop not resetting
1.1.0
Features:
Setting to open playlist items with single click
Bugfixes:
Video opening in a separate window when using mpv version 0.38.0
Mute resetting when opening a new file
Playing item in playlist is no longer bold, it made text hard to read under certain conditions
As someone who is collaborating with an international group of nice and smart people every day, it might not come as a surprise that I am opposed to all those parties that keep blaming migration and foreigners for every political failure. Let us try to support the innocent people who are being attacked by terrorist groups or nations. Way too many parties are hostile towards people who try to have a happy, honest life while ignoring or understating the importance of fair taxation and reducing greenhouse gas emissions.
You might say: “But all the parties are corrupt!” – Well, true. In every group there is a share of psychopaths. We even have some in KDE! (Surprisingly few though!) This should not deter you from contributing. Please be the change you want to see in the world and vote for the party that sucks the least! Or don't, it's your life and I am not your mom. Thanks for reading. :^)
A few weeks ago (Time flies!) I attended the KDE Goals Sprint in Berlin. I didn't have concrete plans, but I intended to look into accessibility. Quite some time ago I had improved the accessibility of Kleopatra and at Akademy 2023 in Thessaloniki I gave a talk about it. Back then I had taken the easy route fixing everything directly in Kleopatra and working around several issues in Qt instead of fixing the issues in Qt itself so that all apps could profit. Time to do something about it.
(In-)Accessible icon-only buttons
A common problem for accessibility is icon-only buttons. If a button doesn't have text then screen readers can only tell their user that there's a button. That's not very helpful. Sometimes the developers have at least assigned a tool tip to the button. This can be read out by the screen readers (Qt provides the tool tip as accessible description of the button.), but it's often too verbose. To make a button without text accessible the developer has to set the accessible name property of the widget or, in case of a Qt Quick app, the name property of the Accessible QML Type. Unfortunately, that's often forgotten if the UI isn't designed with accessibility in mind.
At the sprint I discussed several ideas with other participants to help developers remember to set the accessible name:
A helper class to instantiate in your app which inspects the app's windows and prints a report at the end with all inaccessible icon-only buttons it has found. A bit like Qt's QAbstractItemModelTester or the different compiler sanitizers. I implemented a prototype of such a class, but didn't pursue this further. The downside of this approach is that the developer needs to open each window of the app to find all inaccessible buttons. If they are already aware of the problem then it's probably easier to search the code.
Instead of using a helper class to inspect the widget tree from the inside one could inspect the accessibility tree of the app from the outside. This could be built into our Appium-driven UI test framework so that developers don't have to do anything special. Except that they need to write UI tests that open each and every window of their app. I think it's still worth to look into this.
Last but not least, we pondered writing a clazy test. Thinking about the many different ways a text can be set on a button (e.g. with KGuiItem::assign) we doubted that it would be feasible to write such a test.
In the end the easiest approach could be education. If the developers are aware of the problem then there's a good chance that they remember to set an accessible name the next time they add an icon-only button to their app.
Accessible date/time inputs
Volker, Carl, David, Harald and me discussed and explored some ideas to make the date and time inputs in Qt Quick apps like Itinerary accessible. In Kleopatra I resorted to allow the user to enter the date in a simple text input instead of trying to make the complex UI of KDE's date picker accessible. Read Volker's blog and David's blog to find out which solutions they found for Qt Quick apps.
A small automation interlude
One advantage of sitting with other people in the same room is that you may overhear them talking about a mistake (e.g. a faulty commit) and you know exactly how to prevent this kind of mistake in the future. In this case the problem was a missing quote character in some YAML file. And the preventive measure was adding a YAML linter CI job. While I was at it I removed some unnecessary code from the CI job and added the job to a second repository.
List views with underlying multi-column model
In several widgets that show or use a simple list of items Qt allows using a model with multiple columns, e.g. QListView, QComboBox, QCompleter. In general this works well except that Qt has a long-standing bug: When navigating through the list screen readers read the entries of the underlying model column by column instead of reading only the entries in the selected model column (QTBUG-33786). In Kleopatra I worked around this bug with a proxy model which pretended that the model only had one column.
During the sprint I finally sat down and prepared a fix for Qt. For better readability I split my changes in five separate commits which resulted in five separate patches for Qt: 556857, 556858, 556859, 556860, 556861. Being used to multi-commit MRs in GitLab I wondered if I had done something wrong when I submitted my changes, but apparently that's Gerrit's way of handling patch reviews. The first two commits are code clean-ups, the third commit changes one aspect of the accessibility test for list views, the fourth commit is the actual fix, and the fifth commit adds a few more unit tests I find useful. The first three commits have been merged, but the actual fix is still waiting for a review.
After that I looked into the problem that QListView emitted an accessibility focus event when the current item changed even if the list view didn't have focus. I found out that this had been fixed recently by a fellow Qt contributor who ran into the same problem independently of me. This meant that I could remove the workaround in Kleopatra for new enough Qt.
Thanks to MBition for hosting us and to Aleix for making sure we don't starve. And many thanks to those donating to KDE which makes these sprints possible.
This is a brief overview of the project that I will be doing this summer as part of Google Summer of Code.
As the title of this post says, I will create Python bindings for KDE Frameworks. There are more than 70 libraries, so the aim is to add support for three of them: KWidgetsAddons, KCoreAddons and KI18n. As predicting how much time we’ll need for each one is a little bit complex, I might end adding support to other libraries if the time allows.
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.
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):
Eagle-eyed readers have noticed this isn’t using the new dialog style. It hasn’t been ported yet. There are a lot of instances like this where Kirigami.OverlaySheet is inappropriately used as a confirmation dialog that need porting.
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.