<?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/api.php?action=feedcontributions&amp;user=Mansona&amp;feedformat=atom</id>
		<title>KDE TechBase - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="http://techbase.kde.org/api.php?action=feedcontributions&amp;user=Mansona&amp;feedformat=atom"/>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Special:Contributions/Mansona"/>
		<updated>2013-05-22T21:37:51Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.20.2</generator>

	<entry>
		<id>http://techbase.kde.org/Projects/Marble/GeoData/GeoDataWriter</id>
		<title>Projects/Marble/GeoData/GeoDataWriter</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Projects/Marble/GeoData/GeoDataWriter"/>
				<updated>2009-08-03T10:50:10Z</updated>
		
		<summary type="html">&lt;p&gt;Mansona: Created page with '== Writing XML documents with Marble ==   * How to set the type of writer?  ** GeoParser uses a single hash table to map qualified names to the GeoParser that is to deal with tha...'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Writing XML documents with Marble == &lt;br /&gt;
&lt;br /&gt;
* How to set the type of writer? &lt;br /&gt;
** GeoParser uses a single hash table to map qualified names to the GeoParser that is to deal with that tag. &lt;br /&gt;
** This will have to be dealt with differently in the GeoDataWriter because we will have to be able to deal with the one to many mapping. ( i.e. one GeoData format will be exportable to many different types of XML and we will need to choose the GeoTagWriter based on the desired XML output.&lt;/div&gt;</summary>
		<author><name>Mansona</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Projects/Marble</id>
		<title>Projects/Marble</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Projects/Marble"/>
				<updated>2009-08-03T10:44:23Z</updated>
		
		<summary type="html">&lt;p&gt;Mansona: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:I18n/Language Navigation Bar|Projects/Marble}}&lt;br /&gt;
