Skip to content
Commits on Source (4)
# Build script
# Version number
PRUNENAME=gpsprune_19.1
PRUNENAME=gpsprune_19.2
# remove compile directory
rm -rf compile
# remove dist directory
......
gpsprune (19.1-2) UNRELEASED; urgency=medium
gpsprune (19.2-1) unstable; urgency=medium
* New upstream release.
* Bump Standards-Version to 4.2.1, no changes.
-- Bas Couwenberg <sebastic@debian.org> Tue, 28 Aug 2018 09:57:00 +0200
-- Bas Couwenberg <sebastic@debian.org> Sat, 15 Dec 2018 09:57:34 +0100
gpsprune (19.1-1) unstable; urgency=medium
......
package tim.prune;
import java.awt.event.WindowAdapter;
import java.awt.BorderLayout;
import java.awt.Component;
import java.awt.Image;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Locale;
import java.util.ArrayList;
import java.util.Locale;
import javax.swing.JFrame;
import javax.swing.JSplitPane;
import javax.swing.JToolBar;
......@@ -17,10 +17,10 @@ import javax.swing.WindowConstants;
import tim.prune.config.Config;
import tim.prune.config.ConfigException;
import tim.prune.gui.DetailsDisplay;
import tim.prune.gui.SidebarController;
import tim.prune.gui.IconManager;
import tim.prune.gui.MenuManager;
import tim.prune.gui.SelectorDisplay;
import tim.prune.gui.SidebarController;
import tim.prune.gui.StatusBar;
import tim.prune.gui.Viewport;
import tim.prune.gui.map.MapCanvas;
......@@ -36,9 +36,9 @@ import tim.prune.gui.profile.ProfileChart;
public class GpsPrune
{
/** Version number of application, used in about screen and for version check */
public static final String VERSION_NUMBER = "19.1";
public static final String VERSION_NUMBER = "19.2";
/** Build number, just used for about screen */
public static final String BUILD_NUMBER = "363c";
public static final String BUILD_NUMBER = "363d";
/** Static reference to App object */
private static App APP = null;
......
......@@ -238,7 +238,9 @@ public abstract class Config
return val;
}
/** @return File from which config was loaded (or null) */
/**
* @return File from which config was loaded (or null)
*/
public static File getConfigFile()
{
return _configFile;
......
......@@ -126,16 +126,6 @@ public class AltitudeRange
_previousValue = altValue;
_gotPreviousValue = true;
}
// if (!_empty)
// {
// if (altValue > _previousValue)
// _climb += (altValue - _previousValue);
// else
// _descent += (_previousValue - altValue);
// }
// _previousValue = altValue;
// _empty = false;
}
}
......
......@@ -68,16 +68,18 @@ public class FileInfo
*/
public String getFilename()
{
if (getNumFiles() == 1)
if (getNumFiles() == 1) {
return _sources.get(0).getName();
}
return "";
}
/**
* @param inIndex index number
* @param inIndex index number, starting from zero
* @return source info object
*/
public SourceInfo getSource(int inIndex) {
public SourceInfo getSource(int inIndex)
{
return _sources.get(inIndex);
}
......@@ -88,7 +90,8 @@ public class FileInfo
*/
public SourceInfo getSourceForPoint(DataPoint inPoint)
{
for (SourceInfo source : _sources) {
for (SourceInfo source : _sources)
{
if (source.getIndex(inPoint) >= 0) {
return source;
}
......@@ -96,6 +99,43 @@ public class FileInfo
return null;
}
/**
* @return the info about the last file loaded, if any
*/
public SourceInfo getLastFileInfo()
{
if (getNumFiles() == 0)
{
return null;
}
return getSource(getNumFiles()-1);
}
/**
* @return the most recent file title loaded, if any
*/
public String getLastFileTitle()
{
final int numFiles = getNumFiles();
if (numFiles == 0)
{
return null;
}
for (int i=(numFiles-1); i>=0; i--)
{
SourceInfo info = getSource(i);
if (info != null)
{
String title = info.getFileTitle();
if (title != null && !title.equals(""))
{
return title;
}
}
}
return null;
}
/**
* Clone contents of file info
*/
......
......@@ -21,7 +21,7 @@ public class RangeStats
private boolean _timesIncomplete = false;
private boolean _timesOutOfSequence = false;
private double _totalDistanceRads = 0.0, _movingDistanceRads = 0.0;
// Note, maximum speed is not calculated here, use the SpeedData method instead
// Note, maximum speed is not calculated here, use the SpeedData class instead
private static final double STEEP_ANGLE = 0.15; // gradient steeper than 15% counts as steep
......@@ -50,7 +50,8 @@ public class RangeStats
*/
private boolean calculateStats(Track inTrack, int inStartIndex, int inEndIndex)
{
_startIndex = inStartIndex; _endIndex = inEndIndex;
_startIndex = inStartIndex;
_endIndex = inEndIndex;
_numPoints = inEndIndex - inStartIndex + 1;
_totalAltitudeRange = new AltitudeRange();
_movingAltitudeRange = new AltitudeRange();
......@@ -70,7 +71,9 @@ public class RangeStats
// ignore all waypoints
if (p.isWaypoint()) continue;
if (p.getSegmentStart()) {_numSegments++;}
if (p.getSegmentStart()) {
_numSegments++;
}
// Get the distance to the previous track point
if (prevPoint != null)
{
......
......@@ -17,6 +17,8 @@ public class SourceInfo
private String _sourceName = null;
/** File type */
private FILE_TYPE _fileType = null;
/** File title, if any */
private String _fileTitle = null;
/** Array of datapoints */
private DataPoint[] _points = null;
......@@ -50,6 +52,14 @@ public class SourceInfo
_fileType = inType;
}
/**
* @param inTitle title of file, eg from <name> tag in gpx
*/
public void setFileTitle(String inTitle)
{
_fileTitle = inTitle;
}
/**
* @return source file
*/
......@@ -74,6 +84,14 @@ public class SourceInfo
return _fileType;
}
/**
* @return title of file
*/
public String getFileTitle()
{
return _fileTitle;
}
/**
* @return number of points from this source
*/
......
......@@ -91,14 +91,17 @@ public class TimestampLocal extends Timestamp
/**
* Utility method for formatting dates / times
* @param inFormat formatter object
* @param inTimezone timezone to use
* @param inTimezone timezone to use, or null
* @return formatted String
*/
@Override
protected String format(DateFormat inFormat, TimeZone inTimezone)
{
Calendar cal = getCalendar(inTimezone);
inFormat.setTimeZone(inTimezone);
if (inTimezone != null)
{
inFormat.setTimeZone(inTimezone);
}
return inFormat.format(cal.getTime());
}
}
......@@ -306,7 +306,8 @@ public class TrackInfo
{
boolean firstTrackPoint = true;
// Loop between start and end
for (int i=inStart; i<=inEnd; i++) {
for (int i=inStart; i<=inEnd; i++)
{
DataPoint point = _track.getPoint(i);
// Set all segments to false apart from first track point
if (point != null && !point.isWaypoint()) {
......@@ -316,7 +317,9 @@ public class TrackInfo
}
// Find following track point, if any
DataPoint nextPoint = _track.getNextTrackPoint(inEnd+1);
if (nextPoint != null) {nextPoint.setSegmentStart(true);}
if (nextPoint != null) {
nextPoint.setSegmentStart(true);
}
_selection.markInvalid();
UpdateMessageBroker.informSubscribers();
return true;
......@@ -353,8 +356,10 @@ public class TrackInfo
public void incrementPointIndex(int inPointIncrement)
{
int index = _selection.getCurrentPointIndex() + inPointIncrement;
if (index < 0) index = 0;
else if (index >= _track.getNumPoints()) index = _track.getNumPoints()-1;
if (index < 0)
index = 0;
else if (index >= _track.getNumPoints())
index = _track.getNumPoints()-1;
selectPoint(index);
}
......@@ -364,7 +369,9 @@ public class TrackInfo
*/
public void selectPoint(int inPointIndex)
{
if (_selection.getCurrentPointIndex() == inPointIndex || inPointIndex >= _track.getNumPoints()) {return;}
if (_selection.getCurrentPointIndex() == inPointIndex || inPointIndex >= _track.getNumPoints()) {
return;
}
DataPoint selectedPoint = _track.getPoint(inPointIndex);
// get the index of the current photo
int photoIndex = _selection.getCurrentPhotoIndex();
......@@ -397,7 +404,9 @@ public class TrackInfo
*/
public void selectPhoto(int inPhotoIndex)
{
if (_selection.getCurrentPhotoIndex() == inPhotoIndex) {return;}
if (_selection.getCurrentPhotoIndex() == inPhotoIndex) {
return;
}
// Photo is primary selection here, not as a result of a point selection
// Therefore the photo selection takes priority, deselecting point if necessary
// Find Photo object
......@@ -426,11 +435,13 @@ public class TrackInfo
// Has the new point got an audio clip?
DataPoint selectedPoint = _track.getPoint(pointIndex);
int audioIndex = _selection.getCurrentAudioIndex();
if (selectedPoint != null && selectedPoint.getAudio() != null) {
if (selectedPoint != null && selectedPoint.getAudio() != null)
{
// New point has an audio, so select it
audioIndex = _audioList.getAudioIndex(selectedPoint.getAudio());
}
else if (currPoint != null && selectedPoint != currPoint && currPoint.getAudio() != null) {
else if (currPoint != null && selectedPoint != currPoint && currPoint.getAudio() != null)
{
// Old point had an audio, so deselect it
audioIndex = -1;
}
......@@ -444,7 +455,9 @@ public class TrackInfo
*/
public void selectAudio(int inAudioIndex)
{
if (_selection.getCurrentAudioIndex() == inAudioIndex) {return;}
if (_selection.getCurrentAudioIndex() == inAudioIndex) {
return;
}
// Audio selection takes priority, deselecting point if necessary
AudioClip audio = _audioList.getAudio(inAudioIndex);
int pointIndex = _selection.getCurrentPointIndex();
......
......@@ -1076,7 +1076,7 @@ public class MapCanvas extends JPanel implements MouseListener, MouseMotionListe
{
if (_track != null && _track.getNumPoints() > 0)
{
// select point if it's a left-click
// select point if it's a left-click
if (!inE.isMetaDown())
{
if (inE.getClickCount() == 1)
......@@ -1269,9 +1269,27 @@ public class MapCanvas extends JPanel implements MouseListener, MouseMotionListe
*/
public void mouseDragged(MouseEvent inE)
{
if (!inE.isMetaDown())
// Note: One would expect inE.isMetaDown() to give information about whether this is a
// drag with the right mouse button or not - but since java 9 this is buggy,
// so we use the beautifully-named getModifiersEx() instead.
// And logically BUTTON3 refers to the secondary mouse button, not the tertiary one!
final boolean isRightDrag = (inE.getModifiersEx() & InputEvent.BUTTON3_DOWN_MASK) > 0;
if (isRightDrag)
{
// Right-click and drag - update rectangle
_drawMode = MODE_ZOOM_RECT;
if (_dragFromX == -1) {
_dragFromX = inE.getX();
_dragFromY = inE.getY();
}
_dragToX = inE.getX();
_dragToY = inE.getY();
repaint();
}
else
{
// Left mouse drag - either drag the point or pan the map
// Left mouse drag - decide whether to drag the point, drag the
// marking rectangle or pan the map
if (_drawMode == MODE_DRAG_POINT || _drawMode == MODE_CREATE_MIDPOINT)
{
// move point
......@@ -1302,18 +1320,6 @@ public class MapCanvas extends JPanel implements MouseListener, MouseMotionListe
_dragFromY = _dragToY = inE.getY();
}
}
else
{
// Right-click and drag - update rectangle
_drawMode = MODE_ZOOM_RECT;
if (_dragFromX == -1) {
_dragFromX = inE.getX();
_dragFromY = inE.getY();
}
_dragToX = inE.getX();
_dragToY = inE.getY();
repaint();
}
}
/**
......
......@@ -89,7 +89,7 @@ public abstract class MapSource
// check prefix
try
{
urlOk = new URL(urlstr.replace('[', 'w').replace(']', 'w')) != null;
urlOk = new URL(urlstr.replace('[', 'w').replace(']', 'w')).toString() != null;
}
catch (MalformedURLException e)
{
......
......@@ -38,14 +38,9 @@ public abstract class MapSourceLibrary
*/
private static void addFixedSources()
{
final String THUNDERFOREST_APIKEY = "c32212f10b13496786b98dc6c42e5c3c";
_sourceList.add(new OsmMapSource("Mapnik", "http://[abc].tile.openstreetmap.org/"));
OsmMapSource cycleSource = new OsmMapSource("OpenCycleMap", "http://[abc].tile.thunderforest.com/cycle/");
cycleSource.setApiKey(THUNDERFOREST_APIKEY);
_sourceList.add(cycleSource);
OsmMapSource outdoorsSource = new OsmMapSource("Outdoors", "http://[abc].tile.thunderforest.com/outdoors/");
outdoorsSource.setApiKey(THUNDERFOREST_APIKEY);
_sourceList.add(outdoorsSource);
_sourceList.add(new OsmMapSource("Mapnik", "https://[abc].tile.openstreetmap.org/"));
_sourceList.add(new OsmMapSource("Cycling Trails", "https://[abc].tile.openstreetmap.org/", "png",
"https://tile.waymarkedtrails.org/cycling/", "png", 18));
_sourceList.add(new OsmMapSource("Reitkarte", "http://topo[234].wanderreitkarte.de/topo/"));
_sourceList.add(new MffMapSource("Mapsforfree", "http://maps-for-free.com/layer/relief/", "jpg",
"http://maps-for-free.com/layer/water/", "gif", 11));
......
......@@ -127,7 +127,6 @@ function.rearrangephotos=J\u00e4rjest\u00e4 kuvat...
function.rotatephotoleft=Kierr\u00e4 kuvaa vasemmalle
function.rotatephotoright=Kierr\u00e4 kuvaa oikealle
function.photopopup=N\u00e4yt\u00e4 kuvaikkunassa
function.ignoreexifthumb=Ignore exif thumbnail
function.loadaudio=Lis\u00e4\u00e4 \u00e4\u00e4nileikkeet...
function.removeaudio=Poista \u00e4\u00e4nileike
function.correlateaudios=Korreloi \u00e4\u00e4net
......@@ -205,12 +204,9 @@ dialog.gpsbabel.filter.discard.intro=Hylk\u00e4\u00e4 pisteet, jos
dialog.gpsbabel.filter.discard.hdop=Hdop >
dialog.gpsbabel.filter.discard.vdop=Vdop >
dialog.gpsbabel.filter.discard.numsats=Sateliittien lukum\u00e4\u00e4r\u00e4 <
dialog.gpsbabel.filter.discard.nofix=Point has no fix
dialog.gpsbabel.filter.discard.unknownfix=Point has unknown fix
dialog.gpsbabel.filter.simplify.intro=Poista pisteit\u00e4, kunnes
dialog.gpsbabel.filter.simplify.maxpoints=Pisteiden m\u00e4\u00e4r\u00e4 <
dialog.gpsbabel.filter.simplify.maxerror=tai virhev\u00e4limatka <
dialog.gpsbabel.filter.simplify.crosstrack=cross-track
dialog.gpsbabel.filter.simplify.length=pituusero
dialog.gpsbabel.filter.simplify.relative=suhteessa hdop:iin
dialog.gpsbabel.filter.distance.intro=Poista sellaiset pisteet, jotka l\u00e4hell\u00e4 jotain edellist\u00e4 pistett\u00e4
......@@ -275,7 +271,6 @@ dialog.pointtype.track=Reittipisteet
dialog.pointtype.waypoint=Kohdepisteet
dialog.pointtype.photo=Kuvien pisteet
dialog.pointtype.audio=\u00c4\u00e4nien pisteet
dialog.pointtype.selection=Just selection
dialog.confirmreversetrack.title=Vahvista k\u00e4\u00e4nteisj\u00e4rjest\u00e4minen
dialog.confirmreversetrack.text=T\u00e4m\u00e4 reitti sis\u00e4lt\u00e4\u00e4 aikaleimoja, joiden aikaj\u00e4rjestys ei ole oikea pisteiden k\u00e4\u00e4teisj\u00e4rjestelyn j\u00e4lkeen.\nHaluatko varmasti k\u00e4\u00e4nteisj\u00e4rjest\u00e4\u00e4 t\u00e4m\u00e4n alueen?
dialog.confirmcutandmove.title=Vahvista leikkaa ja siirr\u00e4
......@@ -370,7 +365,6 @@ dialog.gpsies.nonefound=Reittej\u00e4 ei l\u00f6ytynyt
dialog.gpsies.username=Gpsies.com:n k\u00e4ytt\u00e4j\u00e4nimi
dialog.gpsies.password=Gpsies.com:n salasana
dialog.gpsies.keepprivate=Pid\u00e4 reitti yksityisen\u00e4
dialog.gpsies.confirmopenpage=Open the web page for the uploaded track?
dialog.gpsies.activities=Aktiviteettityypit
dialog.gpsies.activity.trekking=Patikointi
dialog.gpsies.activity.walking=K\u00e4vely
......@@ -548,12 +542,10 @@ dialog.diskcache.createdir=Luodaanko hakemisto
dialog.diskcache.nocreate=V\u00e4limuistin hakemistoa ei luotu
dialog.diskcache.cannotwrite=Karttapaloja ei voida tallentaa valittuun hakemistoon
dialog.diskcache.table.path=Hakemistoolku
dialog.diskcache.table.usedby=Used by
dialog.diskcache.table.zoom=Zoom
dialog.diskcache.table.tiles=Tiles
dialog.diskcache.table.megabytes=Megabytes
dialog.diskcache.tileset=Tileset
dialog.diskcache.tileset.multiple=multiple
dialog.diskcache.deleteold=Poista vanhan karttapalat
dialog.diskcache.maximumage=Enimm\u00e4isik\u00e4 (p\u00e4ivi\u00e4)
dialog.diskcache.deleteall=Poista kaikki kartapalat
......@@ -620,27 +612,9 @@ dialog.3d.altitudefactor=Korkeuden liioittelukerroin
# Confirm messages
confirm.loadfile=Paikkatieto ladattu tiedostosta
confirm.save.ok1=Successfully saved
confirm.save.ok2=points to file
confirm.deletepoint.single=data point was removed
confirm.deletepoint.multi=data points were removed
confirm.point.edit=point edited
confirm.mergetracksegments=Track segments merged
confirm.reverserange=Range reversed
confirm.addtimeoffset=Time offset added
confirm.addaltitudeoffset=Altitude offset added
confirm.rearrangewaypoints=Kohdepisteet j\u00e4rjestetty uudelleen
confirm.rearrangephotos=Kuvat j\u00e4rjestetty uudelleen
confirm.splitsegments=%d segment splits were made
confirm.sewsegments=%d segment joins were made
confirm.cutandmove=Selection moved
confirm.interpolate=Points added
confirm.convertnamestotimes=V\u00e4lipisteiden nimet muunnettu
confirm.saveexif.ok=Saved %d photo files
confirm.undo.single=operation undone
confirm.undo.multi=operations undone
confirm.jpegload.single=photo was added
confirm.jpegload.multi=photos were added
confirm.media.connect=media liitetty
confirm.photo.disconnect=kuva liitt\u00e4m\u00e4t\u00e6n
confirm.audio.disconnect=\u00e4\u00e4ni liitt\u00e4m\u00e4t\u00e6n
......@@ -755,7 +729,6 @@ details.photo.loading=Lataan
details.photo.bearing=Suunta
details.media.connected=Liitetty
details.media.fullpath=Tiedostopolku
details.audiodetails=Audio details
details.noaudio=\u00c4\u00e4nileikett\u00e4 ei valittuna
details.audio.file=\u00c4\u00e4nitiedosto
details.audio.playing=toistetaan...
......@@ -819,9 +792,9 @@ logic.and=ja
logic.or=tai
# External urls
url.googlemaps=maps.google.co.uk
wikipedia.lang=en
openweathermap.lang=en
url.googlemaps=maps.google.fi
wikipedia.lang=fi
openweathermap.lang=fi
webservice.peakfinder=Avaa Peakfinder.org
webservice.geohack=Avaa Geohack-sivu
......@@ -858,7 +831,6 @@ undo.rearrangephotos=j\u00e4rjest\u00e4 kuvat
undo.rotatephoto=kierr\u00e4 kuvaa
undo.createpoint=luo piste
undo.convertnamestotimes=muunna nimet ajoiksi
undo.lookupsrtm=lookup altitudes from SRTM
undo.deletefieldvalues=poista kentt\u00e4arvot
undo.correlateaudios=korreloi \u00e4\u00e4nileikkeet
......
......@@ -146,6 +146,7 @@ function.diskcache=Zapisz mapy na dysk
function.managetilecache=Zarz\u0105dzaj keszem p\u0142ytek
function.getweatherforecast=Pobierz prognoz\u0119 pogody
function.setaltitudetolerance=Ustaw tolerancj\u0119 wysoko\u015bci
function.selecttimezone=Ustaw stref\u0119 czasow\u0105
# Dialogs
dialog.exit.confirm.title=Zako\u0144cz GpsPrune
......@@ -383,6 +384,7 @@ dialog.wikipedia.column.name=Tytu\u0142 artyku\u0142u
dialog.wikipedia.column.distance=Odleg\u0142o\u015b\u0107
dialog.wikipedia.nonefound=Brak wpis\u00f3w w wikipedii
dialog.wikipedia.gallery=Galeria
dialog.osmpois.column.name=Nazwa
dialog.geocaching.nonefound=Nic nie zosta\u0142o znalezione
dialog.correlate.notimestamps=Punkty nie maj\u0105 znacznik\u00f3w czasu, nie mo\u017cna ich powi\u0105za\u0107 ze zdj\u0119ciami.
dialog.correlate.nouncorrelatedphotos=Nie ma nie powi\u0105zanych zdj\u0119\u0107.\nCzy na pewno chcesz kontynuowa\u0107?
......@@ -442,7 +444,7 @@ dialog.deletemarked.nonefound=Nie mo\u017cna usun\u0105\u0107 \u017cadnych punkt
dialog.pastecoordinates.desc=Wprowad\u017a lub wklej wsp\u00f3\u0142rz\u0119dne
dialog.pastecoordinates.coords=Wsp\u00f3\u0142rz\u0119dne
dialog.pastecoordinates.nothingfound=Sprawd\u017a wsp\u00f3\u0142rz\u0119dne i spr\u00f3buj jeszcze raz
dialog.help.help=Na stronie\nhttp://gpsprune.activityworkshop.net/\nznajdziesz wi\u0119cej informacji i porad\noraz mo\u017cliwo\u015b\u0107 kupna podr\u0119cznika u\u017cytkownika w formacie PDF.
dialog.help.help=Na stronie\nhttps://gpsprune.activityworkshop.net/\nznajdziesz wi\u0119cej informacji i porad\noraz mo\u017cliwo\u015b\u0107 kupna podr\u0119cznika u\u017cytkownika w formacie PDF.
dialog.about.version=Wersja
dialog.about.build=Build
dialog.about.summarytext1=GpsPrune s\u0142u\u017cy do pobierania, wy\u015bwietlania i edycji danych z odbiornik\u00f3w GPS.
......@@ -476,7 +478,7 @@ dialog.checkversion.newversion1=Dost\u0119pna jest nowa wersja GpsPrune! Najnows
dialog.checkversion.newversion2=.
dialog.checkversion.releasedate1=Nowa wersja zosta\u0142a opublikowana
dialog.checkversion.releasedate2=.
dialog.checkversion.download=Aby \u015bci\u0105gn\u0105\u0107 now\u0105 wersj\u0119 przejd\u017a na http://gpsprune.activityworkshop.net/download.html.
dialog.checkversion.download=Aby \u015bci\u0105gn\u0105\u0107 now\u0105 wersj\u0119 przejd\u017a na https://gpsprune.activityworkshop.net/download.html.
dialog.keys.intro=U\u017cuwaj nast\u0119puj\u0105cych klawiszy skr\u00f3t\u00f3w zamiast myszki
dialog.keys.keylist=<table><tr><td>klawisze strza\u0142ek</td><td>Przesuwa map\u0119 w lewo, w prawo, w g\u00f3r\u0119, w d\u00f3\u0142</td></tr><tr><td>Ctrl + lewa, prawa strza\u0142ka</td><td>Wybierz punkt poprzedni lub nast\u0119pny</td></tr><tr><td>Ctrl + strza\u0142ka w g\u00f3r\u0119, w d\u00f3\u0142</td><td>Powi\u0119ksz, pomniejsz</td></tr><tr><td>Del</td><td>Usun bie\u017c\u0105cy punkt</td></tr></table>
dialog.keys.normalmodifier=Ctrl
......@@ -591,6 +593,7 @@ dialog.deletebydate.column.keep=Zostaw
dialog.deletebydate.column.delete=Usu\u0144
dialog.setaltitudetolerance.text.metres=Limit (w metrach) poni\u017cej kt\u00f3rego, ma\u0142e spadki wzniosy b\u0119d\u0105 ignorowane
dialog.setaltitudetolerance.text.feet=Limit (w stopach) poni\u017cej kt\u00f3rego, ma\u0142e spadki wzniosy b\u0119d\u0105 ignorowane
dialog.settimezone.selectedzone=Wybrana strefa czasowa
dialog.autoplay.duration=Czas trwania (sek)
dialog.autoplay.usetimestamps=U\u017Cyj znacznik\u00f3w czasowych
dialog.autoplay.rewind=Przewin\u0105\u0107
......
......@@ -7,15 +7,11 @@ menu.file.addphotos=L\u00e4gg till foto
menu.file.recentfiles=Senaste filer
menu.file.save=Spara som text
menu.file.exit=Avsluta
menu.online=Online
menu.track=Sp\u00e5r
menu.track.undo=\u00c5ngra
menu.track.clearundo=Rensa \u00e5ngra-historik
menu.track.markrectangle=Markera punkter i rektangel
function.deletemarked=Radera markerade punkter
function.rearrangewaypoints=Ordna waypoints
dialog.rearrange.tostart=Alla till b\u00f6rjan av fil
dialog.rearrange.toend=Alla till slut av fil
dialog.rearrange.tonearest=Varje till n\u00e4rmaste sp\u00e5rpunkt
menu.range=Intervall
menu.range.all=V\u00e4lj alla
menu.range.none=V\u00e4lj ingen
......@@ -43,6 +39,7 @@ menu.settings=Inst\u00e4llningar
menu.settings.onlinemode=H\u00e4mta kartor fr\u00e5n Internet
menu.settings.autosave=Autospara inst\u00e4llningar vid avslut
menu.help=Hj\u00e4lp
# Popup menu for map
menu.map.zoomin=Zooma ut
menu.map.zoomout=Zooma in
......@@ -57,6 +54,7 @@ menu.map.editmode=Redigeringsl\u00e4ge
# Alt keys for menus
altkey.menu.file=A
altkey.menu.online=N
altkey.menu.track=S
altkey.menu.range=I
altkey.menu.point=P
......@@ -71,6 +69,7 @@ shortcut.menu.file.open=O
shortcut.menu.file.load=L
shortcut.menu.file.save=S
shortcut.menu.track.undo=Z
shortcut.menu.track.compress=K
shortcut.menu.range.all=A
shortcut.menu.help.help=H
......@@ -85,17 +84,334 @@ function.exportpov=Exportera POV
function.exportimage=Exportera bildfil
function.editwaypointname=Redigera namn p\u00e5 waypoint
function.compress=Komprimera sp\u00e5r
function.deletemarked=Radera markerade punkter
function.marklifts=Markera liftar
function.deleterange=Radera intervall
function.croptrack=Besk\u00e4r sp\u00e5r till intervall
function.interpolate=Interpolera punkter
function.deletebydate=Ta bort punkter datumvis
function.addtimeoffset=Infoga tidsoffset
function.addaltitudeoffset=Infoga h\u00f6jdoffset
function.rearrangewaypoints=Ordna waypoints
function.convertnamestotimes=Omvandla waypointnamn till tidpunkter
function.deletefieldvalues=Ta bort f\u00e4lt-v\u00e4rden
function.findwaypoint=S\u00f6k waypoint
function.pastecoordinates=Infoga koordinater
function.charts=Diagram
function.show3d=3D-vy
function.distances=Avst\u00e5nd
function.fullrangedetails=Alla intevall-detaljer
function.estimatetime=Uppskatta tid
function.learnestimationparams=L\u00e4r upp tidsuppskattningsparametrar
function.setmapbg=V\u00e4lj bakgrundskarta
function.setpaths=V\u00e4lj s\u00f6kv\u00e4gar f\u00f6r program
function.selectsegment=Markera aktuellt segment
function.splitsegments=Dela upp sp\u00e5ret i segment
function.sewsegments=Sy ihop sp\u00e5r-segment
function.createmarkerwaypoints=Skapa markerings-waypoints
function.getgpsies=H\u00e4mta Gpsies-sp\u00e5r
function.uploadgpsies=Ladda upp sp\u00e5r till Gpsies
function.lookupsrtm=H\u00e4mta h\u00f6jddata fr\u00e5n SRTM
function.downloadsrtm=Ladda ner SRTM-h\u00f6jddata
function.getwikipedia=H\u00e4mta n\u00e4rliggande Wikipedia-artiklar
function.searchwikipedianames=S\u00f6k i Wikipedia p\u00e5 namn
function.searchosmpois=H\u00e4mta n\u00e4rliggande OSM-punkter
function.searchopencachingde=S\u00f6k p\u00e5 OpenCaching.de
function.mapillary=S\u00f6k efter foton i Mapillary
function.downloadosm=Ladda ner OSM-data f\u00f6r omr\u00e5det
function.duplicatepoint=Duplicera punkt
function.setcolours=V\u00e4lj f\u00e4rger
function.setdisplaysettings=V\u00e4lj visningsalternativ
function.setlanguage=V\u00e4lj spr\u00e5k
function.connecttopoint=Koppla till punkt
function.disconnectfrompoint=Ta bort koppling till punkt
function.removephoto=Ta bort foto
function.correlatephotos=Korrelera foton
function.rearrangephotos=Arrangera om foton
function.rotatephotoleft=Rotera foto moturs
function.rotatephotoright=Rotera foto medurs
function.photopopup=Visa foto i eget f\u00f6nster
function.ignoreexifthumb=Ignorera miniatyrbild i exif
function.loadaudio=L\u00e4gg till ljudklipp
function.removeaudio=Ta bort ljudklipp
function.correlateaudios=Korrelera ljudklipp
function.playaudio=Spela upp ljudklipp
function.stopaudio=Stoppa ljudklipp
function.help=Hj\u00e4lp
function.showkeys=Visa snabbkommandon
function.about=Om GpsPrune
function.checkversion=Kolla efter ny version
function.saveconfig=Spara inst\u00e4llningar
function.diskcache=Spara kartor p\u00e5 h\u00e5rddisken
function.managetilecache=Hantera kart-cache
function.getweatherforecast=H\u00e4mta v\u00e4derprognos
function.setaltitudetolerance=S\u00e4tt toleransniv\u00e5 f\u00f6r h\u00f6jd
function.selecttimezone=V\u00e4lj tidszon
# Dialogs
dialog.exit.confirm.title=Avsluta GpsPrune
dialog.exit.confirm.text=Ditt arbete har inte sparats \u00e4n. \u00c4r du s\u00e4ker p\u00e5 att du vill avsluta?
dialog.openappend.title=L\u00e4gg till datan till existerande data
dialog.openappend.text=L\u00e4gg till denna datan till datan som redan \u00e4r laddad?
dialog.deletepoint.title=Ta bort punkt
dialog.deletepoint.deletephoto=Ta bort fotot som \u00e4r bifogat till denna punkt?
dialog.deletephoto.title=Ta bort foto
dialog.deletephoto.deletepoint=Ta bort punkten som \u00e4r bifogad till detta foto?
dialog.deleteaudio.deletepoint=Ta bort punkten som \u00e4r bifogad till detta ljudklipp?
dialog.openoptions.title=\u00d6ppna inst\u00e4llningar
dialog.openoptions.filesnippet=Filextrakt
dialog.load.table.field=F\u00e4lt
dialog.load.table.datatype=Datatyp
dialog.load.table.description=Beskrivning
dialog.delimiter.comma=Komma ,
dialog.delimiter.space=Mellanslag
dialog.delimiter.other=Annat
dialog.openoptions.altitudeunits=H\u00f6jdenhet
dialog.openoptions.speedunits=Hastighetsenheter
dialog.openoptions.vertspeedunits=Enheter f\u00f6r vertikal hastighet
dialog.openoptions.vspeed.positiveup=Positiv hastighet upp\u00e5t
dialog.openoptions.vspeed.positivedown=Positiv hastighet ned\u00e5t
dialog.open.contentsdoubled=Denna filen inneh\u00e5ller tv\u00e5 kopior av varje punkt,\nen g\u00e5ng som waypoint och en g\u00e5ng som punkt i ett sp\u00e5r.
dialog.selecttracks.intro=V\u00e4lj sp\u00e5r att ladda in
dialog.selecttracks.noname=Namnl\u00f6s
dialog.jpegload.subdirectories=Inkludera undermappar
dialog.jpegload.loadjpegswithoutcoords=Inkludera foton utan koordinater
dialog.jpegload.loadjpegsoutsidearea=Inkludera foton utanf\u00f6r aktuellt omr\u00e5de
dialog.jpegload.progress.title=Laddar in foton
dialog.jpegload.progress=V\u00e4nta medan foton s\u00f6ks
dialog.gpsload.nogpsbabel=Inget GPSBabel-program kunde hittas. Forts\u00e4tt \u00e4nd\u00e5?
dialog.gpsload.format=Format
dialog.gpsload.getwaypoints=Ladda in waypoints
dialog.gpsload.gettracks=Ladda in sp\u00e5r
dialog.gpsload.save=Spara till fil
dialog.gpssend.sendwaypoints=Skicka waypoints
dialog.gpssend.sendtracks=Skicka sp\u00e5r
dialog.gpssend.trackname=Namn p\u00e5 sp\u00e5r
dialog.gpsbabel.filters=Filter
dialog.addfilter.title=L\u00e4gg till filter
dialog.gpsbabel.filter.discard=Skippa
dialog.gpsbabel.filter.simplify=F\u00f6renkla
dialog.gpsbabel.filter.distance=Avst\u00e5nd
dialog.gpsbabel.filter.interpolate=Interpolera
dialog.gpsbabel.filter.discard.intro=Skippa punkter om
dialog.gpsbabel.filter.discard.numsats=Antal satelliter <
dialog.gpsbabel.filter.simplify.intro=Ta bort punkter tills
dialog.gpsbabel.filter.simplify.maxpoints=Antal punkter <
dialog.gpsbabel.filter.simplify.length=l\u00e4ngdskillnad
dialog.gpsbabel.filter.distance.intro=Ta bort punkter n\u00e4ra f\u00f6reg\u00e5ende punkter
dialog.gpsbabel.filter.distance.distance=Om avst\u00e5ndet <
dialog.gpsbabel.filter.distance.time=och tidsskillnaden <
dialog.gpsbabel.filter.interpolate.intro=L\u00e4gg till extra punkter inemellan sp\u00e5rets punkter
dialog.gpsbabel.filter.interpolate.distance=Om avst\u00e5ndet >
dialog.gpsbabel.filter.interpolate.time=eller tidsskillnaden >
dialog.saveoptions.title=Spara fil
dialog.save.fieldstosave=F\u00e4lt att spara
dialog.save.table.field=F\u00e4lt
dialog.save.table.hasdata=Har data
dialog.save.table.save=Spara
dialog.save.headerrow=Skriv ut titelrad
dialog.save.coordinateunits=Koordinat-format
dialog.save.altitudeunits=H\u00f6jdenhet
dialog.save.timestampformat=Tidsst\u00e4mpel-format
dialog.save.overwrite.title=Filen existerar redan
dialog.save.overwrite.text=Denna filen existerar redan. \u00c4r du s\u00e4ker p\u00e5 att du vill skriva \u00f6ver den?
dialog.save.notypesselected=Inga punkt-typer har valts
dialog.exportkml.text=Titel f\u00f6r datan
dialog.exportkml.altitude=Absolut h\u00f6jddata (f\u00f6r flyg)
dialog.exportkml.kmz=Komprimera till kmz-fil
dialog.exportkml.imagesize=Bild-storlek
dialog.exportkml.trackcolour=F\u00e4rg p\u00e5 sp\u00e5r
dialog.exportkml.standardkml=Standard KML
dialog.exportkml.extendedkml=KML ut\u00f6kad med tidsst\u00e4mplar
dialog.exportgpx.name=Namn
dialog.exportgpx.desc=Beskrivning
dialog.exportgpx.includetimestamps=Inkludera tidsst\u00e4mplar
dialog.exportgpx.copysource=Kopiera k\u00e4ll-xml
dialog.exportgpx.encoding=Teckenkodning
dialog.exportgpx.encoding.system=System
dialog.exportgpx.encoding.utf8=UTF-8
dialog.exportpov.text=Fyll i parametrar f\u00f6r POV-export
dialog.exportpov.font=Font
dialog.exportpov.camerax=Kamera X
dialog.exportpov.cameray=Kamera Y
dialog.exportpov.cameraz=Kamera Z
dialog.exportpov.modelstyle=Modell-typ
dialog.exportpov.ballsandsticks=Kulor och stavar
dialog.exportpov.tubesandwalls=R\u00f6r och v\u00e4ggar
dialog.3d.warningtracksize=Detta sp\u00e5r har v\u00e4ldigt m\u00e5nga punkter som Java3D kan ha problem med att visa.\n\u00c4r du s\u00e4ker p\u00e5 att du vill forts\u00e4tta?
dialog.3d.useterrain=Visa terr\u00e4ng
dialog.3d.terraingridsize=Storlek p\u00e5 rutn\u00e4t
dialog.exportpov.baseimage=Bild f\u00f6r basplanet
dialog.exportpov.cannotmakebaseimage=Kunde inte skriva bild f\u00f6r basplanet
dialog.baseimage.title=Kart-bild
dialog.baseimage.useimage=Anv\u00e4nd bild
dialog.baseimage.mapsource=Kart-k\u00e4lla
dialog.baseimage.zoom=Zoom-niv\u00e5
dialog.baseimage.incomplete=Bilden ofullst\u00e4ndig
dialog.baseimage.tiles=Rutor
dialog.baseimage.size=Bild-storlek
dialog.exportimage.noimagepossible=Kart-bilder m\u00e5ste cachas f\u00f6r att kunna anv\u00e4nda dom i en export.
dialog.exportimage.drawtrack=Rita ut sp\u00e5ret p\u00e5 kartan
dialog.exportimage.drawtrackpoints=Rita ut sp\u00e5r-punkterna
dialog.exportimage.textscalepercent=Textstorleksfaktor (%)
dialog.pointtype.desc=Spara f\u00f6ljande punkt-typer:
dialog.pointtype.track=Sp\u00e5r-punkter
dialog.pointtype.waypoint=Waypoints
dialog.pointtype.photo=Foto-punkter
dialog.pointtype.audio=Ljud-punkter
dialog.pointtype.selection=Endast markerat omr\u00e5de
dialog.confirmreversetrack.title=Bekr\u00e4fta riktningsbyte p\u00e5 sp\u00e5ret
dialog.confirmreversetrack.text=Detta sp\u00e5r inneh\u00e5ller tidsst\u00e4mplar som kommer hamna i oordning efter en v\u00e4ndning av sp\u00e5r-sektionen.\n\u00c4r du s\u00e4ker p\u00e5 att du vill v\u00e4nda riktning p\u00e5 denna sp\u00e5r-sektion?
dialog.confirmcutandmove.title=Bekr\u00e4fta urklippning och flytt
dialog.confirmcutandmove.text=Detta sp\u00e5r inneh\u00e5ller tidsst\u00e4mplar som kommer hamna i oordning efter en flytt av sp\u00e5r-sektionen.\n\u00c4r du s\u00e4ker p\u00e5 att du vill flytta sp\u00e5r-sektionen?
dialog.interpolate.parameter.text=Antal punkter att infoga mellan varje nuvarande punkt
dialog.interpolate.betweenwaypoints=Interpolera mellan waypoints?
dialog.undo.title=\u00c5ngra \u00e4ndring(ar)
dialog.undo.pretext=V\u00e4lj \u00e4ndring(ar) att \u00e5ngra
dialog.undo.none.title=Kan inte \u00e5ngra
dialog.undo.none.text=Inga \u00e4ndringar att \u00e5ngra!
dialog.clearundo.title=T\u00f6m \u00e5ngringslistan
dialog.clearundo.text=\u00c4r du s\u00e4ker p\u00e5 att du vill t\u00f6mma \u00e5ngringslistan?\nAll \u00e5ngerinformation kommer att f\u00f6rsvinna!
dialog.pointedit.title=Redigera punkt
dialog.pointedit.intro=V\u00e4lj varje f\u00e4lt var f\u00f6r sig f\u00f6r att se och \u00e4ndra v\u00e4rde
dialog.pointedit.table.field=F\u00e4lt
dialog.pointedit.nofield=Inget f\u00e4lt valt
dialog.pointedit.table.value=V\u00e4rde
dialog.pointnameedit.name=Waypoint-namn
dialog.pointnameedit.uppercase=STORA BOKST\u00c4VER
dialog.pointnameedit.lowercase=sm\u00e5 bokst\u00e4ver
dialog.pointnameedit.titlecase=F\u00f6rsta Stor
dialog.addtimeoffset.add=L\u00e4gg till tid
dialog.addtimeoffset.subtract=Dra ifr\u00e5n tid
dialog.addtimeoffset.days=Dagar
dialog.addtimeoffset.hours=Timmar
dialog.addtimeoffset.minutes=Minuter
dialog.addtimeoffset.notimestamps=Kan inte utf\u00f6ra en tidsoffset eftersom detta intervall inte inneh\u00e5ller n\u00e5gra tidsst\u00e4mplar
dialog.findwaypoint.intro=Fyll i del av waypoint-namnet
dialog.findwaypoint.search=S\u00f6k
dialog.saveexif.title=Spara Exif
dialog.saveexif.intro=V\u00e4lj foton att spara med kryssrutorna
dialog.saveexif.nothingtosave=Koordinat-data of\u00f6r\u00e4ndrat, ingen \u00e4ndring att spara
dialog.saveexif.noexiftool=Inget exiftool-program kunde hittas. Forts\u00e4tt?
dialog.saveexif.table.photoname=Foto-namn
dialog.saveexif.table.status=Status
dialog.saveexif.table.save=Spara
dialog.saveexif.photostatus.connected=Kopplad
dialog.saveexif.photostatus.disconnected=Bortkopplad
dialog.saveexif.photostatus.modified=\u00c4ndrad
dialog.saveexif.overwrite=Skriv \u00f6ver filer
dialog.saveexif.force=Tvinga trots mindre fel
dialog.charts.xaxis=X-axel
dialog.charts.yaxis=Y-axlar
dialog.charts.output=Utdata
dialog.charts.screen=Utdata till bildsk\u00e4rm
dialog.charts.svg=Utdata till SVG-fil
dialog.charts.svgwidth=SVG bredd
dialog.charts.svgheight=SVG h\u00f6jd
dialog.charts.needaltitudeortimes=Sp\u00e5ret m\u00e5ste ha antingen h\u00f6jd- eller tidsdata f\u00f6r att kunna skapa grafer
dialog.charts.gnuplotnotfound=Kunde inte hitta gnuplot p\u00e5 angiven s\u00f6kv\u00e4g
dialog.distances.intro=F\u00e5gelv\u00e4g mellan punkter
dialog.distances.column.from=Fr\u00e5n punkt
dialog.distances.column.to=Till punkt
dialog.distances.currentpoint=Nuvarande punkt
dialog.distances.toofewpoints=Denna funktion beh\u00f6ver waypoints f\u00f6r att ber\u00e4kna avst\u00e5nden d\u00e4remellan
dialog.fullrangedetails.intro=H\u00e4r \u00e4r alla detaljer f\u00f6r det markerade intervallet
dialog.fullrangedetails.coltotal=Inklusive gap
dialog.fullrangedetails.colsegments=Utan gap
dialog.estimatetime.details=Detaljer
dialog.estimatetime.gentle=Flackt
dialog.estimatetime.steep=Brant
dialog.estimatetime.climb=Kl\u00e4ttring
dialog.estimatetime.descent=Nedf\u00f6r
dialog.estimatetime.parameters=Parametrar
dialog.estimatetime.parameters.timefor=Tid f\u00f6r
dialog.estimatetime.results=Resultat
dialog.estimatetime.results.estimatedtime=Ber\u00e4knad tid
dialog.estimatetime.results.actualtime=Faktisk tid
dialog.estimatetime.error.nodistance=Tidsuppskattningen kr\u00e4ver kopplade sp\u00e5rpunkter f\u00f6r att f\u00e5 avst\u00e5nd
dialog.estimatetime.error.noaltitudes=Intervallet har ingen h\u00f6jd-data
dialog.learnestimationparams.intro=Detta \u00e4r parametrarna ber\u00e4knade fr\u00e5n detta sp\u00e5ret
dialog.rearrange.tostart=Alla till b\u00f6rjan av fil
dialog.rearrange.toend=Alla till slut av fil
dialog.rearrange.tonearest=Varje till n\u00e4rmaste sp\u00e5rpunkt
# Buttons
button.ok=OK
button.back=Bak\u00e5t
button.next=N\u00e4sta
button.cancel=Avbryt
button.overwrite=Skriv \u00f6ver
button.moveup=Flytta upp
button.movedown=Flytta ner
button.edit=Redigera
button.exit=Avsluta
button.close=St\u00e4ng
button.yes=Ja
button.no=Nej
button.yestoall=Ja till alla
button.notoall=Nej till alla
button.always=Alltid
button.select=Markera
button.selectall=Markera alla
button.selectnone=Markera inget
button.preview=F\u00f6rhandsvisa
button.load=Ladda in
button.upload=Ladda upp
button.guessfields=Gissa f\u00e4lt
button.showwebpage=Visa hemsida
button.resettodefaults=\u00c5terst\u00e4ll till default
button.browse=Bl\u00e4ddra...
button.addnew=L\u00e4gg till ny
button.delete=Ta bort
button.manage=Hantera
button.combine=Kombinera
# Display components
display.nodata=Ingen data laddad
display.noaltitudes=Sp\u00e5rdatan saknar h\u00f6jddata
display.notimestamps=Sp\u00e5rdatan saknar tidsst\u00e4mplar
display.novalues=Sp\u00e5rdatan saknar v\u00e4rden f\u00f6r detta f\u00e4lt
details.trackdetails=Sp\u00e5r-detaljer
details.notrack=Inget sp\u00e5r laddat
details.track.points=Punkter
details.track.file=Fil
details.track.numfiles=Antal filer
details.pointdetails=Punkt-detaljer
details.index.selected=Index
details.index.of=av
details.nopointselection=Ingen punkt markerad
details.photofile=Foto-fil
details.norangeselection=Inget intervall markerat
details.rangedetails=Intervall-detaljer
details.range.selected=Markerat
details.range.to=till
details.altitude.to=till
details.range.climb=Uppf\u00f6r
details.range.descent=Nedf\u00f6r
details.coordformat=Koortinat-format
details.distanceunits=Distans-enhet
display.range.time.secs=s
display.range.time.mins=m
display.range.time.hours=h
display.range.time.days=d
details.range.avespeed=Medelhastighet
details.range.maxspeed=Maxhastighet
details.range.numsegments=Antal segment
details.range.gradient=Gradient
details.lists.waypoints=Waypoints
details.lists.photos=Foton
details.lists.audio=Ljud
details.photodetails=Foto-detaljer
details.nophoto=Inget foto valt
details.photo.loading=Laddar
details.photo.bearing=B\u00e4ring
details.media.connected=Kopplad
details.media.fullpath=Fullst\u00e4ndig s\u00f6kv\u00e4g
details.audiodetails=Ljud-detaljer
details.noaudio=Inget ljudklipp valt
details.audio.file=Ljudfil
details.audio.playing=spelar...
map.overzoom=Inga kartor tillg\u00e4ngliga p\u00e5 denna zoom-niv\u00e5
# External urls and services
openweathermap.lang=se
......@@ -19,7 +19,8 @@ public class GpxHandler extends XmlHandler
private boolean _startSegment = true;
private boolean _isTrackPoint = false;
private int _trackNum = -1;
private GpxTag _name = new GpxTag(), _trackName = new GpxTag();
private GpxTag _fileTitle = new GpxTag();
private GpxTag _pointName = new GpxTag(), _trackName = new GpxTag();
private String _latitude = null, _longitude = null;
private GpxTag _elevation = new GpxTag(), _time = new GpxTag();
private GpxTag _type = new GpxTag(), _description = new GpxTag();
......@@ -52,7 +53,7 @@ public class GpxHandler extends XmlHandler
else if (att.equals("lon")) {_longitude = attributes.getValue(i);}
}
_elevation.setValue(null);
_name.setValue(null);
_pointName.setValue(null);
_time.setValue(null);
_type.setValue(null);
_link.setValue(null);
......@@ -61,8 +62,18 @@ public class GpxHandler extends XmlHandler
else if (tag.equals("ele")) {
_currentTag = _elevation;
}
else if (tag.equals("name")) {
_currentTag = (_insidePoint?_name:_trackName);
else if (tag.equals("name"))
{
if (_insidePoint) {
_currentTag = _pointName;
}
else if (_trackNum < 0)
{
_currentTag = _fileTitle;
}
else {
_currentTag = _trackName;
}
}
else if (tag.equals("time")) {
_currentTag = _time;
......@@ -146,7 +157,7 @@ public class GpxHandler extends XmlHandler
values[0] = _latitude;
values[1] = _longitude;
values[2] = _elevation.getValue();
if (_insideWaypoint) {values[3] = _name.getValue();}
if (_insideWaypoint) {values[3] = _pointName.getValue();}
values[4] = _time.getValue();
if (_startSegment && !_insideWaypoint)
{
......@@ -212,4 +223,11 @@ public class GpxHandler extends XmlHandler
public TrackNameList getTrackNameList() {
return _trackNameList;
}
/**
* @return file title
*/
public String getFileTitle() {
return _fileTitle.getValue();
}
}
......@@ -93,9 +93,11 @@ public class XmlFileLoader extends DefaultHandler implements Runnable
}
else
{
SourceInfo.FILE_TYPE sourceType = (_handler instanceof GpxHandler ? SourceInfo.FILE_TYPE.GPX : SourceInfo.FILE_TYPE.KML);
SourceInfo sourceInfo = new SourceInfo(_file, sourceType);
sourceInfo.setFileTitle(_handler.getFileTitle());
// Pass information back to app
SourceInfo sourceInfo = new SourceInfo(_file,
(_handler instanceof GpxHandler?SourceInfo.FILE_TYPE.GPX:SourceInfo.FILE_TYPE.KML));
_app.informDataLoaded(_handler.getFieldArray(), _handler.getDataArray(),
null, sourceInfo, _handler.getTrackNameList(),
new MediaLinkInfo(_handler.getLinkArray()));
......
......@@ -36,4 +36,12 @@ public abstract class XmlHandler extends DefaultHandler
public String[] getLinkArray() {
return null;
}
/**
* Can be overridden (eg by gpx handler) to provide the title of the file
* @return file title, or null
*/
public String getFileTitle() {
return null;
}
}
GpsPrune version 19.1
GpsPrune version 19.2
=====================
GpsPrune is an application for viewing, editing and managing coordinate data from GPS systems,
......@@ -17,7 +17,7 @@ Running
=======
To run GpsPrune from the jar file, simply call it from a command prompt or shell:
java -jar gpsprune_19.1.jar
java -jar gpsprune_19.2.jar
If the jar file is saved in a different directory, you will need to include the path.
Depending on your system settings, you may be able to click or double-click on the jar file
......@@ -25,9 +25,18 @@ in a file manager window to execute it. A shortcut, menu item, alias, desktop i
or other link can of course be made should you wish.
To specify a language other than the default, use an additional parameter, eg:
java -jar gpsprune_19.1.jar --lang=DE
java -jar gpsprune_19.2.jar --lang=DE
New with version 19.2
=====================
The following fixes and additions were made since version 19.1:
- Fix right-click-and-drag bug for zooming with Java 9 and Java 10
- Fix export of timestamps when photo points don't have timestamps
- Lighting of 3d views from the northwest (thanks, PeHar)
- Remember the name tag from a loaded gpx file, suggest it again for gpx export
- Removal of the Thunderforest tile sources (OpenCycleMap, Outdoors)
New with version 19.1
=====================
The following fixes and additions were made since version 19:
......