From 0c04e9be48bb03da0e8255fe1c91e2fab9a0b03d Mon Sep 17 00:00:00 2001 From: DanielH <78355193+Daniel-H123@users.noreply.github.com> Date: Tue, 10 Jan 2023 23:19:46 +0100 Subject: [PATCH 1/5] Bugfix - Decimal formatting not pushed to variable --- addons/settings/fnc_gui_settingSlider.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/settings/fnc_gui_settingSlider.sqf b/addons/settings/fnc_gui_settingSlider.sqf index 64ceb1043a..ed626a6a8f 100644 --- a/addons/settings/fnc_gui_settingSlider.sqf +++ b/addons/settings/fnc_gui_settingSlider.sqf @@ -22,7 +22,7 @@ _ctrlSlider ctrlAddEventHandler ["SliderPosChanged", { _value = round _value; }; - [_value, 1, _trailingDecimals max 0] call CBA_fnc_formatNumber + _value = [_value, 1, _trailingDecimals max 0] call CBA_fnc_formatNumber; }; private _controlsGroup = ctrlParentControlsGroup _ctrlSlider; From 33d1f5a1c664689e56becc8f216bd79a228edbbf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dani=C3=ABl?= Date: Wed, 11 Jan 2023 00:23:56 +0100 Subject: [PATCH 2/5] - Bugfix update slider var to number with correct decimals --- addons/settings/fnc_gui_settingSlider.sqf | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/addons/settings/fnc_gui_settingSlider.sqf b/addons/settings/fnc_gui_settingSlider.sqf index ed626a6a8f..5f56b0b026 100644 --- a/addons/settings/fnc_gui_settingSlider.sqf +++ b/addons/settings/fnc_gui_settingSlider.sqf @@ -20,9 +20,11 @@ _ctrlSlider ctrlAddEventHandler ["SliderPosChanged", { } else { if (_trailingDecimals < 0) then { _value = round _value; + } else { + _value = _value toFixed _trailingDecimals; }; - _value = [_value, 1, _trailingDecimals max 0] call CBA_fnc_formatNumber; + [_value, 1, _trailingDecimals max 0] call CBA_fnc_formatNumber; }; private _controlsGroup = ctrlParentControlsGroup _ctrlSlider; @@ -63,6 +65,8 @@ _ctrlSliderEdit ctrlAddEventHandler ["KeyUp", { } else { if (_trailingDecimals < 0) then { _value = round _value; + } else { + _value = _value toFixed _trailingDecimals; }; }; @@ -99,6 +103,8 @@ _ctrlSliderEdit ctrlAddEventHandler ["KillFocus", { } else { if (_trailingDecimals < 0) then { _value = round _value; + } else { + _value = _value toFixed _trailingDecimals; }; [_value, 1, _trailingDecimals max 0] call CBA_fnc_formatNumber From 483fba618f46622a694e20fe5f66dd2da640aa9f Mon Sep 17 00:00:00 2001 From: DanielH <78355193+Daniel-H123@users.noreply.github.com> Date: Wed, 11 Jan 2023 09:00:42 +0100 Subject: [PATCH 3/5] Update formatting method to return number toFixed returns string --- addons/settings/fnc_gui_settingSlider.sqf | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/addons/settings/fnc_gui_settingSlider.sqf b/addons/settings/fnc_gui_settingSlider.sqf index 5f56b0b026..a37191f8d4 100644 --- a/addons/settings/fnc_gui_settingSlider.sqf +++ b/addons/settings/fnc_gui_settingSlider.sqf @@ -21,7 +21,7 @@ _ctrlSlider ctrlAddEventHandler ["SliderPosChanged", { if (_trailingDecimals < 0) then { _value = round _value; } else { - _value = _value toFixed _trailingDecimals; + _value = [_value, _trailingDecimals] call BIS_fnc_cutDecimals; }; [_value, 1, _trailingDecimals max 0] call CBA_fnc_formatNumber; @@ -66,7 +66,7 @@ _ctrlSliderEdit ctrlAddEventHandler ["KeyUp", { if (_trailingDecimals < 0) then { _value = round _value; } else { - _value = _value toFixed _trailingDecimals; + _value = [_value, _trailingDecimals] call BIS_fnc_cutDecimals; }; }; @@ -104,7 +104,7 @@ _ctrlSliderEdit ctrlAddEventHandler ["KillFocus", { if (_trailingDecimals < 0) then { _value = round _value; } else { - _value = _value toFixed _trailingDecimals; + _value = [_value, _trailingDecimals] call BIS_fnc_cutDecimals; }; [_value, 1, _trailingDecimals max 0] call CBA_fnc_formatNumber From 4f54cf86aeb6129485a945e284a32ec6d9e48ffa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dani=C3=ABl?= Date: Wed, 11 Jan 2023 12:28:17 +0100 Subject: [PATCH 4/5] - --- addons/settings/fnc_gui_settingSlider.sqf | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/addons/settings/fnc_gui_settingSlider.sqf b/addons/settings/fnc_gui_settingSlider.sqf index a37191f8d4..5ec25faed7 100644 --- a/addons/settings/fnc_gui_settingSlider.sqf +++ b/addons/settings/fnc_gui_settingSlider.sqf @@ -4,11 +4,13 @@ params ["_controlsGroup", "_setting", "_source", "_currentValue", "_settingData" _settingData params ["_min", "_max", "_trailingDecimals", "_isPercentage"]; private _range = _max - _min; +private _arrowStep = [(0.05 * _range), _trailingDecimals] call BIS_fnc_cutDecimals; +private _sliderSpeed = [(0.1 * _range), _trailingDecimals] call BIS_fnc_cutDecimals; private _ctrlSlider = _controlsGroup controlsGroupCtrl IDC_SETTING_SLIDER; _ctrlSlider sliderSetRange [_min, _max]; _ctrlSlider sliderSetPosition _currentValue; -_ctrlSlider sliderSetSpeed [0.05 * _range, 0.1 * _range]; +_ctrlSlider sliderSetSpeed [_arrowStep, _sliderSpeed]; _ctrlSlider setVariable [QGVAR(params), [_setting, _source, _trailingDecimals, _isPercentage]]; _ctrlSlider ctrlAddEventHandler ["SliderPosChanged", { @@ -47,6 +49,12 @@ _ctrlSlider ctrlAddEventHandler ["SliderPosChanged", { private _editText = if (_isPercentage) then { format [localize "STR_3DEN_percentageUnit", round (_currentValue * 100), "%"] } else { + if (_trailingDecimals < 0) then { + _currentValue = round _currentValue; + } else { + _currentValue = [_currentValue, _trailingDecimals] call BIS_fnc_cutDecimals; + }; + [_currentValue, 1, _trailingDecimals max 0] call CBA_fnc_formatNumber }; @@ -126,14 +134,19 @@ _controlsGroup setVariable [QFUNC(updateUI), { private _ctrlSlider = _controlsGroup controlsGroupCtrl IDC_SETTING_SLIDER; private _ctrlSliderEdit = _controlsGroup controlsGroupCtrl IDC_SETTING_SLIDER_EDIT; - _ctrlSlider sliderSetPosition _value; - private _editText = if (_isPercentage) then { format [localize "STR_3DEN_percentageUnit", round (_value * 100), "%"] } else { + if (_trailingDecimals < 0) then { + _value = round _value; + } else { + _value = [_value, _trailingDecimals] call BIS_fnc_cutDecimals; + }; + [_value, 1, _trailingDecimals max 0] call CBA_fnc_formatNumber }; + _ctrlSlider sliderSetPosition _value; _ctrlSliderEdit ctrlSetText _editText; // if new value is same as default value, grey out the default button From c3abc99ab8e2d757f1443329b7c284f663d9d205 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dani=C3=ABl?= Date: Wed, 11 Jan 2023 12:28:17 +0100 Subject: [PATCH 5/5] - Applied decimal rounding to manual ui change - Moved slidebar update to after rounding variable - Applied decimal formatting to slider speed/step --- addons/settings/fnc_gui_settingSlider.sqf | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/addons/settings/fnc_gui_settingSlider.sqf b/addons/settings/fnc_gui_settingSlider.sqf index a37191f8d4..5ec25faed7 100644 --- a/addons/settings/fnc_gui_settingSlider.sqf +++ b/addons/settings/fnc_gui_settingSlider.sqf @@ -4,11 +4,13 @@ params ["_controlsGroup", "_setting", "_source", "_currentValue", "_settingData" _settingData params ["_min", "_max", "_trailingDecimals", "_isPercentage"]; private _range = _max - _min; +private _arrowStep = [(0.05 * _range), _trailingDecimals] call BIS_fnc_cutDecimals; +private _sliderSpeed = [(0.1 * _range), _trailingDecimals] call BIS_fnc_cutDecimals; private _ctrlSlider = _controlsGroup controlsGroupCtrl IDC_SETTING_SLIDER; _ctrlSlider sliderSetRange [_min, _max]; _ctrlSlider sliderSetPosition _currentValue; -_ctrlSlider sliderSetSpeed [0.05 * _range, 0.1 * _range]; +_ctrlSlider sliderSetSpeed [_arrowStep, _sliderSpeed]; _ctrlSlider setVariable [QGVAR(params), [_setting, _source, _trailingDecimals, _isPercentage]]; _ctrlSlider ctrlAddEventHandler ["SliderPosChanged", { @@ -47,6 +49,12 @@ _ctrlSlider ctrlAddEventHandler ["SliderPosChanged", { private _editText = if (_isPercentage) then { format [localize "STR_3DEN_percentageUnit", round (_currentValue * 100), "%"] } else { + if (_trailingDecimals < 0) then { + _currentValue = round _currentValue; + } else { + _currentValue = [_currentValue, _trailingDecimals] call BIS_fnc_cutDecimals; + }; + [_currentValue, 1, _trailingDecimals max 0] call CBA_fnc_formatNumber }; @@ -126,14 +134,19 @@ _controlsGroup setVariable [QFUNC(updateUI), { private _ctrlSlider = _controlsGroup controlsGroupCtrl IDC_SETTING_SLIDER; private _ctrlSliderEdit = _controlsGroup controlsGroupCtrl IDC_SETTING_SLIDER_EDIT; - _ctrlSlider sliderSetPosition _value; - private _editText = if (_isPercentage) then { format [localize "STR_3DEN_percentageUnit", round (_value * 100), "%"] } else { + if (_trailingDecimals < 0) then { + _value = round _value; + } else { + _value = [_value, _trailingDecimals] call BIS_fnc_cutDecimals; + }; + [_value, 1, _trailingDecimals max 0] call CBA_fnc_formatNumber }; + _ctrlSlider sliderSetPosition _value; _ctrlSliderEdit ctrlSetText _editText; // if new value is same as default value, grey out the default button