<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://techbase.kde.org/skins/common/feed.css?0.2"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://techbase.kde.org/index.php?title=Projects/Marble/GeoData/GeoDataUse&amp;feed=atom&amp;action=history</id>
		<title>Projects/Marble/GeoData/GeoDataUse - Revision history</title>
		<link rel="self" type="application/atom+xml" href="http://techbase.kde.org/index.php?title=Projects/Marble/GeoData/GeoDataUse&amp;feed=atom&amp;action=history"/>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/index.php?title=Projects/Marble/GeoData/GeoDataUse&amp;action=history"/>
		<updated>2013-05-22T08:01:07Z</updated>
		<subtitle>Revision history for this page on the wiki</subtitle>
		<generator>MediaWiki 1.20.2</generator>

	<entry>
		<id>http://techbase.kde.org/index.php?title=Projects/Marble/GeoData/GeoDataUse&amp;diff=65651&amp;oldid=prev</id>
		<title>Tgridel: /* Actual Implemented Use Details */</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/index.php?title=Projects/Marble/GeoData/GeoDataUse&amp;diff=65651&amp;oldid=prev"/>
				<updated>2011-09-14T21:51:38Z</updated>
		
		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Actual Implemented Use Details&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
			&lt;tr style='vertical-align: top;'&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Older revision&lt;/td&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 21:51, 14 September 2011&lt;/td&gt;
			&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 15:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 15:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;=== Actual Implemented Use Details ===&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;=== Actual Implemented Use Details ===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;* GeoData classes have shared data, in the sense that e.g. copying a GeoDataFeature is a shallow copy, with deep copy happening when one of the instances need to modify a value. This is all for the &amp;quot;ToolClass&amp;quot;, and not much useful for the &amp;quot;DataTree&amp;quot;.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;* GeoData classes have shared data, in the sense that e.g. copying a GeoDataFeature is a shallow copy, with deep copy happening when one of the instances need to modify a value. This is all for the &amp;quot;ToolClass&amp;quot;, and not much useful for the &amp;quot;DataTree&amp;quot;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;. Pure parameter passing benefits from shallow copy&lt;/ins&gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;* {{class|FileManager|kdeedu|4.x}} uses {{class|FileLoader|kdeedu|4.x}} which build a {{class|GeoDataDocument|kdeedu|4.x}} from files it opens. It internally uses the {{class|GeoParser|kdeedu|4.x}} classes and framework for xml files. Those files then provided through the {{class|GeoDataTreeModel|kdeedu|4.x}} model.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;* {{class|FileManager|kdeedu|4.x}} uses {{class|FileLoader|kdeedu|4.x}} which build a {{class|GeoDataDocument|kdeedu|4.x}} from files it opens. It internally uses the {{class|GeoParser|kdeedu|4.x}} classes and framework for xml files. Those files then provided through the {{class|GeoDataTreeModel|kdeedu|4.x}} model.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;* {{class|PlacemarkManager|kdeedu|4.x}} uses placemarks retrieved from the FileManager, and provides a {{class|PlacemarkModel|kdeedu|4.x}} model which contains them.&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;* {{class|PositionTracker|kdeedu|4.x}} keeps a document with past positions retrieved from {{class|PositionProviderPlugin|kdeedu|4.x}} plugins.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;* {{class|PositionTracker|kdeedu|4.x}} keeps a document with past positions retrieved from {{class|PositionProviderPlugin|kdeedu|4.x}} plugins.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Tgridel</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/index.php?title=Projects/Marble/GeoData/GeoDataUse&amp;diff=53488&amp;oldid=prev</id>
		<title>Tgridel at 23:06, 14 August 2010</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/index.php?title=Projects/Marble/GeoData/GeoDataUse&amp;diff=53488&amp;oldid=prev"/>
				<updated>2010-08-14T23:06:38Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
			&lt;tr style='vertical-align: top;'&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Older revision&lt;/td&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 23:06, 14 August 2010&lt;/td&gt;
			&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;== Using GeoData ==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;== Using GeoData ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;this &lt;/del&gt;page tries to summarise the use of GeoData classes in marble so that its implementation details can match the use cases, and understand if any what issues might arise from manipulating them otherwise.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;This &lt;/ins&gt;page tries to summarise the use of GeoData classes in marble so that its implementation details can match the use cases, and understand if any what issues might arise from manipulating them otherwise.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;=== Use Cases ===&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;=== Use Cases ===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 17:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 17:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;* GeoData classes have shared data, in the sense that e.g. copying a GeoDataFeature is a shallow copy, with deep copy happening when one of the instances need to modify a value. This is all for the &amp;quot;ToolClass&amp;quot;, and not much useful for the &amp;quot;DataTree&amp;quot;.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;* GeoData classes have shared data, in the sense that e.g. copying a GeoDataFeature is a shallow copy, with deep copy happening when one of the instances need to modify a value. This is all for the &amp;quot;ToolClass&amp;quot;, and not much useful for the &amp;quot;DataTree&amp;quot;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;* &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Reading a file with &lt;/del&gt;{{class|&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;GeoParser&lt;/del&gt;|kdeedu|4.&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;X&lt;/del&gt;}} &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;creates a tree of data&lt;/del&gt;.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;* {{class|&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;FileManager&lt;/ins&gt;|kdeedu|4.&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;x&lt;/ins&gt;}} &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;uses {{class|FileLoader|kdeedu|4&lt;/ins&gt;.&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;x}} which build &lt;/ins&gt;a {{class|&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;GeoDataDocument&lt;/ins&gt;|kdeedu|4.x}} &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;from files it opens. It &lt;/ins&gt;internally &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;uses the &lt;/ins&gt;{{&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;class&lt;/ins&gt;|&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;GeoParser|kdeedu|4.x&lt;/ins&gt;}} &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;classes and framework for xml files&lt;/ins&gt;. &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Those files then provided through &lt;/ins&gt;the &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;{{class|GeoDataTreeModel|kdeedu|4.x}} model&lt;/ins&gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;This data is manipulated within &lt;/del&gt;a &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;stack of &lt;/del&gt;{{class|&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;GeoNode&lt;/del&gt;|kdeedu|4.x}}&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;s and &lt;/del&gt;internally &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;stored in &lt;/del&gt;{{&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;qt&lt;/del&gt;|&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;QVector&lt;/del&gt;}} &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;of value types like QVector&amp;lt;GeoDataFeature&amp;gt;&lt;/del&gt;. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;This is &lt;/del&gt;the &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;canonical way to generate a &amp;quot;DataTree&amp;quot;&lt;/del&gt;.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;* &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;{{class|PlacemarkLoader|kdeedu|4.x}} as used by &lt;/del&gt;{{class|PlacemarkManager|kdeedu|4.x}} &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;appends all placemark &lt;/del&gt;from &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;files it opens in &lt;/del&gt;a {{class|&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;PlacemarkContainer&lt;/del&gt;|kdeedu|4.x}} &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;(&lt;/del&gt;which &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;is a {{qt|QVector}} of {{class|GeoDataPlacemark|kdeedu|4&lt;/del&gt;.&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;x}}). This is another way to create a sort of &amp;quot;DataTree&amp;quot;, relying on some &amp;quot;ToolClasses&amp;quot;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;* {{class|PlacemarkManager|kdeedu|4.x}} &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;uses placemarks retrieved &lt;/ins&gt;from &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;the FileManager, and provides &lt;/ins&gt;a {{class|&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;PlacemarkModel&lt;/ins&gt;|kdeedu|4.x}} &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;model &lt;/ins&gt;which &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;contains them&lt;/ins&gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;* &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Model classes (implementing Qt's model-view framework that is) serve as interface to GeoData classes, passing them through &lt;/del&gt;{{&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;qt&lt;/del&gt;|&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;QVariant&lt;/del&gt;}}&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;s&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;* {{&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;class&lt;/ins&gt;|&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;PositionTracker|kdeedu|4.x}} keeps a document with past positions retrieved from {{class|PositionProviderPlugin|kdeedu|4.x}} plugins.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;* {{class|RoutingManager|kdeedu|4.x}} handles routing data in a document with instructions retrieved from Marble Runners Plugins which derive from {{class|MarbleAbstractRunner|kdeedu|4.x&lt;/ins&gt;}}&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;TODO others??&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;TODO others??&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 31:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 32:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;# memory ownership is an issue to be determined depending on use case.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;# memory ownership is an issue to be determined depending on use case.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;# Compliance with KML spec is a priority, limiting differing needs.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;# Compliance with KML spec is a priority, limiting differing needs.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;# Parsing code is full of casts.&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;# storing e.g. an GeoDataPlacemark item in a QVector&amp;lt;GeoDataFeature&amp;gt; looks like a hairy solution, as QVector&amp;lt;T&amp;gt;::append will internally create a new T. In the shared data context this implies that we end up with an element of vector being a GeoDataFeature with a private member being a GeoDataPlacemarkPrivate.&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;# data which may be useful in the context of the &amp;quot;DataTree&amp;quot; use case are completely useless in the context of the &amp;quot;ToolClass&amp;quot; use case. This is true for featureId and other type defining attributes.&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;# GeoDataFeature needs a constructor per derived class and each derived class has to be a friend of GeoDataFeature. This makes the base class dependent on each derived class which is bad design.&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;=== Proposals ===&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;* Using internally QVectors of pointers may limit the problem of inheritance. This does not limit the ability to use QVectors of Data types when needed elsewhere.&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;* Providing some specialised &amp;quot;ToolClasses&amp;quot; like {{class|GeoDataCoordinates|kdeedu|4.x}} would limit the interference between the use cases.&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Tgridel</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/index.php?title=Projects/Marble/GeoData/GeoDataUse&amp;diff=43952&amp;oldid=prev</id>
		<title>Tampakrap: fix small issues in last edit</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/index.php?title=Projects/Marble/GeoData/GeoDataUse&amp;diff=43952&amp;oldid=prev"/>
				<updated>2009-08-12T22:58:36Z</updated>
		
		<summary type="html">&lt;p&gt;fix small issues in last edit&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
			&lt;tr style='vertical-align: top;'&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Older revision&lt;/td&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 22:58, 12 August 2009&lt;/td&gt;
			&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 34:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 34:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;# storing e.g. an GeoDataPlacemark item in a QVector&amp;lt;GeoDataFeature&amp;gt; looks like a hairy solution, as QVector&amp;lt;T&amp;gt;::append will internally create a new T. In the shared data context this implies that we end up with an element of vector being a GeoDataFeature with a private member being a GeoDataPlacemarkPrivate.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;# storing e.g. an GeoDataPlacemark item in a QVector&amp;lt;GeoDataFeature&amp;gt; looks like a hairy solution, as QVector&amp;lt;T&amp;gt;::append will internally create a new T. In the shared data context this implies that we end up with an element of vector being a GeoDataFeature with a private member being a GeoDataPlacemarkPrivate.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;# data which may be useful in the context of the &amp;quot;DataTree&amp;quot; use case are completely useless in the context of the &amp;quot;ToolClass&amp;quot; use case. This is true for featureId and other type defining attributes.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;# data which may be useful in the context of the &amp;quot;DataTree&amp;quot; use case are completely useless in the context of the &amp;quot;ToolClass&amp;quot; use case. This is true for featureId and other type defining attributes.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;# GeoDataFeature needs a &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;copy &lt;/del&gt;constructor per derived class and each derived class has to be a friend of GeoDataFeature. This &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;make &lt;/del&gt;the base class dependent on each derived class which is bad design.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;# GeoDataFeature needs a constructor per derived class and each derived class has to be a friend of GeoDataFeature. This &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;makes &lt;/ins&gt;the base class dependent on each derived class which is bad design.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;=== Proposals ===&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;=== Proposals ===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Tampakrap</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/index.php?title=Projects/Marble/GeoData/GeoDataUse&amp;diff=43951&amp;oldid=prev</id>
		<title>Tampakrap: add comment on GeoDataFeature being dependent on derived classes</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/index.php?title=Projects/Marble/GeoData/GeoDataUse&amp;diff=43951&amp;oldid=prev"/>
				<updated>2009-08-12T22:55:18Z</updated>
		
		<summary type="html">&lt;p&gt;add comment on GeoDataFeature being dependent on derived classes&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
			&lt;tr style='vertical-align: top;'&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Older revision&lt;/td&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 22:55, 12 August 2009&lt;/td&gt;
			&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 34:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 34:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;# storing e.g. an GeoDataPlacemark item in a QVector&amp;lt;GeoDataFeature&amp;gt; looks like a hairy solution, as QVector&amp;lt;T&amp;gt;::append will internally create a new T. In the shared data context this implies that we end up with an element of vector being a GeoDataFeature with a private member being a GeoDataPlacemarkPrivate.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;# storing e.g. an GeoDataPlacemark item in a QVector&amp;lt;GeoDataFeature&amp;gt; looks like a hairy solution, as QVector&amp;lt;T&amp;gt;::append will internally create a new T. In the shared data context this implies that we end up with an element of vector being a GeoDataFeature with a private member being a GeoDataPlacemarkPrivate.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;# data which may be useful in the context of the &amp;quot;DataTree&amp;quot; use case are completely useless in the context of the &amp;quot;ToolClass&amp;quot; use case. This is true for featureId and other type defining attributes.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;# data which may be useful in the context of the &amp;quot;DataTree&amp;quot; use case are completely useless in the context of the &amp;quot;ToolClass&amp;quot; use case. This is true for featureId and other type defining attributes.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;# GeoDataFeature needs a copy constructor per derived class and each derived class has to be a friend of GeoDataFeature. This make the base class dependent on each derived class which is bad design.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;=== Proposals ===&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;=== Proposals ===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Tampakrap</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/index.php?title=Projects/Marble/GeoData/GeoDataUse&amp;diff=43748&amp;oldid=prev</id>
		<title>Tgridel at 22:54, 31 July 2009</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/index.php?title=Projects/Marble/GeoData/GeoDataUse&amp;diff=43748&amp;oldid=prev"/>
				<updated>2009-07-31T22:54:36Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
			&lt;tr style='vertical-align: top;'&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Older revision&lt;/td&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 22:54, 31 July 2009&lt;/td&gt;
			&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 10:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 10:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;#: It is expected in that regard that classes have shared data.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;#: It is expected in that regard that classes have shared data.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;#: Let's call this usecase the &amp;quot;ToolClass&amp;quot; usecase.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;#: Let's call this usecase the &amp;quot;ToolClass&amp;quot; usecase.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del style=&quot;color: red; font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;# use {{class|GeoDataDocument|kdeedu|4.x}} as the root document of a &amp;quot;data file&amp;quot; in-memory representation, or even another grouping of information.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;# use {{class|GeoDataDocument|kdeedu|4.x}} as the root document of a &amp;quot;data file&amp;quot; in-memory representation, or even another grouping of information.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;#: In this use case, there would exist a &amp;quot;tree&amp;quot; of data matching a logical grouping of information.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;#: In this use case, there would exist a &amp;quot;tree&amp;quot; of data matching a logical grouping of information.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 16:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 15:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;=== Actual Implemented Use Details ===&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;=== Actual Implemented Use Details ===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;* GeoData classes have shared data, in the sense that e.g. copying a GeoDataFeature is a shallow copy, with deep copy happening when one of the instances need to modify a value.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;* GeoData classes have shared data, in the sense that e.g. copying a GeoDataFeature is a shallow copy, with deep copy happening when one of the instances need to modify a value&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;. This is all for the &amp;quot;ToolClass&amp;quot;, and not much useful for the &amp;quot;DataTree&amp;quot;&lt;/ins&gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;* Reading a file with {{class|GeoParser|kdeedu|4.X}} creates a tree of data.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;* Reading a file with {{class|GeoParser|kdeedu|4.X}} creates a tree of data.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;This data is manipulated within a stack of {{class|GeoNode|kdeedu|4.x}}s and internally stored in {{qt|QVector}} of value types like QVector&amp;lt;GeoDataFeature&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;This data is manipulated within a stack of {{class|GeoNode|kdeedu|4.x}}s and internally stored in {{qt|QVector}} of value types like QVector&amp;lt;GeoDataFeature&amp;gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;. This is the canonical way to generate a &amp;quot;DataTree&amp;quot;.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;* &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;PlaceMarkManager creates its copy of any &lt;/del&gt;placemark &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;in opened &lt;/del&gt;files&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;* &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;{{class|PlacemarkLoader|kdeedu|4.x}} as used by {{class|PlacemarkManager|kdeedu|4.x}} appends all &lt;/ins&gt;placemark &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;from &lt;/ins&gt;files &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;it opens in a {{class|PlacemarkContainer|kdeedu|4.x}} (which is a {{qt|QVector}} of {{class|GeoDataPlacemark|kdeedu|4.x}}). This is another way to create a sort of &amp;quot;DataTree&amp;quot;, relying on some &amp;quot;ToolClasses&amp;quot;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;* Model classes (implementing Qt's model-view framework that is) serve as interface to GeoData classes, passing them through {{qt|QVariant}}s&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;* Model classes (implementing Qt's model-view framework that is) serve as interface to GeoData classes, passing them through {{qt|QVariant}}s&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 30:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 29:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;In the past or present, some issues have appeared and need to be remembered/adressed:&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;In the past or present, some issues have appeared and need to be remembered/adressed:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;* &lt;/del&gt;memory ownership is an issue to be determined depending on use case.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;# &lt;/ins&gt;memory ownership is an issue to be determined depending on use case&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;# Compliance with KML spec is a priority, limiting differing needs.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;# Parsing code is full of casts.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;# storing e.g. an GeoDataPlacemark item in a QVector&amp;lt;GeoDataFeature&amp;gt; looks like a hairy solution, as QVector&amp;lt;T&amp;gt;::append will internally create a new T. In the shared data context this implies that we end up with an element of vector being a GeoDataFeature with a private member being a GeoDataPlacemarkPrivate.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;# data which may be useful in the context of the &amp;quot;DataTree&amp;quot; use case are completely useless in the context of the &amp;quot;ToolClass&amp;quot; use case. This is true for featureId and other type defining attributes&lt;/ins&gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;* Compliance with KML spec is a priority, limiting differing needs.&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;=== Proposals ===&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;* &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Parsing code is full &lt;/del&gt;of &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;casts&lt;/del&gt;.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;* &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Using internally QVectors &lt;/ins&gt;of &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;pointers may limit the problem of inheritance. This does not limit the ability to use QVectors of Data types when needed elsewhere&lt;/ins&gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;* &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;storing e.g. an GeoDataPlacemark item in a QVector&amp;lt;GeoDataFeature&amp;gt; looks &lt;/del&gt;like &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;a hairy solution, as QVector&amp;lt;T&amp;gt;::append will internally create a new T&lt;/del&gt;. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;In &lt;/del&gt;the &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;shared data context this implies that we end up with an element of vector being a GeoDataFeature with a private member being a GeoDataPlacemarkPrivate&lt;/del&gt;.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;* &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Providing some specialised &amp;quot;ToolClasses&amp;quot; &lt;/ins&gt;like &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;{{class|GeoDataCoordinates|kdeedu|4&lt;/ins&gt;.&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;x}} would limit the interference between &lt;/ins&gt;the &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;use cases&lt;/ins&gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;=== Proposals ===&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;TODO&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key wwwdeveloper:diff:version:1.11a:oldid:43746:newid:43748 --&gt;
&lt;/table&gt;</summary>
		<author><name>Tgridel</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/index.php?title=Projects/Marble/GeoData/GeoDataUse&amp;diff=43746&amp;oldid=prev</id>
		<title>Tgridel: moved Projects/Marble/GeoDataUse to Projects/Marble/GeoData/GeoDataUse:&amp;#32;moving to GeoData related pages</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/index.php?title=Projects/Marble/GeoData/GeoDataUse&amp;diff=43746&amp;oldid=prev"/>
				<updated>2009-07-31T22:27:49Z</updated>
		
		<summary type="html">&lt;p&gt;moved &lt;a href=&quot;/Projects/Marble/GeoDataUse&quot; class=&quot;mw-redirect&quot; title=&quot;Projects/Marble/GeoDataUse&quot;&gt;Projects/Marble/GeoDataUse&lt;/a&gt; to &lt;a href=&quot;/Projects/Marble/GeoData/GeoDataUse&quot; title=&quot;Projects/Marble/GeoData/GeoDataUse&quot;&gt;Projects/Marble/GeoData/GeoDataUse&lt;/a&gt;: moving to GeoData related pages&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
			&lt;tr style='vertical-align: top;'&gt;
			&lt;td colspan='1' style=&quot;background-color: white; color:black;&quot;&gt;← Older revision&lt;/td&gt;
			&lt;td colspan='1' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 22:27, 31 July 2009&lt;/td&gt;
			&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Tgridel</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/index.php?title=Projects/Marble/GeoData/GeoDataUse&amp;diff=43741&amp;oldid=prev</id>
		<title>Tampakrap: clarify root -&gt; root document (not root class), hope this is correct</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/index.php?title=Projects/Marble/GeoData/GeoDataUse&amp;diff=43741&amp;oldid=prev"/>
				<updated>2009-07-31T17:45:11Z</updated>
		
		<summary type="html">&lt;p&gt;clarify root -&amp;gt; root document (not root class), hope this is correct&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
			&lt;tr style='vertical-align: top;'&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;← Older revision&lt;/td&gt;
			&lt;td colspan='2' style=&quot;background-color: white; color:black;&quot;&gt;Revision as of 17:45, 31 July 2009&lt;/td&gt;
			&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 11:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 11:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;#: Let's call this usecase the &amp;quot;ToolClass&amp;quot; usecase.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;#: Let's call this usecase the &amp;quot;ToolClass&amp;quot; usecase.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;background: #ffa; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;# use {{class|GeoDataDocument|kdeedu|4.x}} as the root of a &amp;quot;data file&amp;quot; in-memory representation, or even another grouping of information.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;background: #cfc; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;# use {{class|GeoDataDocument|kdeedu|4.x}} as the root &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;document &lt;/ins&gt;of a &amp;quot;data file&amp;quot; in-memory representation, or even another grouping of information.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;#: In this use case, there would exist a &amp;quot;tree&amp;quot; of data matching a logical grouping of information.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;#: In this use case, there would exist a &amp;quot;tree&amp;quot; of data matching a logical grouping of information.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;#: Let's call this usecase the &amp;quot;DataTree&amp;quot; usecase.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background: #eee; color:black; font-size: smaller;&quot;&gt;&lt;div&gt;#: Let's call this usecase the &amp;quot;DataTree&amp;quot; usecase.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key wwwdeveloper:diff:version:1.11a:oldid:43740:newid:43741 --&gt;
&lt;/table&gt;</summary>
		<author><name>Tampakrap</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/index.php?title=Projects/Marble/GeoData/GeoDataUse&amp;diff=43740&amp;oldid=prev</id>
		<title>Tampakrap: Created page with '== Using GeoData ==  this page tries to summarise the use of GeoData classes in marble so that its implementation details can match the use cases, and understand if any what issu...'</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/index.php?title=Projects/Marble/GeoData/GeoDataUse&amp;diff=43740&amp;oldid=prev"/>
				<updated>2009-07-31T17:35:04Z</updated>
		
		<summary type="html">&lt;p&gt;Created page with &amp;#039;== Using GeoData ==  this page tries to summarise the use of GeoData classes in marble so that its implementation details can match the use cases, and understand if any what issu...&amp;#039;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Using GeoData ==&lt;br /&gt;
&lt;br /&gt;
this page tries to summarise the use of GeoData classes in marble so that its implementation details can match the use cases, and understand if any what issues might arise from manipulating them otherwise.&lt;br /&gt;
&lt;br /&gt;
=== Use Cases ===&lt;br /&gt;
&lt;br /&gt;
The use cases identified so far are:&lt;br /&gt;
&lt;br /&gt;
# use any GeoData class as a convenient data holder in APIs.&lt;br /&gt;
#: It is expected in that regard that classes have shared data.&lt;br /&gt;
#: Let's call this usecase the &amp;quot;ToolClass&amp;quot; usecase.&lt;br /&gt;
&lt;br /&gt;
# use {{class|GeoDataDocument|kdeedu|4.x}} as the root of a &amp;quot;data file&amp;quot; in-memory representation, or even another grouping of information.&lt;br /&gt;
#: In this use case, there would exist a &amp;quot;tree&amp;quot; of data matching a logical grouping of information.&lt;br /&gt;
#: Let's call this usecase the &amp;quot;DataTree&amp;quot; usecase.&lt;br /&gt;
&lt;br /&gt;
=== Actual Implemented Use Details ===&lt;br /&gt;
* GeoData classes have shared data, in the sense that e.g. copying a GeoDataFeature is a shallow copy, with deep copy happening when one of the instances need to modify a value.&lt;br /&gt;
&lt;br /&gt;
* Reading a file with {{class|GeoParser|kdeedu|4.X}} creates a tree of data.&lt;br /&gt;
This data is manipulated within a stack of {{class|GeoNode|kdeedu|4.x}}s and internally stored in {{qt|QVector}} of value types like QVector&amp;lt;GeoDataFeature&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* PlaceMarkManager creates its copy of any placemark in opened files&lt;br /&gt;
&lt;br /&gt;
* Model classes (implementing Qt's model-view framework that is) serve as interface to GeoData classes, passing them through {{qt|QVariant}}s&lt;br /&gt;
&lt;br /&gt;
TODO others??&lt;br /&gt;
&lt;br /&gt;
=== Common Issues and Pitfalls ===&lt;br /&gt;
In the past or present, some issues have appeared and need to be remembered/adressed:&lt;br /&gt;
&lt;br /&gt;
* memory ownership is an issue to be determined depending on use case.&lt;br /&gt;
&lt;br /&gt;
* Compliance with KML spec is a priority, limiting differing needs.&lt;br /&gt;
&lt;br /&gt;
* Parsing code is full of casts.&lt;br /&gt;
&lt;br /&gt;
* storing e.g. an GeoDataPlacemark item in a QVector&amp;lt;GeoDataFeature&amp;gt; looks like a hairy solution, as QVector&amp;lt;T&amp;gt;::append will internally create a new T. In the shared data context this implies that we end up with an element of vector being a GeoDataFeature with a private member being a GeoDataPlacemarkPrivate.&lt;br /&gt;
&lt;br /&gt;
=== Proposals ===&lt;br /&gt;
TODO&lt;/div&gt;</summary>
		<author><name>Tampakrap</name></author>	</entry>

	</feed>