Skip to content

Wednesday, 13 December 2023

There are some plans to have a more official blog post on the plasma-mobile.org, these are my personal ramblings below…

Plasma 6 is coming together nicely on the desktop!

Coming back from hiatus, I was pleasantly greeted by a much more working session than when I last saw it in May; I have now completely switched over to it on my main machine!

On the other hand, there is still a lot of work to do on mobile to prepare it for the Plasma 6 release in February. I will outline the current situation and the work I have done in the past few months in order to make Plasma 6 a possibility for Plasma Mobile.

Context 🔗

I started working on KDE projects again in October (after an 8 month hiatus), slowly getting back into the groove of things. I unfortunately do not have as much spare time these days after work and school, but I try to do what I can!

The distro situation 🔗

For Plasma Mobile shell development on phones, we need to have distributions with KDE packages built from git master.

Many years ago, we used to have Neon images with Plasma Mobile that were maintained by Bhushan that were used for development, but required a large investment in time to maintain. We no longer have the (human) resources to maintain a distribution, so we are dependent on working with other distributions for development images.

Until this year, Manjaro had helped us by providing daily development images. Unfortunately, I have not really had contact with the project since one of their employees left earlier this year.

As a sidenote: Maintenance of the Manjaro Plasma Mobile images seemed to be inactive in the past few months, though there have been some encouraging signs from the forum in the past few days?


And so, there was a predicament. While I could develop the Plasma 6 mobile shell on the desktop, I had no way of testing it on a phone.

Thankfully, postmarketOS graciously took up the effort of maintaining a repository of KDE packages that track git master. Instructions can be viewed here. With the Plasma 6 beta release, there will be postmarketOS images that can be easily downloaded and tested with!

Seshan has also been working on an immutable distro ProLinux which has images that track git master as well, which have been useful to test with.

Porting 🔗

A big part of the porting effort is simply porting the shell and applications to Qt 6 and KDE Frameworks 6.

In the case of the shell, porting to Qt 6 was luckily fairly trivial. There were far more changes to the base KDE frameworks as package structures and QML plugins were being reworked, though that has stabilized in recent months. There are still some major regressions that need to be resolved before February (will be discussed later), but I am reasonably confident that the shell will in good shape by then.

For applications however, it is more of a mixed bag.

Several applications do not have active maintainers, and others need much more polish for mobile usage (as not all application developers have phones to test with).

Technically, I am responsible for KClock, KWeather and KRecorder, but I have typically done contributions to a multitude of applications to ensure that they work well on mobile. This time around though, I have only been really able to work on the shell with the limited spare time I have, and so I have not been able to do some of the heavier porting work for applications.

KRecorder in particular is unlikely to be ported in time for Plasma 6 as it depends on Qt Multimedia, which has had significant changes in Qt 6.

Beyond porting, I have also noticed some significant mobile-specific regressions in other applications that have been ported, which need to be addressed.

I would encourage anyone who is thinking of contributing to KDE to start here, application development is a very good way to learn Qt and get into further KDE contributions (as it is quite self-contained, compared to, say, the shell).

Styles 🔗

Plasma Mobile currently uses a separate Qt Quick style from the desktop (qqc2-breeze-style vs. qqc2-desktop-style), in which maintenance was lagging for Plasma 6.

The separate style is needed in order to have better performance, as it avoids some of the complex theming that the desktop needs to use for unifying styles between Qt Quick and Qt Widgets applications. However, it is a maintenance burden.

In November, I did a bunch of work on qqc2-breeze-style in order fix Plasma 6 related regressions, and to make it render more similarly to qqc2-desktop-style.

Task Switcher moving to KWin 🔗

In Plasma 5, the task switcher was built into the plasmashell process (which contains the homescreen, panels and most of what you see in Plasma), piping the application thumbnails from KWin.

