[Marble-devel] Review Request: Support absolute source directories in .dgml files

Dennis Nienhüser earthwings at gentoo.org
Sat Jan 15 13:48:27 CET 2011


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://svn.reviewboard.kde.org/r/6334/
-----------------------------------------------------------

Review request for marble.


Summary
-------

Allow using absolute source directories in texture layers in .dgml files.
Extend .dgml by a tileSize tag (width and height attribute), usable inside textureLayer tags. Such .dgml files are backwards compatible.
Handle 'base tile missing' case more gracefully and return an empty image instead of triggering an assertion.
Move the default tile size (675) to global.h and replace hardcoded default tile sizes with it.

The use case here is sharing tiles between several users or applications on one system independent of Marble's datapath setting (.dgml modification to be done by packagers or system admins). Most importantly I want to use it in the Maemo packages to have the openstreetmap source dir point to the "/home/user/MyDocs/.maps/OpenStreetMap I" directory used by several applications there. Symlinking is not an option because the vfat file system used in that directory does not support it. The tileSize addition is mostly done to make this (and Marble in general) more robust, i.e. still work if a user wipes out the entire tile source directory, including the base tile.

This also fixes partially broken installations where a .dgml file is in the data path, but not its base tiles. With this patch it would be possible to omit shipping base tiles for texture layers that download their data. With backward compatibility in mind it's better not to do that, however; moreover shipping the base tile avoids the "naked" initial view when the base tile has to be downloaded.

I think the patch keeps ABI, so I'd like to backport it to 1.1 (but not 1.0).


This addresses bugs 249633 and 263010.
    https://bugs.kde.org/show_bug.cgi?id=249633
    https://bugs.kde.org/show_bug.cgi?id=263010


Diffs
-----

  trunk/KDE/kdeedu/marble/data/maps/earth/bluemarble/bluemarble.dgml 1214568 
  trunk/KDE/kdeedu/marble/data/maps/earth/openstreetmap/openstreetmap.dgml 1214568 
  trunk/KDE/kdeedu/marble/src/lib/FileStoragePolicy.cpp 1214568 
  trunk/KDE/kdeedu/marble/src/lib/ImageLoadThread.cpp 1214568 
  trunk/KDE/kdeedu/marble/src/lib/MapWizard.cpp 1214568 
  trunk/KDE/kdeedu/marble/src/lib/TileCreator.cpp 1214568 
  trunk/KDE/kdeedu/marble/src/lib/TileLoader.cpp 1214568 
  trunk/KDE/kdeedu/marble/src/lib/geodata/handlers/dgml/DgmlAttributeDictionary.h 1214568 
  trunk/KDE/kdeedu/marble/src/lib/geodata/handlers/dgml/DgmlAttributeDictionary.cpp 1214568 
  trunk/KDE/kdeedu/marble/src/lib/geodata/handlers/dgml/DgmlElementDictionary.h 1214568 
  trunk/KDE/kdeedu/marble/src/lib/geodata/handlers/dgml/DgmlElementDictionary.cpp 1214568 
  trunk/KDE/kdeedu/marble/src/lib/geodata/handlers/dgml/DgmlTileSizeTagHandler.h PRE-CREATION 
  trunk/KDE/kdeedu/marble/src/lib/geodata/handlers/dgml/DgmlTileSizeTagHandler.cpp PRE-CREATION 
  trunk/KDE/kdeedu/marble/src/lib/geodata/scene/GeoSceneTexture.h 1214568 
  trunk/KDE/kdeedu/marble/src/lib/geodata/scene/GeoSceneTexture.cpp 1214568 
  trunk/KDE/kdeedu/marble/src/lib/global.h 1214568 

Diff: http://svn.reviewboard.kde.org/r/6334/diff


Testing
-------

- When setting an absolute source dir in a .dgml file, the cached tiles are stored in it and the data path is not touched
- Clouds, openstreetmap and hillshading base tiles can be deleted without Marble segfaulting
- Marble 4.6 without the patch loads .dgml files with the <tileSize> tag fine


Thanks,

Dennis

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.kde.org/pipermail/marble-devel/attachments/20110115/8a24ac5b/attachment.htm 


More information about the Marble-devel mailing list