Mercurial > wow > inventory
comparison Core.lua @ 10:c4d0e5d47e10
Ok, please don?t crash again you silly Ace3 multiselect dropdown box. I know you?re itchy, but there?s nothing I can do for you.
Cleaned up group management layout, added a duplicate group button.
Track at character data is erased when exporting/importing groups.
Duplicate items are erased when importing groups.
Bug fixes and speed increases in Summary.
Added a button to refresh the cache.
Added a slider to increase caching speed.
Auction value will no longer be cached if the threshold was set to 0.
| author | Zerotorescue |
|---|---|
| date | Tue, 12 Oct 2010 02:08:37 +0200 |
| parents | 3bac0bdd59e2 |
| children | 10a2244f7ff0 |
comparison
equal
deleted
inserted
replaced
| 9:3bac0bdd59e2 | 10:c4d0e5d47e10 |
|---|---|
| 525 if _G['AceGUI30Pullout' .. i] then | 525 if _G['AceGUI30Pullout' .. i] then |
| 526 _G['AceGUI30Pullout' .. i]:Hide(); | 526 _G['AceGUI30Pullout' .. i]:Hide(); |
| 527 end | 527 end |
| 528 end | 528 end |
| 529 end, | 529 end, |
| 530 confirm = true, | |
| 530 dialogControl = "Dropdown", -- this is not standard, normal multiselect control gives us a list of all chars with toggle-boxes. UGLY! We want a multiselect-box instead. | 531 dialogControl = "Dropdown", -- this is not standard, normal multiselect control gives us a list of all chars with toggle-boxes. UGLY! We want a multiselect-box instead. |
| 531 }, | 532 }, |
| 532 }, | 533 }, |
| 533 }, | 534 }, |
| 534 refill = { | 535 refill = { |
| 1015 end | 1016 end |
| 1016 | 1017 |
| 1017 return temp; | 1018 return temp; |
| 1018 end, | 1019 end, |
| 1019 get = GetMultiOption, | 1020 get = GetMultiOption, |
| 1021 confirm = true, | |
| 1020 dialogControl = "Dropdown", -- this is not standard, normal multiselect control gives us a list of all chars with toggle-boxes. UGLY! We want a multiselect-box instead. | 1022 dialogControl = "Dropdown", -- this is not standard, normal multiselect control gives us a list of all chars with toggle-boxes. UGLY! We want a multiselect-box instead. |
| 1021 arg = "overrideTrackAtCharacters", | 1023 arg = "overrideTrackAtCharacters", |
| 1022 }, | 1024 }, |
| 1023 }, | 1025 }, |
| 1024 }, | 1026 }, |
| 1141 order = 20, | 1143 order = 20, |
| 1142 type = "group", | 1144 type = "group", |
| 1143 name = "Group Management", | 1145 name = "Group Management", |
| 1144 desc = "Rename, delete or export this group.", | 1146 desc = "Rename, delete or export this group.", |
| 1145 args = { | 1147 args = { |
| 1146 rename = { | 1148 actions = { |
| 1147 order = 10, | 1149 order = 10, |
| 1148 type = "group", | 1150 type = "group", |
| 1149 name = "Rename", | 1151 name = "Actions", |
| 1150 inline = true, | 1152 inline = true, |
| 1151 args = { | 1153 args = { |
| 1152 rename = { | 1154 rename = { |
| 1153 order = 10, | 1155 order = 10, |
| 1154 type = "input", | 1156 type = "input", |
| 1155 name = "New group name", | 1157 name = "Rename group - New name", |
| 1156 desc = "Change the name of this group to something else. You can also use item links here as you wish.", | 1158 desc = "Change the name of this group to something else. You can also use item links here as you wish.", |
| 1157 validate = ValidateGroupName, | 1159 validate = ValidateGroupName, |
| 1158 set = function(info, value) | 1160 set = function(info, value) |
| 1159 local oldGroupName = groupIdToName[info[2]]; | 1161 local oldGroupName = groupIdToName[info[2]]; |
| 1160 | 1162 |
| 1168 addon:FillGroupOptions(); | 1170 addon:FillGroupOptions(); |
| 1169 end, | 1171 end, |
| 1170 get = function(info) | 1172 get = function(info) |
| 1171 return groupIdToName[info[2]]; | 1173 return groupIdToName[info[2]]; |
| 1172 end, | 1174 end, |
| 1173 width = "double", | 1175 }, |
| 1174 }, | 1176 duplicate = { |
| 1175 }, | 1177 order = 20, |
| 1176 }, | 1178 type = "input", |
| 1177 delete = { | 1179 name = "Duplicate group - New name", |
| 1178 order = 20, | 1180 desc = "Duplicate this group. You can also use item links here as you wish.\n\nAll item data will be erased.", |
| 1179 type = "group", | 1181 validate = ValidateGroupName, |
| 1180 name = "Delete", | 1182 set = function(info, value) |
| 1181 inline = true, | 1183 local oldGroupName = groupIdToName[info[2]]; |
| 1182 args = { | 1184 |
| 1185 addon.db.global.groups[value] = CopyTable(addon.db.global.groups[oldGroupName]); | |
| 1186 | |
| 1187 -- Reset item data (duplicate items me no want) | |
| 1188 addon.db.global.groups[value].items = nil; | |
| 1189 | |
| 1190 addon:FillGroupOptions(); | |
| 1191 end, | |
| 1192 get = false, | |
| 1193 }, | |
| 1183 delete = { | 1194 delete = { |
| 1184 order = 10, | 1195 order = 30, |
| 1185 type = "execute", | 1196 type = "execute", |
| 1186 name = "Delete group", | 1197 name = "Delete group", |
| 1187 desc = "Delete the currently selected group.", | 1198 desc = "Delete the currently selected group.", |
| 1188 confirm = true, | 1199 confirm = true, |
| 1189 confirmText = "Are you sure you wish to |cffff0000DELETE|r this group? This action is not reversable!", | 1200 confirmText = "Are you sure you wish to |cffff0000DELETE|r this group? This action is not reversable!", |
| 1196 end, | 1207 end, |
| 1197 }, | 1208 }, |
| 1198 }, | 1209 }, |
| 1199 }, | 1210 }, |
| 1200 export = { | 1211 export = { |
| 1201 order = 30, | 1212 order = 40, |
| 1202 type = "group", | 1213 type = "group", |
| 1203 name = "Export", | 1214 name = "Export", |
| 1204 inline = true, | 1215 inline = true, |
| 1205 args = { | 1216 args = { |
| 1206 input = { | 1217 input = { |
| 1453 if not AceSerializer then | 1464 if not AceSerializer then |
| 1454 AceSerializer = LibStub("AceSerializer-3.0"); | 1465 AceSerializer = LibStub("AceSerializer-3.0"); |
| 1455 end | 1466 end |
| 1456 | 1467 |
| 1457 local result, temp = AceSerializer:Deserialize(current); | 1468 local result, temp = AceSerializer:Deserialize(current); |
| 1458 local name; | |
| 1459 | 1469 |
| 1460 if not temp.name then | 1470 if not temp.name then |
| 1461 print("|cffff0000The provided data is not supported.|r"); | 1471 print("|cffff0000The provided data is not supported.|r"); |
| 1462 return; | 1472 elseif ValidateGroupName(nil, temp.name) ~= true then |
| 1473 print(("|cffff0000Aborting: A group named \"%s\" already exists.|r"):format(temp.name)); | |
| 1463 else | 1474 else |
| 1464 name = temp.name; | 1475 local name = temp.name; |
| 1465 temp.name = nil; | 1476 temp.name = nil; |
| 1466 print(("Importing %s..."):format(name)); | 1477 print(("Importing %s..."):format(name)); |
| 1478 | |
| 1479 -- Remove items that are already in another group | |
| 1480 for value, _ in pairs(temp.items) do | |
| 1481 local itemId = tonumber(itemid); | |
| 1482 | |
| 1483 if not itemId then | |
| 1484 print(("\"%s\" is not a number."):format(value)); | |
| 1485 temp.items[value] = nil; | |
| 1486 elseif InGroup(itemId) then | |
| 1487 print(("Skipping %s (#%d) as it is already in the group |cfffed000%s|r."):format(select(2, GetItemInfo(itemId)) or "Unknown", itemId, InGroup(itemId))); | |
| 1488 temp.items[value] = nil; | |
| 1489 else | |
| 1490 -- Ensure the keys are numeric | |
| 1491 temp.items[value] = nil; | |
| 1492 temp.items[itemId] = true; | |
| 1493 end | |
| 1494 end | |
| 1495 | |
| 1496 -- Ensure this data isn't received (this would be buggy as exports from other accounts won't know what to do with this) | |
| 1497 temp.trackAtCharacters = nil; | |
| 1498 temp.overrideTrackAtCharacters = nil; | |
| 1499 | |
| 1500 self.db.global.groups[name] = temp; | |
| 1467 end | 1501 end |
| 1468 | |
| 1469 local newGroupName = string.trim(string.lower(name or "")); | |
| 1470 | |
| 1471 for name in pairs(self.db.global.groups) do | |
| 1472 if string.lower(name) == newGroupName then | |
| 1473 print(("|cffff0000Aborting: A group named \"%s\" already exists.|r"):format(name)); | |
| 1474 return; | |
| 1475 end | |
| 1476 end | |
| 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 | |
| 1499 self.db.global.groups[name] = temp; | |
| 1500 | |
| 1501 self:FillGroupOptions(); | |
| 1502 end | 1502 end |
| 1503 | |
| 1504 self:FillGroupOptions(); | |
| 1503 end, | 1505 end, |
| 1504 get = false, | 1506 get = false, |
| 1505 width = "full", | 1507 width = "full", |
| 1506 }, | 1508 }, |
| 1507 }, | 1509 }, |
