Today, we bring you a quick report on the Maui Project’s progress after our previous 2.2.2 release; here you will find some detailed information on the new features, bug fixes, and improvements that have been made to the Maui set of apps and frameworks.
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:
What’s new?
Besides the common bug fixes, some of the highlights include a refactor and cleanup of some of the MauiKit Frameworks, and new and improved Maui Apps, with support for true black color style, improved startup times, faster GPS scanning, more options in the settings app, and a brand new QPA Theme plugin for Cask to make Qt apps look and feel better under Maui Shell, among many other tweaks and refinements.
On the road to Maui 3. Focused on the framework and the apps. working on the new apps to bring them up paired with the most stable ones.
Porting to Qt6
MauiMan and MauiKit will be the two first projects to be ported, the progress so far has not been very active but now that all Plasma and KDE Libraries are now Qt6 in master, work on this area will be resumed.
https://invent.kde.org/maui/mauikit/-/issues/35
Maui Shell
For this new development cycle, the focus is on the MauiKit Frameworks and Maui Apps, however, a few fixes will land in the stack of the Maui Shell. Here are a few of the highlights so far.
Cask
- Fix bugs on dragging around CSD surfaces.
- Now uses the new MauiMan InputDevices keymap properties.
- Now uses the new QPA Theme and set the right env var to make use of it.
- Other Qt applications now look better with the new Maui QPA Theme.
- Tweaked the padding of the Chrome title bars.
Maui Settings
- The Theme module view has been refactored and split into subpages for better readability.
- Added a new sub-page to support picking custom color schemes.
- New QPA Theme plugin.
- Added a new Fonts subpage in Theme.
- Added entry to pick a custom wallpaper source directory in the Background module view.
- Organize the sidebar modules by categories.
- Can now filter the sidebar categories with keywords.
- Display an error message when a module could not be loaded correctly.
- Added the new InputDevices modules view with initial support for keyboard keymap options.
- Tweaked the About module view.
- Added a filter field for the Icons subpage.
MauiMan
- The Theme module gained new props for the fonts: DefaultFont, SmallFont, and MonospaceFont.
- Initial work has been started for the InputDevices module, starting with the keyboard keymaps options.
MauiKit Frameworks
MauiKit Core components have seen many fixes and improvements, from consistency in the UI and UX department, fixes in binding loops bugs, implementation cleanups, and new features or existing ones being exposed.
Overall you will notice an even more cohesive usage of padding, margins, and spacing in elements and content views. More work towards making it perfectly suitable for desktop and mobile use.
Gained support for two new styles: Inverted and TrueBlack, among many other fixes listed down below:
Core
- The FlexLisItem control is now based on a Grid allowing finer control over the layout. The property columns is exposed to determine the initial layout, and child items can now be positioned using the attached properties from Layout. By default, the FlexListItem has 2 columns in wide mode and goes to 1 column on constrained widths, but if you need to position more items you can increment the number of columns.
- Fixed the Android Gradle build files referencing the manifest.
- The Style font properties were refined and no longer use bad point sizes. Now the font properties rely on the wide system preferences for the default font, small font, and monospaced font, this is done via the QPA Theme plugin. As a result of the refactoring now all Maui Apps will correctly redraw the fonts when they’re changed from the system settings.
- Correct the size and style of the Switch control for consistency.
- React to icon theme changes from the system settings.
- Use the QPA style hints and expose some of them in the Style object, such as whether to show icons in menus: Maui.Style.menusHaveIcons.
- Fixed the ComboBox popup implicit height.
- New controls added: FontPicker and FontPickerDialog, which allow picking font family, best-fitted sizes, style, and filters for only monospaced fonts; and display a preview.
- Now the rendering of the buttons and menu items contents no longer uses the QQC2 hidden implementation and instead uses the new IconLabel control.
- Fixes to the color styles: dark, light, and custom. The custom style uses the Plasma custom color scheme definitions from files.
- Fixed the masking area of the image in the IconItem control.
- Removed the BasicToolButton, now that all buttons use the new Iconlabel implementation.
- Chip control now is checkable and no longer displays tooltips unless needed.
- The TabView control has been refactored and now using it is much easy, besides adding new tabs dynamically via the functions, tabs can now also be declared as children and it will work. Also, there is no longer the need to set the child tab sizes, the TabView will resize the children to fit. In the refactoring process, there were also fixes for the DnD reordering of tabs and focusing. The TabViewInfo attached properties gained new props: TabViewInfo.tabIcon and TabViewInfo.tabColor.
- The MauiKit-based apps now have a new true black color scheme alternative, that can be activated from the app itself using the Maui.Style.trueBlack option, or globally from MauiMan.
- Maintain a uniform height for the ToolActions control.
- A few new CSD styles have been added, and the Dynamic one, which relied on applet-window-buttons, has been removed.
- New ToastArea for in-app notifications, which allows having multiple notifications stacked. This is better than the previous implementation based on a Dialog. The ToastArea can be easily dismissed and individual notifications can be swiped off via touch or closed via mouse clicks.
- Added notification sounds taken from the free Material resources.
- Fixes the FloatingButton control sizing.
FileBrowsing
- Fixes to the Tagging DB thread-safe implementation.
- Tweak the TagDelegates and TagBar controls.
- Fixed the FileBrowser focus issues.
- Nicer FileBrowser dialogs.
ImageTools
- Make Tesseract and Leptonica required dependencies.
- Refactored the messy pointers implementation of the Geolocation classes and make it thread-safe.
Terminal – New!
- Fixed the issue with double pasting text
- Updated the custom adaptive color scheme, from picking it from a file to being declared in QML.
- The Adaptive color scheme now works better, by checking the brightness and other factors.
- The property hasActiveProcess now has a notify signal.
- Added new property: readOnly for cases when the terminal should not receive any user inputs, but still can use methods such as sendText or sendKeyPress, etc…
- Support highlighting search results in the history.
- Tweaked the search bar, with a dedicated button to jump through finds and more options.
- Added a virtual keyboard toggle floating button for mobile devices.
Maui Apps
Although in this new release cycle the focus was on Maui Shell projects, many of the Maui Apps received some love: new features, improvements, and updates.
Index
- Browser items focus issues have been fixed.
- A bug from the selection bar causing a failure to perform actions has been fixed.
- The PathBar arrow delegates are now better renderer antialias.
- Updated to use the new MauiKit ToastArea notifications.
Pix
- New layout with a global sidebar for navigation.
- Faster lookup of the GPS locations using concurrency.
- The new sidebar now lists tags, sources, and known categories.
- Split the viewer from the collection browser for faster startup time when only opening an image in the viewer.
- Escape keyboard shortcuts to go back from the browser.
- Fixes the navigation patterns, from the browser to the viewer.
Nota
- Fix crashing issues with the places sidebar under Android when external SD cards are present.
- Tweak the settings dialog entries order.
- Check the existence of a directory before opening the file dialog in such path.
- Escape keyboard shortcuts for exiting the recent documents view.
- Updated to the latest MauiKit changes.
- Collection views now display location tags if any are found.
Station
- Support for finding text and highlighting the results.
- Display warnings when trying to close a view with a running process.
- Display warning when trying to close the app but a process in some views is still running.
- Extend the translucency effect to the tab bar.
- Use the new MauiKit FontPicker control to pick a new font.
- Use the new MauiMan style property MonospacedFont as a default font.
- Fixes issues when focusing the terminal and opening the virtual keyboard on mobile devices.
- Make MauiKit-Terminal a required package.
- Added a placeholder message when there are no tabs opened.
- Added alerts when a process has been finished making use of the new Mauikit ToastArea notifications.
- Fixes the virtual keyboard not being opened when the terminal gets focused.
- Refactored the translucency entry to use a switch instead of a slider.
Paleta
- Updated to latest MauiKit changes.
- Notify using the new ToastArea.
- Display colors WCAG contrast ratio.
Bonsai
- Added support for more action commands, such as pull, stash, and status.
- Refactor the Project object to allow quick cloning of new projects.
- Now uses libkommit library instead of previous libgit2-based wrappers.
Fiery
- Now uses sidebar navigation for browsing the collection sources.
Arca
- Initial support for creating new archives from within the app.
And the rest of the fixes to the rest of the applications…
That’s it for now. Until the next blog post, that will be a bit closer to the 3.0.0 stable release.
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:
Aouzal says:
Aouzal Houcine