&lt;br /&gt;
__NOTOC__&lt;br /&gt;
[[Image:Marble_logo.png]]&lt;br /&gt;
&lt;br /&gt;
== About Marble ==&lt;br /&gt;
;[[/FAQ|Marble FAQ]]&lt;br /&gt;
&lt;br /&gt;
== Examples of Use ==&lt;br /&gt;
;[[/MarbleUsedBy|Applications using the Marble library]]&lt;br /&gt;
&lt;br /&gt;
== Using the Marble Widget in other applications ==&lt;br /&gt;
;[[/MarbleDesigner|with QtDesigner]]&lt;br /&gt;
;[[/MarbleCPlusPlus|with C++]]&lt;br /&gt;
;[[/MarblePython|with Python]]&lt;br /&gt;
&lt;br /&gt;
;[[/MarbleDBus|via a shell script]]&lt;br /&gt;
&lt;br /&gt;
== How to become a Marble developer (&amp;quot;Marblehead&amp;quot;) ==&lt;br /&gt;
&lt;br /&gt;
=== So you are new to Marble development ... ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Welcome!&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here you'll get all the information you need to start Marble development:&lt;br /&gt;
&lt;br /&gt;
;[[/GoMarble|How to become a Marble Developer]]&lt;br /&gt;
&lt;br /&gt;
== Packaging Marble ==&lt;br /&gt;
&lt;br /&gt;
Here is some advice about how packaging is supposed to happen on the various plattforms that are supported.&lt;br /&gt;
&lt;br /&gt;
;[[/MacPackaging|Packaging for Mac]]&lt;br /&gt;
&lt;br /&gt;
== Tools for Marble ==&lt;br /&gt;
&lt;br /&gt;
Here are some tools and checks that are performed on marble code:&lt;br /&gt;
;[http://reviewboard.kde.org/groups/marble/ Review Board]&lt;br /&gt;
;[http://api.kde.org/4.2-api/kdeedu-apidocs/marble/src/html/index.html API Docs (KDE4.2)]&lt;br /&gt;
;[http://www.englishbreakfastnetwork.org/apidocs/apidox-kde-4.x/kdeedu-marble.html APIDOX reports]&lt;br /&gt;
;[http://www.englishbreakfastnetwork.org/krazy/reports/kde-4.x/kdeedu/marble/index.html Krazy reports]&lt;br /&gt;
&lt;br /&gt;
== Programming Coordination ==&lt;br /&gt;
&lt;br /&gt;
Here are a few links to various issues we are working on:&lt;br /&gt;
&lt;br /&gt;
=== User Interface ===&lt;br /&gt;
;[[/Mockups|Mockups]]&lt;br /&gt;
&lt;br /&gt;
=== Texture Mapping ===&lt;br /&gt;
;[[/TextureNG|Texture Mapping]]&lt;br /&gt;
&lt;br /&gt;
=== GeoData Library / KML ===&lt;br /&gt;
;[[/GeoData|GeoData]]&lt;br /&gt;
;[[/GeoDataWriter|Writing GeoData to XML formats]]&lt;br /&gt;
;[[/KMLStatus|KML Status]]&lt;br /&gt;
;[[/GPXStatus|GPX Status]]&lt;br /&gt;
;[[/Placemark|Placemarks Management]]&lt;br /&gt;
;[[/ModelView|Review of Model-View use in marble]]&lt;br /&gt;
&lt;br /&gt;
=== Geo Graphics View === &lt;br /&gt;
;[[/GeoGraphicsViewOverview|Overview of the plans for GeoGraphicsView]]&lt;br /&gt;
;[[/GraphicsViewGeoParser| Developing the GeoParser to work with GeoGraphicsView]]&lt;br /&gt;
&lt;br /&gt;
=== GeoPainter / DGML ===&lt;br /&gt;
;[[/GeoPainter|GeoPainter]]&lt;br /&gt;
;[[/Dgml|DGML]]&lt;br /&gt;
&lt;br /&gt;
=== Marble Runner ===&lt;br /&gt;
;[[/CoordinateRunner|Coordinate Runner]]&lt;br /&gt;
;[[/OsmNameFinderRunner|OSM Runner]]&lt;br /&gt;
;[[/RunnerHOWTO|Runner HOWTO]]&lt;br /&gt;
&lt;br /&gt;
=== Online Services ===&lt;br /&gt;
;[[/OnlineServices|Creating new Online Services]]&lt;br /&gt;
&lt;br /&gt;
=== Projections ===&lt;br /&gt;
;[[/WinkelIii|Winkel III]]&lt;br /&gt;
&lt;br /&gt;
=== Tile Download ===&lt;br /&gt;
;[[/TileDownload|Tile Download]]&lt;br /&gt;
&lt;br /&gt;
=== Documentation ===&lt;br /&gt;
;[[/CustomMaps|How to customize maps]]&lt;br /&gt;
;[[/MarblesSecrets|Marble's Secrets]]&lt;br /&gt;
;[[/ProxyConnection|How to use the Proxy]]&lt;br /&gt;
&lt;br /&gt;
=== GeoClue / GPS ===&lt;br /&gt;
;[[/GeoClue|GeoClue support in Marble]]&lt;br /&gt;
&lt;br /&gt;
== Mapping Coordination ==&lt;br /&gt;
=== Documentation ===&lt;br /&gt;
;[[/HistoricalMaps|How to create Historical Maps]]&lt;br /&gt;
&lt;br /&gt;
;[[/PalaeoMaps|Global Palaeogeography]]&lt;br /&gt;
&lt;br /&gt;
== Routing ==&lt;br /&gt;
;[[/RoutingIdeas|General ideas about routing]]&lt;br /&gt;
&lt;br /&gt;
== valgrind  ==&lt;br /&gt;
if you want to fix memory leaks, you can run valgrind with:&lt;br /&gt;
&lt;br /&gt;
valgrind --leak-check=full --track-origins=yes --num-callers=30 marble 2&amp;gt;&amp;amp;1 | tee MARBLE_MEMCHECK&lt;br /&gt;
&lt;br /&gt;
== Meetings ==&lt;br /&gt;
Summaries and logs of scheduled Marble meetings can be found on the following pages:&lt;br /&gt;
;[[/MarbleMeeting20081029|Wednesday Nov. 10th, 2008]]&lt;/div&gt;</summary>
		<author><name>Mansona</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Projects/Marble/ModelView</id>
		<title>Projects/Marble/ModelView</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Projects/Marble/ModelView"/>
				<updated>2009-07-28T09:20:55Z</updated>
		
		<summary type="html">&lt;p&gt;Mansona: Filling in the status on the GpxFileModel&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== ModelView framework in Marble ==&lt;br /&gt;
&lt;br /&gt;
Marble uses Qt's Model/View framework as a way to signal updates to a model to interested parts. In that respect, a Model class can wrap any possible data.&lt;br /&gt;
&lt;br /&gt;
Here is the list of Model class, and a description of how they are used.&lt;br /&gt;
&lt;br /&gt;
=== QAbstractItemModel ===&lt;br /&gt;
* {{class|GeoDataDebugModel|kdeedu}}&lt;br /&gt;
It represents a data file, parsed into a {{class|GeoDataDocument|kdeedu}} tree structure.&lt;br /&gt;
&lt;br /&gt;
It is used by the {{class|DataViewPlugin|kdeedu}} debug plugin (and is broken atm)&lt;br /&gt;
&lt;br /&gt;
* {{class|GpxFileModel|kdeedu|4.x}}&lt;br /&gt;
It represents a list of gpx data file represented as {{class|GpxFile|kdeedu|4.x}}&lt;br /&gt;
&lt;br /&gt;
This was originally intended to but used as the model for the File List View ( which is accessible by running marble with --enableFileView ) but has since been replaced by another, more centralised, File Model. This new File Model is located in {{class|PlacemarkManager|kdeedu|4.x}}. &lt;br /&gt;
The model that is in the GpsLayer is currently only being used as a collection class and is deprecated. This, along with the whole current GPX implementation, needs to be removed and updated to the current concepts in Marble. See [[Projects/Marble/GPXStatus|Gpx Status]]&lt;br /&gt;
&lt;br /&gt;
* {{class|MarbleGeometryModel|kdeedu}}&lt;br /&gt;
It represents the {{class|GeoDataGeometry|kdeedu}} and the {{class|GeoDataFeature|kdeedu}} items of the {{class|GeoDataDocument|kdeedu}} which contains all Placemarks.&lt;br /&gt;
&lt;br /&gt;
It is used by the {{class|GeoRenderPlugin|kdeedu}} to access the list of placemarks.&lt;br /&gt;
&lt;br /&gt;
=== QAbstractListModel ===&lt;br /&gt;
* {{class|FileViewModel|kdeedu}}&lt;br /&gt;
It represents the list of files opened. The {{class|PlacemarkManager|kdeedu}} appends the documents it opens, and the {{class|MarbleWidget|kdeedu}} appends the gpx files it opens.&lt;br /&gt;
&lt;br /&gt;
It is used by the {{class|FileViewFloatItem|kdeedu}} and manipulated by the {{class|PlaceMarkManager|kdeedu}} and the {{class|MarbleModel|kdeedu}}.&lt;br /&gt;
&lt;br /&gt;
* {{class|MarbleGeoDataModel|kdeedu}}&lt;br /&gt;
It represents a list of {{class|GeoDataDocuments|kdeedu}}. Only the {{class|PlacemarksPlugin|kdeedu}} uses it&lt;br /&gt;
&lt;br /&gt;
It is used by no other code.&lt;br /&gt;
&lt;br /&gt;
* {{class|MarblePlacemarkModel|kdeedu}}&lt;br /&gt;
It represents&lt;br /&gt;
&lt;br /&gt;
It is used by&lt;/div&gt;</summary>
		<author><name>Mansona</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Projects/Marble/GPXStatus</id>
		<title>Projects/Marble/GPXStatus</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Projects/Marble/GPXStatus"/>
				<updated>2009-07-28T08:57:39Z</updated>
		
		<summary type="html">&lt;p&gt;Mansona: Created page with '==Gpx Status==  This page is intended to be a reference as to what needs to be done to update the current GPX implementation in Marble.   *Remove the Abstract Layer  *Make GPX lo...'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Gpx Status== &lt;br /&gt;
This page is intended to be a reference as to what needs to be done to update the current GPX implementation in Marble. &lt;br /&gt;
&lt;br /&gt;
*Remove the Abstract Layer &lt;br /&gt;
*Make GPX loading and rendering a plugin&lt;br /&gt;
*Uncouple the current GPS location rendering from the GPS Layer&lt;/div&gt;</summary>
		<author><name>Mansona</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Development/Doxygen</id>
		<title>Development/Doxygen</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Development/Doxygen"/>
				<updated>2009-07-17T12:37:56Z</updated>
		
		<summary type="html">&lt;p&gt;Mansona: Redirected page to Development/Tutorials/API Documentation&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Development/Tutorials/API_Documentation]]&lt;/div&gt;</summary>
		<author><name>Mansona</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Development/Comments</id>
		<title>Development/Comments</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Development/Comments"/>
				<updated>2009-07-17T12:36:12Z</updated>
		
		<summary type="html">&lt;p&gt;Mansona: Redirected page to Development/Tutorials/API Documentation&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Development/Tutorials/API_Documentation]]&lt;/div&gt;</summary>
		<author><name>Mansona</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Reviewboard</id>
		<title>Reviewboard</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Reviewboard"/>
				<updated>2009-07-16T10:09:46Z</updated>
		
		<summary type="html">&lt;p&gt;Mansona: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== KDE Review Board ==&lt;br /&gt;
&lt;br /&gt;
Located at http://reviewboard.kde.org/ the review board is.... &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Creating Groups === &lt;br /&gt;
To create a group on the KDE Review Board you need to file a system admin request. This is done with the [https://bugs.kde.org/enter_sysadmin_request.cgi this web form ]&lt;/div&gt;</summary>
		<author><name>Mansona</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Reviewboard</id>
		<title>Reviewboard</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Reviewboard"/>
				<updated>2009-07-16T09:45:44Z</updated>
		
		<summary type="html">&lt;p&gt;Mansona: Created page with '== KDE Review Board ==  Located at http://reviewboard.kde.org/ the review board is....    === Creating Groups ===  To create a group on the KDE Review Board ....'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== KDE Review Board ==&lt;br /&gt;
&lt;br /&gt;
Located at http://reviewboard.kde.org/ the review board is.... &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Creating Groups === &lt;br /&gt;
To create a group on the KDE Review Board ....&lt;/div&gt;</summary>
		<author><name>Mansona</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Projects/Marble/GraphicsViewGeoParser</id>
		<title>Projects/Marble/GraphicsViewGeoParser</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Projects/Marble/GraphicsViewGeoParser"/>
				<updated>2009-07-09T14:01:56Z</updated>
		
		<summary type="html">&lt;p&gt;Mansona: Created page with '== GeoParser and the GeoGraphicsView ==  The current GeoData XML Parser ( aka. GeoParser ) has been implemented to specifically deal with our current GeoData data structure. If y...'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== GeoParser and the GeoGraphicsView == &lt;br /&gt;
The current GeoData XML Parser ( aka. GeoParser ) has been implemented to specifically deal with our current GeoData data structure. If you want to see a more complete documentation of the GeoData library you can see the [[Projects/Marble/LibGeoData|GeoData Library documentation]]. I will only describe the particular problem to the GeoGraphicsView implementation here. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- move this section to a dedicated &amp;quot;How the XML parser works&amp;quot; section --&amp;gt;&lt;br /&gt;
=== Parsing GeoData === &lt;br /&gt;
The GeoParser is an implementation of the QXMLStreamReader class in Qt, more information can be found [http://doc.qtsoftware.com/4.5/qtxml.html here]. There are other things built into this implementation that simplify the creation of a parser for new XML format document, namely:&lt;br /&gt;
* The Concept of a TagHandler class that deals with only one tag&lt;br /&gt;
* A Stack Item class that implements the Structural parts of the XML document&lt;br /&gt;
* The collection class where the results of the XML parsing will be placed&lt;br /&gt;
* A element dictionary that prevents the need for string comparison everywere&lt;br /&gt;
&lt;br /&gt;
To implement a new XML parser you need to &lt;br /&gt;
#compile an element dictionary of all of the available tags in the namespace&lt;br /&gt;
#implement a tag handler for each of these elements&lt;br /&gt;
#register that tag handler with the GeoParser&lt;br /&gt;
&lt;br /&gt;
==== Implementing a tag handler ==== &lt;br /&gt;
Each tag handler is called when the relevant XML tag is reached by the GeoParser ( which knows what tags to call by its registered tag list ). Each tag can access the stack data structure of the GeoParser as well as the Collection Data Structure of the GeoParser. This allows the tag handler to access items from the stack and allows root elements of the XML to add themselves to the collection data structure. &lt;br /&gt;
&amp;lt;!-- more information needed when moved to its own page --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Down Casting === &lt;br /&gt;
The unfortunate thing about the current implementation of the GeoParser is that when any item is added to the Collection Data Structure it is effectively downcast to the collection's type and removes any ability for 3rd party developers to add parsing capability to marble with functionality other than that which marble provides. This is not in line with the design of the QGraphicsItem implementation and something that is a current development effort to fix. What needs to happen is that an extra data model needs to be added to the GeoParser that is more in line with the idea of passing pointers around and that way we can conserve the typing information at run time.&lt;/div&gt;</summary>
		<author><name>Mansona</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Projects/Marble</id>
		<title>Projects/Marble</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Projects/Marble"/>
				<updated>2009-07-09T13:16:09Z</updated>
		
		<summary type="html">&lt;p&gt;Mansona: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:I18n/Language Navigation Bar|Projects/Marble}}&lt;br /&gt;
&lt;br /&gt;
__NOTOC__&lt;br /&gt;
[[Image:Marble_logo.png]]&lt;br /&gt;
&lt;br /&gt;
== About Marble ==&lt;br /&gt;
;[[/FAQ|Marble FAQ]]&lt;br /&gt;
&lt;br /&gt;
== Examples of Use ==&lt;br /&gt;
;[[/MarbleUsedBy|Applications using the Marble library]]&lt;br /&gt;
&lt;br /&gt;
== Using the Marble Widget in other applications ==&lt;br /&gt;
;[[/MarbleDesigner|with QtDesigner]]&lt;br /&gt;
;[[/MarbleCPlusPlus|with C++]]&lt;br /&gt;
;[[/MarblePython|with Python]]&lt;br /&gt;
&lt;br /&gt;
;[[/MarbleDBus|via a shell script]]&lt;br /&gt;
&lt;br /&gt;
== How to become a Marble developer (&amp;quot;Marblehead&amp;quot;) ==&lt;br /&gt;
&lt;br /&gt;
=== So you are new to Marble development ... ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Welcome!&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here you'll get all the information you need to start Marble development:&lt;br /&gt;
&lt;br /&gt;
;[[/GoMarble|How to become a Marble Developer]]&lt;br /&gt;
&lt;br /&gt;
== Packaging Marble ==&lt;br /&gt;
&lt;br /&gt;
Here is some advice about how packaging is supposed to happen on the various plattforms that are supported.&lt;br /&gt;
&lt;br /&gt;
===General===&lt;br /&gt;
&lt;br /&gt;
===Linux===&lt;br /&gt;
&lt;br /&gt;
===Mac OS X===&lt;br /&gt;
&lt;br /&gt;
==== Qt-Only ====&lt;br /&gt;
&lt;br /&gt;
Configure Marble with:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cmake -DCMAKE_BUILD_TYPE=release -DQTONLY=ON -DCMAKE_INSTALL_PREFIX=/Applications/ ../marble&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To generate a Diskimage (.dmg) one can use this script (based on parts by Tim Sutton, thanks!):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
VERSION=0.7.1&lt;br /&gt;
APPNAME=Marble&lt;br /&gt;
&lt;br /&gt;
VOLNAME=${APPNAME}-${VERSION}&lt;br /&gt;
DMGNAME=${VOLNAME}Uncompressed.dmg&lt;br /&gt;
COMPRESSEDDMGNAME=${VOLNAME}.dmg&lt;br /&gt;
&lt;br /&gt;
function deploy_file() {&lt;br /&gt;
	for n in $(otool -L $1 | grep Qt); do&lt;br /&gt;
		path=`echo $n | grep Qt`&lt;br /&gt;
	    if [ $path ] ; then&lt;br /&gt;
	    	name=$(basename $path)&lt;br /&gt;
			FRAMEWORKS=&amp;quot;$FRAMEWORKS $name&amp;quot;&lt;br /&gt;
		fi&lt;br /&gt;
	done&lt;br /&gt;
&lt;br /&gt;
	for framework in $FRAMEWORKS ; do&lt;br /&gt;
		install_name_tool -change \&lt;br /&gt;
			$framework.framework/Versions/4/$framework \&lt;br /&gt;
			@executable_path/../Frameworks/$framework.framework/Versions/4/$framework \&lt;br /&gt;
			$1&lt;br /&gt;
	done&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function deploy_plugins() {&lt;br /&gt;
	for plugin in $1/Contents/Resources/plugins/*; do&lt;br /&gt;
		deploy_file $plugin&lt;br /&gt;
	done&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function set_bundle_display_options() {&lt;br /&gt;
	osascript &amp;lt;&amp;lt;-EOF&lt;br /&gt;
    tell application &amp;quot;Finder&amp;quot;&lt;br /&gt;
        set f to POSIX file (&amp;quot;${1}&amp;quot; as string) as alias&lt;br /&gt;
        tell folder f&lt;br /&gt;
            open&lt;br /&gt;
            tell container window&lt;br /&gt;
                set toolbar visible to false&lt;br /&gt;
                set statusbar visible to false&lt;br /&gt;
                set current view to icon view&lt;br /&gt;
                delay 1 -- sync&lt;br /&gt;
                set the bounds to {20, 50, 300, 400}&lt;br /&gt;
            end tell&lt;br /&gt;
            delay 1 -- sync&lt;br /&gt;
            set icon size of the icon view options of container window to 64&lt;br /&gt;
            set arrangement of the icon view options of container window to not arranged&lt;br /&gt;
            set position of item &amp;quot;Marble.app&amp;quot; to {100,150}&lt;br /&gt;
            set position of item &amp;quot;Applications&amp;quot; to {280, 150}&lt;br /&gt;
            set background picture of the icon view options of container window to file &amp;quot;background.png&amp;quot; of folder &amp;quot;Pictures&amp;quot;&lt;br /&gt;
            set the bounds of the container window to {0, 0, 300, 400}&lt;br /&gt;
            update without registering applications&lt;br /&gt;
            delay 5 -- sync&lt;br /&gt;
            close&lt;br /&gt;
        end tell&lt;br /&gt;
        delay 5 -- sync&lt;br /&gt;
    end tell&lt;br /&gt;
EOF&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function create_symlinks() {&lt;br /&gt;
	cd &amp;quot;$1/Contents/Resources&amp;quot;&lt;br /&gt;
	ln -s &amp;quot;../MacOS/resources/data/&amp;quot;    &amp;quot;data&amp;quot;&lt;br /&gt;
	ln -s &amp;quot;../MacOS/resources/plugins/&amp;quot; &amp;quot;plugins&amp;quot;&lt;br /&gt;
	cd -&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
rm ~/Desktop/${DMGNAME}&lt;br /&gt;
rm ~/Desktop/${COMPRESSEDDMGNAME}&lt;br /&gt;
hdiutil create -size 150m -fs HFS+ -volname ${VOLNAME} ~/Desktop/${DMGNAME}&lt;br /&gt;
&lt;br /&gt;
# Mount the disk image&lt;br /&gt;
hdiutil attach ~/Desktop/${DMGNAME}&lt;br /&gt;
&lt;br /&gt;
# Obtain device information&lt;br /&gt;
DEVS=$(hdiutil attach ~/Desktop/${DMGNAME} | cut -f 1)&lt;br /&gt;
DEV=$(echo $DEVS | cut -f 1 -d ' ')&lt;br /&gt;
VOLUME=$(mount |grep ${DEV} | cut -f 3 -d ' ')&lt;br /&gt;
&lt;br /&gt;
# copy in the application bundle&lt;br /&gt;
cp -Rp /Applications/${APPNAME}.app ${VOLUME}/${APPNAME}.app&lt;br /&gt;
&lt;br /&gt;
# fix the libs&lt;br /&gt;
macdeployqt ${VOLUME}/${APPNAME}.app&lt;br /&gt;
create_symlinks ${VOLUME}/${APPNAME}.app&lt;br /&gt;
deploy_file &amp;quot;${VOLUME}/${APPNAME}.app/Contents/MacOS/lib/libmarblewidget.7.dylib&amp;quot;&lt;br /&gt;
deploy_plugins ${VOLUME}/${APPNAME}.app&lt;br /&gt;
&lt;br /&gt;
# copy in background image&lt;br /&gt;
mkdir -p ${VOLUME}/Pictures&lt;br /&gt;
# fixme: path&lt;br /&gt;
cp ~/Desktop/marble-dmg-background.png ${VOLUME}/Pictures/background.png&lt;br /&gt;
# symlink applications&lt;br /&gt;
ln -s /Applications/ ${VOLUME}/Applications&lt;br /&gt;
set_bundle_display_options ${VOLUME}&lt;br /&gt;
mv ${VOLUME}/Pictures ${VOLUME}/.Pictures&lt;br /&gt;
&lt;br /&gt;
# Unmount the disk image&lt;br /&gt;
hdiutil detach $DEV&lt;br /&gt;
 &lt;br /&gt;
# Convert the disk image to read-only&lt;br /&gt;
hdiutil convert ~/Desktop/${DMGNAME} -format UDBZ -o ~/Desktop/${COMPRESSEDDMGNAME}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It uses the macdeployqt tool which copies Qt and its plugins into the App Bundle.&lt;br /&gt;
macdeployqt also tells the main application to link against the libs contained in the bundle, instead of the system libs.&lt;br /&gt;
This does not happen to the libmarblewidget and the Marble plugins, so it has to be done by the script.&lt;br /&gt;
The script also sets a background Image for the dmg. (Place it at ~/Desktop/marble-dmg-background.png or change the path in the script)&lt;br /&gt;
&lt;br /&gt;
After that you should have Marble-version.dmg on you Desktop.&lt;br /&gt;
&lt;br /&gt;
===Windows===&lt;br /&gt;
&lt;br /&gt;
== Programming Coordination ==&lt;br /&gt;
&lt;br /&gt;
Here are a few links to various issues we are working on:&lt;br /&gt;
&lt;br /&gt;
=== User Interface ===&lt;br /&gt;
;[[/Mockups|Mockups]]&lt;br /&gt;
&lt;br /&gt;
=== Texture Mapping ===&lt;br /&gt;
;[[/TextureNG|Texture Mapping]]&lt;br /&gt;
&lt;br /&gt;
=== GeoData Library / KML ===&lt;br /&gt;
;[[/LibGeoData|GeoData Library]]&lt;br /&gt;
;[[/KMLStatus|KML Status]]&lt;br /&gt;
;[[/GPXStatus|GPX Status]]&lt;br /&gt;
&lt;br /&gt;
=== Geo Graphics View === &lt;br /&gt;
;[[/GeoGraphicsViewOverview|Overview of the plans for GeoGraphicsView]]&lt;br /&gt;
;[[/GraphicsViewGeoParser| Developing the GeoParser to work with GeoGraphicsView]]&lt;br /&gt;
&lt;br /&gt;
=== GeoPainter / DGML ===&lt;br /&gt;
;[[/GeoPainter|GeoPainter]]&lt;br /&gt;
;[[/Dgml|DGML]]&lt;br /&gt;
&lt;br /&gt;
=== Marble Runner ===&lt;br /&gt;
;[[/CoordinateRunner|Coordinate Runner]]&lt;br /&gt;
;[[/OsmNameFinderRunner|OSM Runner]]&lt;br /&gt;
;[[/RunnerHOWTO|Runner HOWTO]]&lt;br /&gt;
&lt;br /&gt;
=== Projections ===&lt;br /&gt;
;[[/WinkelIii|Winkel III]]&lt;br /&gt;
&lt;br /&gt;
=== Tile Download ===&lt;br /&gt;
;[[/TileDownload|Tile Download]]&lt;br /&gt;
&lt;br /&gt;
=== Documentation ===&lt;br /&gt;
;[[/ApiDocs|API Docs]]&lt;br /&gt;
;[[/CustomMaps|How to customize maps]]&lt;br /&gt;
;[[/MarblesSecrets|Marble's Secrets]]&lt;br /&gt;
;[[/ProxyConnection|How to use the Proxy]]&lt;br /&gt;
&lt;br /&gt;
=== GeoClue / GPS ===&lt;br /&gt;
;[[/GeoClue|GeoClue support in Marble]]&lt;br /&gt;
&lt;br /&gt;
== Mapping Coordination ==&lt;br /&gt;
=== Documentation ===&lt;br /&gt;
;[[/HistoricalMaps|How to create Historical Maps]]&lt;br /&gt;
&lt;br /&gt;
;[[/PalaeoMaps|Global Palaeogeography]]&lt;br /&gt;
&lt;br /&gt;
== Routing ==&lt;br /&gt;
;[[/RoutingIdeas|General ideas about routing]]&lt;br /&gt;
&lt;br /&gt;
== valgrind logs ==&lt;br /&gt;
;[[/ValgrindLogs|if you want to fix memory leaks, valgrind logs can be found here]]&lt;br /&gt;
&lt;br /&gt;
== Meetings ==&lt;br /&gt;
Summaries and logs of scheduled Marble meetings can be found on the following pages:&lt;br /&gt;
;[[/MarbleMeeting20081029|Wednesday Nov. 10th, 2008]]&lt;/div&gt;</summary>
		<author><name>Mansona</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Projects/Marble</id>
		<title>Projects/Marble</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Projects/Marble"/>
				<updated>2009-07-09T13:15:32Z</updated>
		
		<summary type="html">&lt;p&gt;Mansona: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:I18n/Language Navigation Bar|Projects/Marble}}&lt;br /&gt;
&lt;br /&gt;
__NOTOC__&lt;br /&gt;
[[Image:Marble_logo.png]]&lt;br /&gt;
&lt;br /&gt;
== About Marble ==&lt;br /&gt;
;[[/FAQ|Marble FAQ]]&lt;br /&gt;
&lt;br /&gt;
== Examples of Use ==&lt;br /&gt;
;[[/MarbleUsedBy|Applications using the Marble library]]&lt;br /&gt;
&lt;br /&gt;
== Using the Marble Widget in other applications ==&lt;br /&gt;
;[[/MarbleDesigner|with QtDesigner]]&lt;br /&gt;
;[[/MarbleCPlusPlus|with C++]]&lt;br /&gt;
;[[/MarblePython|with Python]]&lt;br /&gt;
&lt;br /&gt;
;[[/MarbleDBus|via a shell script]]&lt;br /&gt;
&lt;br /&gt;
== How to become a Marble developer (&amp;quot;Marblehead&amp;quot;) ==&lt;br /&gt;
&lt;br /&gt;
=== So you are new to Marble development ... ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Welcome!&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here you'll get all the information you need to start Marble development:&lt;br /&gt;
&lt;br /&gt;
;[[/GoMarble|How to become a Marble Developer]]&lt;br /&gt;
&lt;br /&gt;
== Packaging Marble ==&lt;br /&gt;
&lt;br /&gt;
Here is some advice about how packaging is supposed to happen on the various plattforms that are supported.&lt;br /&gt;
&lt;br /&gt;
===General===&lt;br /&gt;
&lt;br /&gt;
===Linux===&lt;br /&gt;
&lt;br /&gt;
===Mac OS X===&lt;br /&gt;
&lt;br /&gt;
==== Qt-Only ====&lt;br /&gt;
&lt;br /&gt;
Configure Marble with:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cmake -DCMAKE_BUILD_TYPE=release -DQTONLY=ON -DCMAKE_INSTALL_PREFIX=/Applications/ ../marble&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To generate a Diskimage (.dmg) one can use this script (based on parts by Tim Sutton, thanks!):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
VERSION=0.7.1&lt;br /&gt;
APPNAME=Marble&lt;br /&gt;
&lt;br /&gt;
VOLNAME=${APPNAME}-${VERSION}&lt;br /&gt;
DMGNAME=${VOLNAME}Uncompressed.dmg&lt;br /&gt;
COMPRESSEDDMGNAME=${VOLNAME}.dmg&lt;br /&gt;
&lt;br /&gt;
function deploy_file() {&lt;br /&gt;
	for n in $(otool -L $1 | grep Qt); do&lt;br /&gt;
		path=`echo $n | grep Qt`&lt;br /&gt;
	    if [ $path ] ; then&lt;br /&gt;
	    	name=$(basename $path)&lt;br /&gt;
			FRAMEWORKS=&amp;quot;$FRAMEWORKS $name&amp;quot;&lt;br /&gt;
		fi&lt;br /&gt;
	done&lt;br /&gt;
&lt;br /&gt;
	for framework in $FRAMEWORKS ; do&lt;br /&gt;
		install_name_tool -change \&lt;br /&gt;
			$framework.framework/Versions/4/$framework \&lt;br /&gt;
			@executable_path/../Frameworks/$framework.framework/Versions/4/$framework \&lt;br /&gt;
			$1&lt;br /&gt;
	done&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function deploy_plugins() {&lt;br /&gt;
	for plugin in $1/Contents/Resources/plugins/*; do&lt;br /&gt;
		deploy_file $plugin&lt;br /&gt;
	done&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function set_bundle_display_options() {&lt;br /&gt;
	osascript &amp;lt;&amp;lt;-EOF&lt;br /&gt;
    tell application &amp;quot;Finder&amp;quot;&lt;br /&gt;
        set f to POSIX file (&amp;quot;${1}&amp;quot; as string) as alias&lt;br /&gt;
        tell folder f&lt;br /&gt;
            open&lt;br /&gt;
            tell container window&lt;br /&gt;
                set toolbar visible to false&lt;br /&gt;
                set statusbar visible to false&lt;br /&gt;
                set current view to icon view&lt;br /&gt;
                delay 1 -- sync&lt;br /&gt;
                set the bounds to {20, 50, 300, 400}&lt;br /&gt;
            end tell&lt;br /&gt;
            delay 1 -- sync&lt;br /&gt;
            set icon size of the icon view options of container window to 64&lt;br /&gt;
            set arrangement of the icon view options of container window to not arranged&lt;br /&gt;
            set position of item &amp;quot;Marble.app&amp;quot; to {100,150}&lt;br /&gt;
            set position of item &amp;quot;Applications&amp;quot; to {280, 150}&lt;br /&gt;
            set background picture of the icon view options of container window to file &amp;quot;background.png&amp;quot; of folder &amp;quot;Pictures&amp;quot;&lt;br /&gt;
            set the bounds of the container window to {0, 0, 300, 400}&lt;br /&gt;
            update without registering applications&lt;br /&gt;
            delay 5 -- sync&lt;br /&gt;
            close&lt;br /&gt;
        end tell&lt;br /&gt;
        delay 5 -- sync&lt;br /&gt;
    end tell&lt;br /&gt;
EOF&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function create_symlinks() {&lt;br /&gt;
	cd &amp;quot;$1/Contents/Resources&amp;quot;&lt;br /&gt;
	ln -s &amp;quot;../MacOS/resources/data/&amp;quot;    &amp;quot;data&amp;quot;&lt;br /&gt;
	ln -s &amp;quot;../MacOS/resources/plugins/&amp;quot; &amp;quot;plugins&amp;quot;&lt;br /&gt;
	cd -&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
rm ~/Desktop/${DMGNAME}&lt;br /&gt;
rm ~/Desktop/${COMPRESSEDDMGNAME}&lt;br /&gt;
hdiutil create -size 150m -fs HFS+ -volname ${VOLNAME} ~/Desktop/${DMGNAME}&lt;br /&gt;
&lt;br /&gt;
# Mount the disk image&lt;br /&gt;
hdiutil attach ~/Desktop/${DMGNAME}&lt;br /&gt;
&lt;br /&gt;
# Obtain device information&lt;br /&gt;
DEVS=$(hdiutil attach ~/Desktop/${DMGNAME} | cut -f 1)&lt;br /&gt;
DEV=$(echo $DEVS | cut -f 1 -d ' ')&lt;br /&gt;
VOLUME=$(mount |grep ${DEV} | cut -f 3 -d ' ')&lt;br /&gt;
&lt;br /&gt;
# copy in the application bundle&lt;br /&gt;
cp -Rp /Applications/${APPNAME}.app ${VOLUME}/${APPNAME}.app&lt;br /&gt;
&lt;br /&gt;
# fix the libs&lt;br /&gt;
macdeployqt ${VOLUME}/${APPNAME}.app&lt;br /&gt;
create_symlinks ${VOLUME}/${APPNAME}.app&lt;br /&gt;
deploy_file &amp;quot;${VOLUME}/${APPNAME}.app/Contents/MacOS/lib/libmarblewidget.7.dylib&amp;quot;&lt;br /&gt;
deploy_plugins ${VOLUME}/${APPNAME}.app&lt;br /&gt;
&lt;br /&gt;
# copy in background image&lt;br /&gt;
mkdir -p ${VOLUME}/Pictures&lt;br /&gt;
# fixme: path&lt;br /&gt;
cp ~/Desktop/marble-dmg-background.png ${VOLUME}/Pictures/background.png&lt;br /&gt;
# symlink applications&lt;br /&gt;
ln -s /Applications/ ${VOLUME}/Applications&lt;br /&gt;
set_bundle_display_options ${VOLUME}&lt;br /&gt;
mv ${VOLUME}/Pictures ${VOLUME}/.Pictures&lt;br /&gt;
&lt;br /&gt;
# Unmount the disk image&lt;br /&gt;
hdiutil detach $DEV&lt;br /&gt;
 &lt;br /&gt;
# Convert the disk image to read-only&lt;br /&gt;
hdiutil convert ~/Desktop/${DMGNAME} -format UDBZ -o ~/Desktop/${COMPRESSEDDMGNAME}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It uses the macdeployqt tool which copies Qt and its plugins into the App Bundle.&lt;br /&gt;
macdeployqt also tells the main application to link against the libs contained in the bundle, instead of the system libs.&lt;br /&gt;
This does not happen to the libmarblewidget and the Marble plugins, so it has to be done by the script.&lt;br /&gt;
The script also sets a background Image for the dmg. (Place it at ~/Desktop/marble-dmg-background.png or change the path in the script)&lt;br /&gt;
&lt;br /&gt;
After that you should have Marble-version.dmg on you Desktop.&lt;br /&gt;
&lt;br /&gt;
===Windows===&lt;br /&gt;
&lt;br /&gt;
== Programming Coordination ==&lt;br /&gt;
&lt;br /&gt;
Here are a few links to various issues we are working on:&lt;br /&gt;
&lt;br /&gt;
=== User Interface ===&lt;br /&gt;
;[[/Mockups|Mockups]]&lt;br /&gt;
&lt;br /&gt;
=== Texture Mapping ===&lt;br /&gt;
;[[/TextureNG|Texture Mapping]]&lt;br /&gt;
&lt;br /&gt;
=== GeoData Library / KML ===&lt;br /&gt;
;[[/LibGeoData|GeoData Library]]&lt;br /&gt;
;[[/KMLStatus|KML Status]]&lt;br /&gt;
;[[/GPXStatus|GPX Status]]&lt;br /&gt;
&lt;br /&gt;
=== Geo Graphics View === &lt;br /&gt;
[[/GeoGraphicsViewOverview|Overview of the plans for GeoGraphicsView]] ;&lt;br /&gt;
[[/GraphicsViewGeoParser| Developing the GeoParser to work with GeoGraphicsView]] ;&lt;br /&gt;
&lt;br /&gt;
=== GeoPainter / DGML ===&lt;br /&gt;
;[[/GeoPainter|GeoPainter]]&lt;br /&gt;
;[[/Dgml|DGML]]&lt;br /&gt;
&lt;br /&gt;
=== Marble Runner ===&lt;br /&gt;
;[[/CoordinateRunner|Coordinate Runner]]&lt;br /&gt;
;[[/OsmNameFinderRunner|OSM Runner]]&lt;br /&gt;
;[[/RunnerHOWTO|Runner HOWTO]]&lt;br /&gt;
&lt;br /&gt;
=== Projections ===&lt;br /&gt;
;[[/WinkelIii|Winkel III]]&lt;br /&gt;
&lt;br /&gt;
=== Tile Download ===&lt;br /&gt;
;[[/TileDownload|Tile Download]]&lt;br /&gt;
&lt;br /&gt;
=== Documentation ===&lt;br /&gt;
;[[/ApiDocs|API Docs]]&lt;br /&gt;
;[[/CustomMaps|How to customize maps]]&lt;br /&gt;
;[[/MarblesSecrets|Marble's Secrets]]&lt;br /&gt;
;[[/ProxyConnection|How to use the Proxy]]&lt;br /&gt;
&lt;br /&gt;
=== GeoClue / GPS ===&lt;br /&gt;
;[[/GeoClue|GeoClue support in Marble]]&lt;br /&gt;
&lt;br /&gt;
== Mapping Coordination ==&lt;br /&gt;
=== Documentation ===&lt;br /&gt;
;[[/HistoricalMaps|How to create Historical Maps]]&lt;br /&gt;
&lt;br /&gt;
;[[/PalaeoMaps|Global Palaeogeography]]&lt;br /&gt;
&lt;br /&gt;
== Routing ==&lt;br /&gt;
;[[/RoutingIdeas|General ideas about routing]]&lt;br /&gt;
&lt;br /&gt;
== valgrind logs ==&lt;br /&gt;
;[[/ValgrindLogs|if you want to fix memory leaks, valgrind logs can be found here]]&lt;br /&gt;
&lt;br /&gt;
== Meetings ==&lt;br /&gt;
Summaries and logs of scheduled Marble meetings can be found on the following pages:&lt;br /&gt;
;[[/MarbleMeeting20081029|Wednesday Nov. 10th, 2008]]&lt;/div&gt;</summary>
		<author><name>Mansona</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Projects/Marble</id>
		<title>Projects/Marble</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Projects/Marble"/>
				<updated>2009-07-09T13:14:29Z</updated>
		
		<summary type="html">&lt;p&gt;Mansona: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:I18n/Language Navigation Bar|Projects/Marble}}&lt;br /&gt;
&lt;br /&gt;
__NOTOC__&lt;br /&gt;
[[Image:Marble_logo.png]]&lt;br /&gt;
&lt;br /&gt;
== About Marble ==&lt;br /&gt;
;[[/FAQ|Marble FAQ]]&lt;br /&gt;
&lt;br /&gt;
== Examples of Use ==&lt;br /&gt;
;[[/MarbleUsedBy|Applications using the Marble library]]&lt;br /&gt;
&lt;br /&gt;
== Using the Marble Widget in other applications ==&lt;br /&gt;
;[[/MarbleDesigner|with QtDesigner]]&lt;br /&gt;
;[[/MarbleCPlusPlus|with C++]]&lt;br /&gt;
;[[/MarblePython|with Python]]&lt;br /&gt;
&lt;br /&gt;
;[[/MarbleDBus|via a shell script]]&lt;br /&gt;
&lt;br /&gt;
== How to become a Marble developer (&amp;quot;Marblehead&amp;quot;) ==&lt;br /&gt;
&lt;br /&gt;
=== So you are new to Marble development ... ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Welcome!&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here you'll get all the information you need to start Marble development:&lt;br /&gt;
&lt;br /&gt;
;[[/GoMarble|How to become a Marble Developer]]&lt;br /&gt;
&lt;br /&gt;
== Packaging Marble ==&lt;br /&gt;
&lt;br /&gt;
Here is some advice about how packaging is supposed to happen on the various plattforms that are supported.&lt;br /&gt;
&lt;br /&gt;
===General===&lt;br /&gt;
&lt;br /&gt;
===Linux===&lt;br /&gt;
&lt;br /&gt;
===Mac OS X===&lt;br /&gt;
&lt;br /&gt;
==== Qt-Only ====&lt;br /&gt;
&lt;br /&gt;
Configure Marble with:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cmake -DCMAKE_BUILD_TYPE=release -DQTONLY=ON -DCMAKE_INSTALL_PREFIX=/Applications/ ../marble&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To generate a Diskimage (.dmg) one can use this script (based on parts by Tim Sutton, thanks!):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
VERSION=0.7.1&lt;br /&gt;
APPNAME=Marble&lt;br /&gt;
&lt;br /&gt;
VOLNAME=${APPNAME}-${VERSION}&lt;br /&gt;
DMGNAME=${VOLNAME}Uncompressed.dmg&lt;br /&gt;
COMPRESSEDDMGNAME=${VOLNAME}.dmg&lt;br /&gt;
&lt;br /&gt;
function deploy_file() {&lt;br /&gt;
	for n in $(otool -L $1 | grep Qt); do&lt;br /&gt;
		path=`echo $n | grep Qt`&lt;br /&gt;
	    if [ $path ] ; then&lt;br /&gt;
	    	name=$(basename $path)&lt;br /&gt;
			FRAMEWORKS=&amp;quot;$FRAMEWORKS $name&amp;quot;&lt;br /&gt;
		fi&lt;br /&gt;
	done&lt;br /&gt;
&lt;br /&gt;
	for framework in $FRAMEWORKS ; do&lt;br /&gt;
		install_name_tool -change \&lt;br /&gt;
			$framework.framework/Versions/4/$framework \&lt;br /&gt;
			@executable_path/../Frameworks/$framework.framework/Versions/4/$framework \&lt;br /&gt;
			$1&lt;br /&gt;
	done&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function deploy_plugins() {&lt;br /&gt;
	for plugin in $1/Contents/Resources/plugins/*; do&lt;br /&gt;
		deploy_file $plugin&lt;br /&gt;
	done&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function set_bundle_display_options() {&lt;br /&gt;
	osascript &amp;lt;&amp;lt;-EOF&lt;br /&gt;
    tell application &amp;quot;Finder&amp;quot;&lt;br /&gt;
        set f to POSIX file (&amp;quot;${1}&amp;quot; as string) as alias&lt;br /&gt;
        tell folder f&lt;br /&gt;
            open&lt;br /&gt;
            tell container window&lt;br /&gt;
                set toolbar visible to false&lt;br /&gt;
                set statusbar visible to false&lt;br /&gt;
                set current view to icon view&lt;br /&gt;
                delay 1 -- sync&lt;br /&gt;
                set the bounds to {20, 50, 300, 400}&lt;br /&gt;
            end tell&lt;br /&gt;
            delay 1 -- sync&lt;br /&gt;
            set icon size of the icon view options of container window to 64&lt;br /&gt;
            set arrangement of the icon view options of container window to not arranged&lt;br /&gt;
            set position of item &amp;quot;Marble.app&amp;quot; to {100,150}&lt;br /&gt;
            set position of item &amp;quot;Applications&amp;quot; to {280, 150}&lt;br /&gt;
            set background picture of the icon view options of container window to file &amp;quot;background.png&amp;quot; of folder &amp;quot;Pictures&amp;quot;&lt;br /&gt;
            set the bounds of the container window to {0, 0, 300, 400}&lt;br /&gt;
            update without registering applications&lt;br /&gt;
            delay 5 -- sync&lt;br /&gt;
            close&lt;br /&gt;
        end tell&lt;br /&gt;
        delay 5 -- sync&lt;br /&gt;
    end tell&lt;br /&gt;
EOF&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function create_symlinks() {&lt;br /&gt;
	cd &amp;quot;$1/Contents/Resources&amp;quot;&lt;br /&gt;
	ln -s &amp;quot;../MacOS/resources/data/&amp;quot;    &amp;quot;data&amp;quot;&lt;br /&gt;
	ln -s &amp;quot;../MacOS/resources/plugins/&amp;quot; &amp;quot;plugins&amp;quot;&lt;br /&gt;
	cd -&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
rm ~/Desktop/${DMGNAME}&lt;br /&gt;
rm ~/Desktop/${COMPRESSEDDMGNAME}&lt;br /&gt;
hdiutil create -size 150m -fs HFS+ -volname ${VOLNAME} ~/Desktop/${DMGNAME}&lt;br /&gt;
&lt;br /&gt;
# Mount the disk image&lt;br /&gt;
hdiutil attach ~/Desktop/${DMGNAME}&lt;br /&gt;
&lt;br /&gt;
# Obtain device information&lt;br /&gt;
DEVS=$(hdiutil attach ~/Desktop/${DMGNAME} | cut -f 1)&lt;br /&gt;
DEV=$(echo $DEVS | cut -f 1 -d ' ')&lt;br /&gt;
VOLUME=$(mount |grep ${DEV} | cut -f 3 -d ' ')&lt;br /&gt;
&lt;br /&gt;
# copy in the application bundle&lt;br /&gt;
cp -Rp /Applications/${APPNAME}.app ${VOLUME}/${APPNAME}.app&lt;br /&gt;
&lt;br /&gt;
# fix the libs&lt;br /&gt;
macdeployqt ${VOLUME}/${APPNAME}.app&lt;br /&gt;
create_symlinks ${VOLUME}/${APPNAME}.app&lt;br /&gt;
deploy_file &amp;quot;${VOLUME}/${APPNAME}.app/Contents/MacOS/lib/libmarblewidget.7.dylib&amp;quot;&lt;br /&gt;
deploy_plugins ${VOLUME}/${APPNAME}.app&lt;br /&gt;
&lt;br /&gt;
# copy in background image&lt;br /&gt;
mkdir -p ${VOLUME}/Pictures&lt;br /&gt;
# fixme: path&lt;br /&gt;
cp ~/Desktop/marble-dmg-background.png ${VOLUME}/Pictures/background.png&lt;br /&gt;
# symlink applications&lt;br /&gt;
ln -s /Applications/ ${VOLUME}/Applications&lt;br /&gt;
set_bundle_display_options ${VOLUME}&lt;br /&gt;
mv ${VOLUME}/Pictures ${VOLUME}/.Pictures&lt;br /&gt;
&lt;br /&gt;
# Unmount the disk image&lt;br /&gt;
hdiutil detach $DEV&lt;br /&gt;
 &lt;br /&gt;
# Convert the disk image to read-only&lt;br /&gt;
hdiutil convert ~/Desktop/${DMGNAME} -format UDBZ -o ~/Desktop/${COMPRESSEDDMGNAME}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It uses the macdeployqt tool which copies Qt and its plugins into the App Bundle.&lt;br /&gt;
macdeployqt also tells the main application to link against the libs contained in the bundle, instead of the system libs.&lt;br /&gt;
This does not happen to the libmarblewidget and the Marble plugins, so it has to be done by the script.&lt;br /&gt;
The script also sets a background Image for the dmg. (Place it at ~/Desktop/marble-dmg-background.png or change the path in the script)&lt;br /&gt;
&lt;br /&gt;
After that you should have Marble-version.dmg on you Desktop.&lt;br /&gt;
&lt;br /&gt;
===Windows===&lt;br /&gt;
&lt;br /&gt;
== Programming Coordination ==&lt;br /&gt;
&lt;br /&gt;
Here are a few links to various issues we are working on:&lt;br /&gt;
&lt;br /&gt;
=== User Interface ===&lt;br /&gt;
;[[/Mockups|Mockups]]&lt;br /&gt;
&lt;br /&gt;
=== Texture Mapping ===&lt;br /&gt;
;[[/TextureNG|Texture Mapping]]&lt;br /&gt;
&lt;br /&gt;
=== GeoData Library / KML ===&lt;br /&gt;
;[[/LibGeoData|GeoData Library]]&lt;br /&gt;
;[[/KMLStatus|KML Status]]&lt;br /&gt;
;[[/GPXStatus|GPX Status]]&lt;br /&gt;
&lt;br /&gt;
=== Geo Graphics View === &lt;br /&gt;
[[/GeoGraphicsViewOverview|Overview of the plans for GeoGraphicsView]] &lt;br /&gt;
[[/GraphicsViewGeoParser| Developing the GeoParser to work with GeoGraphicsView]]&lt;br /&gt;
&lt;br /&gt;
=== GeoPainter / DGML ===&lt;br /&gt;
;[[/GeoPainter|GeoPainter]]&lt;br /&gt;
;[[/Dgml|DGML]]&lt;br /&gt;
&lt;br /&gt;
=== Marble Runner ===&lt;br /&gt;
;[[/CoordinateRunner|Coordinate Runner]]&lt;br /&gt;
;[[/OsmNameFinderRunner|OSM Runner]]&lt;br /&gt;
;[[/RunnerHOWTO|Runner HOWTO]]&lt;br /&gt;
&lt;br /&gt;
=== Projections ===&lt;br /&gt;
;[[/WinkelIii|Winkel III]]&lt;br /&gt;
&lt;br /&gt;
=== Tile Download ===&lt;br /&gt;
;[[/TileDownload|Tile Download]]&lt;br /&gt;
&lt;br /&gt;
=== Documentation ===&lt;br /&gt;
;[[/ApiDocs|API Docs]]&lt;br /&gt;
;[[/CustomMaps|How to customize maps]]&lt;br /&gt;
;[[/MarblesSecrets|Marble's Secrets]]&lt;br /&gt;
;[[/ProxyConnection|How to use the Proxy]]&lt;br /&gt;
&lt;br /&gt;
=== GeoClue / GPS ===&lt;br /&gt;
;[[/GeoClue|GeoClue support in Marble]]&lt;br /&gt;
&lt;br /&gt;
== Mapping Coordination ==&lt;br /&gt;
=== Documentation ===&lt;br /&gt;
;[[/HistoricalMaps|How to create Historical Maps]]&lt;br /&gt;
&lt;br /&gt;
;[[/PalaeoMaps|Global Palaeogeography]]&lt;br /&gt;
&lt;br /&gt;
== Routing ==&lt;br /&gt;
;[[/RoutingIdeas|General ideas about routing]]&lt;br /&gt;
&lt;br /&gt;
== valgrind logs ==&lt;br /&gt;
;[[/ValgrindLogs|if you want to fix memory leaks, valgrind logs can be found here]]&lt;br /&gt;
&lt;br /&gt;
== Meetings ==&lt;br /&gt;
Summaries and logs of scheduled Marble meetings can be found on the following pages:&lt;br /&gt;
;[[/MarbleMeeting20081029|Wednesday Nov. 10th, 2008]]&lt;/div&gt;</summary>
		<author><name>Mansona</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Projects/Marble</id>
		<title>Projects/Marble</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Projects/Marble"/>
				<updated>2009-07-09T10:50:47Z</updated>
		
		<summary type="html">&lt;p&gt;Mansona: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:I18n/Language Navigation Bar|Projects/Marble}}&lt;br /&gt;
&lt;br /&gt;
__NOTOC__&lt;br /&gt;
[[Image:Marble_logo.png]]&lt;br /&gt;
&lt;br /&gt;
== About Marble ==&lt;br /&gt;
;[[/FAQ|Marble FAQ]]&lt;br /&gt;
&lt;br /&gt;
== Examples of Use ==&lt;br /&gt;
;[[/MarbleUsedBy|Applications using the Marble library]]&lt;br /&gt;
&lt;br /&gt;
== Using the Marble Widget in other applications ==&lt;br /&gt;
;[[/MarbleDesigner|with QtDesigner]]&lt;br /&gt;
;[[/MarbleCPlusPlus|with C++]]&lt;br /&gt;
;[[/MarblePython|with Python]]&lt;br /&gt;
&lt;br /&gt;
;[[/MarbleDBus|via a shell script]]&lt;br /&gt;
&lt;br /&gt;
== How to become a Marble developer (&amp;quot;Marblehead&amp;quot;) ==&lt;br /&gt;
&lt;br /&gt;
=== So you are new to Marble development ... ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Welcome!&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here you'll get all the information you need to start Marble development:&lt;br /&gt;
&lt;br /&gt;
;[[/GoMarble|How to become a Marble Developer]]&lt;br /&gt;
&lt;br /&gt;
== Packaging Marble ==&lt;br /&gt;
&lt;br /&gt;
Here is some advice about how packaging is supposed to happen on the various plattforms that are supported.&lt;br /&gt;
&lt;br /&gt;
===General===&lt;br /&gt;
&lt;br /&gt;
===Linux===&lt;br /&gt;
&lt;br /&gt;
===Mac OS X===&lt;br /&gt;
&lt;br /&gt;
==== Qt-Only ====&lt;br /&gt;
&lt;br /&gt;
Configure Marble with:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cmake -DCMAKE_BUILD_TYPE=release -DQTONLY=ON -DCMAKE_INSTALL_PREFIX=/Applications/ ../marble&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To generate a Diskimage (.dmg) one can use this script (based on parts by Tim Sutton, thanks!):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
VERSION=0.7.1&lt;br /&gt;
APPNAME=Marble&lt;br /&gt;
&lt;br /&gt;
VOLNAME=${APPNAME}-${VERSION}&lt;br /&gt;
DMGNAME=${VOLNAME}Uncompressed.dmg&lt;br /&gt;
COMPRESSEDDMGNAME=${VOLNAME}.dmg&lt;br /&gt;
&lt;br /&gt;
function deploy_file() {&lt;br /&gt;
	for n in $(otool -L $1 | grep Qt); do&lt;br /&gt;
		path=`echo $n | grep Qt`&lt;br /&gt;
	    if [ $path ] ; then&lt;br /&gt;
	    	name=$(basename $path)&lt;br /&gt;
			FRAMEWORKS=&amp;quot;$FRAMEWORKS $name&amp;quot;&lt;br /&gt;
		fi&lt;br /&gt;
	done&lt;br /&gt;
&lt;br /&gt;
	for framework in $FRAMEWORKS ; do&lt;br /&gt;
		install_name_tool -change \&lt;br /&gt;
			$framework.framework/Versions/4/$framework \&lt;br /&gt;
			@executable_path/../Frameworks/$framework.framework/Versions/4/$framework \&lt;br /&gt;
			$1&lt;br /&gt;
	done&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function deploy_plugins() {&lt;br /&gt;
	for plugin in $1/Contents/Resources/plugins/*; do&lt;br /&gt;
		deploy_file $plugin&lt;br /&gt;
	done&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function set_bundle_display_options() {&lt;br /&gt;
	osascript &amp;lt;&amp;lt;-EOF&lt;br /&gt;
    tell application &amp;quot;Finder&amp;quot;&lt;br /&gt;
        set f to POSIX file (&amp;quot;${1}&amp;quot; as string) as alias&lt;br /&gt;
        tell folder f&lt;br /&gt;
            open&lt;br /&gt;
            tell container window&lt;br /&gt;
                set toolbar visible to false&lt;br /&gt;
                set statusbar visible to false&lt;br /&gt;
                set current view to icon view&lt;br /&gt;
                delay 1 -- sync&lt;br /&gt;
                set the bounds to {20, 50, 300, 400}&lt;br /&gt;
            end tell&lt;br /&gt;
            delay 1 -- sync&lt;br /&gt;
            set icon size of the icon view options of container window to 64&lt;br /&gt;
            set arrangement of the icon view options of container window to not arranged&lt;br /&gt;
            set position of item &amp;quot;Marble.app&amp;quot; to {100,150}&lt;br /&gt;
            set position of item &amp;quot;Applications&amp;quot; to {280, 150}&lt;br /&gt;
            set background picture of the icon view options of container window to file &amp;quot;background.png&amp;quot; of folder &amp;quot;Pictures&amp;quot;&lt;br /&gt;
            set the bounds of the container window to {0, 0, 300, 400}&lt;br /&gt;
            update without registering applications&lt;br /&gt;
            delay 5 -- sync&lt;br /&gt;
            close&lt;br /&gt;
        end tell&lt;br /&gt;
        delay 5 -- sync&lt;br /&gt;
    end tell&lt;br /&gt;
EOF&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function create_symlinks() {&lt;br /&gt;
	cd &amp;quot;$1/Contents/Resources&amp;quot;&lt;br /&gt;
	ln -s &amp;quot;../MacOS/resources/data/&amp;quot;    &amp;quot;data&amp;quot;&lt;br /&gt;
	ln -s &amp;quot;../MacOS/resources/plugins/&amp;quot; &amp;quot;plugins&amp;quot;&lt;br /&gt;
	cd -&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
rm ~/Desktop/${DMGNAME}&lt;br /&gt;
rm ~/Desktop/${COMPRESSEDDMGNAME}&lt;br /&gt;
hdiutil create -size 150m -fs HFS+ -volname ${VOLNAME} ~/Desktop/${DMGNAME}&lt;br /&gt;
&lt;br /&gt;
# Mount the disk image&lt;br /&gt;
hdiutil attach ~/Desktop/${DMGNAME}&lt;br /&gt;
&lt;br /&gt;
# Obtain device information&lt;br /&gt;
DEVS=$(hdiutil attach ~/Desktop/${DMGNAME} | cut -f 1)&lt;br /&gt;
DEV=$(echo $DEVS | cut -f 1 -d ' ')&lt;br /&gt;
VOLUME=$(mount |grep ${DEV} | cut -f 3 -d ' ')&lt;br /&gt;
&lt;br /&gt;
# copy in the application bundle&lt;br /&gt;
cp -Rp /Applications/${APPNAME}.app ${VOLUME}/${APPNAME}.app&lt;br /&gt;
&lt;br /&gt;
# fix the libs&lt;br /&gt;
macdeployqt ${VOLUME}/${APPNAME}.app&lt;br /&gt;
create_symlinks ${VOLUME}/${APPNAME}.app&lt;br /&gt;
deploy_file &amp;quot;${VOLUME}/${APPNAME}.app/Contents/MacOS/lib/libmarblewidget.7.dylib&amp;quot;&lt;br /&gt;
deploy_plugins ${VOLUME}/${APPNAME}.app&lt;br /&gt;
&lt;br /&gt;
# copy in background image&lt;br /&gt;
mkdir -p ${VOLUME}/Pictures&lt;br /&gt;
# fixme: path&lt;br /&gt;
cp ~/Desktop/marble-dmg-background.png ${VOLUME}/Pictures/background.png&lt;br /&gt;
# symlink applications&lt;br /&gt;
ln -s /Applications/ ${VOLUME}/Applications&lt;br /&gt;
set_bundle_display_options ${VOLUME}&lt;br /&gt;
mv ${VOLUME}/Pictures ${VOLUME}/.Pictures&lt;br /&gt;
&lt;br /&gt;
# Unmount the disk image&lt;br /&gt;
hdiutil detach $DEV&lt;br /&gt;
 &lt;br /&gt;
# Convert the disk image to read-only&lt;br /&gt;
hdiutil convert ~/Desktop/${DMGNAME} -format UDBZ -o ~/Desktop/${COMPRESSEDDMGNAME}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It uses the macdeployqt tool which copies Qt and its plugins into the App Bundle.&lt;br /&gt;
macdeployqt also tells the main application to link against the libs contained in the bundle, instead of the system libs.&lt;br /&gt;
This does not happen to the libmarblewidget and the Marble plugins, so it has to be done by the script.&lt;br /&gt;
The script also sets a background Image for the dmg. (Place it at ~/Desktop/marble-dmg-background.png or change the path in the script)&lt;br /&gt;
&lt;br /&gt;
After that you should have Marble-version.dmg on you Desktop.&lt;br /&gt;
&lt;br /&gt;
===Windows===&lt;br /&gt;
&lt;br /&gt;
== Programming Coordination ==&lt;br /&gt;
&lt;br /&gt;
Here are a few links to various issues we are working on:&lt;br /&gt;
&lt;br /&gt;
=== User Interface ===&lt;br /&gt;
;[[/Mockups|Mockups]]&lt;br /&gt;
&lt;br /&gt;
=== Texture Mapping ===&lt;br /&gt;
;[[/TextureNG|Texture Mapping]]&lt;br /&gt;
&lt;br /&gt;
=== GeoData Library / KML ===&lt;br /&gt;
;[[/LibGeoData|GeoData Library]]&lt;br /&gt;
;[[/KMLStatus|KML Status]]&lt;br /&gt;
;[[/GPXStatus|GPX Status]]&lt;br /&gt;
&lt;br /&gt;
=== Geo Graphics View === &lt;br /&gt;
[[/GeoGraphicsViewOverview|Overview of the plans for GeoGraphicsView]] &lt;br /&gt;
&lt;br /&gt;
=== GeoPainter / DGML ===&lt;br /&gt;
;[[/GeoPainter|GeoPainter]]&lt;br /&gt;
;[[/Dgml|DGML]]&lt;br /&gt;
&lt;br /&gt;
=== Marble Runner ===&lt;br /&gt;
;[[/CoordinateRunner|Coordinate Runner]]&lt;br /&gt;
;[[/OsmNameFinderRunner|OSM Runner]]&lt;br /&gt;
;[[/RunnerHOWTO|Runner HOWTO]]&lt;br /&gt;
&lt;br /&gt;
=== Projections ===&lt;br /&gt;
;[[/WinkelIii|Winkel III]]&lt;br /&gt;
&lt;br /&gt;
=== Tile Download ===&lt;br /&gt;
;[[/TileDownload|Tile Download]]&lt;br /&gt;
&lt;br /&gt;
=== Documentation ===&lt;br /&gt;
;[[/ApiDocs|API Docs]]&lt;br /&gt;
;[[/CustomMaps|How to customize maps]]&lt;br /&gt;
;[[/MarblesSecrets|Marble's Secrets]]&lt;br /&gt;
;[[/ProxyConnection|How to use the Proxy]]&lt;br /&gt;
&lt;br /&gt;
=== GeoClue / GPS ===&lt;br /&gt;
;[[/GeoClue|GeoClue support in Marble]]&lt;br /&gt;
&lt;br /&gt;
== Mapping Coordination ==&lt;br /&gt;
=== Documentation ===&lt;br /&gt;
;[[/HistoricalMaps|How to create Historical Maps]]&lt;br /&gt;
&lt;br /&gt;
;[[/PalaeoMaps|Global Palaeogeography]]&lt;br /&gt;
&lt;br /&gt;
== Routing ==&lt;br /&gt;
;[[/RoutingIdeas|General ideas about routing]]&lt;br /&gt;
&lt;br /&gt;
== valgrind logs ==&lt;br /&gt;
;[[/ValgrindLogs|if you want to fix memory leaks, valgrind logs can be found here]]&lt;br /&gt;
&lt;br /&gt;
== Meetings ==&lt;br /&gt;
Summaries and logs of scheduled Marble meetings can be found on the following pages:&lt;br /&gt;
;[[/MarbleMeeting20081029|Wednesday Nov. 10th, 2008]]&lt;/div&gt;</summary>
		<author><name>Mansona</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Projects/Marble/GeoGraphicsViewOverview</id>
		<title>Projects/Marble/GeoGraphicsViewOverview</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Projects/Marble/GeoGraphicsViewOverview"/>
				<updated>2009-07-09T10:31:05Z</updated>
		
		<summary type="html">&lt;p&gt;Mansona: moved GeoGraphicsViewOverview to Projects/Marble/GeoGraphicsViewOverview:&amp;amp;#32;Make it a sub item of Marble&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== GeoGraphicsView Overview ==&lt;br /&gt;
&lt;br /&gt;
We are currently working on an implementation of a GeoGraphicsView system, which is intended to be very closely modeled on the QGraphicsView classes. We have to work on this as an internal project due to the current limitations that are in the QGraphicsView classes that do not allow for the implementation of projections directly. There is talk about these problems being fixed for Qt 4.6 and so it is important to model our API for this system on the current Qt classes so that we can convert the system painlessly when Qt 4.6 is released. &lt;br /&gt;
&lt;br /&gt;
=== Benefits of QGrahpicsView for marble ===&lt;br /&gt;
&lt;br /&gt;
Some of the main benefits that we would like to take advantage of from the QGraphicsView classes are:&lt;br /&gt;
* Simplified input event model &lt;br /&gt;
* QGraphicsItems &amp;quot;know&amp;quot; how to draw themselves&lt;br /&gt;
&lt;br /&gt;
The QGraphicsView input model integrates the passing of mouse events based on the position of the mouse event, passing mouse events down through a stack of items and the ability to have a standard implementation of Drag and Drop. &lt;br /&gt;
&lt;br /&gt;
If you are not familiar with the system check out the [http://doc.qtsoftware.com/4.5/graphicsview.html Qt Documentation]&lt;br /&gt;
&lt;br /&gt;
Also a problem with the current way things are done in marble is that we have adopted a QVariant style Typing system for the GeoData classes. This is very effective ( and very fast ) for the current implementation of marble but does not allow for extension of the system by 3rd party developers for things like plugins. If we adopt the QGraphicsItem system then we will be passing pointers to objects around which will adhere to the C++ Run-Time Typing System and will not loose any Class/Inheritance information when passed around the Marble system ( e.g. passing from the Geo Parser to the model ).&lt;/div&gt;</summary>
		<author><name>Mansona</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Projects/Marble/GeoGraphicsViewOverview</id>
		<title>Projects/Marble/GeoGraphicsViewOverview</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Projects/Marble/GeoGraphicsViewOverview"/>
				<updated>2009-07-09T10:27:07Z</updated>
		
		<summary type="html">&lt;p&gt;Mansona: Created page with '== GeoGraphicsView Overview ==  We are currently working on an implementation of a GeoGraphicsView system, which is intended to be very closely modeled on the QGraphicsView class...'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== GeoGraphicsView Overview ==&lt;br /&gt;
&lt;br /&gt;
We are currently working on an implementation of a GeoGraphicsView system, which is intended to be very closely modeled on the QGraphicsView classes. We have to work on this as an internal project due to the current limitations that are in the QGraphicsView classes that do not allow for the implementation of projections directly. There is talk about these problems being fixed for Qt 4.6 and so it is important to model our API for this system on the current Qt classes so that we can convert the system painlessly when Qt 4.6 is released. &lt;br /&gt;
&lt;br /&gt;
=== Benefits of QGrahpicsView for marble ===&lt;br /&gt;
&lt;br /&gt;
Some of the main benefits that we would like to take advantage of from the QGraphicsView classes are:&lt;br /&gt;
* Simplified input event model &lt;br /&gt;
* QGraphicsItems &amp;quot;know&amp;quot; how to draw themselves&lt;br /&gt;
&lt;br /&gt;
The QGraphicsView input model integrates the passing of mouse events based on the position of the mouse event, passing mouse events down through a stack of items and the ability to have a standard implementation of Drag and Drop. &lt;br /&gt;
&lt;br /&gt;
If you are not familiar with the system check out the [http://doc.qtsoftware.com/4.5/graphicsview.html Qt Documentation]&lt;br /&gt;
&lt;br /&gt;
Also a problem with the current way things are done in marble is that we have adopted a QVariant style Typing system for the GeoData classes. This is very effective ( and very fast ) for the current implementation of marble but does not allow for extension of the system by 3rd party developers for things like plugins. If we adopt the QGraphicsItem system then we will be passing pointers to objects around which will adhere to the C++ Run-Time Typing System and will not loose any Class/Inheritance information when passed around the Marble system ( e.g. passing from the Geo Parser to the model ).&lt;/div&gt;</summary>
		<author><name>Mansona</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Projects/Marble</id>
		<title>Projects/Marble</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Projects/Marble"/>
				<updated>2009-07-09T10:00:58Z</updated>
		
		<summary type="html">&lt;p&gt;Mansona: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:I18n/Language Navigation Bar|Projects/Marble}}&lt;br /&gt;
&lt;br /&gt;
__NOTOC__&lt;br /&gt;
[[Image:Marble_logo.png]]&lt;br /&gt;
&lt;br /&gt;
== About Marble ==&lt;br /&gt;
;[[/FAQ|Marble FAQ]]&lt;br /&gt;
&lt;br /&gt;
== Examples of Use ==&lt;br /&gt;
;[[/MarbleUsedBy|Applications using the Marble library]]&lt;br /&gt;
&lt;br /&gt;
== Using the Marble Widget in other applications ==&lt;br /&gt;
;[[/MarbleDesigner|with QtDesigner]]&lt;br /&gt;
;[[/MarbleCPlusPlus|with C++]]&lt;br /&gt;
;[[/MarblePython|with Python]]&lt;br /&gt;
&lt;br /&gt;
;[[/MarbleDBus|via a shell script]]&lt;br /&gt;
&lt;br /&gt;
== How to become a Marble developer (&amp;quot;Marblehead&amp;quot;) ==&lt;br /&gt;
&lt;br /&gt;
=== So you are new to Marble development ... ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Welcome!&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here you'll get all the information you need to start Marble development:&lt;br /&gt;
&lt;br /&gt;
;[[/GoMarble|How to become a Marble Developer]]&lt;br /&gt;
&lt;br /&gt;
== Packaging Marble ==&lt;br /&gt;
&lt;br /&gt;
Here is some advice about how packaging is supposed to happen on the various plattforms that are supported.&lt;br /&gt;
&lt;br /&gt;
===General===&lt;br /&gt;
&lt;br /&gt;
===Linux===&lt;br /&gt;
&lt;br /&gt;
===Mac OS X===&lt;br /&gt;
&lt;br /&gt;
==== Qt-Only ====&lt;br /&gt;
&lt;br /&gt;
Configure Marble with:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cmake -DCMAKE_BUILD_TYPE=release -DQTONLY=ON -DCMAKE_INSTALL_PREFIX=/Applications/ ../marble&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To generate a Diskimage (.dmg) one can use this script (based on parts by Tim Sutton, thanks!):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code bash&amp;gt;&lt;br /&gt;
VERSION=0.7.1&lt;br /&gt;
APPNAME=Marble&lt;br /&gt;
&lt;br /&gt;
VOLNAME=${APPNAME}-${VERSION}&lt;br /&gt;
DMGNAME=${VOLNAME}Uncompressed.dmg&lt;br /&gt;
COMPRESSEDDMGNAME=${VOLNAME}.dmg&lt;br /&gt;
&lt;br /&gt;
function deploy_file() {&lt;br /&gt;
	for n in $(otool -L $1 | grep Qt); do&lt;br /&gt;
		path=`echo $n | grep Qt`&lt;br /&gt;
	    if [ $path ] ; then&lt;br /&gt;
	    	name=$(basename $path)&lt;br /&gt;
			FRAMEWORKS=&amp;quot;$FRAMEWORKS $name&amp;quot;&lt;br /&gt;
		fi&lt;br /&gt;
	done&lt;br /&gt;
&lt;br /&gt;
	for framework in $FRAMEWORKS ; do&lt;br /&gt;
		install_name_tool -change \&lt;br /&gt;
			$framework.framework/Versions/4/$framework \&lt;br /&gt;
			@executable_path/../Frameworks/$framework.framework/Versions/4/$framework \&lt;br /&gt;
			$1&lt;br /&gt;
	done&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function deploy_plugins() {&lt;br /&gt;
	for plugin in $1/Contents/Resources/plugins/*; do&lt;br /&gt;
		deploy_file $plugin&lt;br /&gt;
	done&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function set_bundle_display_options() {&lt;br /&gt;
	osascript &amp;lt;&amp;lt;-EOF&lt;br /&gt;
    tell application &amp;quot;Finder&amp;quot;&lt;br /&gt;
        set f to POSIX file (&amp;quot;${1}&amp;quot; as string) as alias&lt;br /&gt;
        tell folder f&lt;br /&gt;
            open&lt;br /&gt;
            tell container window&lt;br /&gt;
                set toolbar visible to false&lt;br /&gt;
                set statusbar visible to false&lt;br /&gt;
                set current view to icon view&lt;br /&gt;
                delay 1 -- sync&lt;br /&gt;
                set the bounds to {20, 50, 300, 400}&lt;br /&gt;
            end tell&lt;br /&gt;
            delay 1 -- sync&lt;br /&gt;
            set icon size of the icon view options of container window to 64&lt;br /&gt;
            set arrangement of the icon view options of container window to not arranged&lt;br /&gt;
            set position of item &amp;quot;Marble.app&amp;quot; to {100,150}&lt;br /&gt;
            set position of item &amp;quot;Applications&amp;quot; to {280, 150}&lt;br /&gt;
            set background picture of the icon view options of container window to file &amp;quot;background.png&amp;quot; of folder &amp;quot;Pictures&amp;quot;&lt;br /&gt;
            set the bounds of the container window to {0, 0, 300, 400}&lt;br /&gt;
            update without registering applications&lt;br /&gt;
            delay 5 -- sync&lt;br /&gt;
            close&lt;br /&gt;
        end tell&lt;br /&gt;
        delay 5 -- sync&lt;br /&gt;
    end tell&lt;br /&gt;
EOF&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function create_symlinks() {&lt;br /&gt;
	cd &amp;quot;$1/Contents/Resources&amp;quot;&lt;br /&gt;
	ln -s &amp;quot;../MacOS/resources/data/&amp;quot;    &amp;quot;data&amp;quot;&lt;br /&gt;
	ln -s &amp;quot;../MacOS/resources/plugins/&amp;quot; &amp;quot;plugins&amp;quot;&lt;br /&gt;
	cd -&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
rm ~/Desktop/${DMGNAME}&lt;br /&gt;
rm ~/Desktop/${COMPRESSEDDMGNAME}&lt;br /&gt;
hdiutil create -size 150m -fs HFS+ -volname ${VOLNAME} ~/Desktop/${DMGNAME}&lt;br /&gt;
&lt;br /&gt;
# Mount the disk image&lt;br /&gt;
hdiutil attach ~/Desktop/${DMGNAME}&lt;br /&gt;
&lt;br /&gt;
# Obtain device information&lt;br /&gt;
DEVS=$(hdiutil attach ~/Desktop/${DMGNAME} | cut -f 1)&lt;br /&gt;
DEV=$(echo $DEVS | cut -f 1 -d ' ')&lt;br /&gt;
VOLUME=$(mount |grep ${DEV} | cut -f 3 -d ' ')&lt;br /&gt;
&lt;br /&gt;
# copy in the application bundle&lt;br /&gt;
cp -Rp /Applications/${APPNAME}.app ${VOLUME}/${APPNAME}.app&lt;br /&gt;
&lt;br /&gt;
# fix the libs&lt;br /&gt;
macdeployqt ${VOLUME}/${APPNAME}.app&lt;br /&gt;
create_symlinks ${VOLUME}/${APPNAME}.app&lt;br /&gt;
deploy_file &amp;quot;${VOLUME}/${APPNAME}.app/Contents/MacOS/lib/libmarblewidget.7.dylib&amp;quot;&lt;br /&gt;
deploy_plugins ${VOLUME}/${APPNAME}.app&lt;br /&gt;
&lt;br /&gt;
# copy in background image&lt;br /&gt;
mkdir -p ${VOLUME}/Pictures&lt;br /&gt;
# fixme: path&lt;br /&gt;
cp ~/Desktop/marble-dmg-background.png ${VOLUME}/Pictures/background.png&lt;br /&gt;
# symlink applications&lt;br /&gt;
ln -s /Applications/ ${VOLUME}/Applications&lt;br /&gt;
set_bundle_display_options ${VOLUME}&lt;br /&gt;
mv ${VOLUME}/Pictures ${VOLUME}/.Pictures&lt;br /&gt;
&lt;br /&gt;
# Unmount the disk image&lt;br /&gt;
hdiutil detach $DEV&lt;br /&gt;
 &lt;br /&gt;
# Convert the disk image to read-only&lt;br /&gt;
hdiutil convert ~/Desktop/${DMGNAME} -format UDBZ -o ~/Desktop/${COMPRESSEDDMGNAME}&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It uses the macdeployqt tool which copies Qt and its plugins into the App Bundle.&lt;br /&gt;
macdeployqt also tells the main application to link against the libs contained in the bundle, instead of the system libs.&lt;br /&gt;
This does not happen to the libmarblewidget and the Marble plugins, so it has to be done by the script.&lt;br /&gt;
The script also sets a background Image for the dmg. (Place it at ~/Desktop/marble-dmg-background.png or change the path in the script)&lt;br /&gt;
&lt;br /&gt;
After that you should have Marble-version.dmg on you Desktop.&lt;br /&gt;
&lt;br /&gt;
===Windows===&lt;br /&gt;
&lt;br /&gt;
== Programming Coordination ==&lt;br /&gt;
&lt;br /&gt;
Here are a few links to various issues we are working on:&lt;br /&gt;
&lt;br /&gt;
=== User Interface ===&lt;br /&gt;
;[[/Mockups|Mockups]]&lt;br /&gt;
&lt;br /&gt;
=== Texture Mapping ===&lt;br /&gt;
;[[/TextureNG|Texture Mapping]]&lt;br /&gt;
&lt;br /&gt;
=== GeoData Library / KML ===&lt;br /&gt;
;[[/LibGeoData|GeoData Library]]&lt;br /&gt;
;[[/KMLStatus|KML Status]]&lt;br /&gt;
;[[/GPXStatus|GPX Status]]&lt;br /&gt;
&lt;br /&gt;
=== Geo Graphics View === &lt;br /&gt;
[[GeoGraphicsViewOverview|Overview of the plans for GeoGraphicsView]] &lt;br /&gt;
&lt;br /&gt;
=== GeoPainter / DGML ===&lt;br /&gt;
;[[/GeoPainter|GeoPainter]]&lt;br /&gt;
;[[/Dgml|DGML]]&lt;br /&gt;
&lt;br /&gt;
=== Marble Runner ===&lt;br /&gt;
;[[/CoordinateRunner|Coordinate Runner]]&lt;br /&gt;
;[[/OsmNameFinderRunner|OSM Runner]]&lt;br /&gt;
;[[/RunnerHOWTO|Runner HOWTO]]&lt;br /&gt;
&lt;br /&gt;
=== Projections ===&lt;br /&gt;
;[[/WinkelIii|Winkel III]]&lt;br /&gt;
&lt;br /&gt;
=== Tile Download ===&lt;br /&gt;
;[[/TileDownload|Tile Download]]&lt;br /&gt;
&lt;br /&gt;
=== Documentation ===&lt;br /&gt;
;[[/ApiDocs|API Docs]]&lt;br /&gt;
;[[/CustomMaps|How to customize maps]]&lt;br /&gt;
;[[/MarblesSecrets|Marble's Secrets]]&lt;br /&gt;
;[[/ProxyConnection|How to use the Proxy]]&lt;br /&gt;
&lt;br /&gt;
=== GeoClue / GPS ===&lt;br /&gt;
;[[/GeoClue|GeoClue support in Marble]]&lt;br /&gt;
&lt;br /&gt;
== Mapping Coordination ==&lt;br /&gt;
=== Documentation ===&lt;br /&gt;
;[[/HistoricalMaps|How to create Historical Maps]]&lt;br /&gt;
&lt;br /&gt;
;[[/PalaeoMaps|Global Palaeogeography]]&lt;br /&gt;
&lt;br /&gt;
== Routing ==&lt;br /&gt;
;[[/RoutingIdeas|General ideas about routing]]&lt;br /&gt;
&lt;br /&gt;
== valgrind logs ==&lt;br /&gt;
;[[/ValgrindLogs|if you want to fix memory leaks, valgrind logs can be found here]]&lt;br /&gt;
&lt;br /&gt;
== Meetings ==&lt;br /&gt;
Summaries and logs of scheduled Marble meetings can be found on the following pages:&lt;br /&gt;
;[[/MarbleMeeting20081029|Wednesday Nov. 10th, 2008]]&lt;/div&gt;</summary>
		<author><name>Mansona</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/User:Mansona</id>
		<title>User:Mansona</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/User:Mansona"/>
				<updated>2009-04-23T16:22:17Z</updated>
		
		<summary type="html">&lt;p&gt;Mansona: Created page with 'Hi!   Not really very much to add right now, i just wanted to make this page so that i could tell you all a little bit more about myself. I will put more info in later.   First t...'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hi! &lt;br /&gt;
&lt;br /&gt;
Not really very much to add right now, i just wanted to make this page so that i could tell you all a little bit more about myself. I will put more info in later. &lt;br /&gt;
&lt;br /&gt;
First thing i need to say is that I'm a man of many names. Not too many so that its just stupid but enough to be confusing! The two user names that i use are real_ate and mansona, sorry if this confuses anyone. &lt;br /&gt;
&lt;br /&gt;
My blog is here http://realate.blogspot.com/ and if anyone wants to follow me on twitter you can go to http://twitter.com/real_ate .&lt;br /&gt;
&lt;br /&gt;
My normal hang-outs are on #kde-edu and sometimes i go onto #kde-devel, if you want to pm me on freenode my username is real_ate&lt;/div&gt;</summary>
		<author><name>Mansona</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Talk:Projects/Summer_of_Code/2009/Projects</id>
		<title>Talk:Projects/Summer of Code/2009/Projects</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Talk:Projects/Summer_of_Code/2009/Projects"/>
				<updated>2009-04-23T16:15:16Z</updated>
		
		<summary type="html">&lt;p&gt;Mansona: Created page with 'Hi guys, I'm wondering if we should put a direct link to our external pages in the project list. I'm just going by what the 2007 people have done and they have a link to a wiki p...'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hi guys, I'm wondering if we should put a direct link to our external pages in the project list. I'm just going by what the 2007 people have done and they have a link to a wiki page about their project and external links as a part of that page. Take a look at my page [[Projects/Summer_of_Code/2009/Projects/OSM_Annotation_Marble]] [[User:Mansona|Mansona]] 16:15, 23 April 2009 (UTC)&lt;/div&gt;</summary>
		<author><name>Mansona</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Projects/Summer_of_Code/2009/Projects/OSM_Annotation_Marble</id>
		<title>Projects/Summer of Code/2009/Projects/OSM Annotation Marble</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Projects/Summer_of_Code/2009/Projects/OSM_Annotation_Marble"/>
				<updated>2009-04-23T16:10:48Z</updated>
		
		<summary type="html">&lt;p&gt;Mansona: Created page with '==OSM Annotation for Marble Desktop Globe with an Optimised interface for smaller screens==  This page will get populated with more information about my project as it starts to u...'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==OSM Annotation for Marble Desktop Globe with an Optimised interface for smaller screens==&lt;br /&gt;
&lt;br /&gt;
This page will get populated with more information about my project as it starts to unfold. Add this page to your watch list by using the tab at the top right of the page if you're interested in the project. &lt;br /&gt;
&lt;br /&gt;
More information about the project is available to anyone who is interested [http://realate.blogspot.com/2009/04/accepted-google-summer-of-code-proposal.html Here on my blog] where i have made my application public. If you want to comment on the idea or the design you can leave me a comment on the blog post or if you would like to email me you can get to me on the marble mailing list as well as the kde-soc mailing list.&lt;/div&gt;</summary>
		<author><name>Mansona</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Projects/Summer_of_Code/2009/Projects</id>
		<title>Projects/Summer of Code/2009/Projects</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Projects/Summer_of_Code/2009/Projects"/>
				<updated>2009-04-23T16:01:23Z</updated>
		
		<summary type="html">&lt;p&gt;Mansona: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The projects for 2009 have been selected! Congratulations to all our students who will be working on KDE for the Summer of Code.&lt;br /&gt;
&lt;br /&gt;
The table below reflects the selected projects as seen on [http://socghop.appspot.com/org/home/google/gsoc2009/kde Google SoC Homepage]:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Project&lt;br /&gt;
!Student&lt;br /&gt;
!Mentor&lt;br /&gt;
|-&lt;br /&gt;
||[http://www.jacksofscience.com/physics/summer-of-fast-fluid-and-gas-simulation/ Fast Water and Gas Simulation in Step]&lt;br /&gt;
|Christopher Ing&lt;br /&gt;
|Vladimir Kuznetsov&lt;br /&gt;
|-&lt;br /&gt;
|[[Projects/Summer_of_Code/2009/Projects/OSM_Annotation_Marble|OSM Annotation for Marble Desktop Globe with an Optimised interface for smaller screens]]&lt;br /&gt;
|[[User:mansona|Andrew Manson]]&lt;br /&gt;
|Jens-Michael Hoffmann&lt;br /&gt;
|-&lt;br /&gt;
|Add&lt;br /&gt;
|Yourself&lt;br /&gt;
|Here!&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Mansona</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Projects/Summer_of_Code/2009/Projects</id>
		<title>Projects/Summer of Code/2009/Projects</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Projects/Summer_of_Code/2009/Projects"/>
				<updated>2009-04-23T16:00:23Z</updated>
		
		<summary type="html">&lt;p&gt;Mansona: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The projects for 2009 have been selected! Congratulations to all our students who will be working on KDE for the Summer of Code.&lt;br /&gt;
&lt;br /&gt;
The table below reflects the selected projects as seen on [http://socghop.appspot.com/org/home/google/gsoc2009/kde Google SoC Homepage]:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Project&lt;br /&gt;
!Student&lt;br /&gt;
!Mentor&lt;br /&gt;
|-&lt;br /&gt;
||[http://www.jacksofscience.com/physics/summer-of-fast-fluid-and-gas-simulation/ Fast Water and Gas Simulation in Step]&lt;br /&gt;
|Christopher Ing&lt;br /&gt;
|Vladimir Kuznetsov&lt;br /&gt;
|-&lt;br /&gt;
|[[Projects/Summer_of_Code/2009/Projects/OSM_Annotation_Marble|OSM Annotation for Marble Desktop Globe with an Optimised interface for smaller screens]]&lt;br /&gt;
|Andrew Manson&lt;br /&gt;
|Jens-Michael Hoffmann&lt;br /&gt;
|-&lt;br /&gt;
|Add&lt;br /&gt;
|Yourself&lt;br /&gt;
|Here!&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Mansona</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Projects/Summer_of_Code/2009/Projects</id>
		<title>Projects/Summer of Code/2009/Projects</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Projects/Summer_of_Code/2009/Projects"/>
				<updated>2009-04-23T15:57:57Z</updated>
		
		<summary type="html">&lt;p&gt;Mansona: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The projects for 2009 have been selected! Congratulations to all our students who will be working on KDE for the Summer of Code.&lt;br /&gt;
&lt;br /&gt;
The table below reflects the selected projects as seen on [http://socghop.appspot.com/org/home/google/gsoc2009/kde Google SoC Homepage]:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Project&lt;br /&gt;
!Student&lt;br /&gt;
!Mentor&lt;br /&gt;
|-&lt;br /&gt;
||[http://www.jacksofscience.com/physics/summer-of-fast-fluid-and-gas-simulation/ Fast Water and Gas Simulation in Step]&lt;br /&gt;
|Christopher Ing&lt;br /&gt;
|Vladimir Kuznetsov&lt;br /&gt;
|-&lt;br /&gt;
|OSM Annotation for Marble Desktop Globe with an Optimised interface for smaller screens&lt;br /&gt;
|Andrew Manson&lt;br /&gt;
|Jens-Michael Hoffmann&lt;br /&gt;
|-&lt;br /&gt;
|Add&lt;br /&gt;
|Yourself&lt;br /&gt;
|Here!&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Mansona</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Talk:Schedules/KDE4/4.3_Release_Schedule</id>
		<title>Talk:Schedules/KDE4/4.3 Release Schedule</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Talk:Schedules/KDE4/4.3_Release_Schedule"/>
				<updated>2009-04-17T16:59:45Z</updated>
		
		<summary type="html">&lt;p&gt;Mansona: Removing all content from page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Mansona</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Talk:Schedules/KDE4/4.3_Release_Schedule</id>
		<title>Talk:Schedules/KDE4/4.3 Release Schedule</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Talk:Schedules/KDE4/4.3_Release_Schedule"/>
				<updated>2009-04-17T16:39:23Z</updated>
		
		<summary type="html">&lt;p&gt;Mansona: New page: Hi I'm just wondering about the removal of the ICal File. Why did you do that Toma? I only added it because I felt like it would help people like me keep track of the Release Schedule.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hi I'm just wondering about the removal of the ICal File. Why did you do that Toma? I only added it because I felt like it would help people like me keep track of the Release Schedule.&lt;/div&gt;</summary>
		<author><name>Mansona</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Schedules/KDE4/4.3_Release_Schedule</id>
		<title>Schedules/KDE4/4.3 Release Schedule</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Schedules/KDE4/4.3_Release_Schedule"/>
				<updated>2009-04-16T00:01:28Z</updated>
		
		<summary type="html">&lt;p&gt;Mansona: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;KDE 4.3 is the third feature release for KDE 4. All dates given here are subject to revision, but we will try our best to stick to them if possible. The KDE Release Team is acting as the coordinator for the 4.3 release.&lt;br /&gt;
&lt;br /&gt;
== KDE 4.3 ==&lt;br /&gt;
&lt;br /&gt;
If you would like to follow this Release Schedule in your desktop calendar application you can use [http://www.google.com/calendar/ical/5rvr73av7k3501kaecua182k6c%40group.calendar.google.com/public/basic.ics this ICal] link. Alternatively you can see the Calendar on [http://realate.blogspot.com/2009/04/kde-43-release-schedule.html this website]. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== April 16th, 2009: Soft Feature Freeze ===&lt;br /&gt;
Trunk is frozen for feature commits that are not listed in the [[Schedules/KDE4/4.3_Feature_Plan | planned feature document]]. Only bugfixes and the code implementing the listed features are to be committed. The feature list also closes today.&lt;br /&gt;
&lt;br /&gt;
Features not already finished or listed on the planned features page will have to wait until KDE 4.4.&lt;br /&gt;
&lt;br /&gt;
=== May 4th, 2009: Hard Feature Freeze ===&lt;br /&gt;
Trunk is frozen for all feature commits, even those listed in the planned feature document. Only bug fixes are allowed. Binary compatibility for new API is not yet required.&lt;br /&gt;
&lt;br /&gt;
=== May 5th, 2009: Message Freeze. ===&lt;br /&gt;
All translated messages (GUI strings) are frozen on this date. Only previously untranslated strings or clear errors in strings can be fixed. &amp;lt;b&amp;gt;No major new strings changes should be done.&amp;lt;/b&amp;gt; It is ok to remove strings. Exception: Artwork (try to keep the number of new strings low anyways).&lt;br /&gt;
&lt;br /&gt;
=== May 5th, 2009: Tag KDE 4.3 Beta 1 ===&lt;br /&gt;
Trunk is frozen for Beta 1 release tagging. Only urgent fixes, such as those fixing compilation errors, should be committed. The usual beta rules apply as soon as the Beta tarballs have been generated. &lt;br /&gt;
&lt;br /&gt;
=== May 12th, 2009: Release KDE 4.3 Beta 1 ===&lt;br /&gt;
Beta 1 becomes available for general consumption.&lt;br /&gt;
&lt;br /&gt;
=== May 26th, 2009: Documentation/Handbook Freeze ===&lt;br /&gt;
No more substantive changes to documentation or handbooks after this date. Typos, spelling and simple grammar changes are permitted.&lt;br /&gt;
&lt;br /&gt;
=== June 2th, 2009: Tag KDE 4.3 Beta 2 ===&lt;br /&gt;
Trunk is frozen for Beta 2 release tagging. Only urgent fixes, such as those fixing compilation errors, should be committed.&lt;br /&gt;
&lt;br /&gt;
=== June 9th, 2009: Release KDE 4.3 Beta 2 ===&lt;br /&gt;
Beta 2 becomes available for general consumption.&lt;br /&gt;
&lt;br /&gt;
=== June 23rd, 2009: Artwork and Bindings Freeze ===&lt;br /&gt;
All artwork is frozen on this date. &amp;lt;b&amp;gt;No new artwork should be added.&amp;lt;/b&amp;gt; Existing artwork can continue to be tweaked and fixed.&lt;br /&gt;
&lt;br /&gt;
No new additions to the language bindings, except optional bindings as permitting by the kde-bindings team.&lt;br /&gt;
&lt;br /&gt;
=== June 23rd, 2009: Tag KDE 4.3 RC 1 ===&lt;br /&gt;
Trunk is frozen for RC 1 release tagging. Only urgent fixes, such as those fixing compilation errors, should be committed.&lt;br /&gt;
&lt;br /&gt;
=== June 30th, 2009: Release KDE 4.3 RC 1 ===&lt;br /&gt;
RC 1 becomes available for general consumption. Incoming bugs will be reviewed for their severity. Additional release candidates will be created as needed.&lt;br /&gt;
&lt;br /&gt;
=== July 21rd, 2009: Tag KDE 4.3 ===&lt;br /&gt;
Assuming there is only one release candidate, trunk is frozen for KDE 4.3 tagging. Only urgent fixes, such as those fixing compilation errors, should be committed.&lt;br /&gt;
&lt;br /&gt;
=== July 28th, 2009: Release KDE 4.3 ===&lt;br /&gt;
KDE 4.3 becomes available for general consumption.&lt;/div&gt;</summary>
		<author><name>Mansona</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Projects/Marble/ProxyConnection</id>
		<title>Projects/Marble/ProxyConnection</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Projects/Marble/ProxyConnection"/>
				<updated>2009-04-05T11:56:18Z</updated>
		
		<summary type="html">&lt;p&gt;Mansona: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
For all of you who are trapped behind a proxy connection at school or at work and could not connect to the marble repository for downloading new maps, help is now on it way. &lt;br /&gt;
&lt;br /&gt;
Marble now supports two types of proxy connection: Http and Socks5. &lt;br /&gt;
&lt;br /&gt;
==Http Proxy==&lt;br /&gt;
&lt;br /&gt;
There is currently a bug that is not allowing people to connect via a Http proxy, we hope to have this problem fixed soon. &lt;br /&gt;
&lt;br /&gt;
==Socks5 Proxy==&lt;br /&gt;
&lt;br /&gt;
If your Network Provider has given you access to a Socks5 proxy you can fill in the details in &lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
Settings &amp;gt; Configure Marble Desktop Globe &amp;gt; Cache &amp;amp; Proxy &lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
or in &lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
Settings &amp;gt; Settings &amp;gt; Cache and Proxy&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
if you are using the Qt Only version. &lt;br /&gt;
&lt;br /&gt;
If you do not have access to a Socks5 proxy there is a Very easy way to set one up for yourself. You will need to have a SSH account on a server that is directly connected to the internet. &lt;br /&gt;
&lt;br /&gt;
====Socks5 for Linux====&lt;br /&gt;
As long as you have the SSH command installed ( which you probably do ) you can setup a Socks5 proxy using the command &lt;br /&gt;
&lt;br /&gt;
ssh -D port_number username@hostname.com&lt;br /&gt;
&lt;br /&gt;
where port_number is any port number ( eg 9999 ) that the proxy will be open on your local machine. &lt;br /&gt;
&lt;br /&gt;
with this set up successfully you can enter the proxy host in the Marble Settings as localhost and the port as the port_number you specified. &lt;br /&gt;
&lt;br /&gt;
This will be an Non-Authenticated Proxy so make sure the Authentication Checkbox is not Checked. &lt;br /&gt;
&lt;br /&gt;
====Socks for Windows====&lt;br /&gt;
To setup a Socks5 proxy on Windows you will probably have to use the Putty SSH client. &lt;br /&gt;
&lt;br /&gt;
More information will be added here at a later stage or on request.&lt;/div&gt;</summary>
		<author><name>Mansona</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Projects/Marble/ProxyConnection</id>
		<title>Projects/Marble/ProxyConnection</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Projects/Marble/ProxyConnection"/>
				<updated>2009-04-05T11:54:32Z</updated>
		
		<summary type="html">&lt;p&gt;Mansona: New page: ==Introduction== For all of you who are trapped behind a proxy connection at school or at work and could not connect to the marble repository for downloading new maps, help is now on it wa...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
For all of you who are trapped behind a proxy connection at school or at work and could not connect to the marble repository for downloading new maps, help is now on it way. &lt;br /&gt;
&lt;br /&gt;
Marble now supports two types of proxy connection: Http and Socks5. &lt;br /&gt;
&lt;br /&gt;
==Http Proxy==&lt;br /&gt;
&lt;br /&gt;
There is currently a bug that is not allowing people to connect via a Http proxy, we hope to have this problem fixed soon. &lt;br /&gt;
&lt;br /&gt;
==Socks5 Proxy==&lt;br /&gt;
&lt;br /&gt;
If your Network Provider has given you access to a Socks5 proxy you can fill in the details in &lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
Settings &amp;gt; Configure Marble Desktop Globe &amp;gt; Cache &amp;amp; Proxy &lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
or in &lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
Settings &amp;gt; Settings &amp;gt; Cache and Proxy&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
if you are using the Qt Only version. &lt;br /&gt;
&lt;br /&gt;
If you do not have access to a Socks5 proxy there is a Very easy to set one up for yourself. You will need to have a ssh account on a server that is directly connected to the internet. &lt;br /&gt;
&lt;br /&gt;
====Socks5 for Linux====&lt;br /&gt;
As long as you have the ssh command installed ( which you probably do ) you can setup a Socks5 proxy using the command &lt;br /&gt;
&lt;br /&gt;
ssh -D port_number username@hostname.com&lt;br /&gt;
&lt;br /&gt;
where port_number is any port number ( eg 9999 ) that the proxy will be open on your local machine. &lt;br /&gt;
&lt;br /&gt;
with this set up successfully you can enter the proxy host in the Marble Settings as localhost and the port as the port_number you specified. &lt;br /&gt;
&lt;br /&gt;
This will be an Non-Authenticated Proxy so make sure the Authentication Checkbox is not Checked. &lt;br /&gt;
&lt;br /&gt;
====Socks for Windows====&lt;br /&gt;
To setup a Socks5 proxy on Windows you will probably have to use the Putty SSH client. &lt;br /&gt;
&lt;br /&gt;
More information will be added here at a later stage or on request.&lt;/div&gt;</summary>
		<author><name>Mansona</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/Projects/Marble</id>
		<title>Projects/Marble</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/Projects/Marble"/>
				<updated>2009-04-05T11:27:21Z</updated>
		
		<summary type="html">&lt;p&gt;Mansona: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Template:I18n/Language Navigation Bar|Projects/Marble}}&lt;br /&gt;
&lt;br /&gt;
__NOTOC__&lt;br /&gt;
[[Image:Marble_logo.png]]&lt;br /&gt;
&lt;br /&gt;
== About Marble ==&lt;br /&gt;
;[[/FAQ|Marble FAQ]]&lt;br /&gt;
&lt;br /&gt;
== Examples of Use ==&lt;br /&gt;
;[[/MarbleUsedBy|Applications using the Marble library]]&lt;br /&gt;
&lt;br /&gt;
== Using the Marble Widget in other applications ==&lt;br /&gt;
;[[/MarbleDesigner|with QtDesigner]]&lt;br /&gt;
;[[/MarbleCPlusPlus|with C++]]&lt;br /&gt;
;[[/MarblePython|with Python]]&lt;br /&gt;
&lt;br /&gt;
;[[/MarbleDBus|via a shell script]]&lt;br /&gt;
&lt;br /&gt;
== How to become a Marble developer (&amp;quot;Marblehead&amp;quot;) ==&lt;br /&gt;
&lt;br /&gt;
=== So you are new to Marble development ... ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Welcome!&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Here you'll get all the information you need to start Marble development:&lt;br /&gt;
&lt;br /&gt;
;[[/GoMarble|How to become a Marble Developer]]&lt;br /&gt;
&lt;br /&gt;
== Programming Coordination ==&lt;br /&gt;
&lt;br /&gt;
Here are a few links to various issues we are working on:&lt;br /&gt;
&lt;br /&gt;
=== User Interface ===&lt;br /&gt;
;[[/Mockups|Mockups]]&lt;br /&gt;
&lt;br /&gt;
=== Texture Mapping ===&lt;br /&gt;
;[[/TextureNG|Texture Mapping]]&lt;br /&gt;
&lt;br /&gt;
=== GeoData Library / KML ===&lt;br /&gt;
;[[/LibGeoData|GeoData Library]]&lt;br /&gt;
;[[/KMLStatus|KML Status]]&lt;br /&gt;
;[[/GPXStatus|GPX Status]]&lt;br /&gt;
&lt;br /&gt;
=== GeoPainter / DGML ===&lt;br /&gt;
;[[/GeoPainter|GeoPainter]]&lt;br /&gt;
;[[/Dgml|DGML]]&lt;br /&gt;
&lt;br /&gt;
=== Marble Runner ===&lt;br /&gt;
;[[/CoordinateRunner|Coordinate Runner]]&lt;br /&gt;
;[[/OsmNameFinderRunner|OSM Runner]]&lt;br /&gt;
;[[/RunnerHOWTO|Runner HOWTO]]&lt;br /&gt;
&lt;br /&gt;
=== Projections ===&lt;br /&gt;
;[[/WinkelIii|Winkel III]]&lt;br /&gt;
&lt;br /&gt;
=== Tile Download ===&lt;br /&gt;
;[[/TileDownload|Tile Download]]&lt;br /&gt;
&lt;br /&gt;
=== Documentation ===&lt;br /&gt;
;[[/ApiDocs|API Docs]]&lt;br /&gt;
;[[/CustomMaps|How to customize maps]]&lt;br /&gt;
;[[/MarblesSecrets|Marble's Secrets]]&lt;br /&gt;
;[[/ProxyConnection|How to use the Proxy]]&lt;br /&gt;
&lt;br /&gt;
== Mapping Coordination ==&lt;br /&gt;
=== Documentation ===&lt;br /&gt;
;[[/HistoricalMaps|How to create Historical Maps]]&lt;br /&gt;
&lt;br /&gt;
;[[/PalaeoMaps|Global Palaeogeography]]&lt;br /&gt;
&lt;br /&gt;
== Routing ==&lt;br /&gt;
;[[/RoutingIdeas|General ideas about routing]]&lt;br /&gt;
&lt;br /&gt;
== Meetings ==&lt;br /&gt;
Summaries and logs of scheduled Marble meetings can be found on the following pages:&lt;br /&gt;
;[[/MarbleMeeting20081029|Wednesday Nov. 10th, 2008]]&lt;/div&gt;</summary>
		<author><name>Mansona</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/User:Mansona/Marble_geodata</id>
		<title>User:Mansona/Marble geodata</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/User:Mansona/Marble_geodata"/>
				<updated>2008-09-02T21:47:14Z</updated>
		
		<summary type="html">&lt;p&gt;Mansona: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction== &lt;br /&gt;
This page is intended to allow for a fuller understanding of how Marble deals with Layers/Geodata. After reading this guide you should be able to:&lt;br /&gt;
# understand how marble paints geodata on top of texture data&lt;br /&gt;
# develop your own handler for geodata&lt;br /&gt;
&lt;br /&gt;
==Sections== &lt;br /&gt;
The Geodata Implementation has been split into two main sections, a parser and a handler. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Handler===&lt;br /&gt;
&lt;br /&gt;
===Data=== &lt;br /&gt;
refers to a geodata document, this is what the parser produces if working with a set of geodata&lt;br /&gt;
&lt;br /&gt;
====Difference between a scene and a Data Document====&lt;br /&gt;
Not really sure of the difference, but there is one! &lt;br /&gt;
&lt;br /&gt;
====Element Dictionary ====&lt;br /&gt;
an element dictionary is intended to be a static list of all of the tags in XML namespace of your geodata XML. this allows for one static list of tags and prevents large amounts of string comparisons throughout the code&lt;br /&gt;
&lt;br /&gt;
==Process==&lt;br /&gt;
#create a new GeoDataParser or GeoSceneParser with enum argument referring to the type of document. Enum is available in respective header files&lt;br /&gt;
#use the parser to read the file using Parser-&amp;gt;read(String filename)&lt;br /&gt;
#extract the datadocument from the parser using parser-&amp;gt;releaseDocument()&lt;/div&gt;</summary>
		<author><name>Mansona</name></author>	</entry>

	<entry>
		<id>http://techbase.kde.org/User:Mansona/Marble_geodata</id>
		<title>User:Mansona/Marble geodata</title>
		<link rel="alternate" type="text/html" href="http://techbase.kde.org/User:Mansona/Marble_geodata"/>
				<updated>2008-08-28T22:56:37Z</updated>
		
		<summary type="html">&lt;p&gt;Mansona: New page: ==Introduction==  the geodata library is were the magic happens from within marble, once you understand this library you have opened pandora's box and the world will be yours for the takin...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction== &lt;br /&gt;
the geodata library is were the magic happens from within marble, once you understand this library you have opened pandora's box and the world will be yours for the taking... Now for the explination&lt;/div&gt;</summary>
		<author><name>Mansona</name></author>	</entry>

	</feed>