fix file transfer hanging if disabled, and add trans
This commit is contained in:
parent
9136b3e3f8
commit
0dd4087408
@ -208,5 +208,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Download new version", "下载新版本"),
|
("Download new version", "下载新版本"),
|
||||||
("Touch mode", "触屏模式"),
|
("Touch mode", "触屏模式"),
|
||||||
("Reset canvas", "重置画布"),
|
("Reset canvas", "重置画布"),
|
||||||
|
("No permission of file transfer", "没有文件传输权限"),
|
||||||
|
("Note", "备注"),
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
@ -208,5 +208,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Download new version", "Neue Version herunterladen."),
|
("Download new version", "Neue Version herunterladen."),
|
||||||
("Touch mode", "Berührungsmodus."),
|
("Touch mode", "Berührungsmodus."),
|
||||||
("Reset canvas", "Anzeige zurücksetzen."),
|
("Reset canvas", "Anzeige zurücksetzen."),
|
||||||
|
("No permission of file transfer", "Keine Erlaubnis zur Dateiübertragung"),
|
||||||
|
("Note", "Notiz"),
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
@ -209,7 +209,9 @@ lazy_static::lazy_static! {
|
|||||||
("Socks5 Proxy", "Socks5 prokura servilo"),
|
("Socks5 Proxy", "Socks5 prokura servilo"),
|
||||||
("Add to Favorites", "Aldoni al la favorataj"),
|
("Add to Favorites", "Aldoni al la favorataj"),
|
||||||
("Remove from Favorites", "Forigi el la favorataj"),
|
("Remove from Favorites", "Forigi el la favorataj"),
|
||||||
("Unremember Password", "Forgesi pasvorton")
|
("Unremember Password", "Forgesi pasvorton"),
|
||||||
|
("No permission of file transfer", "Neniu permeso de dosiertransigo"),
|
||||||
|
("Note", "Notu"),
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -202,5 +202,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Download new version", "Télécharger la nouvelle version"),
|
("Download new version", "Télécharger la nouvelle version"),
|
||||||
("Touch mode", "Mode tactile"),
|
("Touch mode", "Mode tactile"),
|
||||||
("Reset canvas", "Réinitialiser le canevas"),
|
("Reset canvas", "Réinitialiser le canevas"),
|
||||||
|
("No permission of file transfer", "Aucune autorisation de transfert de fichiers"),
|
||||||
|
("Note", "Noter"),
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
@ -201,5 +201,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Download new version", "Scarica nuova versione"),
|
("Download new version", "Scarica nuova versione"),
|
||||||
("Touch mode", "Modalità tocco"),
|
("Touch mode", "Modalità tocco"),
|
||||||
("Reset canvas", "Ripristina tela"),
|
("Reset canvas", "Ripristina tela"),
|
||||||
|
("No permission of file transfer", "Nessun permesso di trasferimento di file"),
|
||||||
|
("Note", "Nota"),
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
@ -208,5 +208,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Download new version", "Загрузить новую версию"),
|
("Download new version", "Загрузить новую версию"),
|
||||||
("Touch mode", "Сенсорный режим"),
|
("Touch mode", "Сенсорный режим"),
|
||||||
("Reset canvas", "Сбросить холст"),
|
("Reset canvas", "Сбросить холст"),
|
||||||
|
("No permission of file transfer", "Нет разрешения на передачу файлов"),
|
||||||
|
("Note", "Примечание"),
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
@ -201,5 +201,7 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Download new version", "下載新版本"),
|
("Download new version", "下載新版本"),
|
||||||
("Touch mode", "觸控模式"),
|
("Touch mode", "觸控模式"),
|
||||||
("Reset canvas", "重置畫布"),
|
("Reset canvas", "重置畫布"),
|
||||||
|
("No permission of file transfer", "無文件傳輸權限"),
|
||||||
|
("Note", "備註"),
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
@ -14,6 +14,7 @@ function getSessionsStyle(type) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
var searchPatterns = {};
|
var searchPatterns = {};
|
||||||
|
var current_menu_peer_id = '';
|
||||||
|
|
||||||
class SearchBar: Reactor.Component {
|
class SearchBar: Reactor.Component {
|
||||||
this var type = "";
|
this var type = "";
|
||||||
@ -177,7 +178,7 @@ class SessionList: Reactor.Component {
|
|||||||
}
|
}
|
||||||
// https://sciter.com/forums/topic/replacecustomize-context-menu/
|
// https://sciter.com/forums/topic/replacecustomize-context-menu/
|
||||||
var menu = this.$(menu#remote-context);
|
var menu = this.$(menu#remote-context);
|
||||||
menu.attributes["remote-id"] = id;
|
current_menu_peer_id = id;
|
||||||
var conn = this.$(menu #connect);
|
var conn = this.$(menu #connect);
|
||||||
if (conn) {
|
if (conn) {
|
||||||
var alias = me.parent.parent.$(#alias);
|
var alias = me.parent.parent.$(#alias);
|
||||||
@ -195,7 +196,7 @@ class SessionList: Reactor.Component {
|
|||||||
|
|
||||||
event click $(menu#remote-context li) (evt, me) {
|
event click $(menu#remote-context li) (evt, me) {
|
||||||
var action = me.id;
|
var action = me.id;
|
||||||
var id = me.parent.attributes["remote-id"];
|
var id = current_menu_peer_id;
|
||||||
if (action == "connect") {
|
if (action == "connect") {
|
||||||
createNewConnect(id, "connect");
|
createNewConnect(id, "connect");
|
||||||
} else if (action == "transfer") {
|
} else if (action == "transfer") {
|
||||||
|
@ -247,7 +247,7 @@ function connecting() {
|
|||||||
|
|
||||||
handler.msgbox = function(type, title, text, hasRetry=false) {
|
handler.msgbox = function(type, title, text, hasRetry=false) {
|
||||||
// crash somehow (when input wrong password), even with small time, for example, 1ms
|
// crash somehow (when input wrong password), even with small time, for example, 1ms
|
||||||
self.timer(30ms, function() { msgbox(type, title, text, null, 180, 500, hasRetry); });
|
self.timer(60ms, function() { msgbox(type, title, text, null, 180, 500, hasRetry); });
|
||||||
}
|
}
|
||||||
|
|
||||||
var reconnectTimeout = 1000;
|
var reconnectTimeout = 1000;
|
||||||
|
@ -1162,6 +1162,14 @@ impl Handler {
|
|||||||
|
|
||||||
#[inline]
|
#[inline]
|
||||||
fn call(&self, func: &str, args: &[Value]) {
|
fn call(&self, func: &str, args: &[Value]) {
|
||||||
|
let r = self.read().unwrap();
|
||||||
|
if let Some(ref e) = r.element {
|
||||||
|
allow_err!(e.call_method(func, args));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#[inline]
|
||||||
|
fn call2(&self, func: &str, args: &[Value]) {
|
||||||
let r = self.read().unwrap();
|
let r = self.read().unwrap();
|
||||||
if let Some(ref e) = r.element {
|
if let Some(ref e) = r.element {
|
||||||
allow_err!(e.call_method(func, &super::value_crash_workaround(args)[..]));
|
allow_err!(e.call_method(func, &super::value_crash_workaround(args)[..]));
|
||||||
@ -1712,7 +1720,7 @@ impl Remote {
|
|||||||
Some(message::Union::video_frame(vf)) => {
|
Some(message::Union::video_frame(vf)) => {
|
||||||
if !self.first_frame {
|
if !self.first_frame {
|
||||||
self.first_frame = true;
|
self.first_frame = true;
|
||||||
self.handler.call("closeSuccess", &make_args!());
|
self.handler.call2("closeSuccess", &make_args!());
|
||||||
self.handler.call("adaptSize", &make_args!());
|
self.handler.call("adaptSize", &make_args!());
|
||||||
}
|
}
|
||||||
self.video_sender.send(MediaData::VideoFrame(vf)).ok();
|
self.video_sender.send(MediaData::VideoFrame(vf)).ok();
|
||||||
@ -1822,26 +1830,29 @@ impl Remote {
|
|||||||
SERVER_KEYBOARD_ENABLED = p.enabled;
|
SERVER_KEYBOARD_ENABLED = p.enabled;
|
||||||
}
|
}
|
||||||
self.handler
|
self.handler
|
||||||
.call("setPermission", &make_args!("keyboard", p.enabled));
|
.call2("setPermission", &make_args!("keyboard", p.enabled));
|
||||||
}
|
}
|
||||||
Permission::Clipboard => {
|
Permission::Clipboard => {
|
||||||
unsafe {
|
unsafe {
|
||||||
SERVER_CLIPBOARD_ENABLED = p.enabled;
|
SERVER_CLIPBOARD_ENABLED = p.enabled;
|
||||||
}
|
}
|
||||||
self.handler
|
self.handler
|
||||||
.call("setPermission", &make_args!("clipboard", p.enabled));
|
.call2("setPermission", &make_args!("clipboard", p.enabled));
|
||||||
}
|
}
|
||||||
Permission::Audio => {
|
Permission::Audio => {
|
||||||
self.handler
|
self.handler
|
||||||
.call("setPermission", &make_args!("audio", p.enabled));
|
.call2("setPermission", &make_args!("audio", p.enabled));
|
||||||
}
|
}
|
||||||
Permission::File => {
|
Permission::File => {
|
||||||
unsafe {
|
unsafe {
|
||||||
SERVER_FILE_TRANSFER_ENABLED = p.enabled;
|
SERVER_FILE_TRANSFER_ENABLED = p.enabled;
|
||||||
}
|
}
|
||||||
|
if !p.enabled && self.handler.is_file_transfer() {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
self.check_clipboard_file_context();
|
self.check_clipboard_file_context();
|
||||||
self.handler
|
self.handler
|
||||||
.call("setPermission", &make_args!("file", p.enabled));
|
.call2("setPermission", &make_args!("file", p.enabled));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1945,7 +1956,7 @@ fn make_fd(id: i32, entries: &Vec<FileEntry>, only_count: bool) -> Value {
|
|||||||
impl Interface for Handler {
|
impl Interface for Handler {
|
||||||
fn msgbox(&self, msgtype: &str, title: &str, text: &str) {
|
fn msgbox(&self, msgtype: &str, title: &str, text: &str) {
|
||||||
let retry = check_if_retry(msgtype, title, text);
|
let retry = check_if_retry(msgtype, title, text);
|
||||||
self.call("msgbox_retry", &make_args!(msgtype, title, text, retry));
|
self.call2("msgbox_retry", &make_args!(msgtype, title, text, retry));
|
||||||
}
|
}
|
||||||
|
|
||||||
fn handle_login_error(&mut self, err: &str) -> bool {
|
fn handle_login_error(&mut self, err: &str) -> bool {
|
||||||
@ -2003,7 +2014,7 @@ impl Interface for Handler {
|
|||||||
self.lc.write().unwrap().handle_peer_info(username, pi);
|
self.lc.write().unwrap().handle_peer_info(username, pi);
|
||||||
self.call("updatePi", &make_args!(pi_sciter));
|
self.call("updatePi", &make_args!(pi_sciter));
|
||||||
if self.is_file_transfer() {
|
if self.is_file_transfer() {
|
||||||
self.call("closeSuccess", &make_args!());
|
self.call2("closeSuccess", &make_args!());
|
||||||
} else if !self.is_port_forward() {
|
} else if !self.is_port_forward() {
|
||||||
self.msgbox("success", "Successful", "Connected, waiting for image...");
|
self.msgbox("success", "Successful", "Connected, waiting for image...");
|
||||||
}
|
}
|
||||||
|
@ -444,12 +444,14 @@ function self.closing() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
handler.setPermission = function(name, enabled) {
|
handler.setPermission = function(name, enabled) {
|
||||||
|
self.timer(60ms, function() {
|
||||||
if (name == "keyboard") keyboard_enabled = enabled;
|
if (name == "keyboard") keyboard_enabled = enabled;
|
||||||
if (name == "audio") audio_enabled = enabled;
|
if (name == "audio") audio_enabled = enabled;
|
||||||
if (name == "file") file_enabled = enabled;
|
if (name == "file") file_enabled = enabled;
|
||||||
if (name == "clipboard") clipboard_enabled = enabled;
|
if (name == "clipboard") clipboard_enabled = enabled;
|
||||||
input_blocked = false;
|
input_blocked = false;
|
||||||
header.update();
|
header.update();
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
handler.closeSuccess = function() {
|
handler.closeSuccess = function() {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user