Changeset 297
- Timestamp:
- 03/21/08 18:08:48 (2 years ago)
- Files:
-
- trunk/uploadr/MacUploadr.app/Contents/Resources/chrome/content/uploadr/conf.js (modified) (1 diff)
- trunk/uploadr/MacUploadr.app/Contents/Resources/chrome/content/uploadr/extension.js (modified) (1 diff)
- trunk/uploadr/MacUploadr.app/Contents/Resources/chrome/content/uploadr/meta.js (modified) (2 diffs)
- trunk/uploadr/MacUploadr.app/Contents/Resources/chrome/content/uploadr/mouse.js (modified) (1 diff)
- trunk/uploadr/MacUploadr.app/Contents/Resources/chrome/content/uploadr/photos.js (modified) (2 diffs)
- trunk/uploadr/MacUploadr.app/Contents/Resources/chrome/content/uploadr/threads.js (modified) (3 diffs)
- trunk/uploadr/MacUploadr.app/Contents/Resources/chrome/content/uploadr/upload.js (modified) (4 diffs)
- trunk/uploadr/MacUploadr.app/Contents/Resources/defaults/preferences/prefs.js (modified) (1 diff)
- trunk/uploadr/extensions (added)
- trunk/uploadr/extensions/helloworld (added)
- trunk/uploadr/extensions/helloworld/chrome.manifest (added)
- trunk/uploadr/extensions/helloworld/content (added)
- trunk/uploadr/extensions/helloworld/content/hello.xul (added)
- trunk/uploadr/extensions/helloworld/content/overlay.js (added)
- trunk/uploadr/extensions/helloworld/content/overlay.xul (added)
- trunk/uploadr/extensions/helloworld/install.rdf (added)
- trunk/uploadr/extensions/helloworld/locale (added)
- trunk/uploadr/extensions/helloworld/locale/en-US (added)
- trunk/uploadr/extensions/helloworld/locale/en-US/hello.dtd (added)
- trunk/uploadr/extensions/helloworld/locale/en-US/overlay.dtd (added)
- trunk/uploadr/extensions/helloworld/skin (added)
- trunk/uploadr/extensions/helloworld/skin/overlay.css (added)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/uploadr/MacUploadr.app/Contents/Resources/chrome/content/uploadr/conf.js
r294 r297 33 33 // What types of API events should be written to the console? 34 34 console: { 35 thumb: true,35 thumb: false, 36 36 request: false, 37 37 response: false, trunk/uploadr/MacUploadr.app/Contents/Resources/chrome/content/uploadr/extension.js
r296 r297 12 12 var extension = { 13 13 14 after_login: { 15 list: [], 16 add: function(fn) { 17 return extension._add('after_login', fn); 18 }, 19 remove: function(id) { 20 extension._remove('after_login', id); 21 }, 22 exec: function(user) { 23 extension._exec('after_login', [user]); 24 } 14 // Dispatch a job to a background thread 15 // The parameter must implement nsIRunnable 16 background: function(runnable) { 17 threads.worker.dispatch(runnable, threads.worker.DISPATCH_NORMAL); 25 18 }, 26 19 27 after_add: { 28 list: [], 29 add: function(fn) { 30 return extension._add('after_add', fn); 31 }, 32 remove: function(id) { 33 extension._remove('after_add', id); 34 }, 35 exec: function(list) { 36 extension._exec('after_add', [list]); 37 } 20 // Event handlers 21 // Please don't call these on your own. Instead, check out the 22 // helloworld extension on http://code.flickr.com/ and play along. 23 Handler: function() { 24 this.list = []; 25 this.add = function() { return extension._add.apply(this, arguments); }; 26 this.remove = function() { extension._remove.apply(this, arguments); }; 27 this.exec = function() { extension._exec.apply(this, arguments); }; 38 28 }, 39 40 before_upload: { 41 list: [], 42 add: function(fn) { 43 return extension._add('before_upload', fn); 44 }, 45 remove: function(id) { 46 extension._remove('before_upload', id); 47 }, 48 exec: function(list) { 49 extension._exec('before_upload', [list]); 50 } 51 }, 52 53 after_upload: { 54 list: [], 55 add: function(fn) { 56 return extension._add('after_upload', fn); 57 }, 58 remove: function(id) { 59 extension._remove('after_upload', id); 60 }, 61 exec: function(ok, fail) { 62 extension._exec('after_upload', [ok, fail]); 63 } 64 }, 65 66 // Don't call these on your own, use the nice hooks above 67 _add: function(e, fn) { 68 var id = extension[e].list.length; 69 extension[e].list.push(fn); 29 _add: function(fn) { 30 var id = this.list.length; 31 this.list.push(fn); 70 32 return id; 71 33 }, 72 _remove: function(e, id) { 73 if (extension[e].list.length > id) { 74 extension[e].list[id] = null; 75 } 34 _remove: function(id) { 35 if (this.list.length > id) { this.list[id] = null; } 76 36 }, 77 _exec: function( e, args) {78 var ii = extension[e].list.length;37 _exec: function() { 38 var ii = this.list.length; 79 39 for (var i = 0; i < ii; ++i) { 80 var fn = extension[e].list[i];81 if ('function' == typeof fn) { fn.apply(null, arg s); }40 var fn = this.list[i]; 41 if ('function' == typeof fn) { fn.apply(null, arguments); } 82 42 } 83 43 } 84 44 85 45 }; 46 47 // Create the event handlers 48 extension.after_login = new extension.Handler(); 49 extension.after_add = new extension.Handler(); 50 extension.after_thumb = new extension.Handler(); 51 extension.before_remove = new extension.Handler(); 52 extension.after_select = new extension.Handler(); 53 extension.after_edit = new extension.Handler(); 54 extension.after_reorder = new extension.Handler(); 55 extension.before_upload = new extension.Handler(); 56 extension.before_one_upload = new extension.Handler(); 57 extension.after_one_upload = new extension.Handler(); 58 extension.on_upload_progress = new extension.Handler(); 59 extension.after_upload = new extension.Handler(); trunk/uploadr/MacUploadr.app/Contents/Resources/chrome/content/uploadr/meta.js
r282 r297 199 199 } 200 200 201 // Send the selected photos list to extensions 202 extension.after_select.exec(photos.selected); 203 201 204 }, 202 205 … … 267 270 p.safety_level = parseInt(document.getElementById('single_safety_level').value); 268 271 } 272 273 // Send the selected photos list to extensions 274 extension.after_edit.exec(photos.selected); 269 275 270 276 }, trunk/uploadr/MacUploadr.app/Contents/Resources/chrome/content/uploadr/mouse.js
r279 r297 467 467 photos.sort = false; 468 468 469 // Let extensions know we reordered photos 470 extension.after_reorder.exec(true); 471 469 472 } 470 473 mouse.dragging = 0; trunk/uploadr/MacUploadr.app/Contents/Resources/chrome/content/uploadr/photos.js
r296 r297 372 372 var ii = photos.selected.length; 373 373 if (0 == ii) { return; } 374 375 // Tell extensions which photos we're removing 376 extension.before_remove.exec(photos.selected); 374 377 375 378 // Remove selected photos … … 796 799 this.progress_bar = null; 797 800 this.nsid = null; 801 this.photo_id = null; 798 802 }; trunk/uploadr/MacUploadr.app/Contents/Resources/chrome/content/uploadr/threads.js
r291 r297 256 256 Components.utils.reportError(err); 257 257 } 258 259 // Tell extensions that we got a new thumbnail 260 extension.after_thumb.exec(this.id); 261 258 262 unblock_sort(); 259 263 unblock_remove(); … … 316 320 unblock_normalize(); 317 321 photos.list[this.id].path = this.path; 322 323 // Tell extensions that this photo was edited (rotated) 324 extension.after_edit.exec([this.id]); 325 318 326 }, 319 327 QueryInterface: function(iid) { … … 403 411 meta.first = false; 404 412 413 // Tell extensions that photos were sorted 414 extension.after_reorder.exec(false); 415 405 416 }, 406 417 QueryInterface: function(iid) { trunk/uploadr/MacUploadr.app/Contents/Resources/chrome/content/uploadr/upload.js
r296 r297 71 71 72 72 var photo = photos.uploading[id]; 73 74 // Let extensions have their say 75 extension.before_one_upload.exec(photo); 73 76 74 77 // EXPERIMENTAL: Pass the photo to the socket uploadr … … 245 248 246 249 } 247 photos.uploaded.push(photo_id); 250 photos.uploading[id].photo_id = photo_id; 251 photos.uploaded.push(photos.uploading[id]); 248 252 249 253 // Add to sets … … 312 316 } 313 317 } 318 319 // Let extensions have their say 320 extension.after_one_upload.exec(photos.uploading[id], 'ok' == stat); 321 314 322 photos.uploading[id] = null; 315 323 … … 348 356 var a = available >> 10; 349 357 var kb = upload.progress_last - a; 358 359 // Tell extensions how many kilobytes went by 360 extension.on_upload_progress.exec(kb); 350 361 351 362 // Have we made any progress? trunk/uploadr/MacUploadr.app/Contents/Resources/defaults/preferences/prefs.js
r296 r297 15 15 16 16 // Software updates 17 pref('app.update.url', 'http ://flickr.com/services/uploadr/updates/?product=%PRODUCT%&version=%VERSION%&build_id=%BUILD_ID%&build_target=%BUILD_TARGET%&locale=%LOCALE%&');17 pref('app.update.url', 'https://secure.flickr.com/services/uploadr/updates/?product=%PRODUCT%&version=%VERSION%&build_id=%BUILD_ID%&build_target=%BUILD_TARGET%&locale=%LOCALE%&'); 18 18 pref('app.update.url.manual', 'http://flickr.com/tools/uploadr/'); 19 19 pref('app.update.url.details', 'http://flickr.com/tools/uploadr/');