diff --git a/macosx/English.lproj/StatsWindow.xib b/macosx/English.lproj/StatsWindow.xib
index 4770d8ff0..4bcecab94 100644
--- a/macosx/English.lproj/StatsWindow.xib
+++ b/macosx/English.lproj/StatsWindow.xib
@@ -8,7 +8,7 @@
343.00
-
+
macosx/NSApplicationAdditions.h
+
+ NSMenu
+
+
+ YES
+
+ YES
+
+
+ YES
+
+
+
+ YES
+
+ YES
+
+
+ YES
+
+
+
+
+ macosx/NSMenuAdditions.h
+
+
NSObject
@@ -710,33 +894,7 @@
-
- macosx/UKKQueue/UKFileWatcher.h
-
-
-
-
-
-
- YES
-
- YES
-
-
- YES
-
-
-
- YES
-
- YES
-
-
- YES
-
-
-
-
+
macosx/UKKQueue/UKMainThreadProxy.h
@@ -762,8 +920,8 @@
-
- macosx/IPCController.h
+
+ macosx/UKKQueue/UKKQueue.h
@@ -788,8 +946,34 @@
-
- macosx/UKKQueue/UKKQueue.h
+
+ macosx/UKKQueue/UKFileWatcher.h
+
+
+
+
+
+
+ YES
+
+ YES
+
+
+ YES
+
+
+
+ YES
+
+ YES
+
+
+ YES
+
+
+
+
+ macosx/IPCController.h
@@ -799,118 +983,144 @@
3
YnBsaXN0MDDUAAEAAgADAAQABQAGAAkAClgkdmVyc2lvblQkdG9wWSRhcmNoaXZlclgkb2JqZWN0cxIA
-AYag0QAHAAhdSUIub2JqZWN0ZGF0YYABXxAPTlNLZXllZEFyY2hpdmVyrxChAAsADAAxADUANgA8AD0A
-QgBgAGEAYgBjAGQAZQALAHMAgACMAI0AnQCeAKYApwCqALQAtQC2ALsAvQDCAMMAxgDKANAA2ADZAOAA
-4QDpAOoA8QDyAPoA+wECAQMBDAENARQBFQEdAR4BJQEtAS4BNQE9AT4BRQFNAU4BVQFWAV4BXwFmAGQA
-CwFqAWwBbQFuAW8BcAFzAXcBgQGJAYoBjgGTAZQBmQGaAZ8BoAGlAaYBqwGsAbEBsgHMAc8B0AHSAewC
-BwIiAiMCJAIlAiYCJwIoAikCKgIrAiwCLQIuAi8CMAIxAjICMwI0AjUCNgI3AjgCOQI6Aj0CQAJiAoQC
-hQKGAocCiAKJAooCiwKMAo0AXQKOAo8CkAKRApIAsQKTApQClQKWApcCmABcApkCmgKbApwAuQKdAp4C
-nwKiAqUCqFUkbnVsbN8QEgANAA4ADwAQABEAEgATABQAFQAWABcAGAAZABoAGwAcAB0AHgAfACAAIQAi
-ACMAJAAlACYAJwAoACkAKgArACwALQAuAC8AMFZOU1Jvb3RWJGNsYXNzXU5TT2JqZWN0c0tleXNfEA9O
-U0NsYXNzZXNWYWx1ZXNfEBlOU0FjY2Vzc2liaWxpdHlPaWRzVmFsdWVzXU5TQ29ubmVjdGlvbnNbTlNO
-YW1lc0tleXNbTlNGcmFtZXdvcmtdTlNDbGFzc2VzS2V5c1pOU09pZHNLZXlzXU5TTmFtZXNWYWx1ZXNf
-EBlOU0FjY2Vzc2liaWxpdHlDb25uZWN0b3JzXU5TRm9udE1hbmFnZXJfEBBOU1Zpc2libGVXaW5kb3dz
-XxAPTlNPYmplY3RzVmFsdWVzXxAXTlNBY2Nlc3NpYmlsaXR5T2lkc0tleXNZTlNOZXh0T2lkXE5TT2lk
-c1ZhbHVlc4ACgKCAW4B7gJ+AS4BggAWAeoB8gGGAnYAAgAaAX4CeECmAfdIADgAyADMANFtOU0NsYXNz
-TmFtZYAEgANfEBVTdGF0c1dpbmRvd0NvbnRyb2xsZXLSADcAOAA5ADpYJGNsYXNzZXNaJGNsYXNzbmFt
-ZaIAOgA7Xk5TQ3VzdG9tT2JqZWN0WE5TT2JqZWN0XxAQSUJDb2NvYUZyYW1ld29ya9IADgA+AD8AQFpO
-Uy5vYmplY3RzgEqhAEGAB98QDwBDAA4ARABFAEYARwBIAEkASgBLAEwATQBOAE8AUABRAFIAUwBUAFUA
-VgBXAFgAWQBaAFsAXABdAF4AK1xOU1dpbmRvd1ZpZXdfEBZOU1dpbmRvd0NvbnRlbnRNYXhTaXplXE5T
-U2NyZWVuUmVjdF8QE05TRnJhbWVBdXRvc2F2ZU5hbWVdTlNXaW5kb3dUaXRsZVlOU1dURmxhZ3NdTlNX
-aW5kb3dDbGFzc18QFk5TV2luZG93Q29udGVudE1pblNpemVcTlNXaW5kb3dSZWN0WU5TTWF4U2l6ZV8Q
-D05TV2luZG93QmFja2luZ18QEU5TV2luZG93U3R5bGVNYXNrWU5TTWluU2l6ZVtOU1ZpZXdDbGFzc4AN
-gEmAC4BFgEiACRIgAAAAgAqADIAIgEcQAhAPgEaAAF8QGHt7NDk0LCA2NTR9LCB7MjQ1LCAxNTd9fVpT
-dGF0aXN0aWNzV05TUGFuZWxdezEwMDAwMCwgMTU3fVp7MjQ1LCAxNTd91wBmAA4AZwBoAGkAagBrAGwA
-bQBuAG8AcABsAHJfEA9OU05leHRSZXNwb25kZXJaTlNTdWJ2aWV3c1hOU3ZGbGFnc1tOU0ZyYW1lU2l6
-ZVhOU1dpbmRvd1tOU1N1cGVydmlld4AOgESADxEBAIBCgA6AQ9IADgA+AHQAdYBBqgB2AHcAeAB5AHoA
-ewB8AH0AfgB/gBCAIYAlgCmALYAxgDSAN4A6gD7YAGYADgCBAIIAaACDAGoAawBRAIUAhgCHAIgAiQBs
-AFFXTlNGcmFtZVZOU0NlbGxZTlNFbmFibGVkgA2AIIARgBIRAQwJgA6ADV8QFXt7NjAsIDEyMH0sIHs2
-OCwgMTd9fdgAjgAOAI8AkACRAJIAkwCUAJUAlgCXAJgAmQB2AJsAnFtOU0NlbGxGbGFnc18QEU5TQmFj
-a2dyb3VuZENvbG9yWk5TQ29udGVudHNZTlNTdXBwb3J0XU5TQ29udHJvbFZpZXdcTlNDZWxsRmxhZ3My
-W05TVGV4dENvbG9yEgQB/kCAH4AXgBOAFIAQEhBABACAHFlVcGxvYWRlZDrUAA4AnwCgAKEAogCjAKQA
-pVZOU1NpemVWTlNOYW1lWE5TZkZsYWdzgBYjQCoAAAAAAACAFREEFFxMdWNpZGFHcmFuZGXSADcAOACo
-AKmiAKkAO1ZOU0ZvbnTVAA4AqwCsAK0ArgCvALAAsQCyALNXTlNDb2xvclxOU0NvbG9yU3BhY2VbTlND
-b2xvck5hbWVdTlNDYXRhbG9nTmFtZYAbgBoQBoAZgBhWU3lzdGVtXGNvbnRyb2xDb2xvctMADgCsALcA
-rwC5ALpXTlNXaGl0ZYAbEANLMC42NjY2NjY2OQDSADcAOAC8AKuiAKsAO9UADgCrAKwArQCuAK8AvwCx
-AMAAs4AbgB6AHYAYXxAQY29udHJvbFRleHRDb2xvctMADgCsALcArwC5AMWAG0IwANIANwA4AMcAyKQA
-yADJAIIAO18QD05TVGV4dEZpZWxkQ2VsbFxOU0FjdGlvbkNlbGzSADcAOADLAMylAMwAzQDOAM8AO1tO
-U1RleHRGaWVsZFlOU0NvbnRyb2xWTlNWaWV3W05TUmVzcG9uZGVy2ABmAA4AgQCCAGgAgwBqAGsAUQCF
-ANMA1ACIAIkAbABRgA2AIIAigCMJgA6ADV8QFHt7NDEsIDk1fSwgezg3LCAxN3192ACOAA4AjwCQAJEA
-kgCTAJQAlQCWAJcA3ACZAHcAmwCcgB+AF4AkgBSAIYAcW0Rvd25sb2FkZWQ62ABmAA4AgQCCAGgAgwBq
-AGsAUQCFAOQA5QCIAIkAbABRgA2AIIAmgCcJgA6ADV8QFHt7ODcsIDcwfSwgezQxLCAxN3192ACOAA4A
-jwCQAJEAkgCTAJQAlQCWAJcA7QCZAHgAmwCcgB+AF4AogBSAJYAcVlJhdGlvOtgAZgAOAIEAggBoAIMA
-agBrAFEAhQD1APYAiACJAGwAUYANgCCAKoArCYAOgA1fEBR7ezMyLCA0NX0sIHs5NiwgMTd9fdgAjgAO
-AI8AkACRAJIAkwCUAJUAlgCXAP4AmQB5AJsAnIAfgBeALIAUgCmAHF1SdW5uaW5nIFRpbWU62ABmAA4A
-gQCCAGgAgwBqAGsAUQCFAQYBBwEIAIkAbABRgA2AIIAugC8RASoJgA6ADV8QFnt7MTMwLCAxMjB9LCB7
-OTgsIDE3fX3YAI4ADgCPAJAAkQCSAJMAlACVAJYAlwEQAJkAegCbAJyAH4AXgDCAFIAtgBxVTGFiZWzY
-AGYADgCBAIIAaACDAGoAawBRAIUBGAEZAQgAiQBsAFGADYAggDKAMwmADoANXxAVe3sxMzAsIDk1fSwg
-ezk4LCAxN3192ACOAA4AjwCQAJEAkgCTAJQAlQCWAJcBEACZAHsAmwCcgB+AF4AwgBSAMYAc2ABmAA4A
-gQCCAGgAgwBqAGsAUQCFASgBKQEIAIkAbABRgA2AIIA1gDYJgA6ADV8QFXt7MTMwLCA3MH0sIHs5OCwg
-MTd9fdgAjgAOAI8AkACRAJIAkwCUAJUAlgCXARAAmQB8AJsAnIAfgBeAMIAUgDSAHNgAZgAOAIEAggBo
-AIMAagBrAFEAhQE4ATkBCACJAGwAUYANgCCAOIA5CYAOgA1fEBV7ezEzMCwgNDV9LCB7OTgsIDE3fX3Y
-AI4ADgCPAJAAkQCSAJMAlACVAJYAlwEQAJkAfQCbAJyAH4AXgDCAFIA3gBzYAGYADgCBAIIAaACDAGoA
-awBRAIUBSAFJAIgAiQBsAFGADYAggDuAPAmADoANXxAVe3sxNywgMjB9LCB7MTExLCAxN3192ACOAA4A
-jwCQAJEAkgCTAJQAlQCWAJcBUQCZAH4AmwCcgB+AF4A9gBSAOoAcXxAQUHJvZ3JhbSBTdGFydGVkOtgA
-ZgAOAIEAggBoAIMAagBrAFEAhQFZAVoBCACJAGwAUYANgCCAP4BACYAOgA1fEBV7ezEzMCwgMjB9LCB7
-OTgsIDE3fX3YAI4ADgCPAJAAkQCSAJMAlACVAJYAlwEQAJkAfwCbAJyAH4AXgDCAFIA+gBzSADcAOAFn
-AWijAWgBaQA7Xk5TTXV0YWJsZUFycmF5V05TQXJyYXnSADcAOAFrAM6jAM4AzwA7XxAWe3swLCAwfSwg
-ezE2ODAsIDEwMjh9fVp7MjQ1LCAxNzl9XXsxMDAwMDAsIDE3OX1bU3RhdHNXaW5kb3fSADcAOAFxAXKi
-AXIAO18QEE5TV2luZG93VGVtcGxhdGXSADcAOAF0AXWjAXUBdgA7XE5TTXV0YWJsZVNldFVOU1NldNIA
-DgA+AHQBeYBBpwF6AXsBfAF9AX4BfwGAgEyAT4BRgFOAVYBXgFnUAA4BggGDAYQBhQB9AB8BiF1OU0Rl
-c3RpbmF0aW9uWE5TU291cmNlV05TTGFiZWyAToA3gAKATVpmVGltZUZpZWxk0gA3ADgBiwGMowGMAY0A
-O18QFE5TTmliT3V0bGV0Q29ubmVjdG9yXk5TTmliQ29ubmVjdG9y1AAOAYIBgwGEAYUAfAAfAZKAToA0
-gAKAUFtmUmF0aW9GaWVsZNQADgGCAYMBhAGFAB8AQQGYgE6AAoAHgFJYZGVsZWdhdGXUAA4BggGDAYQB
-hQBBAB8BnoBOgAeAAoBUVndpbmRvd9QADgGCAYMBhAGFAHsAHwGkgE6AMYACgFZfEBBmRG93bmxvYWRl
-ZEZpZWxk1AAOAYIBgwGEAYUAfwAfAaqAToA+gAKAWF8QD2ZOdW1PcGVuZWRGaWVsZNQADgGCAYMBhAGF
-AHoAHwGwgE6ALYACgFpeZlVwbG9hZGVkRmllbGTSAA4APgGzAbSAXq8QFwDUAHkAhwG4AQcA9gB8AHgB
-KQE5AH4AegB/ARkAUQFaAHcA5QB7AHYAfQFJAEGAI4ApgBKAXIAvgCuANIAlgDaAOYA6gC2APoAzgA2A
-QIAhgCeAMYAQgDeAPIAH0gAOADIAMwHOgASAXV1OU0FwcGxpY2F0aW9u0gA3ADgB0QFpogFpADvSAA4A
-PgGzAdSAXq8QFwB3AFEAdgAfAHoAeQBRAFEAfAB9AFEAUQBRAHsAQQB/AFEAeABRAFEAUQB+AB+AIYAN
-gBCAAoAtgCmADYANgDSAN4ANgA2ADYAxgAeAPoANgCWADYANgA2AOoAC0gAOAD4BswHugF6vEBgAeQB8
-AbgAfgEpAPYAfwB4AQcBWgDUAHoAhwEZAB8AUQB3ATkAewDlAHYAfQFJAEGAKYA0gFyAOoA2gCuAPoAl
-gC+AQIAjgC2AEoAzgAKADYAhgDmAMYAngBCAN4A8gAfSAA4APgGzAgmAXq8QGAIKAgsCDAINAg4CDwIQ
-AhECEgITAhQCFQIWAhcCGAIZAhoCGwIcAh0CHgIfAiACIYBigGOAZIBlgGaAZ4BogGmAaoBrgGyAbYBu
-gG+AcIBxgHKAc4B0gHWAdoB3gHiAeV8QG1N0YXRpYyBUZXh0IChSdW5uaW5nIFRpbWU6KV8QE1N0YXRp
-YyBUZXh0IChMYWJlbClbQXBwbGljYXRpb25fEB5TdGF0aWMgVGV4dCAoUHJvZ3JhbSBTdGFydGVkOilf
-EBdUZXh0IEZpZWxkIENlbGwgKExhYmVsKV8QH1RleHQgRmllbGQgQ2VsbCAoUnVubmluZyBUaW1lOilf
-EBVTdGF0aWMgVGV4dCAoTGFiZWwpLTJfEBRTdGF0aWMgVGV4dCAoUmF0aW86KV8QGVRleHQgRmllbGQg
-Q2VsbCAoTGFiZWwpLTFfEBlUZXh0IEZpZWxkIENlbGwgKExhYmVsKS0yXxAdVGV4dCBGaWVsZCBDZWxs
-IChEb3dubG9hZGVkOilfEBVTdGF0aWMgVGV4dCAoTGFiZWwpLTFfEBtUZXh0IEZpZWxkIENlbGwgKFVw
-bG9hZGVkOilfEBlUZXh0IEZpZWxkIENlbGwgKExhYmVsKS0zXEZpbGUncyBPd25lclxDb250ZW50IFZp
-ZXdfEBlTdGF0aWMgVGV4dCAoRG93bmxvYWRlZDopXxAZVGV4dCBGaWVsZCBDZWxsIChMYWJlbCktNF8Q
-FVN0YXRpYyBUZXh0IChMYWJlbCktM18QGFRleHQgRmllbGQgQ2VsbCAoUmF0aW86KV8QF1N0YXRpYyBU
-ZXh0IChVcGxvYWRlZDopXxAVU3RhdGljIFRleHQgKExhYmVsKS00XxAiVGV4dCBGaWVsZCBDZWxsIChQ
-cm9ncmFtIFN0YXJ0ZWQ6KV8QD1dpbmRvdyAoV2luZG93KdIADgA+AbMCPIBeoNIADgA+AbMCP4BeoNIA
-DgA+AbMCQoBerxAfAHkAfgCHAbgBBwD2AXoBfQFaATkAegF/AHsBSQF8AX4A1AB8ASkAfwB4ARkAHwBR
-AHcBgADlAXsAdgB9AEGAKYA6gBKAXIAvgCuATIBTgECAOYAtgFeAMYA8gFGAVYAjgDSANoA+gCWAM4AC
-gA2AIYBZgCeAT4AQgDeAB9IADgA+AbMCZIBerxAfAmUCZgJnAmgCaQJqAmsCbAJtAm4CbwJwAnECcgJz
-AnQCdQJ2AncCeAJ5AnoCewJ8An0CfgJ/AoACgQKCAoOAfoB/gICAgYCCgIOAhICFgIaAh4CIgImAioCL
-gIyAjYCOgI+AkICRgJKAk4CUgJWAloCXgJiAmYCagJuAnBANECMQBBP//////////RAQEA4QIhAdECUQ
-FhAnEBEQJhAeECAQExAUECQQCxASECgQBRAfEAwQIRAVEAHSAA4APgB0AqGAQaDSAA4APgGzAqSAXqDS
-AA4APgGzAqeAXqDSADcAOAKpAqqiAqoAO15OU0lCT2JqZWN0RGF0YQAIABkAIgAnADEAOgA/AEQAUgBU
-AGYBqwGxAfwCAwIKAhgCKgJGAlQCYAJsAnoChQKTAq8CvQLQAuIC/AMGAxMDFQMXAxkDGwMdAx8DIQMj
-AyUDJwMpAysDLQMvAzEDMwM1AzcDQANMA04DUANoA3EDegOFA4oDmQOiA7UDvgPJA8sDzgPQBA8EHAQ1
-BEIEWARmBHAEfgSXBKQErgTABNQE3gTqBOwE7gTwBPIE9AT2BPsE/QT/BQEFAwUFBQcFCQULBSYFMQU5
-BUcFUgVvBYEFjAWVBaEFqgW2BbgFugW8Bb8FwQXDBcUFzgXQBeUF5wXpBesF7QXvBfEF8wX1BfcF+QYa
-BiIGKQYzBjUGNwY5BjsGPgY/BkEGQwZbBnwGiAacBqcGsQa/BswG2AbdBt8G4QbjBuUG5wbsBu4G+AcJ
-BxAHFwcgByIHKwctBzAHPQdGB0sHUgdnB28HfAeIB5YHmAeaB5wHngegB6cHtAfBB8kHywfNB9kH4gfn
-B/wH/ggACAIIBAgXCCQIJggpCDIIOwhNCFoIYwhuCHoIhAiLCJcIuAi6CLwIvgjACMEIwwjFCNwI/Qj/
-CQEJAwkFCQcJCQkVCTYJOAk6CTwJPgk/CUEJQwlaCXsJfQl/CYEJgwmFCYcJjgmvCbEJswm1CbcJuAm6
-CbwJ0wn0CfYJ+An6CfwJ/goACg4KLwoxCjMKNQo3CjoKOwo9Cj8KWAp5CnsKfQp/CoEKgwqFCosKrAqu
-CrAKsgq0CrUKtwq5CtEK8gr0CvYK+Ar6CvwK/gsfCyELIwslCycLKAsqCywLRAtlC2cLaQtrC20Lbwtx
-C5ILlAuWC5gLmgubC50Lnwu3C9gL2gvcC94L4AviC+QMBQwHDAkMCwwNDA4MEAwSDCoMSwxNDE8MUQxT
-DFUMVwxqDIsMjQyPDJEMkwyUDJYMmAywDNEM0wzVDNcM2QzbDN0M5gztDPwNBA0NDRQNLQ04DUYNUg1b
-DWANcw18DYMNkA2WDZ8NoQ2wDbINtA22DbgNug28Db4Nzw3dDeYN7g3wDfIN9A32DgEOCg4RDigONw5I
-DkoOTA5ODlAOXA5tDm8OcQ5zDnUOfg6PDpEOkw6VDpcOng6vDrEOsw61DrcOyg7bDt0O3w7hDuMO9Q8G
-DwgPCg8MDw4PHQ8mDygPWQ9bD10PXw9hD2MPZQ9nD2kPaw9tD28PcQ9zD3UPdw95D3sPfQ9/D4EPgw+F
-D4cPkA+SD5QPog+rD7APuQ+7D+wP7g/wD/IP9A/2D/gP+g/8D/4QABACEAQQBhAIEAoQDBAOEBAQEhAU
-EBYQGBAaECMQJRBYEFoQXBBeEGAQYhBkEGYQaBBqEGwQbhBwEHIQdBB2EHgQehB8EH4QgBCCEIQQhhCI
-EJEQkxDGEMgQyhDMEM4Q0BDSENQQ1hDYENoQ3BDeEOAQ4hDkEOYQ6BDqEOwQ7hDwEPIQ9BD2ERQRKhE2
-EVcRcRGTEasRwhHeEfoSGhIyElASbBJ5EoYSohK+EtYS8RMLEyMTSBNaE2MTZRNmE28TcRNyE3sTfRO+
-E8ATwhPEE8YTyBPKE8wTzhPQE9IT1BPWE9gT2hPcE94T4BPiE+QT5hPoE+oT7BPuE/AT8hP0E/YT+BP6
-E/wUBRQHFEgUShRMFE4UUBRSFFQUVhRYFFoUXBReFGAUYhRkFGYUaBRqFGwUbhRwFHIUdBR2FHgUehR8
-FH4UgBSCFIQUhhSIFIoUjBSVFJcUmRSbFJ0UnxShFKMUpRSnFKkUqxStFK8UsRSzFLUUtxS5FLsUvRS/
-FMEUwxTMFM4UzxTYFNoU2xTkFOYU5xTwFPUAAAAAAAACAgAAAAAAAAKrAAAAAAAAAAAAAAAAAAAVBA
+AYag0QAHAAhdSUIub2JqZWN0ZGF0YYABXxAPTlNLZXllZEFyY2hpdmVyrxDNAAsADAAxADUANgA8AD0A
+QgBgAGEAYgBjAGQAZQALAHMAhACQAJEAoQCiAKoAqwCuALgAuQC6AL8AwQDGAMcAygDOANQA3ADdAOQA
+5QDtAO4A9QD2AP4A/wEGAQcBEAERARgBGQEhASIBKQExATIBOQFBAUIBSQFRAVIBWQFaAWIBYwFqAXIB
+cwEYAXoBggGDARgBigGSAZMBGAGaAaIBowEYAaoAZAALAa4BsAGxAbIBswG0AbcBuwHJAdEB0gHWAdsB
+3AHhAeIB5wHoAe0B7gHzAfQB+QH6Af8CAAIFAgYCCwIMAhECEgI0AjcCOAI6AlwCfwKiAqMCpAKlAqYC
+pwKoAqkCqgKrAqwCrQKuAq8CsAKxArICswK0ArUCtgK3ArgCuQK6ArsCvAK9Ar4CvwLAAsECwgLFAsgC
+9gMkAL0DJQMmAycDKAMpAyoDKwMsAy0DLgMvAzAAqQMxAzIDMwM0AzUDNgM3AzgDOQM6AzsAtQM8Az0D
+PgM/A0ADQQNCA0MDRANFA0YDRwNIA0kAXABdA0oDTQNQA1NVJG51bGzfEBIADQAOAA8AEAARABIAEwAU
+ABUAFgAXABgAGQAaABsAHAAdAB4AHwAgACEAIgAjACQAJQAmACcAKAApACoAKwAsAC0ALgAvADBWTlNS
+b290ViRjbGFzc11OU09iamVjdHNLZXlzXxAPTlNDbGFzc2VzVmFsdWVzXxAZTlNBY2Nlc3NpYmlsaXR5
+T2lkc1ZhbHVlc11OU0Nvbm5lY3Rpb25zW05TTmFtZXNLZXlzW05TRnJhbWV3b3JrXU5TQ2xhc3Nlc0tl
+eXNaTlNPaWRzS2V5c11OU05hbWVzVmFsdWVzXxAZTlNBY2Nlc3NpYmlsaXR5Q29ubmVjdG9yc11OU0Zv
+bnRNYW5hZ2VyXxAQTlNWaXNpYmxlV2luZG93c18QD05TT2JqZWN0c1ZhbHVlc18QF05TQWNjZXNzaWJp
+bGl0eU9pZHNLZXlzWU5TTmV4dE9pZFxOU09pZHNWYWx1ZXOAAoDMgHOAm4DLgFuAeIAFgJqAnIB5gMmA
+AIAGgHeAyhA1gJ3SAA4AMgAzADRbTlNDbGFzc05hbWWABIADXxAVU3RhdHNXaW5kb3dDb250cm9sbGVy
+0gA3ADgAOQA6WCRjbGFzc2VzWiRjbGFzc25hbWWiADoAO15OU0N1c3RvbU9iamVjdFhOU09iamVjdF8Q
+EElCQ29jb2FGcmFtZXdvcmvSAA4APgA/AEBaTlMub2JqZWN0c4BaoQBBgAffEA8AQwAOAEQARQBGAEcA
+SABJAEoASwBMAE0ATgBPAFAAUQBSAFMAVABVAFYAVwBYAFkAWgBbAFwAXQBeACtcTlNXaW5kb3dWaWV3
+XxAWTlNXaW5kb3dDb250ZW50TWF4U2l6ZVxOU1NjcmVlblJlY3RfEBNOU0ZyYW1lQXV0b3NhdmVOYW1l
+XU5TV2luZG93VGl0bGVZTlNXVEZsYWdzXU5TV2luZG93Q2xhc3NfEBZOU1dpbmRvd0NvbnRlbnRNaW5T
+aXplXE5TV2luZG93UmVjdFlOU01heFNpemVfEA9OU1dpbmRvd0JhY2tpbmdfEBFOU1dpbmRvd1N0eWxl
+TWFza1lOU01pblNpemVbTlNWaWV3Q2xhc3OADYBZgAuAVYBYgAkSIAAAAIAKgAyACIBXEAIQD4BWgABf
+EBh7ezIzOCwgNzQ2fSwgezI0NSwgMTgyfX1aU3RhdGlzdGljc1dOU1BhbmVsXXsxMDAwMDAsIDE4Mn1a
+ezI0NSwgMTgyfdcAZgAOAGcAaABpAGoAawBsAG0AbgBvAHAAbAByXxAPTlNOZXh0UmVzcG9uZGVyWk5T
+U3Vidmlld3NYTlN2RmxhZ3NbTlNGcmFtZVNpemVYTlNXaW5kb3dbTlNTdXBlcnZpZXeADoBUgA8RAQCA
+UoAOgFPSAA4APgB0AHWAUa4AdgB3AHgAeQB6AHsAfAB9AH4AfwCAAIEAggCDgBCAIYAlgCmALYAxgDSA
+N4A6gD6AQYBFgEmATdgAZgAOAIUAhgBoAIcAagBrAFEAiQCKAIsAjACNAGwAUVdOU0ZyYW1lVk5TQ2Vs
+bFlOU0VuYWJsZWSADYAggBGAEhEBDAmADoANXxAVe3s1NSwgMTQ4fSwgezU5LCAxNH192ACSAA4AkwCU
+AJUAlgCXAJgAmQCaAJsAnACdAHYAnwCgW05TQ2VsbEZsYWdzXxARTlNCYWNrZ3JvdW5kQ29sb3JaTlND
+b250ZW50c1lOU1N1cHBvcnRdTlNDb250cm9sVmlld1xOU0NlbGxGbGFnczJbTlNUZXh0Q29sb3ISBAH+
+QIAfgBeAE4AUgBASEEAEAIAcWVVwbG9hZGVkOtQADgCjAKQApQCmAKcAqACpVk5TU2l6ZVZOU05hbWVY
+TlNmRmxhZ3OAFiNAJgAAAAAAAIAVEBBcTHVjaWRhR3JhbmRl0gA3ADgArACtogCtADtWTlNGb2501QAO
+AK8AsACxALIAswC0ALUAtgC3V05TQ29sb3JcTlNDb2xvclNwYWNlW05TQ29sb3JOYW1lXU5TQ2F0YWxv
+Z05hbWWAG4AaEAaAGYAYVlN5c3RlbVxjb250cm9sQ29sb3LTAA4AsAC7ALMAvQC+V05TV2hpdGWAGxAD
+SzAuNjY2NjY2NjkA0gA3ADgAwACvogCvADvVAA4ArwCwALEAsgCzAMMAtQDEALeAG4AegB2AGF8QEGNv
+bnRyb2xUZXh0Q29sb3LTAA4AsAC7ALMAvQDJgBtCMADSADcAOADLAMykAMwAzQCGADtfEA9OU1RleHRG
+aWVsZENlbGxcTlNBY3Rpb25DZWxs0gA3ADgAzwDQpQDQANEA0gDTADtbTlNUZXh0RmllbGRZTlNDb250
+cm9sVk5TVmlld1tOU1Jlc3BvbmRlctgAZgAOAIUAhgBoAIcAagBrAFEAiQDXANgAjACNAGwAUYANgCCA
+IoAjCYAOgA1fEBV7ezQwLCAxMTZ9LCB7NzQsIDE0fX3YAJIADgCTAJQAlQCWAJcAmACZAJoAmwDgAJ0A
+dwCfAKCAH4AXgCSAFIAhgBxbRG93bmxvYWRlZDrYAGYADgCFAIYAaACHAGoAawBRAIkA6ADpAIwAjQBs
+AFGADYAggCaAJwmADoANXxAUe3s3OSwgODR9LCB7MzUsIDE0fX3YAJIADgCTAJQAlQCWAJcAmACZAJoA
+mwDxAJ0AeACfAKCAH4AXgCiAFIAlgBxWUmF0aW862ABmAA4AhQCGAGgAhwBqAGsAUQCJAPkA+gCMAI0A
+bABRgA2AIIAqgCsJgA6ADV8QFHt7MzIsIDUyfSwgezgyLCAxNH192ACSAA4AkwCUAJUAlgCXAJgAmQCa
+AJsBAgCdAHkAnwCggB+AF4AsgBSAKYAcXVJ1bm5pbmcgVGltZTrYAGYADgCFAIYAaACHAGoAawBRAIkB
+CgELAQwAjQBsAFGADYAggC6ALxEBKgmADoANXxAXe3sxMTUsIDE0OH0sIHsxMTAsIDE0fX3YAJIADgCT
+AJQAlQCWAJcAmACZAJoAmwEUAJ0AegCfAKCAH4AXgDCAFIAtgBxVTGFiZWzYAGYADgCFAIYAaACHAGoA
+awBRAIkBHAEdAQwAjQBsAFGADYAggDKAMwmADoANXxAXe3sxMTUsIDExNn0sIHsxMTAsIDE0fX3YAJIA
+DgCTAJQAlQCWAJcAmACZAJoAmwEUAJ0AewCfAKCAH4AXgDCAFIAxgBzYAGYADgCFAIYAaACHAGoAawBR
+AIkBLAEtAQwAjQBsAFGADYAggDWANgmADoANXxAWe3sxMTUsIDg0fSwgezExMCwgMTR9fdgAkgAOAJMA
+lACVAJYAlwCYAJkAmgCbARQAnQB8AJ8AoIAfgBeAMIAUgDSAHNgAZgAOAIUAhgBoAIcAagBrAFEAiQE8
+AT0BDACNAGwAUYANgCCAOIA5CYAOgA1fEBZ7ezExNSwgNTJ9LCB7MTEwLCAxNH192ACSAA4AkwCUAJUA
+lgCXAJgAmQCaAJsBFACdAH0AnwCggB+AF4AwgBSAN4Ac2ABmAA4AhQCGAGgAhwBqAGsAUQCJAUwBTQCM
+AI0AbABRgA2AIIA7gDwJgA6ADV8QFHt7MjAsIDIwfSwgezk0LCAxNH192ACSAA4AkwCUAJUAlgCXAJgA
+mQCaAJsBVQCdAH4AnwCggB+AF4A9gBSAOoAcXxAQUHJvZ3JhbSBTdGFydGVkOtgAZgAOAIUAhgBoAIcA
+agBrAFEAiQFdAV4BDACNAGwAUYANgCCAP4BACYAOgA1fEBZ7ezExNSwgMjB9LCB7MTEwLCAxNH192ACS
+AA4AkwCUAJUAlgCXAJgAmQCaAJsBFACdAH8AnwCggB+AF4AwgBSAPoAc2ABmAA4AhQCGAGgAhwBqAGsA
+UQCJAW0BbgEMAI0AbABRgA2AIIBCgEMJgA6ADV8QF3t7MTE1LCAxMzJ9LCB7MTEwLCAxNH192ACSAA4A
+kwCUAJUAlgCXAJgAmQCaAJsBdgCdAIAAnwCggB+AF4BEgBSAQYAc2ABmAA4AhQCGAGgAhwBqAGsAUQCJ
+AX0BfgEMAI0AbABRgA2AIIBGgEcJgA6ADV8QF3t7MTE1LCAxMDB9LCB7MTEwLCAxNH192ACSAA4AkwCU
+AJUAlgCXAJgAmQCaAJsBhgCdAIEAnwCggB+AF4BIgBSARYAc2ABmAA4AhQCGAGgAhwBqAGsAUQCJAY0B
+jgEMAI0AbABRgA2AIIBKgEsJgA6ADV8QFnt7MTE1LCA2OH0sIHsxMTAsIDE0fX3YAJIADgCTAJQAlQCW
+AJcAmACZAJoAmwGWAJ0AggCfAKCAH4AXgEyAFIBJgBzYAGYADgCFAIYAaACHAGoAawBRAIkBnQGeAQwA
+jQBsAFGADYAggE6ATwmADoANXxAWe3sxMTUsIDM2fSwgezExMCwgMTR9fdgAkgAOAJMAlACVAJYAlwCY
+AJkAmgCbAaYAnQCDAJ8AoIAfgBeAUIAUgE2AHNIANwA4AasBrKMBrAGtADteTlNNdXRhYmxlQXJyYXlX
+TlNBcnJhedIANwA4Aa8A0qMA0gDTADtfEBZ7ezAsIDB9LCB7MTY4MCwgMTAyOH19WnsyNDUsIDIwNH1d
+ezEwMDAwMCwgMjA0fVtTdGF0c1dpbmRvd9IANwA4AbUBtqIBtgA7XxAQTlNXaW5kb3dUZW1wbGF0ZdIA
+NwA4AbgBuaMBuQG6ADtcTlNNdXRhYmxlU2V0VU5TU2V00gAOAD4AdAG9gFGrAb4BvwHAAcEBwgHDAcQB
+xQHGAccByIBcgF+AYYBjgGWAZ4BpgGuAbYBvgHHUAA4BygHLAcwBzQB7AB8B0F1OU0Rlc3RpbmF0aW9u
+WE5TU291cmNlV05TTGFiZWyAXoAxgAKAXV8QEGZEb3dubG9hZGVkRmllbGTSADcAOAHTAdSjAdQB1QA7
+XxAUTlNOaWJPdXRsZXRDb25uZWN0b3JeTlNOaWJDb25uZWN0b3LUAA4BygHLAcwBzQBBAB8B2oBegAeA
+AoBgVndpbmRvd9QADgHKAcsBzAHNAHoAHwHggF6ALYACgGJeZlVwbG9hZGVkRmllbGTUAA4BygHLAcwB
+zQCBAB8B5oBegEWAAoBkXxATZkRvd25sb2FkZWRBbGxGaWVsZNQADgHKAcsBzAHNAH0AHwHsgF6AN4AC
+gGZaZlRpbWVGaWVsZNQADgHKAcsBzAHNAHwAHwHygF6ANIACgGhbZlJhdGlvRmllbGTUAA4BygHLAcwB
+zQB/AB8B+IBegD6AAoBqXxAPZk51bU9wZW5lZEZpZWxk1AAOAcoBywHMAc0AggAfAf6AXoBJgAKAbF5m
+UmF0aW9BbGxGaWVsZNQADgHKAcsBzAHNAB8AQQIEgF6AAoAHgG5YZGVsZWdhdGXUAA4BygHLAcwBzQCA
+AB8CCoBegEGAAoBwXxARZlVwbG9hZGVkQWxsRmllbGTUAA4BygHLAcwBzQCDAB8CEIBegE2AAoByXWZU
+aW1lQWxsRmllbGTSAA4APgITAhSAdq8QHwB4AHYAggGeAS0AfQFeAH8AQQELAHsCIAB3AW4BfgDpAR0A
++gDYAHwBPQFNAIAAiwGOAH4AeQCBAIMAUQB6gCWAEIBJgE+ANoA3gECAPoAHgC+AMYB0gCGAQ4BHgCeA
+M4ArgCOANIA5gDyAQYASgEuAOoApgEWATYANgC3SAA4AMgAzAjaABIB1XU5TQXBwbGljYXRpb27SADcA
+OAI5Aa2iAa0AO9IADgA+AhMCPIB2rxAfAFEAUQBRAIMAfABRAH8AUQAfAHoAUQAfAFEAgACBAHgAewB5
+AHcAUQB9AH4AUQB2AIIAUQBRAFEAUQBBAFGADYANgA2ATYA0gA2APoANgAKALYANgAKADYBBgEWAJYAx
+gCmAIYANgDeAOoANgBCASYANgA2ADYANgAeADdIADgA+AhMCXoB2rxAgAHgAdgCCAZ4BLQB9AV4AfwBB
+AHsBCwIgAHcAHwFuAX4A6QEdAPoBPQB8AIAA2AFNAIsBjgB+AHkAgQCDAFEAeoAlgBCASYBPgDaAN4BA
+gD6AB4AxgC+AdIAhgAKAQ4BHgCeAM4ArgDmANIBBgCOAPIASgEuAOoApgEWATYANgC3SAA4APgITAoGA
+dq8QIAKCAoMChAKFAoYChwKIAokCigKLAowCjQKOAo8CkAKRApICkwKUApUClgKXApgCmQKaApsCnAKd
+Ap4CnwKgAqGAeoB7gHyAfYB+gH+AgICBgIKAg4CEgIWAhoCHgIiAiYCKgIuAjICNgI6Aj4CQgJGAkoCT
+gJSAlYCWgJeAmICZXxAUU3RhdGljIFRleHQgKFJhdGlvOilfEBdTdGF0aWMgVGV4dCAoVXBsb2FkZWQ6
+KV8QE1N0YXRpYyBUZXh0IChMYWJlbClfEBlUZXh0IEZpZWxkIENlbGwgKExhYmVsKS03XxAZVGV4dCBG
+aWVsZCBDZWxsIChMYWJlbCktNF8QFVN0YXRpYyBUZXh0IChMYWJlbCktMV8QGVRleHQgRmllbGQgQ2Vs
+bCAoTGFiZWwpLTJfEBVTdGF0aWMgVGV4dCAoTGFiZWwpLTJfEA9XaW5kb3cgKFdpbmRvdylfEBVTdGF0
+aWMgVGV4dCAoTGFiZWwpLTNfEBlUZXh0IEZpZWxkIENlbGwgKExhYmVsKS04W0FwcGxpY2F0aW9uXxAZ
+U3RhdGljIFRleHQgKERvd25sb2FkZWQ6KVxGaWxlJ3MgT3duZXJfEBlUZXh0IEZpZWxkIENlbGwgKExh
+YmVsKS01XxAZVGV4dCBGaWVsZCBDZWxsIChMYWJlbCktNl8QGFRleHQgRmllbGQgQ2VsbCAoUmF0aW86
+KV8QGVRleHQgRmllbGQgQ2VsbCAoTGFiZWwpLTNfEB9UZXh0IEZpZWxkIENlbGwgKFJ1bm5pbmcgVGlt
+ZTopXxAZVGV4dCBGaWVsZCBDZWxsIChMYWJlbCktMV8QFVN0YXRpYyBUZXh0IChMYWJlbCktNF8QFVN0
+YXRpYyBUZXh0IChMYWJlbCktNV8QHVRleHQgRmllbGQgQ2VsbCAoRG93bmxvYWRlZDopXxAiVGV4dCBG
+aWVsZCBDZWxsIChQcm9ncmFtIFN0YXJ0ZWQ6KV8QG1RleHQgRmllbGQgQ2VsbCAoVXBsb2FkZWQ6KV8Q
+F1RleHQgRmllbGQgQ2VsbCAoTGFiZWwpXxAeU3RhdGljIFRleHQgKFByb2dyYW0gU3RhcnRlZDopXxAb
+U3RhdGljIFRleHQgKFJ1bm5pbmcgVGltZTopXxAVU3RhdGljIFRleHQgKExhYmVsKS02XxAVU3RhdGlj
+IFRleHQgKExhYmVsKS03XENvbnRlbnQgVmlld18QFVN0YXRpYyBUZXh0IChMYWJlbCktONIADgA+AhMC
+xIB2oNIADgA+AhMCx4B2oNIADgA+AhMCyoB2rxArAHgAdgCCAZ4BxAEtAcgAfQHCAV4BxQHHAH8AQQEL
+AHsBvgHGAiAAdwAfAW4BfgDpAR0A+gDYAHwBPQFNAIAAiwHAAcMBjgB+AHkAgQG/AcEAgwBRAHqAJYAQ
+gEmAT4BpgDaAcYA3gGWAQIBrgG+APoAHgC+AMYBcgG2AdIAhgAKAQ4BHgCeAM4ArgCOANIA5gDyAQYAS
+gGGAZ4BLgDqAKYBFgF+AY4BNgA2ALdIADgA+AhMC+IB2rxArAvkC+gL7AvwC/QL+Av8DAAMBAwIDAwME
+AwUDBgMHAwgDCQMKAwsDDAMNAw4DDwMQAxEDEgMTAxQDFQMWAxcDGAMZAxoDGwMcAx0DHgMfAyADIQMi
+AyOAnoCfgKCAoYCigKOApIClgKaAp4CogKmAqoCrgKyArYCugK+AsICxgLKAs4C0gLWAtoC3gLiAuYC6
+gLuAvIC9gL6Av4DAgMGAwoDDgMSAxYDGgMeAyBALECwQLxAnEBQQMxAVECIQJRAyEDAQJBABEBEQIBAe
+E//////////9EAUQNBApECsQDBASEA4QExAWECYQKBAEEB8QIRAtECMQDRAqEB0QMRAu0gAOAD4AdANM
+gFGg0gAOAD4CEwNPgHag0gAOAD4CEwNSgHag0gA3ADgDVANVogNVADteTlNJQk9iamVjdERhdGEACAAZ
+ACIAJwAxADoAPwBEAFIAVABmAgMCCQJUAlsCYgJwAoICngKsArgCxALSAt0C6wMHAxUDKAM6A1QDXgNr
+A20DbwNxA3MDdQN3A3kDewN9A38DgQODA4UDhwOJA4sDjQOPA5gDpAOmA6gDwAPJA9ID3QPiA/ED+gQN
+BBYEIQQjBCYEKARnBHQEjQSaBLAEvgTIBNYE7wT8BQYFGAUsBTYFQgVEBUYFSAVKBUwFTgVTBVUFVwVZ
+BVsFXQVfBWEFYwV+BYkFkQWfBaoFxwXZBeQF7QX5BgIGDgYQBhIGFAYXBhkGGwYdBiYGKAZFBkcGSQZL
+Bk0GTwZRBlMGVQZXBlkGWwZdBl8GYQaCBooGkQabBp0GnwahBqMGpganBqkGqwbDBuQG8AcEBw8HGQcn
+BzQHQAdFB0cHSQdLB00HTwdUB1YHYAdxB3gHfweIB4oHkweVB5cHpAetB7IHuQfOB9YH4wfvB/0H/wgB
+CAMIBQgHCA4IGwgoCDAIMgg0CEAISQhOCGMIZQhnCGkIawh+CIsIjQiQCJkIogi0CMEIygjVCOEI6wjy
+CP4JHwkhCSMJJQknCSgJKgksCUQJZQlnCWkJawltCW8JcQl9CZ4JoAmiCaQJpgmnCakJqwnCCeMJ5Qnn
+CekJ6wntCe8J9goXChkKGwodCh8KIAoiCiQKOwpcCl4KYApiCmQKZgpoCnYKlwqZCpsKnQqfCqIKowql
+CqcKwQriCuQK5groCuoK7AruCvQLFQsXCxkLGwsdCx4LIAsiCzwLXQtfC2ELYwtlC2cLaQuKC4wLjguQ
+C5ILkwuVC5cLsAvRC9ML1QvXC9kL2wvdC/4MAAwCDAQMBgwHDAkMCwwkDEUMRwxJDEsMTQxPDFEMcgx0
+DHYMeAx6DHsMfQx/DJYMtwy5DLsMvQy/DMEMwwzWDPcM+Qz7DP0M/w0ADQINBA0dDT4NQA1CDUQNRg1I
+DUoNaw1tDW8NcQ1zDXQNdg14DZINsw21DbcNuQ27Db0Nvw3gDeIN5A3mDegN6Q3rDe0OBw4oDioOLA4u
+DjAOMg40DlUOVw5ZDlsOXQ5eDmAOYg57DpwOng6gDqIOpA6mDqgOyQ7LDs0Ozw7RDtIO1A7WDu8PEA8S
+DxQPFg8YDxoPHA8lDywPOw9DD0wPUw9sD3cPhQ+RD5oPnw+yD7sPwg/PD9UP3g/gD/cP+Q/7D/0P/xAB
+EAMQBRAHEAkQCxANEB4QLBA1ED0QPxBBEEMQRRBYEGEQaBB/EI4QnxChEKMQpRCnEK4QvxDBEMMQxRDH
+ENYQ5xDpEOsQ7RDvEQURFhEYERoRHBEeESkROhE8ET4RQBFCEU4RXxFhEWMRZRFnEXkRihGMEY4RkBGS
+EaERshG0EbYRuBG6EcMR1BHWEdgR2hHcEfASARIDEgUSBxIJEhcSIBIiEmMSZRJnEmkSaxJtEm8ScRJz
+EnUSdxJ5EnsSfRJ/EoESgxKFEocSiRKLEo0SjxKREpMSlRKXEpkSmxKdEp8SoRKqEqwSrhK8EsUSyhLT
+EtUTFhMYExoTHBMeEyATIhMkEyYTKBMqEywTLhMwEzITNBM2EzgTOhM8Ez4TQBNCE0QTRhNIE0oTTBNO
+E1ATUhNUE10TXxOiE6QTphOoE6oTrBOuE7ATshO0E7YTuBO6E7wTvhPAE8ITxBPGE8gTyhPME84T0BPS
+E9QT1hPYE9oT3BPeE+AT4hPrE+0UMBQyFDQUNhQ4FDoUPBQ+FEAUQhREFEYUSBRKFEwUThRQFFIUVBRW
+FFgUWhRcFF4UYBRiFGQUZhRoFGoUbBRuFHAUhxShFLcU0xTvFQcVIxU7FU0VZRWBFY0VqRW2FdIV7hYJ
+FiUWRxZjFnsWkxazFtgW9hcQFzEXTxdnF38XjBekF60XrxewF7kXuxe8F8UXxxggGCIYJBgmGCgYKhgs
+GC4YMBgyGDQYNhg4GDoYPBg+GEAYQhhEGEYYSBhKGEwYThhQGFIYVBhWGFgYWhhcGF4YYBhiGGQYZhho
+GGoYbBhuGHAYchh0GHYYfxiBGNoY3BjeGOAY4hjkGOYY6BjqGOwY7hjwGPIY9Bj2GPgY+hj8GP4ZABkC
+GQQZBhkIGQoZDBkOGRAZEhkUGRYZGBkaGRwZHhkgGSIZJBkmGSgZKhksGS4ZMBkyGTQZNhk4GToZPBk+
+GUAZQhlEGUYZSBlKGUwZThlQGVkZWxldGV8ZYRljGWUZZxlpGWsZbRlvGXEZcxl1GXcZeRl7GX0ZfxmB
+GYMZjBmOGY8ZmBmaGZsZpBmmGacZsBm1AAAAAAAAAgIAAAAAAAADVgAAAAAAAAAAAAAAAAAAGcQ
diff --git a/macosx/StatsWindowController.h b/macosx/StatsWindowController.h
index 579c1abc6..6bd91769a 100644
--- a/macosx/StatsWindowController.h
+++ b/macosx/StatsWindowController.h
@@ -27,7 +27,8 @@
@interface StatsWindowController : NSWindowController
{
- IBOutlet NSTextField * fUploadedField, * fDownloadedField, * fRatioField, * fTimeField, * fNumOpenedField;
+ IBOutlet NSTextField * fUploadedField, * fUploadedAllField, * fDownloadedField, * fDownloadedAllField,
+ * fRatioField, * fRatioAllField, * fTimeField, * fTimeAllField, * fNumOpenedField;
NSTimer * fTimer;
}
diff --git a/macosx/StatsWindowController.m b/macosx/StatsWindowController.m
index 016f70fca..e36f4fdf3 100644
--- a/macosx/StatsWindowController.m
+++ b/macosx/StatsWindowController.m
@@ -79,13 +79,24 @@ tr_handle * fLib;
tr_getCumulativeSessionStats(fLib, &statsAll);
tr_getSessionStats(fLib, &statsSession);
- [fUploadedField setStringValue: [NSString stringForLargeFileSizeGigs: statsAll.uploadedGigs bytes: statsAll.uploadedBytes]];
- [fDownloadedField setStringValue: [NSString stringForLargeFileSizeGigs: statsAll.downloadedGigs bytes: statsAll.downloadedBytes]];
- [fRatioField setStringValue: [NSString stringForRatio: statsAll.ratio]];
+ [fUploadedField setStringValue: [NSString stringForLargeFileSizeGigs: statsSession.uploadedGigs bytes: statsSession.uploadedBytes]];
+ [fUploadedAllField setStringValue: [[NSString stringForLargeFileSizeGigs: statsAll.uploadedGigs bytes: statsAll.uploadedBytes]
+ stringByAppendingString: NSLocalizedString(@" total", "stats total")]];
- [fTimeField setStringValue: [self timeString: statsAll.secondsActive]];
+ [fDownloadedField setStringValue: [NSString stringForLargeFileSizeGigs: statsSession.downloadedGigs
+ bytes: statsSession.downloadedBytes]];
+ [fDownloadedAllField setStringValue: [[NSString stringForLargeFileSizeGigs: statsAll.downloadedGigs
+ bytes: statsAll.downloadedBytes] stringByAppendingString: NSLocalizedString(@" total", "stats total")]];
- [fNumOpenedField setStringValue: [NSString stringWithFormat: NSLocalizedString(@"%d Times", "stats window -> times opened"),
+ [fRatioField setStringValue: [NSString stringForRatio: statsSession.ratio]];
+ [fRatioAllField setStringValue: [[NSString stringForRatio: statsAll.ratio]
+ stringByAppendingString: NSLocalizedString(@" total", "stats total")]];
+
+ [fTimeField setStringValue: [self timeString: statsSession.secondsActive]];
+ [fTimeAllField setStringValue: [[self timeString: statsAll.secondsActive]
+ stringByAppendingString: NSLocalizedString(@" total", "stats total")]];
+
+ [fNumOpenedField setStringValue: [NSString stringWithFormat: NSLocalizedString(@"%d times", "stats window -> times opened"),
statsAll.sessionCount]];
}