Mercurial > wow > inventory
comparison Core.lua @ 9:3bac0bdd59e2
Close the summary frame when opening the config.
Remove ?track at? data when exporting/importing a group.
Don?t add items when importing a group that are already inside a group.
author | Zerotorescue |
---|---|
date | Sun, 10 Oct 2010 04:37:21 +0200 |
parents | 1a815139e4c3 |
children | c4d0e5d47e10 |
comparison
equal
deleted
inserted
replaced
8:1f30a9ac9027 | 9:3bac0bdd59e2 |
---|---|
264 function addon:CommandHandler(message) | 264 function addon:CommandHandler(message) |
265 local cmd, arg = string.split(" ", (message or ""), 2); | 265 local cmd, arg = string.split(" ", (message or ""), 2); |
266 cmd = string.lower(cmd); | 266 cmd = string.lower(cmd); |
267 | 267 |
268 if cmd == "c" or cmd == "config" or cmd == "conf" or cmd == "option" or cmd == "options" or cmd == "opt" or cmd == "setting" or cmd == "settings" then | 268 if cmd == "c" or cmd == "config" or cmd == "conf" or cmd == "option" or cmd == "options" or cmd == "opt" or cmd == "setting" or cmd == "settings" then |
269 -- We don't want any other windows open at this time. | |
270 for name, module in self:IterateModules() do | |
271 if module.CloseFrame then | |
272 module:CloseFrame(); | |
273 end | |
274 end | |
275 | |
269 self:Show(); | 276 self:Show(); |
270 elseif cmd == "d" or cmd == "debug" then | 277 elseif cmd == "d" or cmd == "debug" then |
271 self.debugChannel = false; | 278 self.debugChannel = false; |
272 for i = 1, NUM_CHAT_WINDOWS do | 279 for i = 1, NUM_CHAT_WINDOWS do |
273 local name = GetChatWindowInfo(i); | 280 local name = GetChatWindowInfo(i); |
289 print("New debug channel created."); | 296 print("New debug channel created."); |
290 end | 297 end |
291 elseif slashArgs[cmd] then | 298 elseif slashArgs[cmd] then |
292 slashArgs[cmd](); | 299 slashArgs[cmd](); |
293 else | 300 else |
294 print("Wrong command, available: /inventory config (or /inventory c)"); | 301 print("Wrong command, available: /inventory config (or /iy c) and /inventory summary (or /iy s)"); |
295 end | 302 end |
296 end | 303 end |
297 | 304 |
298 function addon:Load() | 305 function addon:Load() |
299 if not AceConfigDialog and not AceConfigRegistry then | 306 if not AceConfigDialog and not AceConfigRegistry then |
1208 local groupName = groupIdToName[info[2]]; | 1215 local groupName = groupIdToName[info[2]]; |
1209 | 1216 |
1210 -- We want to include the group name, so we copy the table then set another value | 1217 -- We want to include the group name, so we copy the table then set another value |
1211 local temp = CopyTable(addon.db.global.groups[groupName]); | 1218 local temp = CopyTable(addon.db.global.groups[groupName]); |
1212 temp.name = groupName; | 1219 temp.name = groupName; |
1220 temp.trackAtCharacters = nil; | |
1221 temp.overrideTrackAtCharacters = nil; | |
1213 | 1222 |
1214 if not AceSerializer then | 1223 if not AceSerializer then |
1215 AceSerializer = LibStub("AceSerializer-3.0"); | 1224 AceSerializer = LibStub("AceSerializer-3.0"); |
1216 end | 1225 end |
1217 | 1226 |
1436 type = "input", | 1445 type = "input", |
1437 multiline = true, | 1446 multiline = true, |
1438 name = "Group data", | 1447 name = "Group data", |
1439 desc = "Paste the group data as provided by a group export. If you are trying to import multiple groups at the same time, make sure to use newlines to seperate them.", | 1448 desc = "Paste the group data as provided by a group export. If you are trying to import multiple groups at the same time, make sure to use newlines to seperate them.", |
1440 set = function(info, value) | 1449 set = function(info, value) |
1441 local temp = { string.split("\n", value or "") }; | 1450 local data = { string.split("\n", value or "") }; |
1442 | 1451 |
1443 for no, current in pairs(temp) do | 1452 for _, current in pairs(data) do |
1444 if not AceSerializer then | 1453 if not AceSerializer then |
1445 AceSerializer = LibStub("AceSerializer-3.0"); | 1454 AceSerializer = LibStub("AceSerializer-3.0"); |
1446 end | 1455 end |
1447 | 1456 |
1448 local result, temp = AceSerializer:Deserialize(current); | 1457 local result, temp = AceSerializer:Deserialize(current); |
1452 print("|cffff0000The provided data is not supported.|r"); | 1461 print("|cffff0000The provided data is not supported.|r"); |
1453 return; | 1462 return; |
1454 else | 1463 else |
1455 name = temp.name; | 1464 name = temp.name; |
1456 temp.name = nil; | 1465 temp.name = nil; |
1466 print(("Importing %s..."):format(name)); | |
1457 end | 1467 end |
1458 | 1468 |
1459 local newGroupName = string.trim(string.lower(name or "")); | 1469 local newGroupName = string.trim(string.lower(name or "")); |
1460 | 1470 |
1461 for name in pairs(self.db.global.groups) do | 1471 for name in pairs(self.db.global.groups) do |
1462 if string.lower(name) == newGroupName then | 1472 if string.lower(name) == newGroupName then |
1463 print(("|cffff0000A group named \"%s\" already exists.|r"):format(name)); | 1473 print(("|cffff0000Aborting: A group named \"%s\" already exists.|r"):format(name)); |
1464 return; | 1474 return; |
1465 end | 1475 end |
1466 end | 1476 end |
1467 | 1477 |
1478 -- Remove items that are already in another group | |
1479 for value, _ in pairs(temp.items) do | |
1480 local itemId = tonumber(itemid); | |
1481 | |
1482 if not itemId then | |
1483 print(("\"%s\" is not a number."):format(value)); | |
1484 temp.items[value] = nil; | |
1485 elseif InGroup(itemId) then | |
1486 print(("Skipping %s (#%d) as it is already in the group |cfffed000%s|r."):format(select(2, GetItemInfo(itemId)) or "Unknown", itemId, InGroup(itemId))); | |
1487 temp.items[value] = nil; | |
1488 else | |
1489 -- Ensure the keys are numeric | |
1490 temp.items[value] = nil; | |
1491 temp.items[itemId] = true; | |
1492 end | |
1493 end | |
1494 | |
1495 -- Ensure this data isn't received (this would be buggy as exports from other accounts won't know what to do with this) | |
1496 temp.trackAtCharacters = nil; | |
1497 temp.overrideTrackAtCharacters = nil; | |
1498 | |
1468 self.db.global.groups[name] = temp; | 1499 self.db.global.groups[name] = temp; |
1469 | 1500 |
1470 self:FillGroupOptions(); | 1501 self:FillGroupOptions(); |
1471 end | 1502 end |
1472 end, | 1503 end, |