comparison LibModuleDBShare-1.0/LibModuleDBShare-1.0.lua @ 30:5c7143d32287

So? public APIs didn't work so well? back to data.
author Andrew Knoll <andrewtknoll@gmail.com>
date Mon, 18 Mar 2013 00:48:54 -0400
parents d8dd617017de
children ff0e10fd2a5f
comparison
equal deleted inserted replaced
29:d8dd617017de 30:5c7143d32287
10 10
11 if not LibModuleDBShare then return end -- No upgrade needed 11 if not LibModuleDBShare then return end -- No upgrade needed
12 12
13 -- Lua functions 13 -- Lua functions
14 local error, type, pairs, time = error, type, pairs, time; 14 local error, type, pairs, time = error, type, pairs, time;
15
16 -- Blizzard functions
17 local GetActiveSpecGroup = GetActiveSpecGroup;
18 15
19 -- Required Libraries 16 -- Required Libraries
20 local AceDB = LibStub("AceDB-3.0"); 17 local AceDB = LibStub("AceDB-3.0");
21 local AceDBOptions = LibStub("AceDBOptions-3.0"); 18 local AceDBOptions = LibStub("AceDBOptions-3.0");
22 local AceConfigRegistry = LibStub("AceConfigRegistry-3.0"); 19 local AceConfigRegistry = LibStub("AceConfigRegistry-3.0");
94 group.profileTimestamp = storedData.logoutTimestamp; 91 group.profileTimestamp = storedData.logoutTimestamp;
95 else 92 else
96 group.profileTimestamp = 0; 93 group.profileTimestamp = 0;
97 end 94 end
98 if usesDualSpec and storedData.altProfile then 95 if usesDualSpec and storedData.altProfile then
99 group.syncDB:SetDualSpecProfile(storedData.altProfile); 96 namespace = group.syncDB:GetNamespace("LibDualSpec-1.0");
100 group.syncDB:SetDualSpecEnabled(storedData.dualSpecEnabled); 97 namespace.char.enabled = storedData.dualSpecEnabled;
101 if storedData.dualSpecEnabled and storedData.activeSpecGroup ~= GetActiveSpecGroup() then 98 namespace.char.profile = storedData.altProfile;
102 group.syncDB:SetDualSpecProfile(group.syncDB:GetCurrentProfile()); 99 namespace.char.specGroup = storedData.activeSpecGroup;
103 group.syncDB:SetProfile(storedData.altProfile); 100 group.syncDB:CheckDualSpecState();
104 initialDB:SetProfile(storedData.altProfile);
105 end
106 end 101 end
107 -- add methods and callbacks 102 -- add methods and callbacks
108 for k, v in pairs(DBGroup) do 103 for k, v in pairs(DBGroup) do
109 group[k] = v; 104 group[k] = v;
110 end 105 end
154 local storedData = namespace.char; 149 local storedData = namespace.char;
155 if type(storedData.logoutTimestamp) == "number" and storedData.logoutTimestamp > self.profileTimestamp then 150 if type(storedData.logoutTimestamp) == "number" and storedData.logoutTimestamp > self.profileTimestamp then
156 self.squelchCallbacks = false; 151 self.squelchCallbacks = false;
157 self.syncDB:SetProfile(newDB:GetCurrentProfile()); 152 self.syncDB:SetProfile(newDB:GetCurrentProfile());
158 self.profileTimestamp = storedData.logoutTimestamp; 153 self.profileTimestamp = storedData.logoutTimestamp;
159 if self.usesDualSpec and storedData.altProfile then 154 if usesDualSpec and storedData.altProfile then
160 self.syncDB:SetDualSpecProfile(storedData.altProfile); 155 namespace = group.syncDB:GetNamespace("LibDualSpec-1.0");
161 self.syncDB:SetDualSpecEnabled(storedData.dualSpecEnabled); 156 namespace.char.enabled = storedData.dualSpecEnabled;
162 if storedData.dualSpecEnabled and storedData.activeSpecGroup ~= GetActiveSpecGroup() then 157 namespace.char.profile = storedData.altProfile;
163 self.syncDB:SetDualSpecProfile(self.syncDB:GetCurrentProfile()); 158 namespace.char.specGroup = storedData.activeSpecGroup;
164 self.syncDB:SetProfile(storedData.altProfile); 159 group.syncDB:CheckDualSpecState();
165 newDB:SetProfile(storedData.altProfile);
166 end
167 end 160 end
168 else 161 else
169 self.syncDB:SetProfile(syncProfile); 162 self.syncDB:SetProfile(syncProfile);
170 newDB:SetProfile(syncProfile); 163 newDB:SetProfile(syncProfile);
171 self.squelchCallbacks = false; 164 self.squelchCallbacks = false;