From: Frédéric Perrin Date: Sun, 5 Jan 2020 14:40:06 +0000 (+0000) Subject: Allow to specify a time offset in blocks of 1024-week X-Git-Tag: v20.3.fp1~9 X-Git-Url: http://gitweb.fperrin.net/?p=GpsPrune.git;a=commitdiff_plain;h=d3f97e3b42e9b12b8cb97d2282b646377f7f58f8 Allow to specify a time offset in blocks of 1024-week The GPS protocol rolls over the week number every 1024 weeks, and some GPS receivers may have an internal clock so far off it won't detect that roll over, resulting in timestamps that are about 19 years, 7 months off --- diff --git a/src/tim/prune/function/AddTimeOffset.java b/src/tim/prune/function/AddTimeOffset.java index 9e8306f..ed75a5e 100644 --- a/src/tim/prune/function/AddTimeOffset.java +++ b/src/tim/prune/function/AddTimeOffset.java @@ -33,8 +33,8 @@ public class AddTimeOffset extends GenericFunction { private JDialog _dialog = null; private JRadioButton _addRadio = null, _subtractRadio = null; - private WholeNumberField _dayField = null, _hourField = null; - private WholeNumberField _minuteField = null; + private WholeNumberField _1024weekField = null, _dayField = null; + private WholeNumberField _hourField = null, _minuteField = null; private JButton _okButton = null; @@ -103,6 +103,9 @@ public class AddTimeOffset extends GenericFunction // Make a central panel with the text boxes JPanel descPanel = new JPanel(); descPanel.setLayout(new GridLayout(0, 2)); + descPanel.add(makeRightLabel("dialog.addtimeoffset.1024week")); + _1024weekField = new WholeNumberField(3); + descPanel.add(_1024weekField); descPanel.add(makeRightLabel("dialog.addtimeoffset.days")); _dayField = new WholeNumberField(4); descPanel.add(_dayField); @@ -128,9 +131,11 @@ public class AddTimeOffset extends GenericFunction _okButton.setEnabled(getOffsetSecs() != 0L); } }; + _1024weekField.addKeyListener(keyListener); _dayField.addKeyListener(keyListener); _hourField.addKeyListener(keyListener); _minuteField.addKeyListener(keyListener); + _1024weekField.addMouseListener(mouseListener); _dayField.addMouseListener(mouseListener); _hourField.addMouseListener(mouseListener); _minuteField.addMouseListener(mouseListener); @@ -180,7 +185,8 @@ public class AddTimeOffset extends GenericFunction { long offsetSecs = _minuteField.getValue() * 60L + _hourField.getValue() * 60L * 60L - + _dayField.getValue() * 60L * 60L * 24L; + + _dayField.getValue() * 60L * 60L * 24L + + _1024weekField.getValue() * 60L * 60L * 24L * 7L * 1024L; if (_subtractRadio.isSelected()) {offsetSecs = -offsetSecs;} return offsetSecs; } diff --git a/src/tim/prune/lang/prune-texts_en.properties b/src/tim/prune/lang/prune-texts_en.properties index ad0d8db..c0fb095 100644 --- a/src/tim/prune/lang/prune-texts_en.properties +++ b/src/tim/prune/lang/prune-texts_en.properties @@ -302,6 +302,7 @@ dialog.pointnameedit.lowercase=lower case dialog.pointnameedit.titlecase=Title Case dialog.addtimeoffset.add=Add time dialog.addtimeoffset.subtract=Subtract time +dialog.addtimeoffset.1024week=1024-week block dialog.addtimeoffset.days=Days dialog.addtimeoffset.hours=Hours dialog.addtimeoffset.minutes=Minutes