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

Former-commit-id: 43e23f40b50792c31b8a47354dc72481eb29e7eb
Former-commit-id: 2df3514f9b82b07b0ab8aba1be97cfcc9d9344df
This commit is contained in:
iobyte 2024-01-27 20:14:39 +00:00
parent 393cf1b2ec
commit 2c0a55967a

View file

@ -192,7 +192,16 @@ public class SegmentSlider extends JPanel
try try
{ {
String s = document.getText(0, document.getLength()); 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 try
{ {
@ -225,8 +234,8 @@ public class SegmentSlider extends JPanel
{ {
char c = e.getKeyChar(); char c = e.getKeyChar();
// check for valid digit or a single decimal point // check for valid digit or a single decimal point or a minus when negative number allowed
if (!(Character.isDigit(c) || (!integerFormat && (c == '.' && !textField.getText().contains("."))))) if (!(Character.isDigit(c) || (min < 0 && c == '-') || (!integerFormat && (c == '.' && !textField.getText().contains(".")))))
{ {
e.consume(); e.consume();
return; return;
@ -520,7 +529,7 @@ public class SegmentSlider extends JPanel
value = val; value = val;
setSliderValue(value); setSliderValue(value);
double textValue = 0; double textValue = 0;
if (!getTextField().getText().equals("")) if (!getTextField().getText().equals("") && !getTextField().getText().equals("-"))
{ {
try try
{ {
@ -675,6 +684,12 @@ public class SegmentSlider extends JPanel
protected void textFieldChanged() protected void textFieldChanged()
{ {
if (!getTextField().getText().equals("")) if (!getTextField().getText().equals(""))
{
if (getTextField().getText().equals("-"))
{
setValueInternal(defaultValue);
}
else
{ {
try try
{ {
@ -688,4 +703,5 @@ public class SegmentSlider extends JPanel
} }
} }
} }
}
} // @jve:decl-index=0:visual-constraint="10,10" } // @jve:decl-index=0:visual-constraint="10,10"