| 
flickerstreak@211
 | 
     1 local _, addonTable = ...
 | 
| 
flickerstreak@211
 | 
     2 local ReAction = addonTable.ReAction
 | 
| 
flickerstreak@211
 | 
     3 
 | 
| 
flickerstreak@211
 | 
     4 ReAction.PROFILEVERSION_LATEST = 1
 | 
| 
flickerstreak@211
 | 
     5 
 | 
| 
flickerstreak@213
 | 
     6 ReAction.defaultProfile = { 
 | 
| 
flickerstreak@213
 | 
     7   profile = {
 | 
| 
flickerstreak@213
 | 
     8     dbversion = nil,
 | 
| 
flickerstreak@213
 | 
     9     bars = { },
 | 
| 
flickerstreak@213
 | 
    10     options = { 
 | 
| 
flickerstreak@213
 | 
    11       hideBlizzardBars = false,
 | 
| 
flickerstreak@213
 | 
    12       hideBlizzardVehicleBar = false,
 | 
| 
flickerstreak@213
 | 
    13     },
 | 
| 
flickerstreak@213
 | 
    14   },
 | 
| 
flickerstreak@213
 | 
    15   global = {
 | 
| 
flickerstreak@213
 | 
    16     skipKeybindWarning = false,
 | 
| 
flickerstreak@213
 | 
    17   }
 | 
| 
flickerstreak@213
 | 
    18 }
 | 
| 
flickerstreak@213
 | 
    19 
 | 
| 
flickerstreak@213
 | 
    20 function ReAction:UpgradeProfile()
 | 
| 
flickerstreak@211
 | 
    21   local db = self.db
 | 
| 
flickerstreak@211
 | 
    22 
 | 
| 
flickerstreak@211
 | 
    23   if not db.profile.dbversion then
 | 
| 
flickerstreak@211
 | 
    24     -- upgrade from legacy db to v1
 | 
| 
flickerstreak@211
 | 
    25 
 | 
| 
flickerstreak@213
 | 
    26     -- (1) remove unused defaultBars table (cleanup)
 | 
| 
flickerstreak@211
 | 
    27     db.profile.defaultBars = nil
 | 
| 
flickerstreak@211
 | 
    28 
 | 
| 
flickerstreak@211
 | 
    29     -- (2) HideBlizzard is no longer a module
 | 
| 
flickerstreak@215
 | 
    30     local hb = db:GetNamespace("HideBlizzard",true) or db:RegisterNamespace("HideBlizzard")
 | 
| 
flickerstreak@213
 | 
    31     if hb then
 | 
| 
flickerstreak@213
 | 
    32       db.profile.options.hideBlizzardBars = hb.profile.hide
 | 
| 
flickerstreak@213
 | 
    33       db.profile.options.hideBlizzardVehicleBar = hb.profile.hideVehicle
 | 
| 
flickerstreak@213
 | 
    34       hb:ResetProfile()
 | 
| 
flickerstreak@213
 | 
    35     end
 | 
| 
flickerstreak@213
 | 
    36 
 | 
| 
flickerstreak@213
 | 
    37     -- (3) LBF is no longer a module
 | 
| 
flickerstreak@215
 | 
    38     local bf = db:GetNamespace("ButtonFacade",true) or db:RegisterNamespace("ButtonFacade")
 | 
| 
flickerstreak@213
 | 
    39     if bf then
 | 
| 
flickerstreak@213
 | 
    40       for name, bar in pairs(db.profile.bars) do
 | 
| 
flickerstreak@213
 | 
    41         bar.ButtonFacade = bf.profile[name] or bar.ButtonFacade
 | 
| 
flickerstreak@213
 | 
    42       end
 | 
| 
flickerstreak@213
 | 
    43       bf:ResetProfile()
 | 
| 
flickerstreak@211
 | 
    44     end
 | 
| 
flickerstreak@211
 | 
    45 
 | 
| 
flickerstreak@221
 | 
    46     -- (4) Action module uses the bar config directly
 | 
| 
flickerstreak@220
 | 
    47     local action = db:GetNamespace("Action",true) or db:RegisterNamespace("Action")
 | 
| 
flickerstreak@220
 | 
    48     if action then
 | 
| 
flickerstreak@222
 | 
    49       for name, bar in pairs(db.profile.bars) do
 | 
| 
flickerstreak@222
 | 
    50         local ac = action.profile.bars and action.profile.bars[name]
 | 
| 
flickerstreak@222
 | 
    51         if ac then
 | 
| 
flickerstreak@220
 | 
    52           for key, value in pairs(ac) do
 | 
| 
flickerstreak@222
 | 
    53             bar[key] = value
 | 
| 
flickerstreak@220
 | 
    54           end
 | 
| 
flickerstreak@220
 | 
    55         end
 | 
| 
flickerstreak@220
 | 
    56       end
 | 
| 
flickerstreak@220
 | 
    57       action:ResetProfile()
 | 
| 
flickerstreak@220
 | 
    58     end
 | 
| 
flickerstreak@220
 | 
    59 
 | 
| 
flickerstreak@221
 | 
    60     -- (5) Bags module uses the bar config directly
 | 
| 
flickerstreak@221
 | 
    61     local bag = db:GetNamespace("Bag",true) or db:RegisterNamespace("Bag")
 | 
| 
flickerstreak@221
 | 
    62     if bag then
 | 