In order to improve performance, it was a bit of a hack; the task switcher was built into the homescreen, so when it was opened, apps were minimized, showing the task switcher underneath. It was not optimal though, as it required convoluted logic in order to swap between the homescreen and task switcher views, and the thumbnails provided from the stream from KWin were not optimal performance wise.

With Plasma 6, I am moving the task switcher to be a self-contained KWin effect instead, which is inline with how the Desktop overview effect is implemented. This moves the task switcher off of plasmashell to KWin, cleaning up the code and potentially having performance improvements with how the application previews will be displayed.

We can also make use of KWin’s infrastructure for gesture-only mode (removing the navigation bar), rather than relying on a hack with invisible panels in order to trigger it.

The move has been a bit problematic though, as KWin developed regressions during Plasma 6 development that cause effect rendering to be broken on the PinePhone and SDM845 devices (possibly due to OpenGL versions?), but the issues are being worked on. As of Dec. 13, this has been fixed.

Rewriting Folio - the homescreen 🔗

Note: I will be writing a separate blog post that goes much more into detail in the future.

For some context, the default homescreen in Plasma 5 is Halcyon, which provides a simple way have a list of applications, while allowing them to be pinned and grouped into folders.

We also have the Folio homescreen, which was the original default (before Plasma 5.26) that was more similar to a traditional homescreen, having favourites pages and an application drawer to access the full list of apps.

The problem with Folio in Plasma 5 though was that it was particularly unstable (known to brick the shell), and was effectively an extended desktop canvas, so screen rotations and scaling changes would completely ruin the layout.

I knew that it would require a very significant effort in order to rewrite it and fix its issues, so I developed Halcyon as a stopgap solution until I had the time to fix Folio.


And so I spent about 5 weeks starting in October working solely on the Folio rewrite! It will be shipping as the default homescreen once again in Plasma 6.

I am pretty happy with how it turned out, it supports:

  • An app drawer
  • KRunner search
  • Folders
  • Pages
  • Drag and drop between all of the above
  • Applets/widgets
  • Row-column flipping for screen rotations
  • Customizable row and column counts
  • Customizable page transitions
  • Ability to import and export homescreen layouts as files
  • … and more!

Applets in particular are pretty exciting, though still need some work. They use the same infrastructure that the Desktop uses, so we can use existing applets!

New applets for mobile apps can eventually also be developed, pending interest.

A new service: plasma-mobile-envmanager 🔗

Plasma Mobile relies on some configurations (set in files) for KWin and the shell in general that directly conflict with what Plasma Desktop expects.

For example, we use different look-and-feel packages to provide pieces such as the lockscreen theme, as well as tweaks for features such as disabling window decorations.

In Plasma 5, this was accomplished by having the distribution ship config files that are installed to /etc/xdg (from plasma-phone-settings), which overrode Plasma related settings for users.

This was problematic in that this would affect the desktop session, making it impossible to use both the desktop and mobile sessions without doing some tweaking before switching. This also made it a barrier to be easily installable as “just another desktop environment”, which was a common complaint.


In Plasma 6, I introduced plasma-mobile-envmanager a utility that runs prior to shell startup that automatically does the configuration switching between what is needed for Plasma Mobile, and what is needed for Plasma Desktop.

This now allows distros to drop having to install hardcoded configs onto the system, and makes it easy to simply install as a separate desktop environment for existing systems.

A new application: plasma-mobile-initial-start 🔗

I added an application that runs when starting Plasma Mobile for the first time, guiding users on configuration on their system, from setting up the Wi-Fi, to configuring cellular settings.

It currently exists as an application that runs when the shell is started for the first time.

However, it likely needs to eventually be ported to be a true first-start wizard similar to what GNOME has as well as pico-wizard (used by Manjaro), in order to have elevated permissions so that the user does not have to be prompted for their password.

Docked mode 🔗

With Plasma 6, I am making some steps toward improving support with attaching a monitor, keyboard and mouse.

A new “Docked Mode” quick setting was introduced that, when activated:

  • Bring back window decorations
  • Stops opening application windows in fullscreen

