- 20 Aug, 2021 2 commits
-
-
A simple widget to show the north when doing a rotation of the map.
-
James Westman authored
Some map sources (like the test one in the demo) don't have license text.
-
- 31 Jul, 2021 1 commit
-
-
James Westman authored
When receiving tiles from the server, read them into a GBytes first using GMemoryOutputStream, then stream them into a pixbuf. This allows us to skip re-encoding the pixbuf later when we save it to the file cache.
-
- 28 Jul, 2021 1 commit
-
-
James Westman authored
Add support for rotating the map using touchscreen/trackpad gestures. This involved changing the gesture tracking code to support zooming and rotating at the same time. Also, some of the viewport methods had to be changed since the calculations now depend on both coordinates.
-
- 23 Jul, 2021 2 commits
-
-
As per FHS and GNU conventions.
-
Remove tile-source as there was no gain having a distinction between the two
-
- 06 Jul, 2021 5 commits
-
-
Makes it clearer that it is the widgets that shoes a map.
-
Previously, the screen would flash every time the zoom level changed. This was because the tiles from the previous zoom level were all deleted as soon as the zoom level changed. Now, those old tiles are kept around until all the tiles at the new zoom level are loaded. This provides something to fill the screen while the tiles load. This commit also simplifies the size_allocate logic. Instead of iterating through the expected tile locations and finding them in the hash table, it iterates the hash table directly and calculates the correct location for each tile.
-
Draw the tile texture to cover the widget, rather than at the size of the texture, since they may be different.
-
Move a lot of the tile grid logic out of size_allocate into recompute_grid(). This is neater since size_allocate isn't really supposed to modify the content of the widget, only position it on screen. Part of this change is that tiles are stored in the hash map by their unwrapped grid coordinates, not by coordinates in the screen grid. This makes much of the logic simpler, especially the logic around invalidating tiles. Also, tiles are no longer reused; once a tile is created, its x/y/zoom will not change, and it will be deleted and replaced when it moves out of view.
-
Store the tiles in a hash table rather than a pointer array. This is a more suitable data structure since we often look up tiles by their grid position, and hash tables can still be easily iterated.
-
- 01 Jul, 2021 1 commit
-
-
Corentin Noël authored
-
- 30 Jun, 2021 1 commit
-
-
James Westman authored
They have been replaced by map layers and don't do anything anymore.
-
- 21 Jun, 2021 2 commits
-
-
- Don't build docs in flatpak. It would require a bunch of extra modules for gi-docgen's dependencies, and doc generation can take a little while anyway. Better to leave it out. - Remove the gtk-doc files and add gi-docgen to the build system.
-
Corentin Noël authored
-
- 18 Jun, 2021 2 commits
-
-
Corentin Noël authored
Also fixes warnings
-
Corentin Noël authored
ShumateMapSourceDesc is now gone as it wasn't providing any value. The ShumateMapSourceRegistry is now a GListModel implementation.
-
- 08 Jun, 2021 1 commit
-
-
Corentin Noël authored
GInitiallyUnowned is not really discoverable for developers.
-
- 04 Jun, 2021 2 commits
-
-
James Westman authored
Add a translucent background to the license so it's easier to read, especially on dark themes with light text color.
-
James Westman authored
Use the theme background color instead of always setting the background to white.
-
- 23 May, 2021 1 commit
-
-
Marcus Lundblad authored
Adds properties for setting an outline on a path layer to improve contrast.
-
- 22 May, 2021 1 commit
-
-
James Westman authored
Purge the cache the first time a tile is saved to the cache, and again whenever the size limit is reached.
-
- 20 May, 2021 3 commits
-
-
James Westman authored
- Use g_autoptr - Turn some g_debug into g_warning - Don't allow two purge threads at once
-
James Westman authored
Make the purge method async by running it in a separate thread.
-
James Westman authored
It didn't work properly anyway, because it just delayed the blocking call.
-
- 18 May, 2021 1 commit
-
-
James Westman authored
-
- 17 May, 2021 1 commit
-
-
Using the new continuous zoom feature, implement pinch to zoom gesture. Tested on both a trackpad and a touchscreen. Fixes #5.
-
- 12 May, 2021 1 commit
-
-
James Westman authored
ShumateMarker no longer draws any selection color--it's just a container for other widgets. Besides, global variables wouldn't be a good way to do this anyway. We could get the selection color from the GTK theme if we needed. Fixes #19.
-
- 06 May, 2021 2 commits
-
-
-
James Westman authored
The map layer now accepts fractional zoom levels by scaling the entire map layer with gtk_snapshot_scale().
-
- 19 Apr, 2021 1 commit
-
-
James Westman authored
-
- 17 Apr, 2021 3 commits
-
-
-
fill_tile_async() is a pretty complicated async function, so it's helpful to put all the callbacks in the order they are called.
-
In the network tile source, render cached tiles even if they are out of date, then update them if a new tile is fetched from the network. This way, the map doesn't flicker while we wait for network requests every time the cache expiration period is up.
-
- 09 Apr, 2021 1 commit
-
-
James Westman authored
Some of the CI runners don't support IPv6, so only listen on IPv4.
-
- 08 Apr, 2021 1 commit
-
-
James Westman authored
When store_tile() was called and the tile already existed in the cache, it would fail to overwrite it, because it was using g_file_create_async() instead of g_file_replace_async().
-
- 07 Apr, 2021 4 commits
-
-
Previously, it was useful to have these properties on ShumateTile so they could be passed between sources in a ShumateMapSourceChain. Now that's gone, the file cache and network source communicate directly, and these properties are no longer needed.
-
When constructing HTTP request headers, use the modified time directly from the file cache rather than from the tile.
-
Change get_tile_finish() to provide the modification time of a tile. This allows the network tile source to use it in requests for caching, and makes expiration checking more robust since it doesn't rely on the presence of an ETag.
-
James Westman authored
-