diff --git a/changelog.txt b/changelog.txt index 1ea02eb6..45fe8038 100644 --- a/changelog.txt +++ b/changelog.txt @@ -3,6 +3,7 @@ OPENSEADRAGON CHANGELOG 1.0.0: (in progress) +* BREAKING CHANGE: TileSource 'ready' event handler signature changed for consistency to 'handlerMethod( eventSource, eventData)' (#239) * BREAKING CHANGE: Renamed EventHandler to EventSource (#225) * BREAKING CHANGE: MouseTracker event handler method signatures changed to 'handlerMethod( tracker, eventData)' (#23) * BREAKING CHANGE: Event names changed for consistency: changed to lower case, compound names hyphenated, and "on" prefixes removed (#226): diff --git a/src/tilesource.js b/src/tilesource.js index 9352487e..641f0e65 100644 --- a/src/tilesource.js +++ b/src/tilesource.js @@ -117,15 +117,8 @@ $.TileSource = function( width, height, tileSize, tileOverlap, minLevel, maxLeve for ( i = 0; i < arguments.length; i++ ) { if ( $.isFunction( arguments[ i ] ) ) { callback = arguments[ i ]; - // TODO Send generic object wrapping readySource as a property (breaking change) - // TODO Maybe placeHolderSource should be passed to callback as well for consistency - // with event handler signature? - // Should be this (although technically it works as-is): - //this.addHandler( 'ready', function ( placeHolderSource, placeHolderArgs ) { - // callback( placeHolderArgs ); - //} ); - this.addHandler( 'ready', function ( placeHolderSource, readySource ) { - callback( readySource ); + this.addHandler( 'ready', function ( placeHolderSource, placeHolderEventData ) { + callback( placeHolderSource, placeHolderEventData ); } ); //only one callback per constructor break; @@ -308,10 +301,7 @@ $.TileSource.prototype = { options = $TileSource.prototype.configure.apply( _this, [ data, url ]); readySource = new $TileSource( options ); _this.ready = true; - // TODO Send generic object wrapping readySource as a property (breaking change) - // Should be this: - //_this.raiseEvent( 'ready', { tileSource: readySource } ); - _this.raiseEvent( 'ready', readySource ); + _this.raiseEvent( 'ready', { tileSource: readySource } ); }; if( url.match(/\.js$/) ){ diff --git a/src/viewer.js b/src/viewer.js index 65199316..ecd8560f 100644 --- a/src/viewer.js +++ b/src/viewer.js @@ -438,8 +438,8 @@ $.extend( $.Viewer.prototype, $.EventSource.prototype, $.ControlDock.prototype, setTimeout(function(){ if ( $.type( tileSource ) == 'string') { //If its still a string it means it must be a url at this point - tileSource = new $.TileSource( tileSource, function( readySource ){ - openTileSource( _this, readySource ); + tileSource = new $.TileSource( tileSource, function( eventSource, eventData ){ + openTileSource( _this, eventData.tileSource ); }); tileSource.addHandler( 'open-failed', function ( name, args ) { _this.raiseEvent( 'open-failed', args );