Eventually, some more work can be done in order to have the external monitors load desktop panels instead of the mobile ones, which should make the experience equivalent to Plasma Desktop.

Telephony 🔗

I have historically not done much work on the telephony front.

There have luckily been contributors that have worked on Spacebar and Plasma Dialer (shoutout to Michael and Alexey!) in the past few years, allowing me to focus on other things.

From recent testing though, there have been a lot of regressions in Plasma 6, so I likely need to start learning the ropes of how it all works in order to help out. Of particular focus for me will be improving the quality of the cellular settings and overall shell integration with ModemManager.

My current carrier only supports VoLTE so I have been unable to test calling, and I have had trouble with my PinePhone in getting cellular working, but I will probably try buying a USB modem to do testing on the desktop with.

Settings module consolidation 🔗

In Plasma 5, a lot of mobile specific settings modules lived outside of the Plasma Mobile repository, in places such as the settings application.

I moved these settings modules together to be in the Plasma Mobile repository. This also removes the need to have a separate build of plasma-nm.

Other things to address 🔗

A big pain point in Plasma 5 was the mobile lockscreen. There were many cases of it crashing (causing the white text on black screen issue) as well as extraordinarily slow load times.

Much of it likely stems from the fact that it has to load the QML files right after the device locks, which can be slow and sometimes has graphical issues when coupled with suspend. I have tried to optimize the load time in the past, but it may be the case that we need to rethink the architecture a bit, not sure…

Conclusion 🔗

I will be returning to a university term in January, likely making it harder for me to contribute for a few months again.

I have luckily finished most of the features I have wanted to get done for Plasma 6, and am now spending my effort fixing bugs and improving code quality. I hope that we can have a successful, bug-free Plasma Mobile release in February, but it is quite daunting at the moment as a single volunteer contributor for the mobile shell.

If you are interested in helping contribute, I encourage you to join the Plasma Mobile matrix room!

There is also some documentation on the wiki that can help you get started.

go konqi!

Thursday, 7 December 2023

For the fourth installment of Off-Theme we have a global theme based on the granddaddy of all the classic Unix desktops, a desktop that ruled the roost of the workstations from a bygone era. It is time to pay tribute to the DE that once dominated the Unix world.

Tuesday, 5 December 2023

Thank you to everyone who reported issues and contributed to QCoro. Your help is much appreciated!

Support for awaiting Qt signals with QPrivateSignal

Qt has a feature where signals can be made “private” (in the sense that only class that defines the signal can emit it) by appending QPrivateSignal argument to the signal method:

class MyObject : public QObject {
 Q_OBJECT
...
Q_SIGNALS:
 void error(int code, const QString &message, QPrivateSignal);
};

QPrivateSignal is a type that is defined inside the Q_OBJECT macro, so it’s private and as such only MyObject class can emit the signal, since only MyObject can instantiate QPrivateSignal:

void MyObject::handleError(int code, const QString &message)
{
 Q_EMIT error(code, message, QPrivateSignal{});
}

QCoro has a feature that makes it possible to co_await a signal emission and returns the signals arguments as a tuple:


MyObject myObject;
const auto [code, message] = co_await qCoro(&myObject, &MyObject::handleError);

While it was possible to co_await a “private” signal previously, it would get return the QPrivateSignal value as an additional value in the result tuple and on some occasions would not compile at all.

In QCoro 0.10, we can detect the QPrivateSignal argument and drop it inside QCoro so that it does not cause trouble and does not clutter the result type.

Achieving this wasn’t simple, as it’s not really possible to detect the type (because it’s private), e.g. code like this would fail to compile, because we are not allowed to refer to Obj::QPrivateSignal, since that type is private to Obj.

template<typename T, typename Obj>
constexpr bool is_qprivatesignal = std::same_as_v<T, typename Obj::QPrivateSignal>;

