Mobile GUI GSoC 2012¶
The aim of this project is to create a new GUI for QGIS with basic functionality for using on small touch-screen Android devices.
You can get more information from my GSoC proposal
Here is the expected result qgis_mockups.tar.gz
There are some bugs and TODOs below.
How it works¶
There are two parts, the GUI and some C++ classes that use QGIS core.
- The GUI is made completely with QML and consists of dialogs, buttons, text fields, animations, etc.
- The C++ part do the actual work: adding layers, creating spatialite databases, the map tools, etc. This part is based STRONGLY on the desktop QGIS app, even there are some copied files with only a couple of modified lines.
Each part is isolated, but the Qt Quick runtime environment provides bindings that allows to expose data from C++ to QML and viceversa. You can read some useful documentation here:
Binding QML and C++
The project is hosted on Github. All the code related with the mobile app is in src/mobileapp/
Render the current visible layers. I use QgsMapCanvas and expose it to QML through QGraphicsProxy.On this page you can:
- Zoom and pan the map using gestures.
- Select a tool to edit the features.
- Use the GPS for adding features.
Show the list of loaded layers using a ListView on QML. A ListModel is needed, so I implemented a QAbstractListModel that have a reference to the loaded layers and a reference to the map canvas.On this page you can:
- Add and delete layers.
- Enable/disable visibility and editing of a layer.
- Reorder layers.
- Custom form support (QML forms?).
- Style for message boxes.
- Use a declarative extension to add custom QML types and exposed Qgis classes.