1
0
forked from x/volcanos
This commit is contained in:
harveyshao 2022-10-07 13:48:27 +08:00
parent 0a810ac42b
commit a2d3977792
3 changed files with 45 additions and 16 deletions

View File

@ -868,18 +868,11 @@ Volcanos(chat.ONKEYMAP, {help: "键盘交互", _focus: [], _init: function(can,
})
}
can.onkeymap._build(can), document.body.onkeydown = function(event) {
if (event.metaKey) { if (window.webview) { switch (event.key) {
case "q": window.terminate(); break
case "w": can.user.close(); break
case "r": can.user.reload(true); break
case "f": can.onengine.signal(can, chat.ONOPENSEARCH, can.request({}, {type: mdb.FOREACH})); break
case "[": history.back(); break
case "]": history.forward(); break
} } return }
if (can.page.tagis(event.target, html.SELECT, html.INPUT, html.TEXTAREA)) { return }
var msg = can.request(event, {"model": "normal"}); if (msg.Option(ice.MSG_HANDLE) == ice.TRUE) { return }
can.onengine.signal(can, chat.ONKEYDOWN, msg); if (msg.Option(ice.MSG_HANDLE) == ice.TRUE) { return }
var msg = can.request(event, {model: "normal"}); if (event.metaKey && window.webview) {
msg.Option("model", "webview")
} else if (can.page.tagis(event.target, html.SELECT, html.INPUT, html.TEXTAREA)) { return } else {
can.onengine.signal(can, chat.ONKEYDOWN, msg); if (msg.Option(ice.MSG_HANDLE) == ice.TRUE) { return }
}
can._keylist = can.onkeymap._parse(event, can, msg.Option("model"), can._keylist, can._output)
}
can.onkeymap._build(can), document.body.onkeyup = function(event) {
@ -918,6 +911,16 @@ Volcanos(chat.ONKEYMAP, {help: "键盘交互", _focus: [], _init: function(can,
return list
},
_mode: {
webview: {
q: function(event, can, target) { window.terminate() },
o: function(event, can, target) { window.outopen(location.href) },
t: function(event, can, target) { window.terminal(location.href) },
w: function(event, can, target) { can.user.close() },
r: function(event, can, target) { can.user.reload(true) },
f: function(event, can, target) { can.onengine.signal(can, chat.ONOPENSEARCH, can.request({}, {type: mdb.FOREACH})) },
"[": function(event, can, target) { history.back() },
"]": function(event, can, target) { history.forward() },
},
insert: {
jk: function(event, can, target) { target.blur(), can.onkeymap.deleteText(target, target.selectionStart-1, target.selectionStart) },
Escape: function(event, can, target) { target.blur() },

View File

@ -85,12 +85,15 @@ Volcanos("user", {help: "用户操作", info: {}, agent: {
"download": "下载", "toimage": "截图",
"plugin": "插件",
"prev": "上一页", "next": "下一页",
"width": "宽度",
"height": "高度",
"link": "链接",
"Close": "关闭",
"Close others": "关闭其它",
"Close all": "关闭所有",
"source": "源码",
"module": "模块",
"recent": "最近",
"trash": "删除",
"open": "打开", "close": "关闭",

View File

@ -29,6 +29,22 @@ Volcanos(chat.ONFIGURE, {help: "索引导航",
create: function(can, target, zone, path) {
can.isCmdMode()? can.onappend._action(can, can.base.Obj(can._msg.Option(ice.MSG_ACTION)), target): can.onmotion.hidden(can, target.parentNode)
},
recent: function(can, target, zone, path) {
can.runAction(can.request({}), code.FAVOR, ["_vimer"], function(msg) {
var list = {}; msg.Table(function(item) { list[item.path+item.file] = item }), can.core.Item(list, function(path, item) {
can.page.Append(can, target, [{text: [item.name||item.file, html.DIV, html.ITEM], onclick: function(event) {
can.onimport.tabview(can, can.Option(nfs.PATH), item.file, ctx.INDEX)
}}])
})
})
can.runAction(can.request({}), code.FAVOR, ["_recent"], function(msg) {
var list = {}; msg.Table(function(item) { list[item.path+item.file] = item }), can.core.Item(list, function(path, item) {
can.page.Append(can, target, [{text: [path.split(ice.PS).slice(-2).join(ice.PS), html.DIV, html.ITEM], onclick: function(event) {
can.onimport.tabview(can, item.path, item.file)
}}])
})
})
},
source: function(can, target, zone, path) { var total = 0
function show(target, path) { can.run(can.request({}, {dir_root: path, dir_deep: true}), [ice.PWD], function(msg) { var list = msg.Table()
can.core.List(list, function(item) { item._menu = shy({trash: function(event) { can.onaction._run(event, can, nfs.TRASH, [can.base.Path(path, item.path)]) }}) })
@ -134,8 +150,10 @@ Volcanos(chat.ONKEYMAP, {help: "键盘交互",
can.onkeymap._insert(event, can, 0, -1)
}),
yy: shy("复制当前行", function(event, can, target, count) { can._last_text = can.current.text() }),
dd: shy("剪切当前行", function(can) {
yy: shy("复制当前行", function(event, can, target, count) {
can._last_text = can.current.text()
}),
dd: shy("剪切当前行", function(event, can, target, count) {
var line = can.onaction.selectLine(can), text = can.current.text()
can.onaction.selectLine(can, can.onaction.deleteLine(can, line)), can._last_text = text
can.undo.push(function() { can.onaction.insertLine(can, text, line), can.onaction.selectLine(can, line) })
@ -268,7 +286,12 @@ Volcanos(chat.ONACTION, {help: "控件交互",
can.ui.xterm.refresh(), can.user.toastSuccess(can)
})
},
status: function(event, can, button) {
can.onimport.tabview(can, can.Option(nfs.PATH), "web.code.git.status", ctx.INDEX)
},
favor: function(event, can, button) {
can.onimport.tabview(can, can.Option(nfs.PATH), "web.code.favor", ctx.INDEX)
},
"命令": function(event, can) {
can.user.input(event, can, [ctx.INDEX], function(list) {
can.onimport.tabview(can, can.Option(nfs.PATH), list[0], ctx.INDEX)