After many different attempts we ended up abusing __PRETTY_FUNCTION__ (and __FUNCSIG__ on MSVC) and checking whether the function’s name contains QPrivateSignal string in the expected location. It’s a whacky hack, but hey - if it works, it’s not stupid :). And thanks to improvements in compile-time evaluation in C++20, the check is evaluated completely at compile-time, so there’s no runtime overhead of obtaining current source location and doing string comparisons.

Source Code Reorganization (again!)

Big part of QCoro are template classes, so there’s a lot of code in headers. In my opinion, some of the files (especially qcorotask.h) were getting hard to read and navigate and it made it harder to just see the API of the class (like you get with non-template classes), which is what users of a library are usually most interested in.

Therefore I decided to move definitions into separated files, so that they don’t clutter the main include files.

This change is completely source- and binary-compatible, so QCoro users don’t have to make any changes to their code. The only difference is that the main QCoro headers are much prettier to look at now.

Bugfixes

  • QCoro::waitFor() now re-throws exceptions (#172, Daniel Vr√°til)
  • Replaced deprecated QWebSocket::error with QWbSocket::errorOccured in QCoroWebSockets module (#174, Marius P)
  • Fix QCoro::connect() not working with lambdas (#179, Johan Br√ºchert)
  • Fix library name postfix for qmake compatibilty (#192, Shantanu Tushar)
  • Fix std::coroutine_traits isn't a class template error with LLVM 16 (#196, Rafael Sadowski)

Full changelog

See changelog on Github

Sunday, 3 December 2023


KStars v3.6.8 is released on 2023.12.03 for Windows, MacOS & Linux. It's a bi-monthly bug-fix release with a couple of exciting features.

Aberration Inspector


John Evans introduces the very exciting Aberration Inspector tool. The Aberration Inspector is a tool that makes use of Autofocus to analyze backfocus and sensor tilt in the connected optical train. It solves up to 9 virtual tiles on the sensor as defined by the existing Mosaic Mask.


The information is then used to analyze:
  • Back focus.
  • Sensor Tilt.
There are 4 sections:
  • V-curve for the each tile.
  • Table of data detailing the curve fitting results.
  • Analysis of back focus and tilt.
  • 3D Surface graphic to explain the Petzval Surface intersection with the sensor.
This release provides display only functionality. In future it would be possible to add functionality to offer recommendations for adjustments using Octopi, PhotonCage, etc.

Sub-exposure Calculator


Joseph McGee continues to add improvements and fixes for the Sub-exposure calculator. For usability, the window is now re-sizeable, an issue with the display of tool tips was corrected, and an indicator has been added for the sensor type of the selected camera (Mono / Color).  For functionality: the upper limit of the Noise Increase input parameter was increased, support was added for cameras with non-variable read noise, (cameras with CCD sensors).


Several new camera data files were added to the KStars source code repository, and a function to allow direct direct download of camera files from the repository was enabled. (Note: users who have created their own camera data files, may wish set the file attribute to read-only, and/or make a back up copy in case of an accidental over-write from the download function if the camera file has the same name).

A new experimental graphical tool to determine an appropriate number of sub-exposures for integration was added. This tool allows the selection of an exposure time to noise ratio for a stacked image; the tool will compute the number of sub-exposures required to achieve that value.

Added several new camera data files:
  • Atik-16200CCD_Mono.xml
  • FLI-16200CCD_Mono.xml 
  • QHY_CCD_294M_Pro.xml
  • QHY_CCD_461_PH.xml
  • QHY_CCD_163C.xml 
  • QHY_CCD_163M.xml
  • QHY_CCD_268C.xml
  • QHY_CCD_294M.xml
  • QHY_CCD_600_PH.xml
  • ZWO_CCD_ASI294MC
  • Pro.xml ZWO_CCD_ASI294MM
  • Pro.xml ZWO_CCD_ASI533MC
  • Pro.xml ZWO_CCD_ASI2600MC
  • Pro.xml ZWO_CCD_ASI6200MC
  • Pro.xml ZWO_CCD_ASI533MC
  • Pro.xml ZWO_CCD_ASI533MM
  • Pro.xml Nikon_DSLR_DSC_D5100_(PTP_mode).xml Nikon_DSLR_DSC_D700_(PTP_mode).xml

FITSViewer Solver


Hy Murveit added a very useful feature to the FITS Viewer: a built-in solver!

The FITS Viewer Solver is used to plate-solve the image loaded in the FITS Viewer's tab. It only works with the internal StellarSolver. You get the RA and DEC coordinates for the center of the image, the image's scale, the angle of rotation, and the number of stars detected in the image. Its main use case is debugging plate-solving issues in Ekos, though the information displayed can be generally useful. The controls and displays are described below.


This adds a new tool inside the splitter on the FITS Viewer. It plate-solves the displayed image, and allows the user to experiment with a number of plate-solving parameters, and thus help debug plate-solving issues.

How to test it out?
  • Open the sliding panel on the left part way, click on Plate Solving, and resize the windows appropriately.
  • Experiment with the parameters available (Use Scale, Use Position, the scale and RA/DEC positions, choose a profile and/or edit it)
  • Click Solve, and the image is solved and the solution presented in the Scale and RA & DEC and Angle boxes.
  • If you enable "Mark Stars" above the image window, you will also see the stars that were detected.

Quality of Life improvements

  • Make "Set Coordinates Manually" dialog more intuitive.
  • Telescope name specified in the optical trains are now saved in the  FITS header (the mount name was saved before).
  • New placeholders for ISO, binning and pure exposure time added.
  • Add a new not-default scheduler option to disable greedy scheduling.
  • Reduce latency between captures, especially when guiding / dithering.
  • Fix issue with differential slewing.
  • Separate Business Logic from UI in Scheduler.
  • Fix bug in estimating job time, capture delays were misinterpreted.
  • Fixed guide start deviation was not saved properly in esq file.
  • Bugfix in one-pulse dither. Dither pulses were going the wrong way.
  • Fix Scheduler hangs when Focus does not signal Autofocus start failure.
  • Focus Guide Settle Bug.

digiKam 8.2.0 running under Microsoft Windows 10 with Qt6 framework Dear digiKam fans and users,

After five months of active maintenance and long bugs triage, the digiKam team is proud to present version 8.2.0 of its open source digital photo manager.

See below the list of most important features coming with this release.

  • Libraw : Updated to snapshot 2023-11-21
  • Bundles : Updated Exiv2 to last 0.28.1 release
  • Bundles : Updated ExifTool to last 12.70 release.
  • Bundles : Linux and macOS uses KF5 framework to last 5.110

This version arrives with a long review of bugzilla entries. Long time bugs present in older versions have been fixed and we spare a lots of time to contact users to validate changes in pre-release to confirm fixes before to deploy the program in production.

Friday, 1 December 2023

MauiKit: A Toolkit for Multi Adaptable User Interfaces.

Today, we bring you a report on the brand-new release of the Maui Project.

We are excited to announce the latest release of MauiKit version 3.0.2, our comprehensive user interface toolkit specifically designed for convergent interfaces, the complying frameworks, and an in-house developed set of convergent applications.

Built on the foundations of Qt Quick Controls, QML, and the power and stability of C++, MauiKit empowers developers to create adaptable and seamless user interfaces across a range of devices, and with this release, we are a step closer to finalizing the migration to a new major version – the upcoming MauiKit4 release, now fully documented.

Join us on this journey as we unveil the potential of MauiKit3 for building convergent interfaces, the roadmap towards MauiKit4 and its new additions, and finally discover the possibilities offered by the enhanced Maui App stack.

Community

To follow the Maui Project’s development or to just say hi, you can join us on Telegram @mauiproject

We are present on Twitter and Mastodon:

Thanks to the KDE contributors who have helped translate the Maui Apps and Frameworks!

Downloads & Sources

You can get the stable release packages [APKs, AppImage, TARs] directly from the KDE downloads server at https://download.kde.org/stable/maui/

And if you are feeling a bit curious about the Maui DE, you can download the Manjaro-based image for **testing** the project’s state as a snapshot of MauiKit3.

https://master.dl.sourceforge.net/project/nulogicos/maui-shell/ISO/manjaro-maui-shell-23.0.0-minimal-230731-linux515.iso?viasf=1

Note: Please be aware that this is an ISO image from a third party.

All of the Maui repositories have the newly release branches and tags. You can get the sources right from the Maui group: https://invent.kde.org/maui

What’s new?

With this update, we have focused on publishing the comprehensive documentation for the recently ported MauiKit4 Frameworks, polishing and updating the upcoming MauiKit4 frameworks code base, and starting to get the Maui Applications into shape for the migration to MauiKit4 – all while fixing bugs, improving performance, and fine-tuning all visual details.

MauiKit3 & 4

While documenting the source code – for the ported MauiKit4 frameworks – a lot of the implementation details of the visual controls have been reviewed and refined, this has resulted in a more curated set of UI elements, performance boost, cleaner code an early addition of new features.

Controls

All of the frameworks have a new information header, with information about the module, such as version number, build version, and all of the open-source tools that are part of it.

A quick overview of the changes made include:

  • Startup optimizations for the ApplicationWindow
  • The SettingsDialog layout is now cleaner when using the accompanying SectionGroup and SectionItem controls
  • Fix regressions introduced with the dialogs now based on QQC2 Dialog component
  • The TabView overview preview thumbnails are now correctly scaled and more tab information, such as the custom color and tooltip text – are now used.
  • Lazy loading elements until they are needed resulting in small performance boost
  • The AboutDialog links are clearer without using any special styling, and some parts have been refactored for a cleaner source code
  • Fixes to the GridBrowserDelegate and ListBrowserDelegate checkable state

Terminal, TextEditor & FileBrowsing

The FileDialog issues on mobile devices with the single click preference have been solved. Another bunch of small fixes include fixes to the dialog buttons, the FileBrowser action dialogs, information about tag locations, and the addition of more methods to the file management classes.

MauiKitTerminal now exposes more interface properties for handling processes that have gone silent, and functions to correctly change the current working directory.

Documents, Accounts, Calendar &ImageTools

Added the header with module information, and started the porting work.

And, as for MauiKit4:

  • The Holder control can now have an image source as the emoji
  • Many corrections in the QML syntax for the definition of catching signals.
  • The SettingsDialog is now a detached window on desktop environments
  • Added a new control DialogWindow and BaseWindow, from which ApplicationWindow now inherits. The new DialogWindow is correctly set as a dialog window and it’s modal.
  • Simplify the implementation of controls, such as the InputDialog
  • Fixes to CSD buttons controls, and now respects hints of no resizable windows or windows that should not be minimized.
  • Added a build flag `-DBUILD_DEMO=ON` for building or skipping the MauiKit4 demo app.
  • Added documentation to the sources and example files for all the visual controls
  • The SectionItem has been changed into two different variants: SectionItem and FlexSectionItem, more information about their use cases is in the documentation linked in the section below
  • Some of the previously public types that were only part of the implementation have now become private, such as the SideBar for the SideBarView

MauiKit4 Documentation

Documentation has been published for the ported MauiKit4 frameworks, as part of the migration plan. As new frameworks get ported, the accompanying documentation will be published. You can find the documentation online at https://api.kde.org/mauikit/index.html

At the time of this release, the following frameworks have now been fully documented, and have a comprehensive list of example source files:

The documentation effort also resulted in a complete set of example source files, which can be used for interested users to quickly hack and learn about MauiKit4, and for testers – and unit tests, to monitor all parts are functional.

If you are interested in contributing to the project, or in developing a MauiKit-based application, and you find any issues, bugs about the documentation text readability, or any other comments, please feel free to open a bug report on the corresponding repository issues page, and/or joining us at our telegram public chat group, where any concerns or questions will be answered promptly.

MauiKit3 Apps

Among specific new features and updates listed below, all of the Maui apps have been updated to the latest MauiKit3 changes, which also include fixes to some regressions introduced in the porting to MauiKit4 – and have also received an initial set of tweaks to get ready for their migration to MauiKit4.

Fix regression to the new dialogs versus the previous implementation.

Updated translations to multiple languages, thanks to the KDE community.

Index, Vvave & Shelf

Index now allows previewing files by default instead of opening them in an external application, and the dialog can be detached on desktop environments. Some UI elements have been improved to be loaded only when needed.

In Index, the previewer model is now independent of the current directory model, and the previews of videos and audios now have a playback button for pausing and resuming.

The albums and artist view in Vvave, now display a quick play button on hovering over the cover, to quickly start playing a full album or artist collection.

Shelf correct browsing by categories.

Clip, Nota & Station

The alerts on Station, for inactive or silent processes are now optional and exposed in the settings dialog. Now the last session can be restored if preferred.

For Nota, the crashing issues on Android have been addressed. Menus and other elements are now being lazy-loaded, making the app quicker. Also, menus have been revised and the mobile contextual menu is now correctly working.

Fiery, Buho & More

Fiery now has detachable tabs.

Maui Shell

Cask, Maui Settings & More

The session startup manager now has been fully ported to Qt6 and it’s working correctly.

Many fixes were done to the Cask panels and dock, fixing regressions introduced in the migration to MauiKit4. This is still a work in progress and more development will go into this for the upcoming release of the Shell in February.

2024 Roadmap

For the upcoming release scheduled for February, most of the work will go into the Shell and its sub-projects, as decided in the release chronogram, however, this will also be the time when the remaining MauiKit frameworks will be ported from Qt5 to Qt6, those include Documents, Terminal,ImageTools, TextEditor, Accounts.

It is expected that most of the Maui Applications will be ported to MauiKit4 Frameworks and Qt6, for their new release around May 2024. And by August release it is expected that all of the Maui Project has been successfully migrated to Qt6.

To follow the Maui Project’s development or say hi, you can join us on Telegram: https://t.me/mauiproject.

We are present on Twitter and Mastodon:

New release schedule

 

The post Maui Release Briefing # 4 appeared first on MauiKit — #UIFramework.

Wednesday, 29 November 2023

KDiagram is two powerful libraries (KChart, KGantt) for creating business diagrams.

Version 3.0.0 is now available for packaging.

It moves KDiagram to use Qt 6. It is co-installable with previous Qt 5 versions and distros may want to package both alongside each other for app compatibility.

URL: https://download.kde.org/stable/kdiagram/3.0.0/
SHA256: 6d5f53dfdd019018151c0193a01eed36df10111a92c7c06ed7d631535e943c21

Signed by E0A3EB202F8E57528E13E72FD7574483BB57B18D Jonathan Esk-Riddell jr@jriddell.org
https://jriddell.org/esk-riddell.gpg

KWeatherCore is a library to facilitate retrieval of weather information including forecasts and alerts.

0.8.0 is available for packaging now

URL: https://download.kde.org/stable/kweathercore/0.8.0/
SHA256: 9bcac13daf98705e2f0d5b06b21a1a8694962078fce1bf620dbbc364873a0efeS
Signed by E0A3EB202F8E57528E13E72FD7574483BB57B18D Jonathan Esk-Riddell <jr@jriddell.org>
https://jriddell.org/esk-riddell.gpg

This release moves the library to use Qt 6. It is not compatible with older Qt 5 versions of the library so should only be packaged when KWeather is released or in testing archives.

Tuesday, 28 November 2023

In the third installment of Off-Theme, we cover Shades of Purple, a global theme with a rather striking set of shades that sets it apart from many other flat themes.

Monday, 27 November 2023

We're happy to announce the new release 5.12.0 of KPhotoAlbum, the KDE photo management program!

20 years KPhotoAlbum

This is some kind of "special" release, as exactly 20 years ago, on 2003-11-27, version 1.0 was tagged (we tagged this release already on saturday, so that it will hit the mirrors and we can publish this release announcement at this very date though ;-).

20 years is quite a long time for such a "small" FLOSS project. Enough times, nice programs die from bit rot, because the only dev or too many of the few lose interest in it, don't need it anymore and/or nobody wants to take over maintainership. Happily, this is not the case for KPA! After all these years, the project is still alive and kicking, and – when the family, the job and everything else allow it (after all, we're all not fulltime KPA devs), we work on it to make it better.

Just speaking of me, I joined the project back in 2014, almost ten years ago now (which is arguably also quite a long period of time). And I'm really proud to still be a part of this great project :-)

So, I think it's time to especially thank Jesper Pedersen for initiating the project back then, and Johannes Zarl-Zierl for taking over the maintainership and being the project leader since 2019! Joyfully, Jesper never really stopped contributing to KPA and still works on it until now.

After all, we're still – without too much self-laudation – a small but excellent crew of FLOSS enthusiasts ;-)

But about the release itself:

What's new?

Bugfixes

Most notably, we could fix a really big amount of crashes and unexpected behavior. The following bug reports could be closed as "fixed": #472427, #472523, #473231, #473324, #473587, #473762, #474151, #474392, #475387, #475388, #475529, #475585, #476131, #476561, #476651, #476862 and #477195. That's quite an impressive list, isn't it?!

Kudos to our new super-diligent beta tester Victor Lobo for filing 17 of those bug reports alone, always providing meaningful information about how to reproduce the issue and tirelessly testing the fixes. Thank you! As a dev, you really appreciate this! Apart from that, also big thanks to Pierre Etchemaïté and Andreas Schleth for providing equivalently excellent bug reports!

Thanks to you all for helping making KPhotoAlbum better!

New features and changes

Apart from that, there are also some new interesting features:

  • Support annotating images from the viewer by using letters to assign tags. Use the context menu and select "Annotate | Assign Tags" to enable. More information is available in the KPhotoAlbum handbook.
  • Add option to sort category page by natural order (feature #475339). Natural sort order takes the locale into account and sorts numeric values properly (e.g. sort "9" before "10").
  • Allow selecting a date range in the DateBar via keyboard (Use "Shift + Left|Right")
  • Allow closing the annotation dialog's fullscreen preview using the Escape key.

… as well as sone changes:

  • In the viewer window, using the letters A-Z to assign tokens now needs to be explicitly enabled. You can do this by opening the context menu and selecting "Annotate | Assign Tokens".
  • When KPhotoAlbum is started in demo mode and a previously saved demo database exists, the old demo database is no longer overwritten.
  • The ui.rc file (kphotoalbumui.rc) is now deployed as a Qt resource instead of an on-disk file.
  • Improved usability of "Invoke external program" menu (#474819)
  • No longer set the default shortcut for "Use current video frame in thumbnail view" to Ctrl+S and avoid shortcut conflict.
  • Restrict context menu entries for fullscreen preview of annotation dialog to a sane set of actions.
  • It is no longer possible to annotate images from the viewer by pressing "/" and typing tag names.
  • It is no longer possible to change an image through the annotation dialog's fullscreen image preview.

Thanks to everybody involved!

According to git, the following individuals pushed commits:

  • Yuri Chornoivan
  • Friedrich W. H. Kossebau
  • Nicholas Leggiero
  • Tobias Leupold
  • Alexander Lohnau
  • Scarlett Moore
  • Jesper K. Pedersen
  • Johannes Zarl-Zierl

Thanks for spending your time with coding on KPA and for contributing your work!

Have a lot of fun with the new release, and keep KPA the best photo management program out there, also for the 20 years to come :-)

— Tobias