From 463387b7e9ec5dff75e577e85d5c99f051fffd30 Mon Sep 17 00:00:00 2001 From: Azumgi <4zumgi@gmail.com> Date: Wed, 5 Sep 2018 20:29:48 +0300 Subject: [PATCH] [Options] Add option for default collapsed widgets --- vmf/scripts/mods/vmf/modules/core/options.lua | 29 ++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/vmf/scripts/mods/vmf/modules/core/options.lua b/vmf/scripts/mods/vmf/modules/core/options.lua index 9d7eb2e..aa2867d 100644 --- a/vmf/scripts/mods/vmf/modules/core/options.lua +++ b/vmf/scripts/mods/vmf/modules/core/options.lua @@ -3,7 +3,28 @@ local vmf = get_mod("VMF") vmf.options_widgets_data = {} -- ##################################################################################################################### --- ##### Local functions ############################################################################################### +-- ##### Local functions (Default Collapsed Widgets) ################################################################### +-- ##################################################################################################################### + +-- @BUG: you can set it for disabled checkbox and it will be displayed as collapsed @TODO: fix it for new mod options +local function initialize_collapsed_widgets(mod, collapsed_widgets) + + local new_collapsed_widgets = {} + for _, collapsed_widget_name in ipairs(collapsed_widgets) do + if type(collapsed_widget_name) == "string" then + new_collapsed_widgets[collapsed_widget_name] = true + else + -- @TODO: throw an error + end + end + + local options_menu_collapsed_widgets = vmf:get("options_menu_collapsed_widgets") + options_menu_collapsed_widgets[mod:get_name()] = new_collapsed_widgets + vmf:set("options_menu_collapsed_widgets", options_menu_collapsed_widgets) +end + +-- ##################################################################################################################### +-- ##### Local functions (Initializaing Widget Data) ################################################################### -- ##################################################################################################################### ---------------- @@ -301,6 +322,12 @@ end -- ##################################################################################################################### vmf.initialize_mod_options = function (mod, options) + + -- If this is the first time user launches this mod, set collapsed widgets list to default + if options.collapsed_widgets and not Application.user_setting("mods_settings", mod:get_name()) then + initialize_collapsed_widgets(mod, options.collapsed_widgets) + end + -- Global localization (for all options elements) ('true' by defualt) local localize_options_global = options.localize ~= false -- Options widgets localization (inherits from global one, unless defined in 'widgets' table)