Today, we bring you a new report on the Maui Project progress.
Are you a developer and want to start developing cross-platform and convergent apps, targeting, among other things, the upcoming Linux Mobile devices? Then join us on Telegram: https://t.me/mauiproject.
We are present on Twitter and Mastodon:
KDE Review
MauiKit was submitted to review; the reviewers have made some suggestions, and we are working on implementing those.
The documentation for MauiKit is still a work in progress, and will most likely be ready for the next point releases 1.2.1 or 1.2.2.
We’ve updated the builds for macOS, Windows, and Android.
MauiKit
With the new updates, the existing components keep on being polished and gaining features.
For statically linked MauiKit, the registration of the types now needs to have the QML engine instance passed on, so MauiKit can register some components to the root context, such as the KI18n translation tool and image providers.
Some of the highlights are:
Controls
The FMList model
For other platforms than Linux, where KIO isn’t available, this component, which allows listing the contents of the file system, was changed to emulate the KIO API to keep consistency; this alternative version uses another component: FileLoader for asynchronous loading of the files.
Platform
A new attached property to access standard functions dependent on the different platforms, like sharing files, text, changing status bar color, etc.
This new attached property also has properties to know if the platform has a physical mouse, keyboard, or touch, this is important for building convergent application that adapt top multiple input methods.
AppViews
The viewport, which places the buttons in the header bar to provide access to the different views, is now more compact on constrained spaces by hiding the AppView title and only showing the icon.
AltBrowser
Improved the way the switching happens by removing the loaders, and instead using both grid and list views altogether hiding the inactive one.
SettingTemplate
The setting template now is more responsive; when the width is not enough to fit the labels and the item, the control is moved to the bottom.
Dialog
The dialog component now has a new function to show a warning message inline.
ToolActions
Bugs have been fixed, and the code has been refined removing unneeded parts.
Also, a new property name cyclic was added, which allows to cycle through the auto exclusive actions, instead of opening a drop-down menu when the control is not expanded.
FileBrowser
Removed the status bar and merged the filter and search bars. And the code was updated after removing the FilePreviewer references.
Editor & DocumentHanlder
The files now load more quickly, the highlighting theme directly gets applied correctly when dynamically changed, and the editor sidebar lines counter has been redone to be quicker.
AboutDialog
Better sizing of the sections, respecting the app description text sizes.
Tagging & TagsDialog
The tagging system has been slowly but steadily improved and refactored. The API is now cleaner, the tags dialog now has a combined text entry field to filter or add new tags, and the backend model uses MauiKit templated modeling classes for quickly filtering and sorting.
Maui Style
Fixes to buttons height, combo boxes, spinbox, text field, sliders, checkboxes, switches, etc.. resulting in a more cohesive style.
Apps
Currently, the Maui Project maintains over ten core applications to provide an essential experience: Index, VVave, Pix, Nota, Buho, Shelf, Station, Cinema, Communicator, Sol, and Booth; while some are in a stable state, some others are just recently entering a beta state.
This week’s progress includes many nice feature fixes to the current stable apps and upgrades to the beta ones.
Index
The recent updates bring more refined components for Index.
The FilePreviewer component has been moved out of MauiKit’s internals into Index, making more sense, so more previewers for different file types can be added later on.
For this upcoming release, two new file previewers have been added: for compressed file types like ZIP, 7zip, and tar, the previewer displays the compressed archive contents and extracts them quickly, a font previewer was also added, which allows installing of the font locally.
- Added more options to the settings dialogs, like global sorting.
- Support for split views in the vertical or horizontal orientation, depending on available width space.
- An embedded file previewer instead of a modal popup dialog allows us to have different previewers per tab and split.
- File previewer for font file types.
- File previewer for compressed file types and contextual options to quickly perform the extraction.
- Removed the Miller Column view option, although it is still available on the MauiKit side.
- A better layout of the main browser toolbar actions.
- Option to sort the files globally or by per browser.
- Use of the Qt Labs settings component for correctly storing the configurations.
Pix
This revision brings a performance boost, a better tags view that auto-updates when new images are tagged, optimized images grid layout for small screens, and other small fixes.
- The image viewer view now has a dark background color.
- The grid layout thumbnails are now better optimized in shape and size for small screens.
- The sorting settings have been moved to the locations dialog to clean up the interface and have a single global configuration.
- Use KAboutData for setting the app info.
- Use of the Qt Labs settings component for correctly storing the configurations.
VVave
VVave source code has been cleaned up, the YouTube view support has been dropped to be moved to a different application, and some interface components have been polished like the FocusView.
- New more straightforward FocusView design for the now playing playlists album artworks.
- The playlists view now auto-updates when new tracks are tagged.
- YouTube view support has been dropped.
- The sorting preferences are now smarter, and for more precise control, the sorting option has been moved to the settings dialog.
- Use of the Qt Labs settings component for correctly storing the configurations.
- The PlayBack bar has been cleanup.
- For Android, the TabLib binaries are used instead of statically linking and building from source.
- Correctly usage of Components to reduce the number of initial loading parts.
Nota
Nota sees improvements coming from MauiKit backends, resulting in faster text document loading times, correctly applying styles, and more options to change the text properties, like font sizing, tab spacing, etc.
- Drop the Doodle support until it is more mature to take handwriting notes.
- Use of the Qt Labs settings component for correctly storing the configurations.
- The text files’ loading and rendering are now faster than the MauiKit back-end Editor and DocumentHandler components.
- The syntax highlighting theme is now correctly applied when changed.
- A new option to change the tab space size.
- The new document dialog has been improved.
Buho
Now the notes in Buho are correctly updated on changes, multiple selections have been added, and the book’s view was refined, besides supporting autosaving mode.
- An autosaving option was added to the settings dialog.
- A new settings dialog was added, bringing a set of configurable options, like font family, font size, autosaving, and a few more.
- Now uses KI18n for translations.
- Use of KAboutData.
- A new immersive mode when editing or creating a note or booklet.
- Use of the Qt Labs settings component for correctly storing the configurations.
Station
- Use of the Qt Labs settings component for correctly storing the configurations.
- Use of KAboutData.
Communicator
The Communicator contacts application has been refactored, and the code has been updated to all the latest and greatest MauiKit changes. For this upcoming 1.2 release, Android support has been dropped due to the refactoring. Still, it should return for the 1.2.1 bug fixes release.
- Use of the Qt Labs settings component for correctly storing the configurations.
- Use of KAboutData.
- Fix the desktop file for Linux.
- Fully finished the renaming from Dialer to Communicator.
- The dialer view has been dropped.
- The ContactsView now uses the MauiKit AltBrowser layout for switching from the list to a grid view.
- The contact page has been redesign to support creating and editing the existing contacts; before, there were two different components for each.
- The ContactsPage view for an existing contact now sports a contextual set of actions depending on the info, so if the phone section is clicked, the contextual steps are revealed, such as call, send SMS or copy the phone number, etc.
- Drop the modal dialog popups in favor of stacked pages.
Shelf
- Use of KAboutData.
- We’ve fixed the desktop file for Linux.
- We’ve added CMake support.
- PDF viewer now makes usage of the MauiKit ImageViewer component for displaying the document contents, which allows for pinch-zooming gestures.
- Correct usage of Poppler binaries for building on Android instead of statically linking and building from source.
Cinema
- Use of KAboutData.
- Added the desktop file for Linux.
- Added support for Android and macOS.
- More queue playlists features.
Booth
- The new MauiKit camera application for taking pictures and videos.