annotate Modules/Collected.lua @ 74:2ac9501046b7 v1.1.5

Oops, forgot to fill the date and rev.
author Zerotorescue
date Wed, 15 Sep 2010 17:33:20 +0200
parents f01e0184a275
children 364791db5503
rev   line source
Zerotorescue@0 1 local MailOpener = LibStub("AceAddon-3.0"):GetAddon("MailOpener");
Zerotorescue@31 2 local mod = MailOpener:NewModule("Collected", "AceEvent-3.0", "AceTimer-3.0");
Zerotorescue@70 3 local L = LibStub("AceLocale-3.0"):GetLocale("MailOpener");
Zerotorescue@0 4
Zerotorescue@68 5 mod.moduleDescription = L["Shows a simple summary of what has been collected at the mailbox."];
Zerotorescue@31 6 mod.moduleRequired = false;
Zerotorescue@3 7
Zerotorescue@31 8 -- Gold
Zerotorescue@0 9 local previousGold, earned, sessionEarned;
Zerotorescue@31 10 -- Items
Zerotorescue@0 11 local previousFreeSlotsAvailable, itemsGained, sessionItemsgained;
Zerotorescue@31 12 -- Mail
Zerotorescue@0 13 local previousMailCount, mailOpened, sessionMailOpened;
Zerotorescue@31 14 -- Time
Zerotorescue@0 15 local timeStarted, sessionTimeSpent; -- even though the first contains GetTime(), the second var will be filled with actual seconds
Zerotorescue@31 16
Zerotorescue@0 17 local updated;
Zerotorescue@0 18
Zerotorescue@31 19 function mod:OnInitialize()
Zerotorescue@0 20 local defaults = {
Zerotorescue@0 21 profile = {
Zerotorescue@0 22 trackGold = true,
Zerotorescue@0 23 trackItems = true,
Zerotorescue@0 24 trackMail = true,
Zerotorescue@55 25 trackTimeSpent = true,
Zerotorescue@0 26 sessionSummary = false,
Zerotorescue@0 27 batchSummary = false,
Zerotorescue@0 28 },
Zerotorescue@0 29 };
Zerotorescue@0 30
Zerotorescue@0 31 -- Register our saved variables NameSpace
Zerotorescue@0 32 self.db = MailOpener.db:RegisterNamespace("Collected", defaults);
Zerotorescue@0 33 end
Zerotorescue@0 34
Zerotorescue@31 35 function mod:OnEnable()
Zerotorescue@0 36 self:Debug("OnEnable");
Zerotorescue@0 37
Zerotorescue@0 38 self:RegisterEvent("MAIL_SHOW");
Zerotorescue@0 39
Zerotorescue@0 40 MailOpener:TogglePostalModule("Rake", false);
Zerotorescue@0 41
Zerotorescue@0 42 sessionEarned = 0;
Zerotorescue@0 43 sessionItemsgained = 0;
Zerotorescue@0 44 sessionMailOpened = 0;
Zerotorescue@0 45 sessionTimeSpent = 0;
Zerotorescue@0 46
Zerotorescue@0 47 -- If we were toggling this module on while the mailbox is opened we must register all events again
Zerotorescue@0 48 if MailFrame:IsVisible() then
Zerotorescue@0 49 self:MAIL_SHOW();
Zerotorescue@0 50 end
Zerotorescue@0 51 end
Zerotorescue@0 52
Zerotorescue@0 53 -- Even though Ace can unregister our events it's neater to do it manually too
Zerotorescue@31 54 function mod:OnDisable()
Zerotorescue@0 55 self:Debug("OnDisable");
Zerotorescue@0 56
Zerotorescue@0 57 self:UnregisterEvent("MAIL_SHOW");
Zerotorescue@0 58
Zerotorescue@0 59 self:Stop();
Zerotorescue@0 60
Zerotorescue@0 61 MailOpener:TogglePostalModule("Rake", true);
Zerotorescue@0 62 end
Zerotorescue@0 63
Zerotorescue@31 64 function mod:MAIL_SHOW()
Zerotorescue@0 65 self:Debug("MAIL_SHOW");
Zerotorescue@0 66
Zerotorescue@0 67 -- Unbind / reset all previous events and settings
Zerotorescue@0 68 self:Stop();
Zerotorescue@0 69
Zerotorescue@0 70 self:RegisterEvent("MAIL_CLOSED");
Zerotorescue@0 71
Zerotorescue@0 72 if self.db.profile.batchSummary then
Zerotorescue@0 73 self:RegisterMessage("MO_OPEN_COMPLETE");
Zerotorescue@0 74 end
Zerotorescue@0 75
Zerotorescue@0 76 -- Money
Zerotorescue@0 77 if self.db.profile.trackGold then
Zerotorescue@0 78 self:RegisterEvent("PLAYER_MONEY");
Zerotorescue@0 79
Zerotorescue@0 80 previousGold = GetMoney();
Zerotorescue@0 81 earned = 0;
Zerotorescue@0 82 end
Zerotorescue@0 83
Zerotorescue@0 84 -- Items
Zerotorescue@0 85 if self.db.profile.trackItems then
Zerotorescue@0 86 self:RegisterEvent("BAG_UPDATE");
Zerotorescue@0 87
Zerotorescue@0 88 previousFreeSlotsAvailable = self:GetNumFreeSlots();
Zerotorescue@0 89 itemsGained = 0;
Zerotorescue@0 90 end
Zerotorescue@0 91
Zerotorescue@0 92 -- Mail
Zerotorescue@0 93 if self.db.profile.trackMail then
Zerotorescue@0 94 self:RegisterEvent("MAIL_INBOX_UPDATE");
Zerotorescue@0 95
Zerotorescue@0 96 previousMailCount = nil;
Zerotorescue@0 97 mailOpened = 0;
Zerotorescue@0 98 end
Zerotorescue@0 99
Zerotorescue@0 100 -- Time Spent
Zerotorescue@0 101 if self.db.profile.trackTimeSpent then
Zerotorescue@0 102 timeStarted = GetTime();
Zerotorescue@0 103 end
Zerotorescue@0 104 end
Zerotorescue@0 105
Zerotorescue@31 106 function mod:MAIL_CLOSED()
Zerotorescue@0 107 self:Debug("MAIL_CLOSED");
Zerotorescue@0 108
Zerotorescue@0 109 self:Summarize();
Zerotorescue@0 110
Zerotorescue@0 111 self:Stop();
Zerotorescue@0 112 end
Zerotorescue@0 113
Zerotorescue@31 114 function mod:PLAYER_MONEY()
Zerotorescue@0 115 -- Sending mail does not interest us, so only remember what we earned
Zerotorescue@0 116 local currentGold = GetMoney();
Zerotorescue@0 117
Zerotorescue@0 118 if currentGold > previousGold then
Zerotorescue@0 119 local goldEarned = ( currentGold - previousGold );
Zerotorescue@0 120
Zerotorescue@0 121 earned = ( earned + goldEarned );
Zerotorescue@0 122
Zerotorescue@0 123 updated = true;
Zerotorescue@0 124
Zerotorescue@0 125 if self.db.profile.sessionSummary then
Zerotorescue@0 126 sessionEarned = ( sessionEarned + goldEarned );
Zerotorescue@0 127 end
Zerotorescue@0 128 end
Zerotorescue@0 129
Zerotorescue@0 130 previousGold = currentGold;
Zerotorescue@0 131 end
Zerotorescue@0 132
Zerotorescue@31 133 function mod:BAG_UPDATE()
Zerotorescue@0 134 -- Sending mail does not interest us, so only remember what we earned
Zerotorescue@0 135 local freeSlotAvailable = self:GetNumFreeSlots();
Zerotorescue@0 136
Zerotorescue@0 137 if freeSlotAvailable < previousFreeSlotsAvailable then
Zerotorescue@0 138 -- we lost a slot, so gained an item
Zerotorescue@0 139
Zerotorescue@0 140 local gained = ( previousFreeSlotsAvailable - freeSlotAvailable );
Zerotorescue@0 141
Zerotorescue@0 142 itemsGained = ( itemsGained + gained );
Zerotorescue@0 143
Zerotorescue@0 144 updated = true;
Zerotorescue@0 145
Zerotorescue@0 146 if self.db.profile.sessionSummary then
Zerotorescue@0 147 sessionItemsgained = ( sessionItemsgained + gained );
Zerotorescue@0 148 end
Zerotorescue@0 149
Zerotorescue@0 150 --We may need the lines below if we get inaccurate counts
Zerotorescue@0 151 -- previousFreeSlotsAvailable = ( previousFreeSlotsAvailable - gained );
Zerotorescue@0 152 --elseif freeSlotAvailable > previousFreeSlotsAvailable then
Zerotorescue@0 153 -- an additional slot available, so we lost an item
Zerotorescue@0 154
Zerotorescue@0 155 -- local lost = ( freeSlotAvailable - previousFreeSlotsAvailable );
Zerotorescue@0 156
Zerotorescue@0 157 -- previousFreeSlotsAvailable = ( previousFreeSlotsAvailable + lost );
Zerotorescue@0 158 end
Zerotorescue@0 159
Zerotorescue@0 160 previousFreeSlotsAvailable = freeSlotAvailable;
Zerotorescue@0 161 end
Zerotorescue@0 162
Zerotorescue@31 163 function mod:MAIL_INBOX_UPDATE()
Zerotorescue@0 164 local numItems, _ = GetInboxNumItems();
Zerotorescue@0 165
Zerotorescue@0 166 if previousMailCount == nil then
Zerotorescue@0 167 previousMailCount = numItems;
Zerotorescue@0 168 else
Zerotorescue@0 169 if numItems < previousMailCount then
Zerotorescue@0 170 -- We lost a mail, which means we opened one without text
Zerotorescue@0 171
Zerotorescue@0 172 --local opened = ( previousMailCount - numItems );
Zerotorescue@0 173
Zerotorescue@0 174 mailOpened = ( mailOpened + 1 );
Zerotorescue@0 175
Zerotorescue@0 176 updated = true;
Zerotorescue@0 177
Zerotorescue@0 178 if self.db.profile.sessionSummary then
Zerotorescue@0 179 sessionMailOpened = ( sessionMailOpened + 1 );
Zerotorescue@0 180 end
Zerotorescue@0 181 end
Zerotorescue@0 182
Zerotorescue@0 183 previousMailCount = numItems;
Zerotorescue@0 184 end
Zerotorescue@0 185 end
Zerotorescue@0 186
Zerotorescue@31 187 function mod:MO_OPEN_COMPLETE()
Zerotorescue@0 188 -- Only summarize when changed
Zerotorescue@0 189 if updated then
Zerotorescue@0 190 self:Summarize();
Zerotorescue@0 191
Zerotorescue@0 192 updated = false;
Zerotorescue@0 193 end
Zerotorescue@0 194 end
Zerotorescue@0 195
Zerotorescue@31 196 function mod:Stop()
Zerotorescue@0 197 self:UnregisterEvent("MAIL_CLOSED");
Zerotorescue@0 198
Zerotorescue@0 199 -- Batch summary
Zerotorescue@0 200 self:UnregisterMessage("MO_OPEN_COMPLETE");
Zerotorescue@0 201
Zerotorescue@0 202 -- Clear any var in the memory remaining
Zerotorescue@0 203
Zerotorescue@0 204 -- Money
Zerotorescue@0 205 self:UnregisterEvent("PLAYER_MONEY");
Zerotorescue@0 206 previousGold = nil;
Zerotorescue@0 207 earned = nil;
Zerotorescue@0 208
Zerotorescue@0 209 -- Items
Zerotorescue@0 210 self:UnregisterEvent("BAG_UPDATE");
Zerotorescue@0 211 previousFreeSlotsAvailable = nil;
Zerotorescue@0 212 itemsGained = nil;
Zerotorescue@0 213
Zerotorescue@0 214 -- Mail
Zerotorescue@0 215 self:UnregisterEvent("MAIL_INBOX_UPDATE");
Zerotorescue@0 216 previousMailCount = nil;
Zerotorescue@0 217 mailOpened = nil;
Zerotorescue@0 218
Zerotorescue@0 219 -- Time Spent
Zerotorescue@0 220 timeStarted = nil;
Zerotorescue@0 221 end
Zerotorescue@0 222
Zerotorescue@31 223 function mod:Summarize()
Zerotorescue@0 224 -- Message buffer, append details we have data for
Zerotorescue@0 225 local printMessage = "";
Zerotorescue@0 226
Zerotorescue@0 227 local timeSpent;
Zerotorescue@0 228 if timeStarted then
Zerotorescue@0 229 timeSpent = ( GetTime() - timeStarted );
Zerotorescue@0 230
Zerotorescue@0 231 if self.db.profile.sessionSummary and self.db.profile.trackTimeSpent then
Zerotorescue@0 232 sessionTimeSpent = ( sessionTimeSpent + timeSpent );
Zerotorescue@0 233 end
Zerotorescue@0 234 end
Zerotorescue@0 235
Zerotorescue@0 236 -- Did we record any mail being opened?
Zerotorescue@0 237 if mailOpened and mailOpened > 0 then
Zerotorescue@0 238 -- Time Spent
Zerotorescue@1 239 if timeSpent and timeSpent > 0 then
Zerotorescue@37 240 local timeSpentMinutes = floor( timeSpent / 60 );
Zerotorescue@37 241 local timeSpentSeconds = ( timeSpent % 60 );
Zerotorescue@37 242 if timeSpentMinutes ~= 0 then
Zerotorescue@68 243 printMessage = printMessage .. format(L["Collected a total of %d mail within %d minutes and %d seconds."], mailOpened, timeSpentMinutes, timeSpentSeconds) .. " ";
Zerotorescue@37 244 else
Zerotorescue@68 245 printMessage = printMessage .. format("Collected a total of %d mail within %d seconds.", mailOpened, timeSpentSeconds) .. " ";
Zerotorescue@37 246 end
Zerotorescue@0 247 else
Zerotorescue@68 248 printMessage = printMessage .. format(L["Collected a total of %d mail."], mailOpened) .. " ";
Zerotorescue@0 249 end
Zerotorescue@1 250 elseif timeSpent and timeSpent > 0 then
Zerotorescue@37 251 local timeSpentMinutes = floor( timeSpent / 60 );
Zerotorescue@37 252 local timeSpentSeconds = ( timeSpent % 60 );
Zerotorescue@37 253 if timeSpentMinutes ~= 0 then
Zerotorescue@68 254 printMessage = printMessage .. format(L["Spent %d minutes and %d seconds collecting mail."], mailOpened, timeSpentMinutes, timeSpentSeconds) .. " ";
Zerotorescue@37 255 else
Zerotorescue@68 256 printMessage = printMessage .. format(L["Spent %d seconds collecting mail."], mailOpened, timeSpentSeconds) .. " ";
Zerotorescue@37 257 end
Zerotorescue@37 258 end
Zerotorescue@0 259
Zerotorescue@0 260 -- Did we record any items or gold being looted?
Zerotorescue@0 261 if (itemsGained and itemsGained > 0) and (earned and earned > 0) then
Zerotorescue@68 262 printMessage = printMessage .. format(L["You gained %d items and %s from this."], itemsGained, MailOpener:FormatMoney(earned));
Zerotorescue@0 263 elseif itemsGained and itemsGained > 0 then
Zerotorescue@68 264 printMessage = printMessage .. format(L["You gained %d items from this."], itemsGained);
Zerotorescue@0 265 elseif earned and earned > 0 then
Zerotorescue@68 266 printMessage = printMessage .. format(L["You gained %s from this."], MailOpener:FormatMoney(earned));
Zerotorescue@0 267 end
Zerotorescue@0 268
Zerotorescue@0 269 -- Did we record anything? print that!
Zerotorescue@0 270 if printMessage ~= "" then
Zerotorescue@68 271 MailOpener:Print(printMessage);
Zerotorescue@0 272 end
Zerotorescue@0 273
Zerotorescue@0 274 if self.db.profile.sessionSummary and ((sessionMailOpened and (not mailOpened or sessionMailOpened > mailOpened)) or (sessionTimeSpent and (not timeSpent or sessionTimeSpent > timeSpent)) or (sessionEarned and (not earned or sessionEarned > earned)) or (sessionItemsgained and (not itemsGained or sessionItemsgained > itemsGained))) then
Zerotorescue@0 275 -- Message buffer, append details we have data for
Zerotorescue@68 276 printMessage = "(Session summary)" .. " ";
Zerotorescue@0 277
Zerotorescue@0 278 -- Did we record any mail being opened?
Zerotorescue@0 279 if sessionMailOpened and sessionMailOpened > 0 then
Zerotorescue@0 280 -- Time Spent
Zerotorescue@1 281 if sessionTimeSpent and sessionTimeSpent > 0 then
Zerotorescue@37 282 local timeSpentMinutes = floor( sessionTimeSpent / 60 );
Zerotorescue@37 283 local timeSpentSeconds = ( sessionTimeSpent % 60 );
Zerotorescue@37 284 if timeSpentMinutes ~= 0 then
Zerotorescue@68 285 printMessage = printMessage .. format(L["Collected a total of %d mail within %d minutes and %d seconds this session."], mailOpened, timeSpentMinutes, timeSpentSeconds) .. " ";
Zerotorescue@37 286 else
Zerotorescue@68 287 printMessage = printMessage .. format(L["Collected a total of %d mail within %d seconds this session."], mailOpened, timeSpentSeconds) .. " ";
Zerotorescue@37 288 end
Zerotorescue@0 289 else
Zerotorescue@68 290 printMessage = printMessage .. format(L["Collected a total of %d mail this session."], sessionMailOpened) .. " ";
Zerotorescue@0 291 end
Zerotorescue@0 292 elseif sessionTimeSpent then
Zerotorescue@37 293 local timeSpentMinutes = floor( sessionTimeSpent / 60 );
Zerotorescue@37 294 local timeSpentSeconds = ( sessionTimeSpent % 60 );
Zerotorescue@37 295 if timeSpentMinutes ~= 0 then
Zerotorescue@68 296 printMessage = printMessage .. format(L["Spent %d minutes and %d seconds collecting mail this session."], mailOpened, timeSpentMinutes, timeSpentSeconds) .. " ";
Zerotorescue@37 297 else
Zerotorescue@68 298 printMessage = printMessage .. format(L["Spent %d seconds collecting mail this session."], mailOpened, timeSpentSeconds) .. " ";
Zerotorescue@37 299 end
Zerotorescue@37 300 end
Zerotorescue@37 301
Zerotorescue@0 302 -- Did we record any items or gold being looted?
Zerotorescue@0 303 if (sessionItemsgained and sessionItemsgained > 0) and (sessionEarned and sessionEarned > 0) then
Zerotorescue@68 304 printMessage = printMessage .. format(L["You gained %d items and %s from this."], sessionItemsgained, MailOpener:FormatMoney(sessionEarned));
Zerotorescue@0 305 elseif sessionItemsgained and sessionItemsgained > 0 then
Zerotorescue@68 306 printMessage = printMessage .. format(L["You gained %d items from this."], sessionItemsgained);
Zerotorescue@0 307 elseif sessionEarned and sessionEarned > 0 then
Zerotorescue@68 308 printMessage = printMessage .. format(L["You gained %s from this."], MailOpener:FormatMoney(sessionEarned));
Zerotorescue@0 309 end
Zerotorescue@0 310
Zerotorescue@0 311 -- Did we record anything? print that!
Zerotorescue@0 312 if printMessage ~= "" then
Zerotorescue@68 313 MailOpener:Print(printMessage);
Zerotorescue@0 314 end
Zerotorescue@0 315 end
Zerotorescue@0 316 end
Zerotorescue@0 317
Zerotorescue@31 318 function mod:GetNumFreeSlots()
Zerotorescue@0 319 local slotsAvailable = 0;
Zerotorescue@0 320 for bag = 0, 4 do
Zerotorescue@0 321 slotsAvailable = ( slotsAvailable + GetContainerNumFreeSlots(bag) );
Zerotorescue@0 322 end
Zerotorescue@0 323
Zerotorescue@0 324 return slotsAvailable;
Zerotorescue@0 325 end
Zerotorescue@0 326
Zerotorescue@31 327 function mod:GetOptionsGroup()
Zerotorescue@0 328 local configGroup = {
Zerotorescue@31 329 order = 0,
Zerotorescue@31 330 type = "modulesSubGroup",
Zerotorescue@68 331 name = L["Collected"],
Zerotorescue@68 332 desc = L["Change settings for the collected module."],
Zerotorescue@0 333 args = {
Zerotorescue@0 334 General = {
Zerotorescue@0 335 order = 10,
Zerotorescue@0 336 type = "group",
Zerotorescue@0 337 inline = true,
Zerotorescue@68 338 name = L["General"],
Zerotorescue@0 339 args = {
Zerotorescue@0 340 description = {
Zerotorescue@0 341 order = 10,
Zerotorescue@0 342 type = "description",
Zerotorescue@0 343 name = function()
Zerotorescue@68 344 local descText = L["With this button you can completely toggle this module |cff00ff00on|r or |cffff0000off|r. This setting will be remembered and the module will be automatically toggled |cff00ff00on|r or |cffff0000off|r upon logon as it was last set."] .. "\n\n";
Zerotorescue@0 345
Zerotorescue@0 346 if self:IsEnabled() then
Zerotorescue@68 347 descText = descText .. L["Status: %s"]:format(L["|cff00ff00Enabled|r"]);
Zerotorescue@0 348 else
Zerotorescue@68 349 descText = descText .. L["Status: %s"]:format(L["|cffff0000Disabled|r"]);
Zerotorescue@0 350 end
Zerotorescue@31 351
Zerotorescue@31 352 return descText;
Zerotorescue@0 353 end,
Zerotorescue@0 354 },
Zerotorescue@0 355 disable = {
Zerotorescue@0 356 order = 20,
Zerotorescue@0 357 type = "execute",
Zerotorescue@0 358 name = function()
Zerotorescue@0 359 if self:IsEnabled() then
Zerotorescue@68 360 return L["Disable Module"];
Zerotorescue@0 361 else
Zerotorescue@68 362 return L["Enable Module"];
Zerotorescue@0 363 end
Zerotorescue@0 364 end,
Zerotorescue@68 365 desc = L["Click here to completely toggle this module on or off."],
Zerotorescue@0 366 width = "double",
Zerotorescue@0 367 func = function()
Zerotorescue@0 368 if self:IsEnabled() then
Zerotorescue@0 369 self:Disable();
Zerotorescue@0 370
Zerotorescue@0 371 MailOpener.db.profile.modules[self:GetName()] = false;
Zerotorescue@0 372 else
Zerotorescue@0 373 self:Enable();
Zerotorescue@0 374
Zerotorescue@0 375 MailOpener.db.profile.modules[self:GetName()] = true;
Zerotorescue@0 376 end
Zerotorescue@0 377 end,
Zerotorescue@0 378 },
Zerotorescue@0 379 },
Zerotorescue@0 380 },
Zerotorescue@0 381 TrackStats = {
Zerotorescue@0 382 order = 20,
Zerotorescue@0 383 type = "group",
Zerotorescue@0 384 inline = true,
Zerotorescue@68 385 name = L["Track Stats"],
Zerotorescue@0 386 args = {
Zerotorescue@0 387 description = {
Zerotorescue@0 388 order = 10,
Zerotorescue@0 389 type = "description",
Zerotorescue@68 390 name = L["You can select what things to track. Toggling something off will stop tracking of it completely and reduce the resources used by Mail Opener (although you shouldn't notice a difference)."],
Zerotorescue@0 391 },
Zerotorescue@0 392 AHHeader = {
Zerotorescue@0 393 order = 15,
Zerotorescue@0 394 type = "header",
Zerotorescue@0 395 name = "",
Zerotorescue@0 396 },
Zerotorescue@0 397 trackGold = {
Zerotorescue@0 398 order = 20,
Zerotorescue@0 399 type = "toggle",
Zerotorescue@68 400 name = L["Track |cfffed000gold gained|r"],
Zerotorescue@68 401 desc = L["Track the amount of gold gained and display it when closing the mailbox."],
Zerotorescue@0 402 set = function(i, v)
Zerotorescue@0 403 self.db.profile.trackGold = v;
Zerotorescue@0 404
Zerotorescue@0 405 if MailFrame:IsVisible() then
Zerotorescue@0 406 self:MAIL_SHOW();
Zerotorescue@0 407 end
Zerotorescue@0 408 end,
Zerotorescue@0 409 get = function() return self.db.profile.trackGold; end,
Zerotorescue@0 410 },
Zerotorescue@0 411 trackItems = {
Zerotorescue@0 412 order = 30,
Zerotorescue@0 413 type = "toggle",
Zerotorescue@68 414 name = L["Track |cfffed000items gained|r"],
Zerotorescue@68 415 desc = L["Track the amount of items gained and display it when closing the mailbox."],
Zerotorescue@0 416 set = function(i, v)
Zerotorescue@0 417 self.db.profile.trackItems = v;
Zerotorescue@0 418
Zerotorescue@0 419 if MailFrame:IsVisible() then
Zerotorescue@0 420 self:MAIL_SHOW();
Zerotorescue@0 421 end
Zerotorescue@0 422 end,
Zerotorescue@0 423 get = function() return self.db.profile.trackItems; end,
Zerotorescue@0 424 },
Zerotorescue@0 425 trackMail = {
Zerotorescue@0 426 order = 40,
Zerotorescue@0 427 type = "toggle",
Zerotorescue@68 428 name = L["Track |cfffed000mail opened|r"],
Zerotorescue@68 429 desc = L["Track the amount of mail received and display it when closing the mailbox."],
Zerotorescue@0 430 set = function(i, v)
Zerotorescue@0 431 self.db.profile.trackMail = v;
Zerotorescue@0 432
Zerotorescue@0 433 if MailFrame:IsVisible() then
Zerotorescue@0 434 self:MAIL_SHOW();
Zerotorescue@0 435 end
Zerotorescue@0 436 end,
Zerotorescue@0 437 get = function() return self.db.profile.trackMail; end,
Zerotorescue@0 438 },
Zerotorescue@0 439 trackTimeSpent = {
Zerotorescue@0 440 order = 50,
Zerotorescue@0 441 type = "toggle",
Zerotorescue@68 442 name = L["Track |cfffed000time spent|r"],
Zerotorescue@68 443 desc = L["Track the amount of time spent at the mailbox."],
Zerotorescue@0 444 set = function(i, v)
Zerotorescue@0 445 self.db.profile.trackTimeSpent = v;
Zerotorescue@0 446
Zerotorescue@0 447 if MailFrame:IsVisible() then
Zerotorescue@0 448 self:MAIL_SHOW();
Zerotorescue@0 449 end
Zerotorescue@0 450 end,
Zerotorescue@0 451 get = function() return self.db.profile.trackTimeSpent; end,
Zerotorescue@0 452 },
Zerotorescue@0 453 },
Zerotorescue@0 454 },
Zerotorescue@0 455 Summarize = {
Zerotorescue@0 456 order = 30,
Zerotorescue@0 457 type = "group",
Zerotorescue@0 458 inline = true,
Zerotorescue@68 459 name = L["Summarize"],
Zerotorescue@0 460 args = {
Zerotorescue@0 461 sessionSummary = {
Zerotorescue@0 462 order = 20,
Zerotorescue@0 463 type = "toggle",
Zerotorescue@68 464 name = L["Also show a summary of the recorded stats within the entire session"],
Zerotorescue@68 465 desc = L["Also show a summary of the recorded stats within the entire session (since your last login or /reload)."],
Zerotorescue@0 466 set = function(i, v)
Zerotorescue@0 467 self.db.profile.sessionSummary = v;
Zerotorescue@0 468
Zerotorescue@0 469 if MailFrame:IsVisible() then
Zerotorescue@0 470 self:MAIL_SHOW();
Zerotorescue@0 471 end
Zerotorescue@0 472 end,
Zerotorescue@0 473 get = function() return self.db.profile.sessionSummary; end,
Zerotorescue@0 474 width = "full",
Zerotorescue@0 475 },
Zerotorescue@0 476 batchSummary = {
Zerotorescue@0 477 order = 30,
Zerotorescue@0 478 type = "toggle",
Zerotorescue@68 479 name = L["Show a summary of the recorded stats whenever it updated after opening the current batch has finished"],
Zerotorescue@68 480 desc = L["Show a summary of the recorded stats whenever it has been updated after opening the current batch of mails has finished."],
Zerotorescue@0 481 set = function(i, v)
Zerotorescue@0 482 self.db.profile.batchSummary = v;
Zerotorescue@0 483
Zerotorescue@0 484 if MailFrame:IsVisible() then
Zerotorescue@0 485 self:MAIL_SHOW();
Zerotorescue@0 486 end
Zerotorescue@0 487 end,
Zerotorescue@0 488 get = function() return self.db.profile.batchSummary; end,
Zerotorescue@0 489 width = "full",
Zerotorescue@0 490 },
Zerotorescue@0 491 },
Zerotorescue@0 492 },
Zerotorescue@0 493 },
Zerotorescue@0 494 };
Zerotorescue@0 495
Zerotorescue@0 496 return configGroup;
Zerotorescue@0 497 end
Zerotorescue@0 498
Zerotorescue@31 499 function mod:Debug(t)
Zerotorescue@0 500 return MailOpener:Debug("|cffff0000Collected|r:" .. t);
Zerotorescue@0 501 end