Marble Maps forking for SailfishOS

Marble, the swiss army knife for maps and globes, developed in the KDE community, this year has got an app variant added that is concentrating on maps and that is designed for today’s typical mobile devices with touch UI, called Marble Maps. It currently is in Beta state. Read “Announcing Marble Maps for Android Open Beta” for more info.

At this year’s Randa meeting for a few days I joined the people working on having KDE software run on Android. After all there are gazillions of such systems out there, and it only makes sense to have existing FLOS software, such as KDE ones, also run there, as a matter of dealing with realities. With the developers of Marble, KAlgebra and GCompris around, some experience could be shared, and I compiled what I learned into a small Hello KWorld example.

As a Marble fanboy, Marble Maps was my obvious toy project here when learning more about building Qt5-based software for Android. I had no Android device available, but a Jolla phone with SailfishOS. That one also has support for running Android apps, so I still could use it to test my self-built Marble Maps Android packages.

Now, it felt strange to run a Qt5-based application via Android emulation layer on an OS like SailfishOS which itself is using Qt5 and then some usual “Linux” software stack/middleware. Should it not simply run directly there?

So last week finally I gave it a try to build and to run Marble Maps natively on SailfishOS. And was presented with a problem: SailfishOS in the latest version is (still) at Qt 5.2 (with QML upgraded to 5.3 it seems) and, more important, has no QtQuick Controls. Which are used in Marble Maps for all controls. At least all the Marble C++ code was building fine after 2 small fixes, so that part was looking promising.

An option might have been to build a custom version of QtQuick Controls. But that somehow smelled like problems waiting. And I also was tempted to try to do some native UX to gather more experience with QtQuick and the SailfishOS ideas. So I forked the Marble Maps code and started to write a SailfishOS variant, using its Silica UI components. The code for Marble Maps is mainly the UI layer one, written in QML, with the actual business logic nicely in the shared Marble libs and components, so it is not that much logic which is duplicated here. Still it is not “Write once and run everywhere”. It’s up for discussion how much native multi-platform apps should go. For now I will play more with it.

Right now Marble Maps for SailfishOS almost has all current features of the “normal” Marble Maps implemented, modulo some small bugs:

Marble Maps on SailfishOS: Editing a route Marble Maps on SailfishOS: Adding a new point to a route

These days sadly many people hearing “marble” and “sailfishos” might rather think of “tombstone”, bad timing here. But until that OS is pushing up the water lilies I will play more with it, after all I can use the code on a working device of mine.

If you want to use the code on a device of yours, find first RPMs on build.merproject.org and the code in branch “sfos” in my Marble repo clone clones/marble/kossebau/marble on the KDE git servers, see src/apps/marble-maps-sailfishos/ for the app code. Once it’s stable enough the code will be proposed for inclusion in the official Marble repo.
(Update: when installing the RPM on the Jolla phone, make sure you have “qt5-qtscript” installed, pkcon install qt5-qtscript in the terminal should get you there.)

Also looking forward to see the “normal” Marble Maps and other Marble-based apps soon on Plasma Mobile hopefully.
And anyone looking into an Ubuntu Touch version? Would that work with stock Marble Maps, thanks to QtQuick Controls, or would more native UX be needed there as well?

Your input, please: naming of action icons (tables, vectorpaths, animation, text, …)

Developing an application where you use or need icons for actions around tables, vectorpaths, animations, text formatting? Looking forward to use Breeze-styled icons, shared with other applications? Then please read on, this is especially for you:

The Breeze iconset currently gets further icons, as needed by the different Calligra apps and plugins. And that are many icons.

Given these icons are then in the public namespace (without any Calligra-specific prefix) and ideally also can be reused by any apps, we need to ensure there are no icon name collisions and also that semantics in the naming are properly done. The XDG Icon Naming Specification currently is leaving a lot of room and surely one day can also get more feedback by the names we start to use here.

Please have a look at the overview of proposed icon names:
https://community.kde.org/Calligra/Icons/3.0
(shows also old custom icons used in Calligra and old custom names).

And then please tell (e.g. by commenting on this post or by replying to the email on ML kde-devel ) where you see chances for improvements. The quicker you comment, the better, because this is WIP and might soon create facts.

While there are naming proposals already for most icons, there are a few in need for any naming proposal at all. So listing them here explicitely once again (see details in the overview page):

  • borderpainter
  • black
  • highlight
  • special_paste

Andreas from the VDG has already started to do and commit first such icons in Breeze style to the repo of Breeze icons, see links below to get an idea what is coming up.
There have been done already quite some Breeze-style icons for LibreOffice. Just, LibreOffice for legacy reason has their own internal icon naming and resource system, so the Breeze icons as created for LibreOffice are not in the normal Breeze iconset and not following the XDG Icon Naming Specification. But by that there is some iconic language existing and SVG code to reuse. Still, this is a big amount of work to be done, so we Calligra developers are very happy that Andreas has started to tackle this!

Initial commits:
Calligra escape directions
Calligra connection line types
Calligra path editing related icons
Calligra Borders for multiple cells icons
Adde dmissing action icons to icons-dark

PS: Anyone a good idea how to embed external SVG files in Community Wiki pages? Using link as plain text only works with PNG files (and once the url ends with “.png”), but not SVG ones.