Index: marble-0.95+svn1213143/src/lib/CurrentLocationWidget.cpp
===================================================================
---- marble-0.95+svn1213143.orig/src/lib/CurrentLocationWidget.cpp 2011-01-09 12:13:21.000000000 +0100
-+++ marble-0.95+svn1213143/src/lib/CurrentLocationWidget.cpp 2011-01-09 12:15:22.000000000 +0100
+--- marble-0.95+svn1213143.orig/src/lib/CurrentLocationWidget.cpp 2011-01-09 12:28:00.000000000 +0100
++++ marble-0.95+svn1213143/src/lib/CurrentLocationWidget.cpp 2011-01-09 13:08:31.000000000 +0100
@@ -31,6 +31,9 @@
// Ui
#include "ui_CurrentLocationWidget.h"
if ( hasProvider ) {
foreach( PositionProviderPlugin* plugin, m_positionProviderPlugins ) {
-@@ -277,6 +305,27 @@
+@@ -277,6 +305,28 @@
m_widget->centerOn(m_currentPosition, true);
}
+void CurrentLocationWidgetPrivate::saveTrack()
+{
+ static QString s_dirName = QDir::homePath();
++ QString suggested = s_dirName;
+ QString fileName = QFileDialog::getSaveFileName(m_widget, QObject::tr("Save Track"), // krazy:exclude=qclasses
-+ s_dirName.append('/' + QDateTime::currentDateTime().toString("yyyy-MM-dd_hhmmss") + ".kml"),
++ suggested.append('/' + QDateTime::currentDateTime().toString("yyyy-MM-dd_hhmmss") + ".kml"),
+ QObject::tr("KML File (*.kml)"));
-+ if ( fileName ) {
++ if ( !fileName.isEmpty() ) {
+ QFileInfo file( fileName );
+ s_dirName = file.absolutePath();
+ m_widget->model()->positionTracking()->saveTrack( fileName );
#include "CurrentLocationWidget.moc"
Index: marble-0.95+svn1213143/src/lib/PositionTracking.cpp
===================================================================
---- marble-0.95+svn1213143.orig/src/lib/PositionTracking.cpp 2011-01-09 12:13:21.000000000 +0100
-+++ marble-0.95+svn1213143/src/lib/PositionTracking.cpp 2011-01-09 18:06:10.000000000 +0100
+--- marble-0.95+svn1213143.orig/src/lib/PositionTracking.cpp 2011-01-09 12:28:00.000000000 +0100
++++ marble-0.95+svn1213143/src/lib/PositionTracking.cpp 2011-01-09 12:27:59.000000000 +0100
@@ -16,14 +16,19 @@
#include "GeoDataPlacemark.h"
#include "GeoDataStyle.h"
using namespace Marble;
void PositionTrackingPrivate::setPosition( GeoDataCoordinates position,
-@@ -173,6 +178,41 @@
+@@ -173,6 +178,34 @@
d->m_document->setVisible( visible );
}
+ //FIXME: a better way to do this?
+ writer.setDocumentType( kml::kmlTag_nameSpace22 );
+
++ GeoDataDocument document( *d->m_document );
+ QFileInfo fileInfo( fileName );
+ QString name = fileInfo.baseName();
-+ GeoDataDocument document;
+ document.setName( name );
-+ foreach( GeoDataStyle style, d->m_document->styles() ) {
-+ document.addStyle( style );
-+ }
-+ foreach( GeoDataStyleMap map, d->m_document->styleMaps() ) {
-+ document.addStyleMap( map );
-+ }
-+ GeoDataFeature *track = new GeoDataFeature( d->m_document->last() );
-+ track->setName( "Track " + name );
-+ document.append( track );
++ document.remove( 0 );
++ document.last().setName( "Track" );
+
+ QFile file( fileName );
+ file.open( QIODevice::ReadWrite );
GeoDataPlacemark *placemark = static_cast<GeoDataPlacemark*>(d->m_document->child(d->m_document->size()-1));
Index: marble-0.95+svn1213143/src/lib/PositionTracking.h
===================================================================
---- marble-0.95+svn1213143.orig/src/lib/PositionTracking.h 2011-01-09 12:13:21.000000000 +0100
-+++ marble-0.95+svn1213143/src/lib/PositionTracking.h 2011-01-09 12:13:35.000000000 +0100
+--- marble-0.95+svn1213143.orig/src/lib/PositionTracking.h 2011-01-09 12:28:00.000000000 +0100
++++ marble-0.95+svn1213143/src/lib/PositionTracking.h 2011-01-09 12:27:59.000000000 +0100
@@ -84,6 +84,11 @@
void setTrackVisible ( bool visible );
void clearTrack();
Index: marble-0.95+svn1213143/src/lib/CurrentLocationWidget.h
===================================================================
---- marble-0.95+svn1213143.orig/src/lib/CurrentLocationWidget.h 2011-01-09 12:13:21.000000000 +0100
-+++ marble-0.95+svn1213143/src/lib/CurrentLocationWidget.h 2011-01-09 12:13:35.000000000 +0100
+--- marble-0.95+svn1213143.orig/src/lib/CurrentLocationWidget.h 2011-01-09 12:28:00.000000000 +0100
++++ marble-0.95+svn1213143/src/lib/CurrentLocationWidget.h 2011-01-09 12:27:59.000000000 +0100
@@ -72,6 +72,9 @@
Q_PRIVATE_SLOT( d, void updateAutoZoomCheckBox( bool autoZoom ) )
}
Index: marble-0.95+svn1213143/src/lib/CurrentLocationWidget.ui
===================================================================
---- marble-0.95+svn1213143.orig/src/lib/CurrentLocationWidget.ui 2011-01-09 12:13:21.000000000 +0100
-+++ marble-0.95+svn1213143/src/lib/CurrentLocationWidget.ui 2011-01-09 12:13:42.000000000 +0100
+--- marble-0.95+svn1213143.orig/src/lib/CurrentLocationWidget.ui 2011-01-09 12:28:00.000000000 +0100
++++ marble-0.95+svn1213143/src/lib/CurrentLocationWidget.ui 2011-01-09 12:27:59.000000000 +0100
@@ -7,7 +7,7 @@
<x>0</x>
<y>0</y>
<bool>false</bool>
Index: marble-0.95+svn1213143/src/QtMainWindow.cpp
===================================================================
---- marble-0.95+svn1213143.orig/src/QtMainWindow.cpp 2011-01-09 12:13:21.000000000 +0100
-+++ marble-0.95+svn1213143/src/QtMainWindow.cpp 2011-01-09 12:13:42.000000000 +0100
+--- marble-0.95+svn1213143.orig/src/QtMainWindow.cpp 2011-01-09 12:28:00.000000000 +0100
++++ marble-0.95+svn1213143/src/QtMainWindow.cpp 2011-01-09 12:27:59.000000000 +0100
@@ -41,6 +41,7 @@
#include <QtNetwork/QNetworkProxy>
{
Index: marble-0.95+svn1213143/src/QtMainWindow.h
===================================================================
---- marble-0.95+svn1213143.orig/src/QtMainWindow.h 2011-01-09 12:13:21.000000000 +0100
-+++ marble-0.95+svn1213143/src/QtMainWindow.h 2011-01-09 12:13:42.000000000 +0100
+--- marble-0.95+svn1213143.orig/src/QtMainWindow.h 2011-01-09 12:28:00.000000000 +0100
++++ marble-0.95+svn1213143/src/QtMainWindow.h 2011-01-09 12:27:59.000000000 +0100
@@ -120,6 +120,7 @@
void showMapViewDialog();
void showLegendTab( bool enabled );