[Marble-devel] Review Request: GeoData: showcase test for pointer-based GeoData

Thibaut Gridel tgridel at free.fr
Sun Jun 27 23:46:09 CEST 2010


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

(Updated 2010-06-27 21:46:09.252277)


Review request for marble.


Changes
-------

This updated diff is the result of the following changes (squashed together so that it fits reviewboard)

- GeoDataObject: provide parent()

- GeoDataContainer: store GeoDataFeature* in GeoDataContainer
    also provide a pointer-based api which doesn't detach() to access a pointer
    last, use iterators for GeoDataFeature* to iterate features

- GeoData: showcase test for pointer-based GeoDataContainer

- FileManager takes over geodatadocument ownership (hence FileManager::closeFile and not FileLoader does the delete, and KmlFileViewItem stores a pointer to this document)

- GeoDataMultiGeometry: store GeoDataGeometry* in GeoDataMultiGeometry and provides same pointer-based api

- GeoData: dead code for GeoDataObject, GeoDataFeature, GeoDataGeometry and GeoDataPlacemark

- GeoDataTreeModel, a model that works(TM)

- PositionTracking: append GeoDataDocument to FileManager directly (and so don't use geometrymodel)

- GeoRenderer: use the GeoDataTreeModel (and so don't use geometrymodel either)

- drop the MarbleGeometryModel


Remaining points:

- Parser code should use the pointer-based api to store features and geometries in a sane way
- GeoDataTreeModel should not have to fix parenting
- PlacemarkManager and model should use either pointer-based data or even better rely on GeoDataTreeModel

Tests/ New Features:

- GeoDataTreeModel passes the ModelTest test harnessing, meaning it is a real model, and supports a treeview
- Now multiple documents containing geometries can be rendered!
- PositionTracking feeds one of those, and it is available in the FileManager


Summary
-------

providing a (naive) pointer-based api for GeoDataContainer, and test case which shows early breaks...

Toggle between the two "document.append(folder);" shows how brittle the api still is.


Diffs (updated)
-----

  /trunk/KDE/kdeedu/marble/src/lib/CMakeLists.txt 1143093 
  /trunk/KDE/kdeedu/marble/src/lib/FileLoader.cpp 1143093 
  /trunk/KDE/kdeedu/marble/src/lib/FileManager.h 1143093 
  /trunk/KDE/kdeedu/marble/src/lib/FileManager.cpp 1143093 
  /trunk/KDE/kdeedu/marble/src/lib/GeoDataTreeModel.h PRE-CREATION 
  /trunk/KDE/kdeedu/marble/src/lib/GeoDataTreeModel.cpp PRE-CREATION 
  /trunk/KDE/kdeedu/marble/src/lib/KmlFileViewItem.h 1143093 
  /trunk/KDE/kdeedu/marble/src/lib/KmlFileViewItem.cpp 1143093 
  /trunk/KDE/kdeedu/marble/src/lib/MarbleDataFacade.h 1143093 
  /trunk/KDE/kdeedu/marble/src/lib/MarbleDataFacade.cpp 1143093 
  /trunk/KDE/kdeedu/marble/src/lib/MarbleGeometryModel.h 1143093 
  /trunk/KDE/kdeedu/marble/src/lib/MarbleGeometryModel.cpp 1143093 
  /trunk/KDE/kdeedu/marble/src/lib/MarbleModel.cpp 1143093 
  /trunk/KDE/kdeedu/marble/src/lib/geodata/data/GeoDataContainer.h 1143093 
  /trunk/KDE/kdeedu/marble/src/lib/geodata/data/GeoDataContainer.cpp 1143093 
  /trunk/KDE/kdeedu/marble/src/lib/geodata/data/GeoDataContainer_p.h 1143093 
  /trunk/KDE/kdeedu/marble/src/lib/geodata/data/GeoDataFeature.h 1143093 
  /trunk/KDE/kdeedu/marble/src/lib/geodata/data/GeoDataFolder.h 1143093 
  /trunk/KDE/kdeedu/marble/src/lib/geodata/data/GeoDataGeometry.h 1143093 
  /trunk/KDE/kdeedu/marble/src/lib/geodata/data/GeoDataMultiGeometry.h 1143093 
  /trunk/KDE/kdeedu/marble/src/lib/geodata/data/GeoDataMultiGeometry.cpp 1143093 
  /trunk/KDE/kdeedu/marble/src/lib/geodata/data/GeoDataMultiGeometry_p.h 1143093 
  /trunk/KDE/kdeedu/marble/src/lib/geodata/data/GeoDataObject.h 1143093 
  /trunk/KDE/kdeedu/marble/src/lib/geodata/data/GeoDataObject.cpp 1143093 
  /trunk/KDE/kdeedu/marble/src/lib/geodata/data/GeoDataPlacemark.h 1143093 
  /trunk/KDE/kdeedu/marble/src/lib/geodata/data/GeoDataPlacemark.cpp 1143093 
  /trunk/KDE/kdeedu/marble/src/lib/geodata/writers/kml/KmlDocumentTagWriter.cpp 1143093 
  /trunk/KDE/kdeedu/marble/src/lib/gps/PositionTracking.h 1143093 
  /trunk/KDE/kdeedu/marble/src/lib/gps/PositionTracking.cpp 1143093 
  /trunk/KDE/kdeedu/marble/src/plugins/render/geodata/GeoRendererPlugin.cpp 1143093 
  /trunk/KDE/kdeedu/marble/src/plugins/render/geodata/GeoRendererView.h 1143093 
  /trunk/KDE/kdeedu/marble/src/plugins/render/geodata/GeoRendererView.cpp 1143093 
  /trunk/KDE/kdeedu/marble/tests/TestGeoData.cpp 1143093 

Diff: http://reviewboard.kde.org/r/4285/diff


Testing
-------

Run TestGeoData :(


Thanks,

Thibaut

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.kde.org/pipermail/marble-devel/attachments/20100627/a2280f67/attachment-0001.htm 


More information about the Marble-devel mailing list