| 
flickerstreak@222
 | 
    63       for name, bar in pairs(db.profile.bars) do
 | 
| 
flickerstreak@222
 | 
    64         local bc = bag.profile.buttons and bag.profile.buttons[name]
 | 
| 
flickerstreak@222
 | 
    65         if bc then
 | 
| 
flickerstreak@222
 | 
    66           bar.buttons = bc
 | 
| 
flickerstreak@222
 | 
    67         end
 | 
| 
flickerstreak@221
 | 
    68       end
 | 
| 
flickerstreak@221
 | 
    69       bag:ResetProfile()
 | 
| 
flickerstreak@221
 | 
    70     end
 | 
| 
flickerstreak@221
 | 
    71 
 | 
| 
flickerstreak@222
 | 
    72     -- (6) Pet module uses the bar config directly
 | 
| 
flickerstreak@222
 | 
    73     local pet = db:GetNamespace("PetAction",true) or db:RegisterNamespace("PetAction")
 | 
| 
flickerstreak@222
 | 
    74     if pet then
 | 
| 
flickerstreak@222
 | 
    75       for name, bar in pairs(db.profile.bars) do
 | 
| 
flickerstreak@222
 | 
    76         local pc = pet.profile.buttons and pet.profile.buttons[name]
 | 
| 
flickerstreak@222
 | 
    77         if pc then
 | 
| 
flickerstreak@222
 | 
    78           bar.buttons = pc
 | 
| 
flickerstreak@222
 | 
    79         end
 | 
| 
flickerstreak@222
 | 
    80       end
 | 
| 
flickerstreak@222
 | 
    81       pet:ResetProfile()
 | 
| 
flickerstreak@222
 | 
    82     end
 | 
| 
flickerstreak@222
 | 
    83 
 | 
| 
flickerstreak@222
 | 
    84     -- (7) Stance module uses the bar config directly
 | 
| 
flickerstreak@222
 | 
    85     local stance = db:GetNamespace("Stance",true) or db:RegisterNamespace("Stance")
 | 
| 
flickerstreak@222
 | 
    86     if stance then
 | 
| 
flickerstreak@222
 | 
    87       for name, bar in pairs(db.profile.bars) do
 | 
| 
flickerstreak@222
 | 
    88         local sc = stance.profile.buttons and stance.profile.buttons[name]
 | 
| 
flickerstreak@222
 | 
    89         if sc then
 | 
| 
flickerstreak@222
 | 
    90           bar.buttons = sc
 | 
| 
flickerstreak@222
 | 
    91         end
 | 
| 
flickerstreak@222
 | 
    92       end
 | 
| 
flickerstreak@222
 | 
    93       stance:ResetProfile()
 | 
| 
flickerstreak@222
 | 
    94     end
 | 
| 
flickerstreak@222
 | 
    95 
 | 
| 
flickerstreak@222
 | 
    96     -- (8) Totem module uses the bar config directly
 | 
| 
flickerstreak@222
 | 
    97     local totem = db:GetNamespace("Totem",true) or db:RegisterNamespace("Totem")
 | 
| 
flickerstreak@222
 | 
    98     if totem then
 | 
| 
flickerstreak@222
 | 
    99       for name, bar in pairs(db.profile.bars) do
 | 
| 
flickerstreak@222
 | 
   100         local tc = totem.profile.buttons and totem.profile.buttons[name]
 | 
| 
flickerstreak@222
 | 
   101         if tc then 
 | 
| 
flickerstreak@222
 | 
   102           bar.buttons = tc
 | 
| 
flickerstreak@222
 | 
   103         end
 | 
| 
flickerstreak@222
 | 
   104       end
 | 
| 
flickerstreak@222
 | 
   105       totem:ResetProfile()
 | 
| 
flickerstreak@222
 | 
   106     end
 | 
| 
flickerstreak@222
 | 
   107 
 | 
| 
flickerstreak@222
 | 
   108     -- (9) Vehicle exit button uses the bar config directly
 | 
| 
flickerstreak@222
 | 
   109     local vehicle = db:GetNamespace("VehicleExit",true) or db:RegisterNamespace("VehicleExit")
 | 
| 
flickerstreak@222
 | 
   110     if vehicle then
 | 
| 
flickerstreak@222
 | 
   111       for name, bar in pairs(db.profile.bars) do
 | 
| 
flickerstreak@222
 | 
   112         local vc = vehicle.profile.buttons and vehicle.profile.buttons[name]
 | 
| 
flickerstreak@222
 | 
   113         if vc then
 | 
| 
flickerstreak@222
 | 
   114           bar.buttons = vc
 | 
| 
flickerstreak@222
 | 
   115         end
 | 
| 
flickerstreak@222
 | 
   116       end
 | 
| 
flickerstreak@222
 | 
   117       vehicle:ResetProfile()
 | 
| 
flickerstreak@222
 | 
   118     end
 | 
| 
flickerstreak@222
 | 
   119 
 | 
| 
flickerstreak@211
 | 
   120     db.profile.dbversion = 1
 | 
| 
flickerstreak@211
 | 
   121   end
 | 
| 
flickerstreak@211
 | 
   122 
 | 
| 
flickerstreak@211
 | 
   123   db.profile.dbversion = self.PROFILEVERSION_LATEST
 | 
| 
flickerstreak@211
 | 
   124 end
 |