/Tukui/core/configui.lua

http://github.com/Asphyxia/Tukui · Lua · 60 lines · 48 code · 7 blank · 5 comment · 32 complexity · 9980bbb8a14060fdbd78d443d8c5da51 MD5 · raw file

  1. ----------------------------------------------------------------------------
  2. -- This Module loads new user settings if TukUI_ConfigUI is loaded
  3. ----------------------------------------------------------------------------
  4. local T, C, L = unpack(select(2, ...)) -- Import Functions/Constants, Config, Locales
  5. local myPlayerRealm = GetCVar("realmName")
  6. local myPlayerName = UnitName("player")
  7. if not IsAddOnLoaded("TukUI_ConfigUI") then return end
  8. if not TukuiConfigAll then TukuiConfigAll = {} end
  9. if (TukuiConfigAll[myPlayerRealm] == nil) then TukuiConfigAll[myPlayerRealm] = {} end
  10. if (TukuiConfigAll[myPlayerRealm][myPlayerName] == nil) then TukuiConfigAll[myPlayerRealm][myPlayerName] = false end
  11. if TukuiConfigAll[myPlayerRealm][myPlayerName] == true and not TukuiConfig then return end
  12. if TukuiConfigAll[myPlayerRealm][myPlayerName] == false and not TukuiConfigSettings then return end
  13. if TukuiConfigAll[myPlayerRealm][myPlayerName] == true then
  14. for group,options in pairs(TukuiConfig) do
  15. if C[group] then
  16. local count = 0
  17. for option,value in pairs(options) do
  18. if C[group][option] ~= nil then
  19. if C[group][option] == value then
  20. TukuiConfig[group][option] = nil
  21. else
  22. count = count+1
  23. C[group][option] = value
  24. end
  25. end
  26. end
  27. -- keeps TukuiConfig clean and small
  28. if count == 0 then TukuiConfig[group] = nil end
  29. else
  30. TukuiConfig[group] = nil
  31. end
  32. end
  33. else
  34. for group,options in pairs(TukuiConfigSettings) do
  35. if C[group] then
  36. local count = 0
  37. for option,value in pairs(options) do
  38. if C[group][option] ~= nil then
  39. if C[group][option] == value then
  40. TukuiConfigSettings[group][option] = nil
  41. else
  42. count = count+1
  43. C[group][option] = value
  44. end
  45. end
  46. end
  47. -- keeps TukuiConfig clean and small
  48. if count == 0 then TukuiConfigSettings[group] = nil end
  49. else
  50. TukuiConfigSettings[group] = nil
  51. end
  52. end
  53. end