mirror of
https://github.com/flynx/ImageGrid.git
synced 2025-10-29 10:20:08 +00:00
stub defeult os open works, still needs lots of work...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
This commit is contained in:
parent
7efa66a5e8
commit
9fb38aa286
@ -82,6 +82,9 @@ core.ImageGridFeatures.Feature('viewer-testing', [
|
||||
'ui-fs-url-history',
|
||||
'ui-fs-writer',
|
||||
|
||||
'external-editor',
|
||||
'ui-external-editor',
|
||||
|
||||
// chrome...
|
||||
'ui-animation',
|
||||
'ui-bounds-indicators',
|
||||
|
||||
@ -385,18 +385,52 @@ module.WidgetTest = core.ImageGridFeatures.Feature({
|
||||
var ExternalEditorActions = actions.Actions({
|
||||
config: {
|
||||
// XXX
|
||||
// format:
|
||||
// [
|
||||
// [title, path, args]
|
||||
// ]
|
||||
'external-editors': [
|
||||
// XXX need real arguments...
|
||||
['Photoshop', 'photoshop.exe', '$CURRENT.raw'],
|
||||
// XXX system default might be different on different systems...
|
||||
['System default|"$PATH"', 'current'],
|
||||
|
||||
// XXX for some reason irfanview doesnot open a path passed
|
||||
// as argument unless it uses only '\' and not '/'
|
||||
['IrfanView|"C:/Program Files (x86)/IrfanView/i_view32.exe" "$PATH"', 'current'],
|
||||
//['Photoshop|"C:/Portable Apps/Adobe Photoshop CC/PhotoshopPortable.exe" $PATH', 'current'],
|
||||
],
|
||||
},
|
||||
|
||||
// XXX this still needs image type and better support for OS paths
|
||||
// ...irfanview for instance does not understand '/' in paths
|
||||
// while windows in general have no problem...
|
||||
openInExtenalEditor: ['Edit/Open with external editor',
|
||||
function(){
|
||||
function(editor, image, type){
|
||||
editor = typeof(editor) == typeof('str') ? editor
|
||||
: this.config['external-editors'][editor == null ? 0 : editor]
|
||||
editor = editor ? editor[0] : '$PATH'
|
||||
|
||||
// get the path part...
|
||||
editor = editor.split(/\|/g).pop()
|
||||
|
||||
// get the image...
|
||||
var img = this.images[this.data.getImage(image)]
|
||||
|
||||
if(img == null){
|
||||
return
|
||||
}
|
||||
|
||||
// XXX get the correct type -- raw, preview, orig, ...
|
||||
|
||||
var full_path = img.base_path +'/'+ img.path
|
||||
|
||||
editor = editor
|
||||
// XXX make '$' quotable....
|
||||
.replace(/\$PATH/, full_path)
|
||||
// XXX add other stuff???
|
||||
|
||||
console.log('>>>>', editor)
|
||||
|
||||
// do the actual running...
|
||||
requirejs('child_process')
|
||||
.exec(editor, function(err, res){
|
||||
err && console.log('!!!', err)
|
||||
})
|
||||
}],
|
||||
})
|
||||
|
||||
@ -410,6 +444,9 @@ module.ExternalEditor = core.ImageGridFeatures.Feature({
|
||||
// XXX
|
||||
],
|
||||
|
||||
isApplicable: function(){
|
||||
return this.runtime == 'nw' || this.runtime == 'node' },
|
||||
|
||||
actions: ExternalEditorActions,
|
||||
})
|
||||
|
||||
|
||||
@ -228,6 +228,10 @@ module.GLOBAL_KEYBOARD = {
|
||||
ctrl: 'toggleTheme!',
|
||||
alt: 'browseActions: "/Bookmark/"',
|
||||
},
|
||||
E: {
|
||||
default: 'openInExtenalEditor',
|
||||
alt: 'listExtenalEditors',
|
||||
},
|
||||
C: 'browseActions: "/Crop/"',
|
||||
O: 'browsePath',
|
||||
S: {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user