refactoring...

Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
This commit is contained in:
Alex A. Naanou 2018-01-03 05:06:00 +03:00
parent fbebdd035f
commit 6725f2fab1
3 changed files with 99 additions and 38 deletions

View File

@ -291,12 +291,92 @@ module.ElectronHost = core.ImageGridFeatures.Feature({
//---------------------------------------------------------------------
// XXX this needs to trigger only when fullwindow browser mode and not
// get loaded when in widget mode...
var BrowserHostActions = actions.Actions({
// window stuff...
get title(){
return $('title').text() },
set title(value){
$('title').text(value) },
})
// NOTE: keep this defined last as a fallback...
var BrowserHost =
module.BrowserHost = core.ImageGridFeatures.Feature({
title: '',
doc: '',
tag: 'ui-browser-host',
exclusive: 'ui-host',
depends: [],
actions: BrowserHostActions,
isApplicable: function(){ return !this.runtime.widget },
})
//---------------------------------------------------------------------
var PortableAppControl =
module.PortableAppControl = core.ImageGridFeatures.Feature({
title: '',
doc: '',
tag: 'ui-portable-app-control',
depends: [
'ui',
'ui-host',
],
isApplicable: function(){ return this.runtime.browser },
var AppControlActions = actions.Actions({
config: {
//'window-title': 'ImageGrid.Viewer (${VERSION}): ${FILENAME}',
'window-title': '${FILENAME} - ImageGrid.Viewer (${VERSION})',
},
handlers: [
// update window title...
// XXX make this generic...
['focusImage',
function(){
if(this.images){
var img = this.images[this.current]
this.title = (this.config['window-title']
|| 'ImageGrid.Viewer (${VERSION}): ${FILENAME}')
// XXX get this from the viewer...
.replace('${VERSION}', this.version || 'gen4')
.replace('${FILENAME}',
img ?
(img.name
|| (img.path && img.path.replace(/\.[\\\/]/, ''))
|| this.current
|| '')
: (this.current || ''))
.replace('${PATH}',
(img && img.path) ?
(img.base_path || '.')
+'/'+ img.path.replace(/\.[\\\/]/, '')
: '')
/*
.replace('${DIR}',
pathlib.dirname((img.base_path || '.')
+'/'+ img.path.replace(/\.[\\\/]/, '')))
*/
// XXX add ...
}
}],
],
})
//---------------------------------------------------------------------
var WindowedAppControlActions = actions.Actions({
config: {
'window-delay-initial-display': 200,
'show-splash-screen': 'on',
@ -402,18 +482,18 @@ var AppControlActions = actions.Actions({
// XXX store/load window state...
// - size
// - state (fullscreen/normal)
var AppControl =
module.AppControl = core.ImageGridFeatures.Feature({
var WindowedAppControl =
module.WindowedAppControl = core.ImageGridFeatures.Feature({
title: '',
doc: '',
tag: 'ui-app-control',
tag: 'ui-windowed-app-control',
depends: [
'ui',
'ui-host',
],
actions: AppControlActions,
actions: WindowedAppControlActions,
// XXX BUG: when running in electron:
// - loading this breaks the other buttons (menu, collections, ...)
@ -440,40 +520,18 @@ module.AppControl = core.ImageGridFeatures.Feature({
'toggleFullScreen',
],
function(){ this.storeWindowGeometry() }],
// update window title...
// XXX make this generic...
['focusImage',
function(){
if(this.images){
var img = this.images[this.current]
this.title = (this.config['window-title']
|| 'ImageGrid.Viewer (${VERSION}): ${FILENAME}')
// XXX get this from the viewer...
.replace('${VERSION}', this.version || 'gen4')
.replace('${FILENAME}',
img ?
(img.name
|| (img.path && img.path.replace(/\.[\\\/]/, ''))
|| '')
: '')
.replace('${PATH}',
(img && img.path) ?
(img.base_path || '.')
+'/'+ img.path.replace(/\.[\\\/]/, '')
: '')
/*
.replace('${DIR}',
pathlib.dirname((img.base_path || '.')
+'/'+ img.path.replace(/\.[\\\/]/, '')))
*/
// XXX add ...
}
}],
],
})
//---------------------------------------------------------------------
var AppControl =
module.AppControl = core.ImageGridFeatures.Feature('ui-app-control', [
'ui-windowed-app-control',
'ui-portable-app-control',
])
//---------------------------------------------------------------------
// Fullscreen app control buttons...

View File

@ -147,9 +147,10 @@ ImageGridFeatures.__actions__ =
//---------------------------------------------------------------------
// Setup runtime info...
// XXX add test if chrome-app...
// XXX add test if cordova...
// XXX add test if mobile...
// XXX add chrome-app...
// XXX add cordova...
// XXX add mobile...
// XXX add widget...
// XXX should this contain feature versions???
var runtime = ImageGridFeatures.runtime = {}

View File

@ -2,6 +2,8 @@
<html>
<head>
<title></title>
<meta charset="utf-8" />
<meta name="msapplication-tap-highlight" content="no" />
<meta name="viewport" content="width=device-width, user-scalable=no" />