Changeset 10987
- Timestamp:
- Jul 10, 2010, 2:05:25 AM (12 years ago)
- Location:
- trunk
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/gtk/util.c
r10986 r10987 53 53 const char * mem_T_str = N_("TiB"); 54 54 55 const int disk_K = 10 00;56 const char * disk_K_str = N_(" kB");57 const char * disk_M_str = N_("M B");58 const char * disk_G_str = N_("G B");59 const char * disk_T_str = N_("T B");55 const int disk_K = 1024; 56 const char * disk_K_str = N_("KiB"); 57 const char * disk_M_str = N_("MiB"); 58 const char * disk_G_str = N_("GiB"); 59 const char * disk_T_str = N_("TiB"); 60 60 61 61 const int speed_K = 1000; -
trunk/libtransmission/utils.c
r10986 r10987 1555 1555 { 1556 1556 char * name; 1557 u nsigned longvalue;1557 uint64_t value; 1558 1558 }; 1559 1559 … … 1571 1571 const char * gb, const char * tb ) 1572 1572 { 1573 u nsigned longvalue = kilo;1573 uint64_t value = kilo; 1574 1574 units->units[TR_FMT_KB].name = tr_strdup( kb ); 1575 1575 units->units[TR_FMT_KB].value = value; -
trunk/web/javascript/formatter.js
r10931 r10987 8 8 Transmission.fmt = (function() 9 9 { 10 var speed_K = 1000; 10 11 var speed_B_str = 'B'; 11 12 var speed_K_str = 'kB/s'; 12 13 var speed_M_str = 'MB/s'; 13 14 var speed_G_str = 'GB/s'; 14 15 var speed_T_str = 'TB/s'; 16 17 var size_K = 1024; 15 18 var size_B_str = 'B'; 16 19 var size_K_str = 'KiB'; 17 20 var size_M_str = 'MiB'; 18 21 var size_G_str = 'GiB'; 22 var size_T_str = 'TiB'; 23 24 var mem_K = 1024; 25 var mem_B_str = 'B'; 26 var mem_K_str = 'KiB'; 27 var mem_M_str = 'MiB'; 28 var mem_G_str = 'GiB'; 29 var mem_T_str = 'TiB'; 19 30 20 31 return { 21 speed_K: 1000, 22 23 size_K: 1024, 32 24 33 25 34 /* … … 48 57 49 58 /** 50 * Formats the bytes into a string value with B, KiB, MiB, or GiB units. 51 * 59 * Formats the a memory size into a human-readable string 52 60 * @param {Number} bytes the filesize in bytes 53 * @return {String} formatted string with B, KiB, MiB or GiB units. 61 * @return {String} human-readable string 62 */ 63 mem: function( bytes ) 64 { 65 if( bytes < mem_K ) 66 return bytes + ' ' + mem_B_str; 67 68 var convertedSize; 69 var unit; 70 71 if( bytes < Math.pow( mem_K, 2 ) ) 72 { 73 convertedSize = bytes / mem_K; 74 unit = mem_K_str; 75 } 76 else if( bytes < Math.pow( mem_K, 3 ) ) 77 { 78 convertedSize = bytes / Math.pow( mem_K, 2 ); 79 unit = mem_M_str; 80 } 81 else if( bytes < Math.pow( mem_K, 4 ) ) 82 { 83 convertedSize = bytes / Math.pow( mem_K, 3 ); 84 unit = mem_G_str; 85 } 86 else 87 { 88 convertedSize = bytes / Math.pow( mem_K, 4 ); 89 unit = mem_T_str; 90 } 91 92 // try to have at least 3 digits and at least 1 decimal 93 return convertedSize <= 9.995 ? convertedSize.toTruncFixed(2) + ' ' + unit 94 : convertedSize.toTruncFixed(1) + ' ' + unit; 95 }, 96 97 /** 98 * Formats the a disk capacity or file size into a human-readable string 99 * @param {Number} bytes the filesize in bytes 100 * @return {String} human-readable string 54 101 */ 55 102 size: function( bytes ) 56 103 { 57 var size_K = this.size_K;58 var size_M = size_K * size_K;59 var size_G = size_K * size_K * size_K;60 61 if( !bytes )62 return 'None';63 104 if( bytes < size_K ) 64 return bytes.toTruncFixed(0) + size_B_str; 65 66 if( bytes < ( size_K * 100 ) ) 67 return (bytes/size_K).toTruncFixed(2) + ' ' + size_K_str; 68 if( bytes < size_M ) 69 return (bytes/size_K).toTruncFixed(1) + ' ' + size_K_str; 70 71 if( bytes < ( size_M * 100 ) ) 72 return (bytes/size_M).toTruncFixed(2) + ' ' + size_M_str; 73 if( bytes < size_G ) 74 return (bytes/size_M).toTruncFixed(1) + ' ' + size_M_str; 75 76 if( bytes < ( size_G * 100 ) ) 77 return (bytes/size_G).toTruncFixed(2) + ' ' + size_G_str; 78 else 79 return (bytes/size_G).toTruncFixed(1) + ' ' + size_G_str; 80 }, 81 82 speed: function( bytes ) 83 { 84 var speed_K = this.speed_K; 85 var speed_M = speed_K * speed_K; 86 var speed_G = speed_K * speed_K * speed_K; 87 88 if( bytes==undefined || bytes==0 ) 89 return 'None'; 90 91 if( bytes < speed_K ) 92 return bytes.toTruncFixed(0) + ' ' + speed_B_str; 93 94 if( bytes < ( speed_K * 100 ) ) 95 return (bytes/speed_K).toTruncFixed(2) + ' ' + speed_K_str; 96 if( bytes < speed_M ) 97 return (bytes/speed_K).toTruncFixed(1) + ' ' + speed_K_str; 98 99 if( bytes < ( speed_M * 100 ) ) 100 return (bytes/speed_M).toTruncFixed(2) + ' ' + speed_M_str; 101 if( bytes < speed_G ) 102 return (bytes/speed_M).toTruncFixed(1) + ' ' + speed_M_str; 103 104 if( bytes < ( speed_G * 100 ) ) 105 return (bytes/speed_G).toTruncFixed(2) + ' ' + speed_G_str; 106 else 107 return (bytes/speed_G).toTruncFixed(1) + ' ' + speed_G_str; 105 return bytes + ' ' + size_B_str; 106 107 var convertedSize; 108 var unit; 109 110 if( bytes < Math.pow( size_K, 2 ) ) 111 { 112 convertedSize = bytes / size_K; 113 unit = size_K_str; 114 } 115 else if( bytes < Math.pow( size_K, 3 ) ) 116 { 117 convertedSize = bytes / Math.pow( size_K, 2 ); 118 unit = size_M_str; 119 } 120 else if( bytes < Math.pow( size_K, 4 ) ) 121 { 122 convertedSize = bytes / Math.pow( size_K, 3 ); 123 unit = size_G_str; 124 } 125 else 126 { 127 convertedSize = bytes / Math.pow( size_K, 4 ); 128 unit = size_T_str; 129 } 130 131 // try to have at least 3 digits and at least 1 decimal 132 return convertedSize <= 9.995 ? convertedSize.toTruncFixed(2) + ' ' + unit 133 : convertedSize.toTruncFixed(1) + ' ' + unit; 134 }, 135 136 speed: function( KBps ) 137 { 138 var speed = KBps; 139 140 if (speed <= 999.95) // 0 KBps to 999.9 K 141 return speed.toTruncFixed(1) + ' ' + speed_K_str; 142 143 speed /= speed_K; 144 145 if (speed <= 99.995) // 1 M to 99.99 M 146 return speed.toTruncFixed(2) + ' ' + speed_M_str; 147 if (speed <= 999.95) // 100 M to 999.9 M 148 return speed.toTruncFixed(1) + ' ' + speed_M_str; 149 150 // insane speeds 151 speed /= speed_K; 152 return speed.toTruncFixed(2) + ' ' + speed_G_str; 108 153 }, 109 154 -
trunk/web/javascript/transmission.js
r10942 r10987 643 643 } 644 644 645 var speed_K = Transmission.fmt.speed_K; 646 var up_bytes = parseInt( $('#prefs_form #upload_rate' )[0].value ) * speed_K; 647 var dn_bytes = parseInt( $('#prefs_form #download_rate')[0].value ) * speed_K; 648 var turtle_up_bytes = parseInt( $('#prefs_form #turtle_upload_rate' )[0].value ) * speed_K; 649 var turtle_dn_bytes = parseInt( $('#prefs_form #turtle_download_rate')[0].value ) * speed_K; 645 var up_bytes = parseInt( $('#prefs_form #upload_rate' )[0].value ); 646 var dn_bytes = parseInt( $('#prefs_form #download_rate')[0].value ); 647 var turtle_up_bytes = parseInt( $('#prefs_form #turtle_upload_rate' )[0].value ); 648 var turtle_dn_bytes = parseInt( $('#prefs_form #turtle_download_rate')[0].value ); 650 649 651 650 // pass the new prefs upstream to the RPC server … … 937 936 var up_limited = prefs[RPC._UpSpeedLimited]; 938 937 var dn_limited = prefs[RPC._DownSpeedLimited]; 939 var up_limit_b = prefs[RPC._UpSpeedLimit]; 940 var dn_limit_b = prefs[RPC._DownSpeedLimit]; 941 var up_limit_k = up_limit_b / Transmission.fmt.speed_K; 942 var dn_limit_k = dn_limit_b / Transmission.fmt.speed_K; 943 var turtle_up_limit_k = prefs[RPC._TurtleUpSpeedLimit] / Transmission.fmt.speed_K; 944 var turtle_dn_limit_k = prefs[RPC._TurtleDownSpeedLimit] / Transmission.fmt.speed_K; 938 var up_limit_k = prefs[RPC._UpSpeedLimit]; 939 var dn_limit_k = prefs[RPC._DownSpeedLimit]; 940 var turtle_up_limit_k = prefs[RPC._TurtleUpSpeedLimit]; 941 var turtle_dn_limit_k = prefs[RPC._TurtleDownSpeedLimit]; 945 942 946 943 $('div.download_location input')[0].value = prefs[RPC._DownloadDir]; … … 963 960 if (!iPhone) 964 961 { 965 setInnerHTML( $('#limited_download_rate')[0], 'Limit (' + Transmission.fmt.speed(dn_limit_ b) + ')' );962 setInnerHTML( $('#limited_download_rate')[0], 'Limit (' + Transmission.fmt.speed(dn_limit_k) + ')' ); 966 963 var key = dn_limited ? '#limited_download_rate' 967 964 : '#unlimited_download_rate'; 968 965 $(key).deselectMenuSiblings().selectMenuItem(); 969 966 970 setInnerHTML( $('#limited_upload_rate')[0], 'Limit (' + Transmission.fmt.speed(up_limit_ b) + ')' );967 setInnerHTML( $('#limited_upload_rate')[0], 'Limit (' + Transmission.fmt.speed(up_limit_k) + ')' ); 971 968 key = up_limited ? '#limited_upload_rate' 972 969 : '#unlimited_upload_rate'; … … 1081 1078 } else { 1082 1079 var rate_str = ($element[0].innerHTML).replace(/[^0-9]/ig, ''); 1083 var rate_ b = parseInt( rate_str ) * Transmission.fmt.speed_K;1084 setInnerHTML( $('#limited_download_rate')[0], 'Limit (' + Transmission.fmt.speed(rate_ b) + ')' );1080 var rate_val = parseInt( rate_str ); 1081 setInnerHTML( $('#limited_download_rate')[0], 'Limit (' + Transmission.fmt.speed(rate_val) + ')' ); 1085 1082 $('#limited_download_rate').deselectMenuSiblings().selectMenuItem(); 1086 1083 $('div.preference input#download_rate')[0].value = rate_str; 1087 args[RPC._DownSpeedLimit] = rate_ b;1084 args[RPC._DownSpeedLimit] = rate_val; 1088 1085 args[RPC._DownSpeedLimited] = true; 1089 1086 } … … 1100 1097 } else { 1101 1098 var rate_str = ($element[0].innerHTML).replace(/[^0-9]/ig, ''); 1102 var rate_ b = parseInt( rate_str ) * Transmission.fmt.speed_K;1103 setInnerHTML( $('#limited_upload_rate')[0], 'Limit (' + Transmission.fmt.speed(rate_ b) + ')' );1099 var rate_val = parseInt( rate_str ); 1100 setInnerHTML( $('#limited_upload_rate')[0], 'Limit (' + Transmission.fmt.speed(rate_val) + ')' ); 1104 1101 $('#limited_upload_rate').deselectMenuSiblings().selectMenuItem(); 1105 1102 $('div.preference input#upload_rate')[0].value = rate_str; 1106 args[RPC._UpSpeedLimit] = rate_ b;1103 args[RPC._UpSpeedLimit] = rate_val; 1107 1104 args[RPC._UpSpeedLimited] = true; 1108 1105 } … … 1240 1237 1241 1238 hash = t.hash(); 1242 pieces = t._pieceCount + ' , ' + Transmission.fmt.size(t._pieceSize);1239 pieces = t._pieceCount + ' pieces @ ' + Transmission.fmt.mem(t._pieceSize); 1243 1240 date_created = Transmission.fmt.timestamp( t._creator_date ); 1244 1241 }
Note: See TracChangeset
for help on using the changeset viewer.