[Marble-devel] Review Request 108632: Basic .kmz support

Bernhard Beschow bbeschow at cs.tu-berlin.de
Tue Jan 29 09:14:02 UTC 2013


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


I'm looking forward to have KMZ support in Marble! I'll point out a design issue and a possible solution.


src/plugins/runner/kml/KmlPlugin.cpp
<http://git.reviewboard.kde.org/r/108632/#comment20089>

    This creates a circular dependency: FileManager already uses FileLoader which uses MarbleRunnerManager which uses the KML plugin. So if the KML plugin used FileLoader, a circle is created, which might call for trouble in the future.
    
    To avoid the circular dependency, it should be possible to create a subclassed GeoDataDocument which removes the temporary file structure upon its deletion. GeoDataDocuments are created in the KmlParser class, which is fortunately part of the KML plugin. So this approach might actually work. In additon, this approach avoids the need to pass MarbleModel to the parsers.


- Bernhard Beschow


On Jan. 27, 2013, 7:16 p.m., Dennis Nienhüser wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> http://git.reviewboard.kde.org/r/108632/
> -----------------------------------------------------------
> 
> (Updated Jan. 27, 2013, 7:16 p.m.)
> 
> 
> Review request for Marble.
> 
> 
> Description
> -------
> 
> Extends the kml plugin to support opening .kmz files.
> 
> - ParseRunner gets access to MarbleModel
> - KML plugin has an optional dependency on quazip
> - When opening a .kmz file, quazip is used to extract the .kmz to a temporary location
> - Last .kml file found in the .kmz is opened
> - If the .kml is closed in Marble, the temporary files are removed
> 
> 
> This addresses bug 310059.
>     http://bugs.kde.org/show_bug.cgi?id=310059
> 
> 
> Diffs
> -----
> 
>   cmake/modules/Findquazip.cmake PRE-CREATION 
>   src/lib/FileLoader.cpp 93d7db0 
>   src/lib/MarbleRunnerManager.cpp 1b312b1 
>   src/lib/ParsingRunner.h 033fe60 
>   src/lib/ParsingRunner.cpp 81458ce 
>   src/lib/RunnerTask.h 956fd93 
>   src/lib/RunnerTask.cpp 56f0628 
>   src/plugins/runner/kml/CMakeLists.txt 35e00dc 
>   src/plugins/runner/kml/KmlPlugin.h 527c2f1 
>   src/plugins/runner/kml/KmlPlugin.cpp fc23402 
>   src/plugins/runner/kml/KmlRunner.h d97f89a 
>   src/plugins/runner/kml/KmlRunner.cpp 3278c78 
>   src/plugins/runner/kml/KmzHandler.h PRE-CREATION 
>   src/plugins/runner/kml/KmzHandler.cpp PRE-CREATION 
> 
> Diff: http://git.reviewboard.kde.org/r/108632/diff/
> 
> 
> Testing
> -------
> 
> Opening some random .kmz files found on the Internet works.
> 
> TODO (for separate patches):
> - Resolve files (images) in .kmz files correctly
> - Fix Marble to delete plugins / close files correctly on shutdown
> - Register .kmz files for opening with Marble
> 
> 
> Thanks,
> 
> Dennis Nienhüser
> 
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/marble-devel/attachments/20130129/9a56d98c/attachment-0001.html>


More information about the Marble-devel mailing list