finish CodePad

This commit is contained in:
lxsang
2020-05-15 20:55:13 +02:00
parent 74534e976c
commit e20ee262fc
14 changed files with 355 additions and 77 deletions

View File

@ -271,11 +271,13 @@ class SelectionDialog extends BasicDialog
super.init()
me = @
(@find "list").set "data", @data.data if @data and @data.data
(@find "btnOk").set "onbtclick", (e) ->
fn = (e) ->
data = (me.find "list").get "selectedItem"
return me.notify __("Please select an item") unless data
me.handle(data.get("data")) if me.handle
me.quit()
(@find "list").set "onlistdbclick", fn
(@find "btnOk").set "onbtclick", fn
(@find "btnCancel").set "onbtclick", (e) ->
me.quit()
@ -384,7 +386,8 @@ class FileDialog extends BasicDialog
(@find "bt-ok").set "onbtclick", (e) ->
f = fileview.get "selectedFile"
return me.notify __("Please select a file/fofler") unless f
return me.notify __("Please select {0} only", me.data.type) if me.data and me.data.type and me.data.type isnt f.type
if me.data and me.data.type and me.data.type isnt f.type
return me.notify __("Please select {0} only", me.data.type)
if me.data and me.data.mimes
#verify the mime
m = false

View File

@ -295,28 +295,31 @@ Ant.OS.API =
requires: (l) ->
new Promise (resolve, reject) ->
if not Ant.OS.API.shared[l]
link = l
if not l.match /^(https?:\/\/[^\s]+)/g
path = "os://scripts/"
cssFile = "#{path}#{l}.css".asFileHandle()
cssFile.onready()
libfp = l.asFileHandle()
switch libfp.ext
when "css"
libfp.onready()
.then () ->
$('<link>', {
rel: 'stylesheet',
type: 'text/css',
'href': "#{libfp.getlink()}"
})
.appendTo 'head'
Ant.OS.API.shared[l] = true
console.log "loaded css:", l
Ant.OS.announcer.trigger "sharedlibraryloaded", l
.catch (e) -> reject e
when "js"
Ant.OS.API.script libfp.getlink()
.then () ->
$('<link>', {
rel: 'stylesheet',
type: 'text/css',
'href': "#{cssFile.getlink()}"
})
.appendTo 'head'
Ant.OS.API.shared[l] = true
console.log "loaded javascript:", l
Ant.OS.announcer.trigger "sharedlibraryloaded", l
resolve(l)
.catch (e) ->
js = "#{path}#{l}.js"
link = js.asFileHandle().getlink()
Ant.OS.API.script link
.then () ->
Ant.OS.API.shared[l] = true
console.log "loaded:", l
Ant.OS.announcer.trigger "sharedlibraryloaded", l
resolve(l)
.catch (e) ->
reject e
else
reject e
else
console.log l, "Library exist, no need to load"

View File

@ -119,9 +119,11 @@ Ant.OS.GUI =
return Ant.OS.announcer.osinfo __("No application available to open {0}", it.filename) if apps.length is 0
return Ant.OS.GUI.launch apps[0].app, [it.path] if apps.length is 1
list = ( { text: e.app, icon: e.icon, iconclass: e.iconclass } for e in apps )
Ant.OS.GUI.openDialog "SelectionDialog", ( d ) ->
Ant.OS.GUI.launch d.text, [it.path]
, __("Open with"), list
Ant.OS.GUI.openDialog("SelectionDialog", {
title: __("Open with"),
data: list
}).then ( d ) ->
Ant.OS.GUI.launch d.text, [ { path: it.path, type: it.type }]
forceLaunch: (app, args) ->
console.warn "This method is used for developing only, please use the launch method instead"
@ -377,6 +379,7 @@ Ant.OS.GUI =
return Ant.OS.GUI.openWith it.get("data") if it
it = Ant.OS.setting.desktop.path.asFileHandle()
it.mime = "dir"
it.type = "dir"
Ant.OS.GUI.openWith it
when "desktop-refresh"
desktop[0].fetch()

View File

@ -9,6 +9,7 @@ class FileViewTag extends Ant.OS.GUI.BaseTag
@setopt "showhidden", false
@setopt "fetch", undefined
@setopt "path", undefined
@setopt "chdir", true
@setopt "view", "list"
@preventUpdate = false
@header = [
@ -150,6 +151,9 @@ class FileViewTag extends Ant.OS.GUI.BaseTag
@refs.status.set("text", " ") if @get "status"
fileselect: (e) ->
if e.path is @get "path"
e.type = "dir"
e.mime = "dir"
if @get "status"
@refs.status.set "text", __(
"Selected: {0} ({1} bytes)",
@ -161,7 +165,10 @@ class FileViewTag extends Ant.OS.GUI.BaseTag
@observable.trigger "fileselect", evt
filedbclick: (e) ->
if e.type is "dir"
if e.path is @get "path"
e.type = "dir"
e.mime = "dir"
if e.type is "dir" and @get "chdir"
@set "path", e.path
else
evt = { id: @aid(), data: e }

View File

@ -60,6 +60,9 @@ class SimpleListItemTag extends ListViewItemTag
@set "selected", v.selected if v.selected
@set "closable", v.closable if v.closable
update: () ->
@set "data", @get("data")
itemlayout: () ->
{ el: "afx-label", ref: "label" }

View File

@ -3,9 +3,13 @@ class TabBarTag extends Ant.OS.GUI.BaseTag
super r, o
@setopt "closable", false
@setopt "ontabselect", (e) ->
@setopt "ontabclose", (e) ->
@setopt "items", []
@setopt "selected", -1
me = @
@root.push = (e) -> me.refs.list.push e
@root.push = (e) ->
e.closable = me.get "closable"
me.refs.list.push e
@root.remove = (e) -> me.refs.list.remove e
@root.unshift = (e) -> me.refs.list.unshift e
@refs.list.set "onlistselect", (e) ->
@ -13,14 +17,18 @@ class TabBarTag extends Ant.OS.GUI.BaseTag
me.observable.trigger "tabselect", e
__items__: (v) ->
i.closable = @get "closable" for i in v
@refs.list.set "data", v
__selected__: (v) ->
@refs.list.set "selected", v
mount: () ->
me = @
@root.push = (e) -> me.refs.list.push e
@root.unshift = (e) -> me.refs.list.unshift e
@root.remove = (e) -> me.refs.list.remove e
$(@refs.list).css "height", "100%"
@refs.list.set "onitemclose", (e) ->
e.id = me.aid()
me.get("ontabclose") e
layout: () ->
[{