Changeset 566
- Timestamp:
- 2007-08-21 23:23:13 (1 year ago)
- Files:
-
- trunk/chrome/content/dta/manager.js (modified) (1 diff)
- trunk/chrome/content/dta/manager/info.js (modified) (2 diffs)
- trunk/chrome/content/dta/manager/info.xul (modified) (7 diffs)
- trunk/chrome/content/dta/manager/tooltip.js (modified) (3 diffs)
- trunk/chrome/skin/manager/info.css (added)
- trunk/chrome/skin/manager/style.css (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/chrome/content/dta/manager.js
r565 r566 46 46 const MAX_BUFFER_SIZE = 5 * 1024 * 1024; 47 47 const MIN_BUFFER_SIZE = 1 * 1024 * 1024; 48 const SPEED_COUNT = 25;49 48 50 49 const REFRESH_FREQ = 1000; trunk/chrome/content/dta/manager/info.js
r476 r566 24 24 load: function DTA_load() { 25 25 try { 26 this.canvas = $("draw").getContext("2d");27 28 26 // d is an Array of Downloads 29 27 var downloads = window.arguments[0]; 30 28 if (downloads.length == 1) { 31 29 var d = downloads[0]; 32 $("infoURL").value = d.urlManager.usable; 30 $("infoIcon").src = d.largeIcon; 31 $("infoURL").value = d.urlManager.url; 32 window.title = $("infoDest").value = d.destinationFile; 33 33 34 $("sourcePage").value = d.referrer.spec; 34 35 $('renaming').value = d.mask; 35 36 $('directory').value = d.pathName; 36 37 $('hash').value = d.hash; 37 var caption = document.getAnonymousNodes($("logo"))[0];38 caption.style.backgroundImage = 'url(' + getIcon(d.fileName, 'isMetaLink' in d, 32) + ')';39 caption.style.paddingLeft = '37px';40 38 this.item = d; 41 Dialog.draw();39 Tooltip.start(d); 42 40 } 43 41 else { 44 45 42 // more than just one download 46 $("infoURL").value = $("sourcePage").value = "---"; 43 $('infoDest', 'infoURL', 'sourcePage').forEach( 44 function(e) { 45 e.value = "---"; 46 } 47 ); 47 48 $("hash").setAttribute('readonly', 'true'); 48 49 $("hash").setAttribute('disabled', 'true'); … … 128 129 } 129 130 } 130 131 // XXX: saveing destroys order, saving with putting new entries in the end, or as 2nd entry? 132 131 Tooltip.stop(); 133 132 return true; 134 },135 draw: function DTA_draw() {136 var d = this.item;137 138 var c = d.firstChunk;139 var canvas = this.canvas;140 141 canvas.clearRect(0,0,300,20);142 143 var prog = canvas.createLinearGradient(0,0,0,16);144 prog.addColorStop(0, 'rgba(96,165,1,255)');145 prog.addColorStop(1, 'rgba(123,214,1,255)');146 147 var compl = canvas.createLinearGradient(0,0,0,16);148 compl.addColorStop(0, 'rgba(13,141,15,255)');149 compl.addColorStop(1, 'rgba(0,199,56,255)');150 151 var cancel = canvas.createLinearGradient(0,0,0,16);152 cancel.addColorStop(0, 'rgba(151,58,2,100)');153 cancel.addColorStop(1, 'rgba(255,0,0,100)');154 155 var normal = canvas.createLinearGradient(0,0,0,16);156 normal.addColorStop(0, 'rgba(255,255,255,50)');157 normal.addColorStop(1, '#ECE9D8');158 159 canvas.fillStyle = normal;160 canvas.fillRect(0,0,300,20);161 162 if (d.is(COMPLETE, FINISHING)) {163 canvas.fillStyle = compl;164 canvas.fillRect(0,0,300,20);165 } else if (d.is(CANCELED)) {166 canvas.fillStyle = cancel;167 canvas.fillRect(0,0,300,20);168 } else if (d.started && d.totalSize) {169 d.chunks.forEach(170 function(c) {171 this.canvas.fillStyle = prog;172 this.canvas.fillRect(173 Math.ceil(c.start / d.totalSize * 300),174 0,175 Math.ceil(c.written / d.totalSize * 300),176 20177 );178 },179 this180 );181 }182 setTimeout('Dialog.draw();', 150);183 133 }, 184 134 browseDir: function DTA_browseDir() { trunk/chrome/content/dta/manager/info.xul
r472 r566 11 11 <?xml-stylesheet href="chrome://global/skin/" type="text/css"?> 12 12 <?xml-stylesheet href="chrome://dta/skin/common/style.css" type="text/css" ?> 13 <?xml-stylesheet href="chrome://dta/skin/manager/info.css" type="text/css" ?> 13 14 14 15 <!DOCTYPE dialog [ … … 17 18 <!ENTITY % infoDTD SYSTEM "chrome://dta/locale/info.dtd"> 18 19 %infoDTD; 20 <!ENTITY % managerDTD SYSTEM "chrome://dta/locale/manager.dtd"> 21 %managerDTD; 19 22 ]> 20 23 … … 25 28 id="dTaDownloadInfo" 26 29 onload="Dialog.load();" 27 style="width:500px; margin: 0; padding: 0;"28 30 buttons="accept,cancel" 29 ondialogaccept="return Dialog.accept();" 31 ondialogaccept="return Dialog.accept();" 32 ondialogcancel="Tooltip.stop(); return true;" 30 33 > 31 34 … … 35 38 <script type="application/javascript;version=1.7" src="chrome://dta/content/common/internalFunctions.js"/> 36 39 <script type="application/javascript;version=1.7" src="chrome://dta/content/dta/manager/info.js"/> 40 <script type="application/javascript;version=1.7" src="chrome://dta/content/dta/manager/tooltip.js"/> 37 41 38 42 <script src="chrome://global/content/nsDragAndDrop.js"/> … … 47 51 </keyset> 48 52 49 <dialogheader id="logo" title="&info.label;" /> 50 51 <grid style="padding:5px 10px;"> 53 <hbox> 54 <vbox> 55 <spacer flex="1"/> 56 <image id="infoIcon"/> 57 <spacer flex="1"/> 58 </vbox> 59 <separator class="thin" /> 60 <grid id="infoGrid"> 61 <columns><column/><column flex="1"/></columns> 62 <rows> 63 <label crop="left" id="infoDest" /> 64 <row> 65 <label value="&infoURLTitle.value;" /> 66 <label crop="left" id="infoURL" /> 67 </row> 68 <row> 69 <label value="&infoSizeTitle.value;" /> 70 <label crop="left" id="infoSize" /> 71 </row> 72 </rows> 73 <spacer flex="1"/> 74 </grid> 75 </hbox> 76 <separator class="thin" /> 77 <grid> 52 78 <columns> 53 79 <column /> … … 55 81 </columns> 56 82 <rows> 57 <row align="center">58 <label control="infoURL" id="infoURLTitle" value="&link.value;" />59 <textbox id="infoURL" readonly="true" />60 </row>61 83 <row align="center"> 62 84 <label control="sourcePage" id="sourcePageTitle" value="&referrer.value;" /> … … 83 105 </rows> 84 106 </grid> 85 86 <html:canvas id="draw" width="300" height="20" style="border:1px solid #555; margin:5px 10px;" ></html:canvas> 107 <separator class="thin" /> 108 <grid id="canvasGrid"> 109 <columns><column/><column flex="1"/><column/><column/></columns> 110 <rows> 111 <stack> 112 <html:canvas id="chunkCanvas" height="40px"></html:canvas> 113 <label id="infoPercent"/> 114 </stack> 115 <row> 116 <label value="&elapsedTitle.value;"/> 117 <label id="timeElapsed"/> 118 <label value="&remainingTitle.value;"/> 119 <label id="timeRemaining"/> 120 </row> 121 <separator class="thin" /> 122 <html:canvas id="speedCanvas" height="33"></html:canvas> 123 <row> 124 <label value="¤tSpeedTitle.value;"/> 125 <label id="speedCurrent"/> 126 <label value="&avgSpeedTitle.value;"/> 127 <label id="speedAverage"/> 128 </row> 129 </rows> 130 </grid> 131 87 132 </dialog> trunk/chrome/content/dta/manager/tooltip.js
r480 r566 38 38 39 39 const TOOLTIP_FREQ = 500; 40 const SPEED_COUNT = 25; 41 40 42 var Tooltip = { 41 43 _current: null, … … 195 197 196 198 try { 199 if (file.speeds.length) { 200 var avg = 0; 201 file.speeds.forEach( 202 function(s) { 203 avg += s; 204 } 205 ) 206 $('speedAverage').value = Utils.formatBytes(avg / file.speeds.length) + "/s"; 207 } 208 else { 209 $('speedAverage').value = _('unknown'); 210 } 211 197 212 $('infoSize').value = file.totalSize > 0 ? Utils.formatBytes(file.totalSize) : _('unknown'); 198 213 if (file.is(RUNNING)) { … … 200 215 $('timeRemaining').value = file.status; 201 216 $('speedCurrent').value = file.speed; 202 if (file.speeds.length) {203 var avg = 0;204 file.speeds.forEach(205 function(s) {206 avg += s;207 }208 )209 $('speedAverage').value = Utils.formatBytes(avg / file.speeds.length) + "/s";210 }211 else {212 $('speedAverage').value = _('unknown');213 }214 217 } 215 218 else { 216 $('timeElapsed', 'timeRemaining', 'speedCurrent' , 'speedAverage').forEach(219 $('timeElapsed', 'timeRemaining', 'speedCurrent').forEach( 217 220 function(e) { 218 221 e.value = _('nal'); trunk/chrome/skin/manager/style.css
r522 r566 109 109 } 110 110 #infoGrid label[crop] { 111 font-weight: normal !important;111 font-weight: normal; 112 112 max-width: 300px; 113 113 }
