Checkbox also update settings

This commit is contained in:
Roman Jaroš 2025-03-07 13:57:47 +01:00
parent 414aef6924
commit b6d64d65b5
6 changed files with 45 additions and 40 deletions

View file

@ -29,29 +29,20 @@ local function RegisterProxySettings(name, title, setter)
) )
end end
local function CreateCheckbox(name, title) local function CreateCheckbox(name, title, setter)
Settings.CreateCheckbox( local register = RegisterAddOnSettings(name, title)
Options.category, register:SetValueChangedCallback(setter)
RegisterAddOnSettings(name, title) Settings.CreateCheckbox(Options.category, register)
)
end end
local function CreateDropdown(name, title, items, setter) local function CreateDropdown(name, title, items, setter)
Settings.CreateDropdown( Settings.CreateDropdown(Options.category, RegisterProxySettings(name, title, setter), items)
Options.category,
RegisterProxySettings(name, title, setter),
items
)
end end
local function CreateSlider(name, title, min, max, step, setter) local function CreateSlider(name, title, min, max, step, setter)
local options = Settings.CreateSliderOptions(min, max, step) local options = Settings.CreateSliderOptions(min, max, step)
options:SetLabelFormatter(MinimalSliderWithSteppersMixin.Label.Right); options:SetLabelFormatter(MinimalSliderWithSteppersMixin.Label.Right);
Settings.CreateSlider( Settings.CreateSlider(Options.category, RegisterProxySettings(name, title, setter), options)
Options.category,
RegisterProxySettings(name, title, setter),
options
)
end end
local function CreateButton(title, label, setter) local function CreateButton(title, label, setter)
@ -61,27 +52,30 @@ local function CreateButton(title, label, setter)
end end
local function InitQuests() local function InitQuests()
local function Update(name, value)
CzechQuestsAddon_Store.config[name] = value
addon.QuestFrame:UpdateSettings()
end
local function CreateQuestCheckbox(name, title)
CreateCheckbox(name, title, function (_, value) Update(name, value) end)
end
local function CreateQuestDropdown(name, title, items) local function CreateQuestDropdown(name, title, items)
CreateDropdown(name, title, items, function (value) CreateDropdown(name, title, items, function (value) Update(name, value) end)
CzechQuestsAddon_Store.config[name] = value
addon.QuestFrame:UpdateSettings()
end)
end end
local function CreateQuestSlider(name, title, min, max, step) local function CreateQuestSlider(name, title, min, max, step)
CreateSlider(name, title, min, max, step, function (value) CreateSlider(name, title, min, max, step, function (value) Update(name, value) end)
CzechQuestsAddon_Store.config[name] = value
addon.QuestFrame:UpdateSettings()
end)
end end
local layout = Options.layout local layout = Options.layout
layout:AddInitializer(CreateSettingsListSectionHeaderInitializer("Questy")) layout:AddInitializer(CreateSettingsListSectionHeaderInitializer("Questy"))
CreateCheckbox("QUEST_ENABLED", "Zapnout") CreateQuestCheckbox("QUEST_ENABLED", "Zapnout")
if (WOW_PROJECT_ID == WOW_PROJECT_CLASSIC) then if (WOW_PROJECT_ID == WOW_PROJECT_CLASSIC) then
CreateCheckbox("QUEST_DARK_MODE", "Pouzit tmavy rezim") CreateQuestCheckbox("QUEST_DARK_MODE", "Pouzit tmavy rezim")
end end
CreateQuestDropdown("QUEST_HEADER_FONT_NAME", "Pismo nadpisu", addon.API.GetFontContainer) CreateQuestDropdown("QUEST_HEADER_FONT_NAME", "Pismo nadpisu", addon.API.GetFontContainer)
@ -90,11 +84,18 @@ local function InitQuests()
CreateQuestSlider("QUEST_HEADER_FONT_SIZE", "Velikost nadpisu", 10, 30, 1) CreateQuestSlider("QUEST_HEADER_FONT_SIZE", "Velikost nadpisu", 10, 30, 1)
CreateQuestSlider("QUEST_TEXT_FONT_SIZE", "Velikost textu", 10, 30, 1) CreateQuestSlider("QUEST_TEXT_FONT_SIZE", "Velikost textu", 10, 30, 1)
CreateSlider("QUEST_TEXTURE_ALPHA", "Pruhlednost pozadi", 10, 100, 10) CreateQuestSlider("QUEST_TEXTURE_ALPHA", "Pruhlednost pozadi", 10, 100, 10)
CreateCheckbox("QUEST_TEXTURE_ALPHA_ONLY_MOVING", "Pruhlednost pouze pri chuzi") CreateQuestCheckbox("QUEST_TEXTURE_ALPHA_ONLY_MOVING", "Pruhlednost pouze pri chuzi")
end end
local function InitSpeeches() local function InitSpeeches()
local function CreateSpeechCheckbox(name, title)
CreateCheckbox(name, title, function (_, value)
CzechQuestsAddon_Store.config[name] = value
addon.SpeechFrame:UpdateSettings()
end)
end
local function CreateSpeechDropdown(name, title, items) local function CreateSpeechDropdown(name, title, items)
CreateDropdown(name, title, items, function (value) CreateDropdown(name, title, items, function (value)
CzechQuestsAddon_Store.config[name] = value CzechQuestsAddon_Store.config[name] = value
@ -112,14 +113,14 @@ local function InitSpeeches()
local layout = Options.layout local layout = Options.layout
layout:AddInitializer(CreateSettingsListSectionHeaderInitializer("Bubliny")) layout:AddInitializer(CreateSettingsListSectionHeaderInitializer("Bubliny"))
CreateCheckbox("SPEECH_ENABLED", "Zapnout") CreateSpeechCheckbox("SPEECH_ENABLED", "Zapnout")
CreateSpeechDropdown("SPEECH_TEXT_FONT_NAME", "Pismo *", addon.API.GetFontContainer) CreateSpeechDropdown("SPEECH_TEXT_FONT_NAME", "Pismo *", addon.API.GetFontContainer)
CreateSpeechSlider("SPEECH_TEXT_FONT_SIZE", "Velikost pisma *", 10, 30, 1) CreateSpeechSlider("SPEECH_TEXT_FONT_SIZE", "Velikost pisma *", 10, 30, 1)
CreateSpeechSlider("SPEECH_FRAME_WIDTH", "Sirka okna", 200, 1000, 10) CreateSpeechSlider("SPEECH_FRAME_WIDTH", "Sirka okna", 200, 1000, 10)
CreateCheckbox("SPEECH_ORIGINAL_WHEN_MISSING", "Original pokud není preklad ") CreateSpeechCheckbox("SPEECH_ORIGINAL_WHEN_MISSING", "Original pokud není preklad ")
CreateButton('Resetovat pozici okna', "RESET", function() CreateButton('Resetovat pozici okna', "RESET", function()
CzechQuestsAddon_Store.config.SPEECH_FRAME_POSITION = { x = 0, y = 0} CzechQuestsAddon_Store.config.SPEECH_FRAME_POSITION = { x = 0, y = 0}
@ -135,7 +136,7 @@ local function InitOthers()
local layout = Options.layout local layout = Options.layout
layout:AddInitializer(CreateSettingsListSectionHeaderInitializer("Ostatni")) layout:AddInitializer(CreateSettingsListSectionHeaderInitializer("Ostatni"))
CreateCheckbox("DEBUG_MODE", "Zapnout DEBUG") CreateCheckbox("DEBUG_MODE", "Zapnout DEBUG", function() end)
end end
local function InitOptions() local function InitOptions()

View file

@ -19,6 +19,10 @@ local function SplitSentences(paragraph)
return sentences return sentences
end end
local function ReplaceMultipleBreakLines(text)
return text:gsub("\r?\n+", "\n\n")
end
local function ParseParagraphs(original_text, translation_text) local function ParseParagraphs(original_text, translation_text)
if original_text == "" or original_text == nil then if original_text == "" or original_text == nil then
return translation_text return translation_text
@ -54,8 +58,8 @@ local function ParseParagraphs(original_text, translation_text)
table.insert(translation_paragraphs, table.concat(collected, " ")) table.insert(translation_paragraphs, table.concat(collected, " "))
end end
local final_text = table.concat(translation_paragraphs, "\n") return ReplaceMultipleBreakLines(
table.concat(translation_paragraphs, "\n")
return final_text )
end end
addon.API.ParseParagraphs = ParseParagraphs addon.API.ParseParagraphs = ParseParagraphs

View file

@ -17,7 +17,7 @@ local function ShowQuestTranslation(event)
local data = CzechQuestsAddon:GetData("quest", questId) local data = CzechQuestsAddon:GetData("quest", questId)
if data then if data then
local title = GetQuestTitle(data.title, questId) local title = GetQuestTitle(data.title, questId)
frame:SetData(title, data.objective, "Popis", data.description, QuestLogFrame, 0, 0) frame:SetData(title, data.objective, "Popis", data.description, QuestLogFrame, -20, -20)
end end
end end
end end

View file

@ -71,7 +71,7 @@ function QuestFrame:ApplyTheme()
self.Texture:SetTexture("Interface/QUESTFRAME/QuestBG"); self.Texture:SetTexture("Interface/QUESTFRAME/QuestBG");
self.Texture:SetTexCoord(0, .58, 0.005, 0.66) self.Texture:SetTexCoord(0, .58, 0.005, 0.66)
self:SetTextColor(0, 0, 0, 1) self:SetTextColor(0, 0, 0, 1)
if not CzechQuestsAddon_Store.config.QUEST_DARK_MODE then if CzechQuestsAddon_Store.config.QUEST_DARK_MODE then
self:SetBackdropColor(0, 0, 0, 1) self:SetBackdropColor(0, 0, 0, 1)
self.Texture:SetColorTexture(0, 0, 0, 1) self.Texture:SetColorTexture(0, 0, 0, 1)
self:SetTextColor(255, 255, 255, 1) self:SetTextColor(255, 255, 255, 1)

View file

@ -24,9 +24,9 @@ local function ReflowMessages()
addon.SpeechFrame.ContentFrame:SetHeight(offsetY) addon.SpeechFrame.ContentFrame:SetHeight(offsetY)
-- Scroll down -- Scroll down
addon.SpeechFrame:UpdateScrollChildRect() --addon.SpeechFrame:UpdateScrollChildRect()
local maxScroll = addon.SpeechFrame:GetVerticalScrollRange() --local maxScroll = addon.SpeechFrame:GetVerticalScrollRange()
addon.SpeechFrame:SetVerticalScroll(maxScroll) --addon.SpeechFrame:SetVerticalScroll(maxScroll)
end end
local function RemoveMessage(frame) local function RemoveMessage(frame)

View file

@ -4,7 +4,7 @@ src_folder="."
wow_source_folder="retail" wow_source_folder="retail"
wow_destiny_folder="retail" wow_destiny_folder="retail"
#wow_destiny_folder="beta" wow_destiny_folder="beta"
#wow_source_folder="classic_era" #wow_source_folder="classic_era"
#wow_destiny_folder="classic_era" #wow_destiny_folder="classic_era"
@ -16,4 +16,4 @@ fswatch -o "$src_folder" | while read -r change; do
rsync -avu --delete "$src_folder" "$dest_folder" --exclude={'.*','*.png','*.sh','*.md','Addon/Data/**','downloader/**'} rsync -avu --delete "$src_folder" "$dest_folder" --exclude={'.*','*.png','*.sh','*.md','Addon/Data/**','downloader/**'}
rsync -au --delete "$src_folder/Addon/Data/$wow_source_folder/" "$dest_folder/Addon/Data/" rsync -au --delete "$src_folder/Addon/Data/$wow_source_folder/" "$dest_folder/Addon/Data/"
cp "$src_folder/Addon/Data/other.lua" "$dest_folder/Addon/Data/" cp "$src_folder/Addon/Data/other.lua" "$dest_folder/Addon/Data/"
done done