Fixes floating point precision in the Resources graph labels by using String.sprintf to
authortimothy@apple.com <timothy@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 10 Apr 2008 23:56:47 +0000 (23:56 +0000)
committertimothy@apple.com <timothy@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 10 Apr 2008 23:56:47 +0000 (23:56 +0000)
format the values. Also makes the image view use Number.bytesToString when showing the file
size. Makes Number.bytesToString and Number.secondsToString take an optional formatter function
so the Inspector can pass WebInspector.UIString, so the format strings can be localized.

https://bugs.webkit.org/show_bug.cgi?id=18381
https://bugs.webkit.org/show_bug.cgi?id=14333

Reviewed by Adam Roben.

* English.lproj/InspectorLocalizedStrings.js: Added the new strings.
* page/inspector/ImageView.js:
(WebInspector.ImageView): Use Number.bytesToString to format this.resource.contentLength.
* page/inspector/ResourcesPanel.js:
(WebInspector.ResourceTransferTimeCalculator.prototype.formatValue): Pass WebInspector.UIString
to Number.secondsToString.
(WebInspector.ResourceTransferSizeCalculator.prototype.formatValue): Pass WebInspector.UIString
to Number.bytesToString.
* page/inspector/utilities.js:
(Number.secondsToString): Added a formatterFunction argument. Use the formatter and format strings
to control the number precision.
(Number.bytesToString): Ditto.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@31789 268f45cc-cd09-0410-ab3c-d52691b4dbfc

WebCore/ChangeLog
WebCore/English.lproj/InspectorLocalizedStrings.js
WebCore/page/inspector/ImageView.js
WebCore/page/inspector/ResourcesPanel.js
WebCore/page/inspector/utilities.js

index ba42987..f9d078d 100644 (file)
@@ -1,3 +1,28 @@
+2008-04-10  Timothy Hatcher  <timothy@apple.com>
+
+        Fixes floating point precision in the Resources graph labels by using String.sprintf to
+        format the values. Also makes the image view use Number.bytesToString when showing the file
+        size. Makes Number.bytesToString and Number.secondsToString take an optional formatter function
+        so the Inspector can pass WebInspector.UIString, so the format strings can be localized.
+
+        https://bugs.webkit.org/show_bug.cgi?id=18381
+        https://bugs.webkit.org/show_bug.cgi?id=14333
+
+        Reviewed by Adam Roben.
+
+        * English.lproj/InspectorLocalizedStrings.js: Added the new strings.
+        * page/inspector/ImageView.js:
+        (WebInspector.ImageView): Use Number.bytesToString to format this.resource.contentLength.
+        * page/inspector/ResourcesPanel.js:
+        (WebInspector.ResourceTransferTimeCalculator.prototype.formatValue): Pass WebInspector.UIString
+        to Number.secondsToString.
+        (WebInspector.ResourceTransferSizeCalculator.prototype.formatValue): Pass WebInspector.UIString
+        to Number.bytesToString.
+        * page/inspector/utilities.js:
+        (Number.secondsToString): Added a formatterFunction argument. Use the formatter and format strings
+        to control the number precision.
+        (Number.bytesToString): Ditto.
+
 2008-04-010  Alice Liu  <alice.liu@apple.com>
 
         Reviewed by Dan Bernstein.
index 5c77d7f..6f07fda 100644 (file)
Binary files a/WebCore/English.lproj/InspectorLocalizedStrings.js and b/WebCore/English.lproj/InspectorLocalizedStrings.js differ
index 3a16e3b..001ffdd 100644 (file)
@@ -55,7 +55,7 @@ WebInspector.ImageView = function(resource)
 
     var imageProperties = [
         { name: WebInspector.UIString("Dimensions"), value: WebInspector.UIString("%d × %d", this.imagePreviewElement.naturalWidth, this.imagePreviewElement.height) },
-        { name: WebInspector.UIString("File size"), value: WebInspector.UIString("%.2fKB", (this.resource.contentLength / 1024)) },
+        { name: WebInspector.UIString("File size"), value: Number.bytesToString(this.resource.contentLength, WebInspector.UIString.bind(WebInspector)) },
         { name: WebInspector.UIString("MIME type"), value: this.resource.mimeType }
     ];
 
index 4914f7b..c2d5251 100644 (file)
@@ -1017,7 +1017,7 @@ WebInspector.ResourceTransferTimeCalculator.prototype = {
 
     formatValue: function(value)
     {
-        return Number.secondsToString(value);
+        return Number.secondsToString(value, WebInspector.UIString.bind(WebInspector));
     }
 }
 
@@ -1036,7 +1036,7 @@ WebInspector.ResourceTransferSizeCalculator.prototype = {
 
     formatValue: function(value)
     {
-        return Number.bytesToString(value);
+        return Number.bytesToString(value, WebInspector.UIString.bind(WebInspector));
     }
 }
 
index 5d4850b..181a409 100644 (file)
@@ -690,38 +690,44 @@ function nodeTitleInfo(hasChildren, linkify)
     return info;
 }
 
-Number.secondsToString = function(seconds)
+Number.secondsToString = function(seconds, formatterFunction)
 {
+    if (!formatterFunction)
+        formatterFunction = String.sprintf;
+
     var ms = seconds * 1000;
     if (ms < 1000)
-        return Math.round(ms) + "ms";
+        return formatterFunction("%.0fms", ms);
 
     if (seconds < 60)
-        return (Math.round(seconds * 100) / 100) + "s";
+        return formatterFunction("%.2fs", seconds);
 
     var minutes = seconds / 60;
     if (minutes < 60)
-        return (Math.round(minutes * 10) / 10) + "min";
+        return formatterFunction("%.1fmin", minutes);
 
     var hours = minutes / 60;
     if (hours < 24)
-        return (Math.round(hours * 10) / 10) + "hrs";
+        return formatterFunction("%.1fhrs", hours);
 
     var days = hours / 24;
-    return (Math.round(days * 10) / 10) + " days";
+    return formatterFunction("%.1f days", days);
 }
 
-Number.bytesToString = function(bytes)
+Number.bytesToString = function(bytes, formatterFunction)
 {
+    if (!formatterFunction)
+        formatterFunction = String.sprintf;
+
     if (bytes < 1024)
-        return bytes + "B";
+        return formatterFunction("%.0fB", bytes);
 
     var kilobytes = bytes / 1024;
     if (kilobytes < 1024)
-        return (Math.round(kilobytes * 100) / 100) + "KB";
+        return formatterFunction("%.2fKB", kilobytes);
 
     var megabytes = kilobytes / 1024;
-    return (Math.round(megabytes * 1000) / 1000) + "MB";
+    return formatterFunction("%.3fMB", megabytes);
 }
 
 Number.constrain = function(num, min, max)