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.
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
Alejandro says:
Great!
Hesam says:
Thank you, Maui looks amazing