trackeditor: fix segment editor slider not updating track

git-svn-id: https://svn.code.sf.net/p/speed-dreams/code/trunk@8904 30fe4595-0a0c-4342-8851-515496e4dcbd

Former-commit-id: 3f12c98ad152db62b60f8a550acc654337d92d18
Former-commit-id: ccba89f639017a95109b8d4f580dcca8c0c108cb
This commit is contained in:
iobyte 2023-04-29 00:48:29 +00:00
parent 6a10759c94
commit 029e4057ad
2 changed files with 41 additions and 13 deletions

View file

@ -23,6 +23,7 @@ package gui.segment;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.text.NumberFormat;
import java.util.Locale;
import java.util.Vector;
import javax.swing.JCheckBox;
@ -80,7 +81,7 @@ public class SegmentSlider extends JPanel
*/
private void initialize()
{
nf = NumberFormat.getNumberInstance();
nf = NumberFormat.getNumberInstance(Locale.US);
nf.setMaximumFractionDigits(3);
nf.setMinimumFractionDigits(1);
nf.setGroupingUsed(false);
@ -116,6 +117,20 @@ public class SegmentSlider extends JPanel
{
textField = new JTextField();
textField.setHorizontalAlignment(JTextField.LEFT);
textField.addKeyListener(new KeyAdapter()
{
public void keyTyped(KeyEvent e)
{
char c = e.getKeyChar();
// check for valid digit or a single decimal point
if (!(Character.isDigit(c) || (c == '.' && !textField.getText().contains("."))))
{
e.consume();
return;
}
}
});
}
return textField;
}
@ -375,7 +390,14 @@ public class SegmentSlider extends JPanel
double textValue = 0;
if (!getTextField().getText().equals(""))
{
textValue = Double.parseDouble(getTextField().getText());
try
{
textValue = Double.parseDouble(getTextField().getText());
}
catch (Exception e)
{
e.printStackTrace();
}
}
if (Math.abs(textValue - value) >= 0.001)
{
@ -483,21 +505,21 @@ public class SegmentSlider extends JPanel
public void sliderChanged()
{
try
if (!getTextField().getText().equals(""))
{
if (!getTextField().getText().equals(""))
double tmp1 = getSlider().getValue();
try
{
double tmp1 = getSlider().getValue();
double tmp2 = Double.parseDouble(getTextField().getText());
if (tmp1 != tmp2 && !(tmp2 >= tmp1 && tmp2 < (tmp1 + 1)))
{
setValueInternal(getSlider().getValue());
}
}
} catch (Exception e)
{
e.printStackTrace();
catch (Exception e)
{
e.printStackTrace();
}
}
}
@ -508,10 +530,16 @@ public class SegmentSlider extends JPanel
{
if (!getTextField().getText().equals(""))
{
double tmp = Double.parseDouble(getTextField().getText()) * multCoeff;
setValueInternal(tmp);
try
{
double tmp = Double.parseDouble(getTextField().getText()) * multCoeff;
setValueInternal(tmp);
}
catch (Exception e)
{
e.printStackTrace();
}
}
}
}
} // @jve:decl-index=0:visual-constraint="10,10"

View file

@ -34,7 +34,7 @@ public class Properties
private static Properties instance = new Properties();
private Vector<ActionListener> propertiesListeners = new Vector<ActionListener>();
public final String title = "sd2-trackeditor";
public final String version = "1.2.8";
public final String version = "1.2.9";
private String path;
private double imageScale = 1;