trackeditor: fix entering negative values in slider

git-svn-id: https://svn.code.sf.net/p/speed-dreams/code/trunk@9287 30fe4595-0a0c-4342-8851-515496e4dcbd
This commit is contained in:
iobyte 2024-01-27 20:14:39 +00:00
parent c4883156a6
commit 036a27fc82
1 changed files with 25 additions and 9 deletions

View File

@ -192,7 +192,16 @@ public class SegmentSlider extends JPanel
try
{
String s = document.getText(0, document.getLength());
if (!s.equals(""))
if (s.equals("-") || s.equals(""))
{
double oldValue = value;
setValueInternal(defaultValue);
if (Math.abs(oldValue - value) >= resolution)
{
valueChanged();
}
}
else if (!s.equals(""))
{
try
{
@ -225,8 +234,8 @@ public class SegmentSlider extends JPanel
{
char c = e.getKeyChar();
// check for valid digit or a single decimal point
if (!(Character.isDigit(c) || (!integerFormat && (c == '.' && !textField.getText().contains(".")))))
// check for valid digit or a single decimal point or a minus when negative number allowed
if (!(Character.isDigit(c) || (min < 0 && c == '-') || (!integerFormat && (c == '.' && !textField.getText().contains(".")))))
{
e.consume();
return;
@ -520,7 +529,7 @@ public class SegmentSlider extends JPanel
value = val;
setSliderValue(value);
double textValue = 0;
if (!getTextField().getText().equals(""))
if (!getTextField().getText().equals("") && !getTextField().getText().equals("-"))
{
try
{
@ -676,14 +685,21 @@ public class SegmentSlider extends JPanel
{
if (!getTextField().getText().equals(""))
{
try
if (getTextField().getText().equals("-"))
{
double tmp = Double.parseDouble(getTextField().getText());
setValueInternal(tmp);
setValueInternal(defaultValue);
}
catch (Exception e)
else
{
e.printStackTrace();
try
{
double tmp = Double.parseDouble(getTextField().getText());
setValueInternal(tmp);
}
catch (Exception e)
{
e.printStackTrace();
}
}
}
}