annotate Modules/Collected.lua @ 50:8e2138877ebf

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