mirror of
				https://github.com/flynx/ImageGrid.git
				synced 2025-11-03 21:00:14 +00:00 
			
		
		
		
	reworked platform detection and some tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
This commit is contained in:
		
							parent
							
								
									4f12f725fb
								
							
						
					
					
						commit
						6b16845856
					
				@ -21,6 +21,30 @@ var ImageGridFeatures =
 | 
			
		||||
module.ImageGridFeatures = Object.create(features.FeatureSet)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
// setup exit...
 | 
			
		||||
if(typeof(process) != 'undefined'){
 | 
			
		||||
	// nw.js...
 | 
			
		||||
	try{
 | 
			
		||||
		// this will fail if we're not in nw.js...
 | 
			
		||||
		requirejs('nw.gui')
 | 
			
		||||
 | 
			
		||||
		ImageGridFeatures.runtime = 'nw'
 | 
			
		||||
 | 
			
		||||
	// pure node.js...
 | 
			
		||||
	} catch(e) {
 | 
			
		||||
		ImageGridFeatures.runtime = 'node'
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
// browser...
 | 
			
		||||
} else if(typeof('window') != 'undefined'){
 | 
			
		||||
	ImageGridFeatures.runtime = 'browser'
 | 
			
		||||
 | 
			
		||||
// unknown...
 | 
			
		||||
} else {
 | 
			
		||||
	ImageGridFeatures.runtime = 'unknown'
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/*********************************************************************/
 | 
			
		||||
 | 
			
		||||
@ -42,60 +66,52 @@ var LifeCycleActions = actions.Actions({
 | 
			
		||||
				return
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			// setup exit...
 | 
			
		||||
			if(typeof(process) != 'undefined'){
 | 
			
		||||
				// nw.js...
 | 
			
		||||
				try{
 | 
			
		||||
					this.runtime = 'nw'
 | 
			
		||||
			// set the runtime...
 | 
			
		||||
			var runtime = this.runtime = ImageGridFeatures.runtime
 | 
			
		||||
 | 
			
		||||
					// this will fail if we're not in nw.js...
 | 
			
		||||
					var gui = requirejs('nw.gui')
 | 
			
		||||
 | 
			
		||||
					// this handles both reload and close...
 | 
			
		||||
					$(window).on('beforeunload', stop)
 | 
			
		||||
 | 
			
		||||
					// NOTE: we are using both events as some of them do not
 | 
			
		||||
					// 		get triggered in specific conditions and some do,
 | 
			
		||||
					// 		for example, this gets triggered when the window's
 | 
			
		||||
					// 		'X' is clicked while does not on reload...
 | 
			
		||||
					this.__nw_stop_handler = function(){
 | 
			
		||||
						var w = this
 | 
			
		||||
						try{
 | 
			
		||||
							that
 | 
			
		||||
								// wait till ALL the handlers finish before 
 | 
			
		||||
								// exiting...
 | 
			
		||||
								.on('stop.post', function(){
 | 
			
		||||
									w.close(true)
 | 
			
		||||
								})
 | 
			
		||||
								.stop()
 | 
			
		||||
 | 
			
		||||
						// in case something breaks exit...
 | 
			
		||||
						// XXX not sure if this is correct...
 | 
			
		||||
						} catch(e){
 | 
			
		||||
							this.close(true)
 | 
			
		||||
						}
 | 
			
		||||
					}
 | 
			
		||||
					gui.Window.get().on('close', this.__nw_stop_handler)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
				// pure node.js...
 | 
			
		||||
				} catch(e) {
 | 
			
		||||
					this.runtime = 'node'
 | 
			
		||||
 | 
			
		||||
					process.on('exit', stop)
 | 
			
		||||
				}
 | 
			
		||||
 | 
			
		||||
			// browser...
 | 
			
		||||
			} else if(typeof('window') != 'undefined'){
 | 
			
		||||
				this.runtime = 'browser'
 | 
			
		||||
			// nw.js...
 | 
			
		||||
			if(runtime == 'nw'){
 | 
			
		||||
				var gui = requirejs('nw.gui')
 | 
			
		||||
 | 
			
		||||
				// this handles both reload and close...
 | 
			
		||||
				$(window).on('beforeunload', stop)
 | 
			
		||||
 | 
			
		||||
			// unknown...
 | 
			
		||||
			} else {
 | 
			
		||||
				this.runtime = 'unknown'
 | 
			
		||||
			}
 | 
			
		||||
				// NOTE: we are using both events as some of them do not
 | 
			
		||||
				// 		get triggered in specific conditions and some do,
 | 
			
		||||
				// 		for example, this gets triggered when the window's
 | 
			
		||||
				// 		'X' is clicked while does not on reload...
 | 
			
		||||
				this.__nw_stop_handler = function(){
 | 
			
		||||
					var w = this
 | 
			
		||||
					try{
 | 
			
		||||
						that
 | 
			
		||||
							// wait till ALL the handlers finish before 
 | 
			
		||||
							// exiting...
 | 
			
		||||
							.on('stop.post', function(){
 | 
			
		||||
								w.close(true)
 | 
			
		||||
							})
 | 
			
		||||
							.stop()
 | 
			
		||||
 | 
			
		||||
					// in case something breaks exit...
 | 
			
		||||
					// XXX not sure if this is correct...
 | 
			
		||||
					} catch(e){
 | 
			
		||||
						this.close(true)
 | 
			
		||||
					}
 | 
			
		||||
				}
 | 
			
		||||
				gui.Window.get().on('close', this.__nw_stop_handler)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
			// node.js...
 | 
			
		||||
			} else if(runtime == 'node'){
 | 
			
		||||
				process.on('exit', stop)
 | 
			
		||||
 | 
			
		||||
			// browser...
 | 
			
		||||
			} else if(runtime == 'browser'){
 | 
			
		||||
				$(window).on('beforeunload', stop)
 | 
			
		||||
 | 
			
		||||
			// other...
 | 
			
		||||
			} else {
 | 
			
		||||
				// XXX
 | 
			
		||||
			}
 | 
			
		||||
		}],
 | 
			
		||||
	// unbind events...
 | 
			
		||||
	stop: ['- System/', 
 | 
			
		||||
 | 
			
		||||
@ -2781,7 +2781,6 @@ module.DirectControlGSAP = core.ImageGridFeatures.Feature({
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
//---------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
// XXX make this browser specific... (???)
 | 
			
		||||
@ -2793,7 +2792,7 @@ module.URLHash = core.ImageGridFeatures.Feature({
 | 
			
		||||
	tag: 'ui-url-hash',
 | 
			
		||||
	depends: ['ui'],
 | 
			
		||||
 | 
			
		||||
	//isApplicable: function(){},
 | 
			
		||||
	isApplicable: function(){ return this.runtime == 'browser' },
 | 
			
		||||
 | 
			
		||||
	handlers: [
 | 
			
		||||
		['focusImage',
 | 
			
		||||
 | 
			
		||||
@ -432,6 +432,7 @@ module.FeatureSet = {
 | 
			
		||||
		// clasify features...
 | 
			
		||||
		var unapplicable = []
 | 
			
		||||
		var conflicts = {}
 | 
			
		||||
		var that = this
 | 
			
		||||
		lst = lst.filter(function(n, i){
 | 
			
		||||
			var e = that[n]
 | 
			
		||||
			if(e == null){
 | 
			
		||||
@ -439,7 +440,7 @@ module.FeatureSet = {
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			// check applicability...
 | 
			
		||||
			if(!e.isApplicable(obj)){
 | 
			
		||||
			if(!e.isApplicable.call(that, obj)){
 | 
			
		||||
				unapplicable.push(n)
 | 
			
		||||
				return false
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user