Mercurial > wow > reaction
comparison Profile.lua @ 257:920d17851a93 stable
Merge 1.1 beta 4 to stable
author | Flick |
---|---|
date | Tue, 12 Apr 2011 16:06:31 -0700 |
parents | afb5ff4eccc0 |
children | 36a29870bf34 |
comparison
equal
deleted
inserted
replaced
210:b2b105747466 | 257:920d17851a93 |
---|---|
1 local _, addonTable = ... | |
2 local ReAction = addonTable.ReAction | |
3 | |
4 ReAction.PROFILEVERSION_LATEST = 2 | |
5 | |
6 ReAction.defaultProfile = { | |
7 profile = { | |
8 dbversion = nil, | |
9 bars = { }, | |
10 options = { | |
11 hideBlizzardBars = false, | |
12 hideBlizzardVehicleBar = false, | |
13 }, | |
14 }, | |
15 global = { | |
16 skipKeybindWarning = false, | |
17 } | |
18 } | |
19 | |
20 function ReAction:UpgradeProfile() | |
21 local db = self.db | |
22 | |
23 if not db.profile.dbversion then | |
24 -- upgrade from legacy db to v1 | |
25 | |
26 -- (1) remove unused defaultBars table (cleanup) | |
27 db.profile.defaultBars = nil | |
28 | |
29 -- (2) HideBlizzard is no longer a module | |
30 local hb = db:GetNamespace("HideBlizzard",true) or db:RegisterNamespace("HideBlizzard") | |
31 if hb then | |
32 db.profile.options.hideBlizzardBars = hb.profile.hide | |
33 db.profile.options.hideBlizzardVehicleBar = hb.profile.hideVehicle | |
34 hb:ResetProfile() | |
35 end | |
36 | |
37 -- (3) LBF is no longer a module | |
38 local bf = db:GetNamespace("ButtonFacade",true) or db:RegisterNamespace("ButtonFacade") | |
39 if bf then | |
40 for name, bar in pairs(db.profile.bars) do | |
41 bar.ButtonFacade = bf.profile[name] or bar.ButtonFacade | |
42 end | |
43 bf:ResetProfile() | |
44 end | |
45 | |
46 -- (4) Action module uses the bar config directly | |
47 local action = db:GetNamespace("Action",true) or db:RegisterNamespace("Action") | |
48 if action then | |
49 for name, bar in pairs(db.profile.bars) do | |
50 local ac = action.profile.bars and action.profile.bars[name] | |
51 if ac then | |
52 for key, value in pairs(ac) do | |
53 bar[key] = value | |
54 end | |
55 end | |
56 end | |
57 action:ResetProfile() | |
58 end | |
59 | |
60 -- (5) Bags module uses the bar config directly | |
61 local bag = db:GetNamespace("Bag",true) or db:RegisterNamespace("Bag") | |
62 if bag then | |
63 for name, bar in pairs(db.profile.bars) do | |
64 local bc = bag.profile.buttons and bag.profile.buttons[name] | |
65 if bc then | |
66 bar.buttons = bc | |
67 end | |
68 end | |
69 bag:ResetProfile() | |
70 end | |
71 | |
72 -- (6) Pet module uses the bar config directly | |
73 local pet = db:GetNamespace("PetAction",true) or db:RegisterNamespace("PetAction") | |
74 if pet then | |
75 for name, bar in pairs(db.profile.bars) do | |
76 local pc = pet.profile.buttons and pet.profile.buttons[name] | |
77 if pc then | |
78 bar.buttons = pc | |
79 end | |
80 end | |
81 pet:ResetProfile() | |
82 end | |
83 | |
84 -- (7) Stance module uses the bar config directly | |
85 local stance = db:GetNamespace("Stance",true) or db:RegisterNamespace("Stance") | |
86 if stance then | |
87 for name, bar in pairs(db.profile.bars) do | |
88 local sc = stance.profile.buttons and stance.profile.buttons[name] | |
89 if sc then | |
90 bar.buttons = sc | |
91 end | |
92 end | |
93 stance:ResetProfile() | |
94 end | |
95 | |
96 -- (8) Totem module uses the bar config directly | |
97 local totem = db:GetNamespace("Totem",true) or db:RegisterNamespace("Totem") | |
98 if totem then | |
99 for name, bar in pairs(db.profile.bars) do | |
100 local tc = totem.profile.buttons and totem.profile.buttons[name] | |
101 if tc then | |
102 bar.buttons = tc | |
103 end | |
104 end | |
105 totem:ResetProfile() | |
106 end | |
107 | |
108 -- (9) Vehicle exit button uses the bar config directly | |
109 local vehicle = db:GetNamespace("VehicleExit",true) or db:RegisterNamespace("VehicleExit") | |
110 if vehicle then | |
111 for name, bar in pairs(db.profile.bars) do | |
112 local vc = vehicle.profile.buttons and vehicle.profile.buttons[name] | |
113 if vc then | |
114 bar.buttons = vc | |
115 end | |
116 end | |
117 vehicle:ResetProfile() | |
118 end | |
119 | |
120 db.profile.dbversion = 1 | |
121 end | |
122 | |
123 | |
124 if db.profile.dbversion < 2 then | |
125 -- upgrade from v1 to v2 | |
126 | |
127 -- (10) State module uses the bar config directly | |
128 local state = db:GetNamespace("State",true) or db:RegisterNamespace("State") | |
129 if state then | |
130 for name, bar in pairs(db.profile.bars) do | |
131 local sc = state.profile.bars and state.profile.bars[name] and state.profile.bars[name].states | |
132 if sc then | |
133 bar.states = sc | |
134 end | |
135 end | |
136 state:ResetProfile() | |
137 end | |
138 | |
139 db.profile.dbversion = 2 | |
140 end | |
141 | |
142 db.profile.dbversion = self.PROFILEVERSION_LATEST | |
143 end | |
144 | |
145 function ReAction:OnProfileChanged() | |
146 self:UpgradeProfile() | |
147 self:RebuildAll() | |
148 if not self.db.global.skipKeybindWarning then | |
149 StaticPopup_Show("REACTION_KB_WARN") -- see Options.lua | |
150 end | |
151 end | |
152 | |
153 function ReAction:OnNewProfile() | |
154 self.db.profile.dbversion = ReAction.PROFILEVERSION_LATEST | |
155 self:OnProfileChanged() | |
156 end | |
157 |