Compare commits
2 Commits
0938e33fe1
...
404e8a0c27
| Author | SHA1 | Date | |
|---|---|---|---|
| 404e8a0c27 | |||
| ef621fab2d |
@@ -70,9 +70,9 @@ namespace Elwig.Helpers {
|
|||||||
for (int i = 0; i < input.Text.Length; i++) {
|
for (int i = 0; i < input.Text.Length; i++) {
|
||||||
char ch = input.Text[i];
|
char ch = input.Text[i];
|
||||||
if (char.IsAsciiDigit(ch)) {
|
if (char.IsAsciiDigit(ch)) {
|
||||||
if (v2 == -1 && v1 < maxLen) {
|
if (v2 == -1 && (maxLen == -1 || v1 < maxLen)) {
|
||||||
text += ch; v1++;
|
text += ch; v1++;
|
||||||
} else if (v2 != -1 && v2 < maxDecimal) {
|
} else if (v2 != -1 && (maxDecimal == -1 || v2 < maxDecimal)) {
|
||||||
text += ch; v2++;
|
text += ch; v2++;
|
||||||
}
|
}
|
||||||
} else if (v2 == 0-1 && ch == ',' || ch == '.') {
|
} else if (v2 == 0-1 && ch == ',' || ch == '.') {
|
||||||
|
|||||||
@@ -462,6 +462,10 @@ namespace Elwig.Windows {
|
|||||||
InputTextChanged((TextBox)sender, Validator.CheckInteger);
|
InputTextChanged((TextBox)sender, Validator.CheckInteger);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected void DecimalInput_TextChanged(object sender, RoutedEventArgs evt) {
|
||||||
|
InputTextChanged((TextBox)sender, Validator.CheckDecimal);
|
||||||
|
}
|
||||||
|
|
||||||
protected void PartialDateInput_TextChanged(object sender, RoutedEventArgs evt) {
|
protected void PartialDateInput_TextChanged(object sender, RoutedEventArgs evt) {
|
||||||
InputTextChanged((TextBox)sender, Validator.CheckPartialDate);
|
InputTextChanged((TextBox)sender, Validator.CheckPartialDate);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -117,6 +117,7 @@ namespace Elwig.Windows {
|
|||||||
await Context.SaveChangesAsync();
|
await Context.SaveChangesAsync();
|
||||||
|
|
||||||
foreach (var mod in ModifierList.Where(m => !ModifierIds.ContainsKey(m))) {
|
foreach (var mod in ModifierList.Where(m => !ModifierIds.ContainsKey(m))) {
|
||||||
|
if (mod.ModId == null) continue;
|
||||||
await Context.AddAsync(mod);
|
await Context.AddAsync(mod);
|
||||||
}
|
}
|
||||||
await Context.SaveChangesAsync();
|
await Context.SaveChangesAsync();
|
||||||
@@ -321,6 +322,7 @@ namespace Elwig.Windows {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void SeasonModifierRelInput_TextChanged(object sender, TextChangedEventArgs evt) {
|
private void SeasonModifierRelInput_TextChanged(object sender, TextChangedEventArgs evt) {
|
||||||
|
DecimalInput_TextChanged(sender, evt);
|
||||||
if ((!IsEditing && !IsCreating) || SeasonModifierList.SelectedItem is not Modifier mod) return;
|
if ((!IsEditing && !IsCreating) || SeasonModifierList.SelectedItem is not Modifier mod) return;
|
||||||
ModifiersChanged = ModifiersChanged || (SeasonModifierRelInput.Text ?? "") != ((SeasonModifierList.SelectedItem as Modifier)?.Rel?.ToString() ?? "");
|
ModifiersChanged = ModifiersChanged || (SeasonModifierRelInput.Text ?? "") != ((SeasonModifierList.SelectedItem as Modifier)?.Rel?.ToString() ?? "");
|
||||||
if (ModifierUpdate) return;
|
if (ModifierUpdate) return;
|
||||||
@@ -331,11 +333,13 @@ namespace Elwig.Windows {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void SeasonModifierAbsInput_TextChanged(object sender, TextChangedEventArgs evt) {
|
private void SeasonModifierAbsInput_TextChanged(object sender, TextChangedEventArgs evt) {
|
||||||
if ((!IsEditing && !IsCreating) || SeasonModifierList.SelectedItem is not Modifier mod) return;
|
DecimalInput_TextChanged(sender, evt);
|
||||||
|
if ((!IsEditing && !IsCreating) || SeasonModifierList.SelectedItem is not Modifier mod || SeasonList.SelectedItem is not Season s) return;
|
||||||
ModifiersChanged = ModifiersChanged || (SeasonModifierAbsInput.Text ?? "") != ((SeasonModifierList.SelectedItem as Modifier)?.Abs?.ToString() ?? "");
|
ModifiersChanged = ModifiersChanged || (SeasonModifierAbsInput.Text ?? "") != ((SeasonModifierList.SelectedItem as Modifier)?.Abs?.ToString() ?? "");
|
||||||
if (ModifierUpdate) return;
|
if (ModifierUpdate) return;
|
||||||
mod.Abs = decimal.TryParse(SeasonModifierAbsInput.Text, out var v) ? v : null;
|
// FIXME ValueStr does not work in ModifierList when modifier is newly created
|
||||||
if (mod.Abs != null) SeasonModifierRelInput.Text = "";
|
mod.AbsValue = decimal.TryParse(SeasonModifierAbsInput.Text, out var v) ? Utils.DecToDb(v, s.Precision) : null;
|
||||||
|
if (mod.AbsValue != null) SeasonModifierRelInput.Text = "";
|
||||||
CollectionViewSource.GetDefaultView(ModifierList).Refresh();
|
CollectionViewSource.GetDefaultView(ModifierList).Refresh();
|
||||||
UpdateButtons();
|
UpdateButtons();
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user