mirror of
https://github.com/flynx/ImageGrid.git
synced 2025-10-30 19:00:09 +00:00
external editor ui mostly working, still need to add os path handling + cleanup...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
This commit is contained in:
parent
5e030222af
commit
4743531cd5
@ -386,6 +386,7 @@ module.WidgetTest = core.ImageGridFeatures.Feature({
|
|||||||
|
|
||||||
var ExternalEditorActions = actions.Actions({
|
var ExternalEditorActions = actions.Actions({
|
||||||
config: {
|
config: {
|
||||||
|
'external-editor-default': 'System default',
|
||||||
// XXX
|
// XXX
|
||||||
'external-editors': [
|
'external-editors': [
|
||||||
// XXX system default might be different on different systems...
|
// XXX system default might be different on different systems...
|
||||||
@ -454,14 +455,14 @@ module.ExternalEditor = core.ImageGridFeatures.Feature({
|
|||||||
|
|
||||||
var ExternalEditorUIActions = actions.Actions({
|
var ExternalEditorUIActions = actions.Actions({
|
||||||
// XXX add root button...
|
// XXX add root button...
|
||||||
// XXX add CSS to mark the first item '(default)'
|
// XXX disable the remove button on "System default"
|
||||||
listExtenalEditors: ['Edit/List external editors',
|
listExtenalEditors: ['Edit/List external editors',
|
||||||
function(){
|
function(){
|
||||||
var that = this
|
var that = this
|
||||||
|
|
||||||
// build the list...
|
// build the list...
|
||||||
var list = {}
|
var list = {}
|
||||||
var editors = this.config['external-editors']
|
var editors = this.config['external-editors'].slice()
|
||||||
editors
|
editors
|
||||||
.forEach(function(e, i){
|
.forEach(function(e, i){
|
||||||
list[e[0].split(/\|/g)[0]] = function(){
|
list[e[0].split(/\|/g)[0]] = function(){
|
||||||
@ -472,7 +473,7 @@ var ExternalEditorUIActions = actions.Actions({
|
|||||||
var closingPrevented = false
|
var closingPrevented = false
|
||||||
|
|
||||||
// XXX STUB: use a top button...
|
// XXX STUB: use a top button...
|
||||||
// XXX this must not close the overlay...
|
// XXX update the list...
|
||||||
list['Add new editor...'] = function(){
|
list['Add new editor...'] = function(){
|
||||||
closingPrevented = true
|
closingPrevented = true
|
||||||
// XXX open 'new editor...' dialog...
|
// XXX open 'new editor...' dialog...
|
||||||
@ -486,6 +487,13 @@ var ExternalEditorUIActions = actions.Actions({
|
|||||||
.open(function(evt, path){
|
.open(function(evt, path){
|
||||||
// XXX
|
// XXX
|
||||||
//this.parent.close()
|
//this.parent.close()
|
||||||
|
|
||||||
|
// add a pretty name...
|
||||||
|
editors.push([path+'|"'+ path +'" "$PATH"'])
|
||||||
|
that.config['external-editors'] = editors
|
||||||
|
|
||||||
|
// XXX update the editor list...
|
||||||
|
|
||||||
b.close()
|
b.close()
|
||||||
}))
|
}))
|
||||||
.close(function(){
|
.close(function(){
|
||||||
@ -494,6 +502,15 @@ var ExternalEditorUIActions = actions.Actions({
|
|||||||
return b
|
return b
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// element index...
|
||||||
|
var _getEditor = function(str){
|
||||||
|
return editors
|
||||||
|
.map(function(e){ return e[0].split(/\|/g)[0] })
|
||||||
|
.indexOf(str)
|
||||||
|
}
|
||||||
|
|
||||||
|
var to_remove = []
|
||||||
|
|
||||||
// build the dialog...
|
// build the dialog...
|
||||||
var o = overlay.Overlay(this.ribbons.viewer,
|
var o = overlay.Overlay(this.ribbons.viewer,
|
||||||
browse.makeList(null, list, {
|
browse.makeList(null, list, {
|
||||||
@ -504,18 +521,23 @@ var ExternalEditorUIActions = actions.Actions({
|
|||||||
function(p){
|
function(p){
|
||||||
var top = this.filter('*', false).first()
|
var top = this.filter('*', false).first()
|
||||||
var cur = this.filter('"'+p+'"', false)
|
var cur = this.filter('"'+p+'"', false)
|
||||||
// XXX current element index...
|
|
||||||
var i = 0
|
var i = _getEditor(p)
|
||||||
|
|
||||||
if(!top.is(cur)){
|
if(!top.is(cur)){
|
||||||
top.before(cur)
|
top.before(cur)
|
||||||
// shift element position...
|
editors.splice(0, 0, editors.splice(i, 1)[0])
|
||||||
//editors.splice(0, 0, editors.splice(i, 1)[0])
|
|
||||||
|
that.config['external-editors'] = editors
|
||||||
}
|
}
|
||||||
}],
|
}],
|
||||||
// mark for removal...
|
// mark for removal...
|
||||||
['×',
|
['×',
|
||||||
function(p){
|
function(p){
|
||||||
|
if(p == that.config['external-editor-default']){
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
var e = this.filter('"'+p+'"', false)
|
var e = this.filter('"'+p+'"', false)
|
||||||
.toggleClass('strike-out')
|
.toggleClass('strike-out')
|
||||||
|
|
||||||
@ -532,21 +554,25 @@ var ExternalEditorUIActions = actions.Actions({
|
|||||||
}],
|
}],
|
||||||
] })
|
] })
|
||||||
.open(function(evt){
|
.open(function(evt){
|
||||||
|
// close self if no dialog is triggered...
|
||||||
if(!closingPrevented){
|
if(!closingPrevented){
|
||||||
o.close()
|
o.close()
|
||||||
}
|
}
|
||||||
closingPrevented = false
|
closingPrevented = false
|
||||||
}))
|
}))
|
||||||
.close(function(){
|
.close(function(){
|
||||||
|
// remove elements marked for removal...
|
||||||
|
to_remove.forEach(function(e){
|
||||||
|
if(e == that.config['external-editor-default']){
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
editors.splice(_getEditor(e), 1)
|
||||||
|
that.config['external-editors'] = editors
|
||||||
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
// XXX STUB...
|
o.client.dom.addClass('editor-list')
|
||||||
// XXX do this someplace like an update handler (for some
|
|
||||||
// reason not working yet)...
|
|
||||||
var b = o.client.filter(-1)
|
|
||||||
// XXX do this with CSS...
|
|
||||||
b.find('.button').remove()
|
|
||||||
b.find('.text').css({fontStyle: 'italic'})
|
|
||||||
|
|
||||||
return o
|
return o
|
||||||
}],
|
}],
|
||||||
|
|||||||
@ -123,6 +123,21 @@ body {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.browse-widget.editor-list .list div:first-child .text:after {
|
||||||
|
content: "(default)";
|
||||||
|
margin-left: 5px;
|
||||||
|
opacity: 0.5;
|
||||||
|
font-style: italic;
|
||||||
|
}
|
||||||
|
.browse-widget.editor-list .list div:last-child {
|
||||||
|
font-style: italic;
|
||||||
|
}
|
||||||
|
.browse-widget.editor-list .list div:last-child .button {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/* DEBUG stuff... */
|
/* DEBUG stuff... */
|
||||||
.container-center {
|
.container-center {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user