mirror of
https://github.com/rustdesk/rustdesk.git
synced 2026-06-23 17:34:00 +08:00
Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| b0d934318b |
@@ -1167,8 +1167,8 @@ class _MonitorMenu extends StatelessWidget {
|
|||||||
tooltip: isMulti
|
tooltip: isMulti
|
||||||
? ''
|
? ''
|
||||||
: isAllMonitors
|
: isAllMonitors
|
||||||
? 'All monitors'
|
? 'all monitors'
|
||||||
: '#{${i + 1}} monitor',
|
: '#${i + 1} monitor',
|
||||||
hMargin: isMulti ? null : 6,
|
hMargin: isMulti ? null : 6,
|
||||||
vMargin: isMulti ? null : 12,
|
vMargin: isMulti ? null : 12,
|
||||||
topLevel: false,
|
topLevel: false,
|
||||||
@@ -2852,7 +2852,7 @@ class _IconMenuButtonState extends State<_IconMenuButton> {
|
|||||||
horizontal: widget.hMargin ?? _ToolbarTheme.buttonHMargin,
|
horizontal: widget.hMargin ?? _ToolbarTheme.buttonHMargin,
|
||||||
vertical: widget.vMargin ?? _ToolbarTheme.buttonVMargin);
|
vertical: widget.vMargin ?? _ToolbarTheme.buttonVMargin);
|
||||||
button = Tooltip(
|
button = Tooltip(
|
||||||
message: translate(widget.tooltip),
|
message: widget.tooltip,
|
||||||
child: button,
|
child: button,
|
||||||
);
|
);
|
||||||
if (widget.topLevel) {
|
if (widget.topLevel) {
|
||||||
|
|||||||
@@ -142,22 +142,12 @@ class FileModel {
|
|||||||
}
|
}
|
||||||
|
|
||||||
Future<void> postOverrideFileConfirm(Map<String, dynamic> evt) async {
|
Future<void> postOverrideFileConfirm(Map<String, dynamic> evt) async {
|
||||||
final id = int.tryParse(evt['id']?.toString() ?? '');
|
|
||||||
if (id == null || !jobController.hasTransferConflictJob(id)) {
|
|
||||||
debugPrint("Ignore stale override confirm event: $evt");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
evtLoop.pushEvent(
|
evtLoop.pushEvent(
|
||||||
_FileDialogEvent(WeakReference(this), FileDialogType.overwrite, evt));
|
_FileDialogEvent(WeakReference(this), FileDialogType.overwrite, evt));
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<void> overrideFileConfirm(Map<String, dynamic> evt,
|
Future<void> overrideFileConfirm(Map<String, dynamic> evt,
|
||||||
{bool? overrideConfirm, bool skip = false}) async {
|
{bool? overrideConfirm, bool skip = false}) async {
|
||||||
final id = int.tryParse(evt['id']?.toString() ?? '') ?? 0;
|
|
||||||
if (id == 0 || !jobController.hasTransferConflictJob(id)) {
|
|
||||||
debugPrint("Ignore override confirm for inactive job: $evt");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
// If `skip == true`, it means to skip this file without showing dialog.
|
// If `skip == true`, it means to skip this file without showing dialog.
|
||||||
// Because `resp` may be null after the user operation or the last remembered operation,
|
// Because `resp` may be null after the user operation or the last remembered operation,
|
||||||
// and we should distinguish them.
|
// and we should distinguish them.
|
||||||
@@ -166,12 +156,15 @@ class FileModel {
|
|||||||
? await showFileConfirmDialog(translate("Overwrite"),
|
? await showFileConfirmDialog(translate("Overwrite"),
|
||||||
"${evt['read_path']}", true, evt['is_identical'] == "true")
|
"${evt['read_path']}", true, evt['is_identical'] == "true")
|
||||||
: null);
|
: null);
|
||||||
if (!jobController.hasTransferConflictJob(id)) {
|
final id = int.tryParse(evt['id']) ?? 0;
|
||||||
debugPrint("Ignore override confirm result for inactive job: $evt");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (false == resp) {
|
if (false == resp) {
|
||||||
await jobController.cancelTransferConflictBatch(id);
|
final jobIndex = jobController.getJob(id);
|
||||||
|
if (jobIndex != -1) {
|
||||||
|
await jobController.cancelJob(id);
|
||||||
|
final job = jobController.jobTable[jobIndex];
|
||||||
|
job.state = JobState.done;
|
||||||
|
jobController.jobTable.refresh();
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
var need_override = false;
|
var need_override = false;
|
||||||
if (resp == null) {
|
if (resp == null) {
|
||||||
@@ -183,7 +176,6 @@ class FileModel {
|
|||||||
}
|
}
|
||||||
// Update the loop config.
|
// Update the loop config.
|
||||||
if (fileConfirmCheckboxRemember) {
|
if (fileConfirmCheckboxRemember) {
|
||||||
jobController.rememberTransferConflictBatch(id, resp);
|
|
||||||
evtLoop.setSkip(!need_override);
|
evtLoop.setSkip(!need_override);
|
||||||
}
|
}
|
||||||
await bind.sessionSetConfirmOverrideFile(
|
await bind.sessionSetConfirmOverrideFile(
|
||||||
@@ -293,8 +285,6 @@ class FileModel {
|
|||||||
final isWindows = otherSideData.options.isWindows;
|
final isWindows = otherSideData.options.isWindows;
|
||||||
final showHidden = otherSideData.options.showHidden;
|
final showHidden = otherSideData.options.showHidden;
|
||||||
final jobID = jobController.addTransferJob(entry, false);
|
final jobID = jobController.addTransferJob(entry, false);
|
||||||
jobController.registerTransferConflictBatch([jobID],
|
|
||||||
batchId: int.tryParse(obj['batchId']?.toString() ?? ''));
|
|
||||||
webSendLocalFiles(
|
webSendLocalFiles(
|
||||||
handleIndex: handleIndex,
|
handleIndex: handleIndex,
|
||||||
actId: jobID,
|
actId: jobID,
|
||||||
@@ -580,15 +570,8 @@ class FileController {
|
|||||||
final toPath = otherSideData.directory.path;
|
final toPath = otherSideData.directory.path;
|
||||||
final isWindows = otherSideData.options.isWindows;
|
final isWindows = otherSideData.options.isWindows;
|
||||||
final showHidden = otherSideData.options.showHidden;
|
final showHidden = otherSideData.options.showHidden;
|
||||||
final transferJobs = <(Entry, int)>[];
|
|
||||||
final transferJobIds = <int>[];
|
|
||||||
for (var from in items.items) {
|
for (var from in items.items) {
|
||||||
final jobID = jobController.addTransferJob(from, isRemoteToLocal);
|
final jobID = jobController.addTransferJob(from, isRemoteToLocal);
|
||||||
transferJobs.add((from, jobID));
|
|
||||||
transferJobIds.add(jobID);
|
|
||||||
}
|
|
||||||
jobController.registerTransferConflictBatch(transferJobIds);
|
|
||||||
for (final (from, jobID) in transferJobs) {
|
|
||||||
bind.sessionSendFiles(
|
bind.sessionSendFiles(
|
||||||
sessionId: sessionId,
|
sessionId: sessionId,
|
||||||
actId: jobID,
|
actId: jobID,
|
||||||
@@ -934,10 +917,6 @@ class JobController {
|
|||||||
static final JobID jobID = JobID();
|
static final JobID jobID = JobID();
|
||||||
final jobTable = List<JobProgress>.empty(growable: true).obs;
|
final jobTable = List<JobProgress>.empty(growable: true).obs;
|
||||||
final jobResultListener = JobResultListener<Map<String, dynamic>>();
|
final jobResultListener = JobResultListener<Map<String, dynamic>>();
|
||||||
int _nextTransferConflictBatchId = 1;
|
|
||||||
final Map<int, int> _transferConflictJobToBatch = {};
|
|
||||||
int? _transferConflictRememberBatchId;
|
|
||||||
bool? _transferConflictRememberOverrideConfirm;
|
|
||||||
final GetSessionID getSessionID;
|
final GetSessionID getSessionID;
|
||||||
final GetDialogManager getDialogManager;
|
final GetDialogManager getDialogManager;
|
||||||
SessionID get sessionId => getSessionID();
|
SessionID get sessionId => getSessionID();
|
||||||
@@ -950,57 +929,6 @@ class JobController {
|
|||||||
return jobTable.indexWhere((element) => element.id == id);
|
return jobTable.indexWhere((element) => element.id == id);
|
||||||
}
|
}
|
||||||
|
|
||||||
void registerTransferConflictBatch(Iterable<int> jobIds, {int? batchId}) {
|
|
||||||
final ids = jobIds.toList(growable: false);
|
|
||||||
if (ids.isEmpty) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
batchId ??= _nextTransferConflictBatchId++;
|
|
||||||
if (batchId >= _nextTransferConflictBatchId) {
|
|
||||||
_nextTransferConflictBatchId = batchId + 1;
|
|
||||||
}
|
|
||||||
for (final jobId in ids) {
|
|
||||||
_transferConflictJobToBatch[jobId] = batchId;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
int? transferConflictBatchId(int jobId) {
|
|
||||||
return _transferConflictJobToBatch[jobId];
|
|
||||||
}
|
|
||||||
|
|
||||||
bool hasTransferConflictJob(int jobId) {
|
|
||||||
return transferConflictBatchId(jobId) != null;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool isTransferConflictRememberBatch(int? batchId) {
|
|
||||||
return batchId != null && batchId == _transferConflictRememberBatchId;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool? transferConflictRememberOverrideConfirm(int? batchId) {
|
|
||||||
if (!isTransferConflictRememberBatch(batchId)) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
return _transferConflictRememberOverrideConfirm;
|
|
||||||
}
|
|
||||||
|
|
||||||
void rememberTransferConflictBatch(int jobId, bool? overrideConfirm) {
|
|
||||||
_transferConflictRememberBatchId = _transferConflictJobToBatch[jobId];
|
|
||||||
_transferConflictRememberOverrideConfirm = overrideConfirm;
|
|
||||||
}
|
|
||||||
|
|
||||||
void unregisterTransferConflictJob(int jobId) {
|
|
||||||
final batchId = _transferConflictJobToBatch.remove(jobId);
|
|
||||||
if (batchId == null) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (!_transferConflictJobToBatch.containsValue(batchId)) {
|
|
||||||
if (_transferConflictRememberBatchId == batchId) {
|
|
||||||
_transferConflictRememberBatchId = null;
|
|
||||||
_transferConflictRememberOverrideConfirm = null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// return jobID
|
// return jobID
|
||||||
int addTransferJob(Entry from, bool isRemoteToLocal) {
|
int addTransferJob(Entry from, bool isRemoteToLocal) {
|
||||||
final jobID = JobController.jobID.next();
|
final jobID = JobController.jobID.next();
|
||||||
@@ -1072,10 +1000,7 @@ class JobController {
|
|||||||
id = int.parse(evt['id']);
|
id = int.parse(evt['id']);
|
||||||
} catch (_) {}
|
} catch (_) {}
|
||||||
final jobIndex = getJob(id);
|
final jobIndex = getJob(id);
|
||||||
if (jobIndex == -1) {
|
if (jobIndex == -1) return true;
|
||||||
unregisterTransferConflictJob(id);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
final job = jobTable[jobIndex];
|
final job = jobTable[jobIndex];
|
||||||
job.recvJobRes = true;
|
job.recvJobRes = true;
|
||||||
if (job.type == JobType.deleteFile) {
|
if (job.type == JobType.deleteFile) {
|
||||||
@@ -1101,9 +1026,6 @@ class JobController {
|
|||||||
job.state = JobState.done;
|
job.state = JobState.done;
|
||||||
}
|
}
|
||||||
jobTable.refresh();
|
jobTable.refresh();
|
||||||
if (job.state == JobState.done || job.state == JobState.error) {
|
|
||||||
unregisterTransferConflictJob(id);
|
|
||||||
}
|
|
||||||
if (job.type == JobType.deleteDir) {
|
if (job.type == JobType.deleteDir) {
|
||||||
return job.state == JobState.done;
|
return job.state == JobState.done;
|
||||||
} else {
|
} else {
|
||||||
@@ -1113,15 +1035,9 @@ class JobController {
|
|||||||
|
|
||||||
void jobError(Map<String, dynamic> evt) {
|
void jobError(Map<String, dynamic> evt) {
|
||||||
final err = evt['err'].toString();
|
final err = evt['err'].toString();
|
||||||
final id = int.tryParse(evt['id']?.toString() ?? '');
|
int jobIndex = getJob(int.parse(evt['id']));
|
||||||
if (id == null) {
|
|
||||||
debugPrint("Ignore job error with invalid id: $evt");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
int jobIndex = getJob(id);
|
|
||||||
if (jobIndex != -1) {
|
if (jobIndex != -1) {
|
||||||
final job = jobTable[jobIndex];
|
final job = jobTable[jobIndex];
|
||||||
if (job.state == JobState.done && job.err == "cancel") return;
|
|
||||||
job.state = JobState.error;
|
job.state = JobState.error;
|
||||||
job.err = err;
|
job.err = err;
|
||||||
job.recvJobRes = true;
|
job.recvJobRes = true;
|
||||||
@@ -1144,11 +1060,6 @@ class JobController {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
jobTable.refresh();
|
jobTable.refresh();
|
||||||
if (job.state == JobState.done || job.state == JobState.error) {
|
|
||||||
unregisterTransferConflictJob(job.id);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
unregisterTransferConflictJob(id);
|
|
||||||
}
|
}
|
||||||
if (err == _kOneWayFileTransferError) {
|
if (err == _kOneWayFileTransferError) {
|
||||||
if (DateTime.now().millisecondsSinceEpoch - _lastTimeShowMsgbox > 3000) {
|
if (DateTime.now().millisecondsSinceEpoch - _lastTimeShowMsgbox > 3000) {
|
||||||
@@ -1185,42 +1096,9 @@ class JobController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
Future<void> cancelJob(int id) async {
|
Future<void> cancelJob(int id) async {
|
||||||
unregisterTransferConflictJob(id);
|
|
||||||
await bind.sessionCancelJob(sessionId: sessionId, actId: id);
|
await bind.sessionCancelJob(sessionId: sessionId, actId: id);
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<void> cancelTransferConflictBatch(int jobId) async {
|
|
||||||
final batchId = _transferConflictJobToBatch[jobId];
|
|
||||||
final batchJobIds = batchId == null ? [jobId] : <int>[];
|
|
||||||
if (batchId != null) {
|
|
||||||
for (final entry in _transferConflictJobToBatch.entries) {
|
|
||||||
if (entry.value == batchId) {
|
|
||||||
batchJobIds.add(entry.key);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
for (final id in batchJobIds) {
|
|
||||||
unregisterTransferConflictJob(id);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
final jobIdsToCancel = batchJobIds.toSet();
|
|
||||||
for (final job in jobTable) {
|
|
||||||
if (!jobIdsToCancel.contains(job.id) || job.state == JobState.done) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
job.state = JobState.done;
|
|
||||||
job.err = "cancel";
|
|
||||||
job.recvJobRes = true;
|
|
||||||
}
|
|
||||||
jobTable.refresh();
|
|
||||||
for (final id in batchJobIds) {
|
|
||||||
try {
|
|
||||||
await bind.sessionCancelJob(sessionId: sessionId, actId: id);
|
|
||||||
} catch (e) {
|
|
||||||
debugPrint("Failed to cancel transfer job $id in conflict batch: $e");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Future<void> loadLastJob(Map<String, dynamic> evt) async {
|
Future<void> loadLastJob(Map<String, dynamic> evt) async {
|
||||||
debugPrint("load last job: $evt");
|
debugPrint("load last job: $evt");
|
||||||
Map<String, dynamic> jobDetail = json.decode(evt['value']);
|
Map<String, dynamic> jobDetail = json.decode(evt['value']);
|
||||||
@@ -1267,7 +1145,7 @@ class JobController {
|
|||||||
..state = JobState.paused;
|
..state = JobState.paused;
|
||||||
jobTable.add(jobProgress);
|
jobTable.add(jobProgress);
|
||||||
}
|
}
|
||||||
registerTransferConflictBatch([currJobId]);
|
|
||||||
await bind.sessionAddJob(
|
await bind.sessionAddJob(
|
||||||
sessionId: sessionId,
|
sessionId: sessionId,
|
||||||
isRemote: isRemote,
|
isRemote: isRemote,
|
||||||
@@ -1315,9 +1193,6 @@ class JobController {
|
|||||||
|
|
||||||
void clear() {
|
void clear() {
|
||||||
jobTable.clear();
|
jobTable.clear();
|
||||||
_transferConflictJobToBatch.clear();
|
|
||||||
_transferConflictRememberBatchId = null;
|
|
||||||
_transferConflictRememberOverrideConfirm = null;
|
|
||||||
jobResultListener.clear();
|
jobResultListener.clear();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1660,9 +1535,6 @@ class JobProgress {
|
|||||||
|
|
||||||
String display() {
|
String display() {
|
||||||
if (type == JobType.transfer) {
|
if (type == JobType.transfer) {
|
||||||
if (state == JobState.done && err == "cancel") {
|
|
||||||
return translate("Cancel");
|
|
||||||
}
|
|
||||||
if (state == JobState.done && err == "skipped") {
|
if (state == JobState.done && err == "skipped") {
|
||||||
return translate("Skipped");
|
return translate("Skipped");
|
||||||
}
|
}
|
||||||
@@ -1972,44 +1844,21 @@ class _FileDialogEvent extends BaseEvent<FileDialogType, Map<String, dynamic>> {
|
|||||||
|
|
||||||
class FileDialogEventLoop
|
class FileDialogEventLoop
|
||||||
extends BaseEventLoop<FileDialogType, Map<String, dynamic>> {
|
extends BaseEventLoop<FileDialogType, Map<String, dynamic>> {
|
||||||
int? _batchId;
|
|
||||||
bool? _overrideConfirm;
|
bool? _overrideConfirm;
|
||||||
bool _skip = false;
|
bool _skip = false;
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Future<void> onPreConsume(
|
Future<void> onPreConsume(
|
||||||
BaseEvent<FileDialogType, Map<String, dynamic>> evt) async {
|
BaseEvent<FileDialogType, Map<String, dynamic>> evt) async {
|
||||||
final event = evt as _FileDialogEvent;
|
var event = evt as _FileDialogEvent;
|
||||||
final model = event.fileModel.target;
|
|
||||||
final jobId = int.tryParse(evt.data['id']?.toString() ?? '');
|
|
||||||
final batchId = model == null || jobId == null
|
|
||||||
? null
|
|
||||||
: model.jobController.transferConflictBatchId(jobId);
|
|
||||||
final keepRemembered = model != null &&
|
|
||||||
model.jobController.isTransferConflictRememberBatch(batchId);
|
|
||||||
// The loop only preloads the remembered batch choice. The model updates it
|
|
||||||
// after the user answers the current overwrite dialog.
|
|
||||||
if (_batchId != batchId && !keepRemembered) {
|
|
||||||
_batchId = batchId;
|
|
||||||
_overrideConfirm = null;
|
|
||||||
_skip = false;
|
|
||||||
} else {
|
|
||||||
_batchId = batchId;
|
|
||||||
}
|
|
||||||
if (keepRemembered) {
|
|
||||||
_overrideConfirm =
|
|
||||||
model.jobController.transferConflictRememberOverrideConfirm(batchId);
|
|
||||||
_skip = _overrideConfirm == null;
|
|
||||||
}
|
|
||||||
event.setOverrideConfirm(_overrideConfirm);
|
event.setOverrideConfirm(_overrideConfirm);
|
||||||
event.setSkip(_skip);
|
event.setSkip(_skip);
|
||||||
debugPrint(
|
debugPrint(
|
||||||
"FileDialogEventLoop: consuming<jobId: ${evt.data['id']} batchId: $_batchId overrideConfirm: $_overrideConfirm, skip: $_skip>");
|
"FileDialogEventLoop: consuming<jobId: ${evt.data['id']} overrideConfirm: $_overrideConfirm, skip: $_skip>");
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Future<void> onEventsClear() {
|
Future<void> onEventsClear() {
|
||||||
_batchId = null;
|
|
||||||
_overrideConfirm = null;
|
_overrideConfirm = null;
|
||||||
_skip = false;
|
_skip = false;
|
||||||
return super.onEventsClear();
|
return super.onEventsClear();
|
||||||
|
|||||||
@@ -113,11 +113,11 @@ pub enum MouseButton {
|
|||||||
|
|
||||||
/// Scroll up button
|
/// Scroll up button
|
||||||
ScrollUp,
|
ScrollUp,
|
||||||
/// Scroll down button
|
/// Left right button
|
||||||
ScrollDown,
|
ScrollDown,
|
||||||
/// Scroll left button
|
/// Left right button
|
||||||
ScrollLeft,
|
ScrollLeft,
|
||||||
/// Scroll right button
|
/// Left right button
|
||||||
ScrollRight,
|
ScrollRight,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -223,7 +223,7 @@ impl KeyboardControllable for Enigo {
|
|||||||
// Windows uses uft-16 encoding. We need to check
|
// Windows uses uft-16 encoding. We need to check
|
||||||
// for variable length characters. As such some
|
// for variable length characters. As such some
|
||||||
// characters can be 32 bit long and those are
|
// characters can be 32 bit long and those are
|
||||||
// encoded in so-called high and low surrogates
|
// encoded in such called hight and low surrogates
|
||||||
// each 16 bit wide that needs to be send after
|
// each 16 bit wide that needs to be send after
|
||||||
// another to the SendInput function without
|
// another to the SendInput function without
|
||||||
// being interrupted by "keyup"
|
// being interrupted by "keyup"
|
||||||
|
|||||||
+1
-1
@@ -45,7 +45,7 @@ pre_start()
|
|||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
# When logging out from the interactive shell, the execution sequence is:
|
# When loging out from the interactive shell, the execution sequence is:
|
||||||
#
|
#
|
||||||
# IF ~/.bash_logout exists THEN
|
# IF ~/.bash_logout exists THEN
|
||||||
# execute ~/.bash_logout
|
# execute ~/.bash_logout
|
||||||
|
|||||||
@@ -761,7 +761,5 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Switch display", "تبديل الشاشة"),
|
("Switch display", "تبديل الشاشة"),
|
||||||
("Show monitor switch button on the main toolbar", "إظهار زر تبديل الشاشة على شريط الأدوات الرئيسي"),
|
("Show monitor switch button on the main toolbar", "إظهار زر تبديل الشاشة على شريط الأدوات الرئيسي"),
|
||||||
("Show on the minimized toolbar", "الإظهار على شريط الأدوات المُصغّر"),
|
("Show on the minimized toolbar", "الإظهار على شريط الأدوات المُصغّر"),
|
||||||
("All monitors", "جميع الشاشات"),
|
|
||||||
("#{} monitor", "الشاشة رقم {}"),
|
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -761,7 +761,5 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Switch display", "Пераключыць дысплэй"),
|
("Switch display", "Пераключыць дысплэй"),
|
||||||
("Show monitor switch button on the main toolbar", "Паказваць кнопку пераключэння манітора на галоўнай панэлі інструментаў"),
|
("Show monitor switch button on the main toolbar", "Паказваць кнопку пераключэння манітора на галоўнай панэлі інструментаў"),
|
||||||
("Show on the minimized toolbar", "Паказваць на згорнутай панэлі інструментаў"),
|
("Show on the minimized toolbar", "Паказваць на згорнутай панэлі інструментаў"),
|
||||||
("All monitors", "Усе манітори"),
|
|
||||||
("#{} monitor", "Манітор {}"),
|
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -761,7 +761,5 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Switch display", "Превключване на дисплея"),
|
("Switch display", "Превключване на дисплея"),
|
||||||
("Show monitor switch button on the main toolbar", "Показване на бутона за превключване на монитора в главната лента с инструменти"),
|
("Show monitor switch button on the main toolbar", "Показване на бутона за превключване на монитора в главната лента с инструменти"),
|
||||||
("Show on the minimized toolbar", "Показване в минимизираната лента с инструменти"),
|
("Show on the minimized toolbar", "Показване в минимизираната лента с инструменти"),
|
||||||
("All monitors", "Всички монитори"),
|
|
||||||
("#{} monitor", "Монитор {}"),
|
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -761,7 +761,5 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Switch display", "Canvia de pantalla"),
|
("Switch display", "Canvia de pantalla"),
|
||||||
("Show monitor switch button on the main toolbar", "Mostra el botó de canvi de monitor a la barra d’eines principal"),
|
("Show monitor switch button on the main toolbar", "Mostra el botó de canvi de monitor a la barra d’eines principal"),
|
||||||
("Show on the minimized toolbar", "Mostra a la barra d’eines minimitzada"),
|
("Show on the minimized toolbar", "Mostra a la barra d’eines minimitzada"),
|
||||||
("All monitors", "Tots els monitors"),
|
|
||||||
("#{} monitor", "Monitor {}"),
|
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -761,7 +761,5 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Switch display", "切换显示器"),
|
("Switch display", "切换显示器"),
|
||||||
("Show monitor switch button on the main toolbar", "在主工具栏上显示显示器切换按钮"),
|
("Show monitor switch button on the main toolbar", "在主工具栏上显示显示器切换按钮"),
|
||||||
("Show on the minimized toolbar", "在最小化工具栏上显示"),
|
("Show on the minimized toolbar", "在最小化工具栏上显示"),
|
||||||
("All monitors", "所有显示器"),
|
|
||||||
("#{} monitor", "{}号显示器"),
|
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -761,7 +761,5 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Switch display", "Přepnout obrazovku"),
|
("Switch display", "Přepnout obrazovku"),
|
||||||
("Show monitor switch button on the main toolbar", "Zobrazit tlačítko přepnutí monitoru na hlavním panelu nástrojů"),
|
("Show monitor switch button on the main toolbar", "Zobrazit tlačítko přepnutí monitoru na hlavním panelu nástrojů"),
|
||||||
("Show on the minimized toolbar", "Zobrazit na minimalizovaném panelu nástrojů"),
|
("Show on the minimized toolbar", "Zobrazit na minimalizovaném panelu nástrojů"),
|
||||||
("All monitors", "Všechny monitory"),
|
|
||||||
("#{} monitor", "Monitor č. {}"),
|
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -761,7 +761,5 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Switch display", "Skift skærm"),
|
("Switch display", "Skift skærm"),
|
||||||
("Show monitor switch button on the main toolbar", "Vis knap til skærmskift på hovedværktøjslinjen"),
|
("Show monitor switch button on the main toolbar", "Vis knap til skærmskift på hovedværktøjslinjen"),
|
||||||
("Show on the minimized toolbar", "Vis på den minimerede værktøjslinje"),
|
("Show on the minimized toolbar", "Vis på den minimerede værktøjslinje"),
|
||||||
("All monitors", "Alle skærme"),
|
|
||||||
("#{} monitor", "Skærm {}"),
|
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -761,7 +761,5 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Switch display", "Anzeige wechseln"),
|
("Switch display", "Anzeige wechseln"),
|
||||||
("Show monitor switch button on the main toolbar", "Schaltfläche zum Monitorwechsel in der Haupt-Symbolleiste anzeigen"),
|
("Show monitor switch button on the main toolbar", "Schaltfläche zum Monitorwechsel in der Haupt-Symbolleiste anzeigen"),
|
||||||
("Show on the minimized toolbar", "In der minimierten Symbolleiste anzeigen"),
|
("Show on the minimized toolbar", "In der minimierten Symbolleiste anzeigen"),
|
||||||
("All monitors", "Alle Bildschirme"),
|
|
||||||
("#{} monitor", "Bildschirm {}"),
|
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -761,7 +761,5 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Switch display", "Εναλλαγή οθόνης"),
|
("Switch display", "Εναλλαγή οθόνης"),
|
||||||
("Show monitor switch button on the main toolbar", "Εμφάνιση κουμπιού εναλλαγής οθόνης στην κύρια γραμμή εργαλείων"),
|
("Show monitor switch button on the main toolbar", "Εμφάνιση κουμπιού εναλλαγής οθόνης στην κύρια γραμμή εργαλείων"),
|
||||||
("Show on the minimized toolbar", "Εμφάνιση στην ελαχιστοποιημένη γραμμή εργαλείων"),
|
("Show on the minimized toolbar", "Εμφάνιση στην ελαχιστοποιημένη γραμμή εργαλείων"),
|
||||||
("All monitors", "Όλες οι οθόνες"),
|
|
||||||
("#{} monitor", "Οθόνη {}"),
|
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -761,7 +761,5 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Switch display", "Ŝalti ekranon"),
|
("Switch display", "Ŝalti ekranon"),
|
||||||
("Show monitor switch button on the main toolbar", "Montri ekran-ŝaltan butonon en la ĉefa ilobreto"),
|
("Show monitor switch button on the main toolbar", "Montri ekran-ŝaltan butonon en la ĉefa ilobreto"),
|
||||||
("Show on the minimized toolbar", "Montri en la minimumigita ilobreto"),
|
("Show on the minimized toolbar", "Montri en la minimumigita ilobreto"),
|
||||||
("All monitors", "Ĉiuj monitoroj"),
|
|
||||||
("#{} monitor", "Monitoro {}"),
|
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -761,7 +761,5 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Switch display", "Cambiar de pantalla"),
|
("Switch display", "Cambiar de pantalla"),
|
||||||
("Show monitor switch button on the main toolbar", "Mostrar el botón de cambio de monitor en la barra de herramientas principal"),
|
("Show monitor switch button on the main toolbar", "Mostrar el botón de cambio de monitor en la barra de herramientas principal"),
|
||||||
("Show on the minimized toolbar", "Mostrar en la barra de herramientas minimizada"),
|
("Show on the minimized toolbar", "Mostrar en la barra de herramientas minimizada"),
|
||||||
("All monitors", "Todos los monitores"),
|
|
||||||
("#{} monitor", "Monitor {}"),
|
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -761,7 +761,5 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Switch display", "Vaheta kuva"),
|
("Switch display", "Vaheta kuva"),
|
||||||
("Show monitor switch button on the main toolbar", "Näita monitori vahetamise nuppu peamisel tööriistaribal"),
|
("Show monitor switch button on the main toolbar", "Näita monitori vahetamise nuppu peamisel tööriistaribal"),
|
||||||
("Show on the minimized toolbar", "Näita minimeeritud tööriistaribal"),
|
("Show on the minimized toolbar", "Näita minimeeritud tööriistaribal"),
|
||||||
("All monitors", "Kõik kuvarid"),
|
|
||||||
("#{} monitor", "Kuvar {}"),
|
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -761,7 +761,5 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Switch display", "Aldatu pantaila"),
|
("Switch display", "Aldatu pantaila"),
|
||||||
("Show monitor switch button on the main toolbar", "Erakutsi monitorea aldatzeko botoia tresna-barra nagusian"),
|
("Show monitor switch button on the main toolbar", "Erakutsi monitorea aldatzeko botoia tresna-barra nagusian"),
|
||||||
("Show on the minimized toolbar", "Erakutsi minimizatutako tresna-barran"),
|
("Show on the minimized toolbar", "Erakutsi minimizatutako tresna-barran"),
|
||||||
("All monitors", "Monitore guztiak"),
|
|
||||||
("#{} monitor", "{}. monitorea"),
|
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -761,7 +761,5 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Switch display", "تعویض نمایشگر"),
|
("Switch display", "تعویض نمایشگر"),
|
||||||
("Show monitor switch button on the main toolbar", "نمایش دکمه تعویض نمایشگر در نوار ابزار اصلی"),
|
("Show monitor switch button on the main toolbar", "نمایش دکمه تعویض نمایشگر در نوار ابزار اصلی"),
|
||||||
("Show on the minimized toolbar", "نمایش در نوار ابزار کوچکشده"),
|
("Show on the minimized toolbar", "نمایش در نوار ابزار کوچکشده"),
|
||||||
("All monitors", "همه نمایشگرها"),
|
|
||||||
("#{} monitor", "نمایشگر {}"),
|
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -761,7 +761,5 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Switch display", "Vaihda näyttöä"),
|
("Switch display", "Vaihda näyttöä"),
|
||||||
("Show monitor switch button on the main toolbar", "Näytä näytön vaihtopainike päätyökalurivillä"),
|
("Show monitor switch button on the main toolbar", "Näytä näytön vaihtopainike päätyökalurivillä"),
|
||||||
("Show on the minimized toolbar", "Näytä pienennetyssä työkalurivissä"),
|
("Show on the minimized toolbar", "Näytä pienennetyssä työkalurivissä"),
|
||||||
("All monitors", "Kaikki näytöt"),
|
|
||||||
("#{} monitor", "Näyttö {}"),
|
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -761,7 +761,5 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Switch display", "Changer d’écran"),
|
("Switch display", "Changer d’écran"),
|
||||||
("Show monitor switch button on the main toolbar", "Afficher le bouton de changement d’écran dans la barre d’outils principale"),
|
("Show monitor switch button on the main toolbar", "Afficher le bouton de changement d’écran dans la barre d’outils principale"),
|
||||||
("Show on the minimized toolbar", "Afficher dans la barre d’outils réduite"),
|
("Show on the minimized toolbar", "Afficher dans la barre d’outils réduite"),
|
||||||
("All monitors", "Tous les moniteurs"),
|
|
||||||
("#{} monitor", "Moniteur {}"),
|
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -761,7 +761,5 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Switch display", "ეკრანის გადართვა"),
|
("Switch display", "ეკრანის გადართვა"),
|
||||||
("Show monitor switch button on the main toolbar", "მონიტორის გადართვის ღილაკის ჩვენება მთავარ ხელსაწყოთა ზოლზე"),
|
("Show monitor switch button on the main toolbar", "მონიტორის გადართვის ღილაკის ჩვენება მთავარ ხელსაწყოთა ზოლზე"),
|
||||||
("Show on the minimized toolbar", "ჩვენება ჩაკეცილ ხელსაწყოთა ზოლზე"),
|
("Show on the minimized toolbar", "ჩვენება ჩაკეცილ ხელსაწყოთა ზოლზე"),
|
||||||
("All monitors", "ყველა მონიტორი"),
|
|
||||||
("#{} monitor", "მონიტორი {}"),
|
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -761,7 +761,5 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Switch display", "ડિસ્પ્લે બદલો"),
|
("Switch display", "ડિસ્પ્લે બદલો"),
|
||||||
("Show monitor switch button on the main toolbar", "મુખ્ય ટૂલબાર પર મોનિટર સ્વિચ બટન બતાવો"),
|
("Show monitor switch button on the main toolbar", "મુખ્ય ટૂલબાર પર મોનિટર સ્વિચ બટન બતાવો"),
|
||||||
("Show on the minimized toolbar", "ન્યૂનતમ કરેલા ટૂલબાર પર બતાવો"),
|
("Show on the minimized toolbar", "ન્યૂનતમ કરેલા ટૂલબાર પર બતાવો"),
|
||||||
("All monitors", "બધા મોનિટર"),
|
|
||||||
("#{} monitor", "મોનિટર {}"),
|
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -761,7 +761,5 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Switch display", "החלפת צג"),
|
("Switch display", "החלפת צג"),
|
||||||
("Show monitor switch button on the main toolbar", "הצגת לחצן החלפת צג בסרגל הכלים הראשי"),
|
("Show monitor switch button on the main toolbar", "הצגת לחצן החלפת צג בסרגל הכלים הראשי"),
|
||||||
("Show on the minimized toolbar", "הצגה בסרגל הכלים הממוזער"),
|
("Show on the minimized toolbar", "הצגה בסרגל הכלים הממוזער"),
|
||||||
("All monitors", "כל המסכים"),
|
|
||||||
("#{} monitor", "מסך {}"),
|
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -761,7 +761,5 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Switch display", "डिस्प्ले बदलें"),
|
("Switch display", "डिस्प्ले बदलें"),
|
||||||
("Show monitor switch button on the main toolbar", "मुख्य टूलबार पर मॉनिटर स्विच बटन दिखाएं"),
|
("Show monitor switch button on the main toolbar", "मुख्य टूलबार पर मॉनिटर स्विच बटन दिखाएं"),
|
||||||
("Show on the minimized toolbar", "न्यूनतम किए गए टूलबार पर दिखाएं"),
|
("Show on the minimized toolbar", "न्यूनतम किए गए टूलबार पर दिखाएं"),
|
||||||
("All monitors", "सभी मॉनिटर"),
|
|
||||||
("#{} monitor", "मॉनिटर {}"),
|
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -761,7 +761,5 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Switch display", "Promijeni zaslon"),
|
("Switch display", "Promijeni zaslon"),
|
||||||
("Show monitor switch button on the main toolbar", "Prikaži gumb za prebacivanje monitora na glavnoj alatnoj traci"),
|
("Show monitor switch button on the main toolbar", "Prikaži gumb za prebacivanje monitora na glavnoj alatnoj traci"),
|
||||||
("Show on the minimized toolbar", "Prikaži na minimiziranoj alatnoj traci"),
|
("Show on the minimized toolbar", "Prikaži na minimiziranoj alatnoj traci"),
|
||||||
("All monitors", "Svi monitori"),
|
|
||||||
("#{} monitor", "Monitor {}"),
|
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -761,7 +761,5 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Switch display", "Kijelző váltása"),
|
("Switch display", "Kijelző váltása"),
|
||||||
("Show monitor switch button on the main toolbar", "Monitorváltó gomb megjelenítése a fő eszköztáron"),
|
("Show monitor switch button on the main toolbar", "Monitorváltó gomb megjelenítése a fő eszköztáron"),
|
||||||
("Show on the minimized toolbar", "Megjelenítés a kis méretű eszköztáron"),
|
("Show on the minimized toolbar", "Megjelenítés a kis méretű eszköztáron"),
|
||||||
("All monitors", "Minden monitor"),
|
|
||||||
("#{} monitor", "{}. monitor"),
|
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -761,7 +761,5 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Switch display", "Ganti tampilan"),
|
("Switch display", "Ganti tampilan"),
|
||||||
("Show monitor switch button on the main toolbar", "Tampilkan tombol pengalih monitor di bilah alat utama"),
|
("Show monitor switch button on the main toolbar", "Tampilkan tombol pengalih monitor di bilah alat utama"),
|
||||||
("Show on the minimized toolbar", "Tampilkan di bilah alat yang diperkecil"),
|
("Show on the minimized toolbar", "Tampilkan di bilah alat yang diperkecil"),
|
||||||
("All monitors", "Semua monitor"),
|
|
||||||
("#{} monitor", "Monitor {}"),
|
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -761,7 +761,5 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Switch display", "Cambia schermo"),
|
("Switch display", "Cambia schermo"),
|
||||||
("Show monitor switch button on the main toolbar", "Visualizza nella barra strumenti principale il pulsante per il cambio schermo"),
|
("Show monitor switch button on the main toolbar", "Visualizza nella barra strumenti principale il pulsante per il cambio schermo"),
|
||||||
("Show on the minimized toolbar", "Visualizza nella barra strumenti ridotta a icona"),
|
("Show on the minimized toolbar", "Visualizza nella barra strumenti ridotta a icona"),
|
||||||
("All monitors", "Tutti gli schermi"),
|
|
||||||
("#{} monitor", "Schermo {}"),
|
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -761,7 +761,5 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Switch display", "ディスプレイを切り替え"),
|
("Switch display", "ディスプレイを切り替え"),
|
||||||
("Show monitor switch button on the main toolbar", "メインツールバーにモニター切り替えボタンを表示"),
|
("Show monitor switch button on the main toolbar", "メインツールバーにモニター切り替えボタンを表示"),
|
||||||
("Show on the minimized toolbar", "最小化したツールバーに表示"),
|
("Show on the minimized toolbar", "最小化したツールバーに表示"),
|
||||||
("All monitors", "すべてのディスプレイ"),
|
|
||||||
("#{} monitor", "ディスプレイ {}"),
|
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -761,7 +761,5 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Switch display", "디스플레이 전환"),
|
("Switch display", "디스플레이 전환"),
|
||||||
("Show monitor switch button on the main toolbar", "기본 도구 모음에 모니터 전환 버튼 표시"),
|
("Show monitor switch button on the main toolbar", "기본 도구 모음에 모니터 전환 버튼 표시"),
|
||||||
("Show on the minimized toolbar", "최소화된 도구 모음에 표시"),
|
("Show on the minimized toolbar", "최소화된 도구 모음에 표시"),
|
||||||
("All monitors", "모든 모니터"),
|
|
||||||
("#{} monitor", "{}번 모니터"),
|
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -761,7 +761,5 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Switch display", "Дисплейді ауыстыру"),
|
("Switch display", "Дисплейді ауыстыру"),
|
||||||
("Show monitor switch button on the main toolbar", "Негізгі құралдар тақтасында мониторды ауыстыру түймесін көрсету"),
|
("Show monitor switch button on the main toolbar", "Негізгі құралдар тақтасында мониторды ауыстыру түймесін көрсету"),
|
||||||
("Show on the minimized toolbar", "Кішірейтілген құралдар тақтасында көрсету"),
|
("Show on the minimized toolbar", "Кішірейтілген құралдар тақтасында көрсету"),
|
||||||
("All monitors", "Барлық мониторлар"),
|
|
||||||
("#{} monitor", "Монитор {}"),
|
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -761,7 +761,5 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Switch display", "Perjungti ekraną"),
|
("Switch display", "Perjungti ekraną"),
|
||||||
("Show monitor switch button on the main toolbar", "Rodyti monitoriaus perjungimo mygtuką pagrindinėje įrankių juostoje"),
|
("Show monitor switch button on the main toolbar", "Rodyti monitoriaus perjungimo mygtuką pagrindinėje įrankių juostoje"),
|
||||||
("Show on the minimized toolbar", "Rodyti sumažintoje įrankių juostoje"),
|
("Show on the minimized toolbar", "Rodyti sumažintoje įrankių juostoje"),
|
||||||
("All monitors", "Visi monitoriai"),
|
|
||||||
("#{} monitor", "Monitorius {}"),
|
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -761,7 +761,5 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Switch display", "Pārslēgt displeju"),
|
("Switch display", "Pārslēgt displeju"),
|
||||||
("Show monitor switch button on the main toolbar", "Rādīt monitora pārslēgšanas pogu galvenajā rīkjoslā"),
|
("Show monitor switch button on the main toolbar", "Rādīt monitora pārslēgšanas pogu galvenajā rīkjoslā"),
|
||||||
("Show on the minimized toolbar", "Rādīt minimizētajā rīkjoslā"),
|
("Show on the minimized toolbar", "Rādīt minimizētajā rīkjoslā"),
|
||||||
("All monitors", "Visi monitori"),
|
|
||||||
("#{} monitor", "Monitors {}"),
|
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -761,7 +761,5 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Switch display", "ഡിസ്പ്ലേ മാറ്റുക"),
|
("Switch display", "ഡിസ്പ്ലേ മാറ്റുക"),
|
||||||
("Show monitor switch button on the main toolbar", "പ്രധാന ടൂൾബാറിൽ മോണിറ്റർ സ്വിച്ച് ബട്ടൺ കാണിക്കുക"),
|
("Show monitor switch button on the main toolbar", "പ്രധാന ടൂൾബാറിൽ മോണിറ്റർ സ്വിച്ച് ബട്ടൺ കാണിക്കുക"),
|
||||||
("Show on the minimized toolbar", "ചെറുതാക്കിയ ടൂൾബാറിൽ കാണിക്കുക"),
|
("Show on the minimized toolbar", "ചെറുതാക്കിയ ടൂൾബാറിൽ കാണിക്കുക"),
|
||||||
("All monitors", "എല്ലാ മോണിറ്ററുകളും"),
|
|
||||||
("#{} monitor", "മോണിറ്റർ {}"),
|
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -761,7 +761,5 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Switch display", "Bytt skjerm"),
|
("Switch display", "Bytt skjerm"),
|
||||||
("Show monitor switch button on the main toolbar", "Vis knapp for skjermbytte på hovedverktøylinjen"),
|
("Show monitor switch button on the main toolbar", "Vis knapp for skjermbytte på hovedverktøylinjen"),
|
||||||
("Show on the minimized toolbar", "Vis på den minimerte verktøylinjen"),
|
("Show on the minimized toolbar", "Vis på den minimerte verktøylinjen"),
|
||||||
("All monitors", "Alle skjermer"),
|
|
||||||
("#{} monitor", "Skjerm {}"),
|
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -761,7 +761,5 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Switch display", "Beeldscherm wisselen"),
|
("Switch display", "Beeldscherm wisselen"),
|
||||||
("Show monitor switch button on the main toolbar", "Knop voor monitorwisseling weergeven op de hoofdwerkbalk"),
|
("Show monitor switch button on the main toolbar", "Knop voor monitorwisseling weergeven op de hoofdwerkbalk"),
|
||||||
("Show on the minimized toolbar", "Weergeven op de geminimaliseerde werkbalk"),
|
("Show on the minimized toolbar", "Weergeven op de geminimaliseerde werkbalk"),
|
||||||
("All monitors", "Alle monitoren"),
|
|
||||||
("#{} monitor", "Monitor {}"),
|
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -761,7 +761,5 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Switch display", "Przełącz ekran"),
|
("Switch display", "Przełącz ekran"),
|
||||||
("Show monitor switch button on the main toolbar", "Pokaż przycisk przełączania monitora na głównym pasku narzędzi"),
|
("Show monitor switch button on the main toolbar", "Pokaż przycisk przełączania monitora na głównym pasku narzędzi"),
|
||||||
("Show on the minimized toolbar", "Pokaż na zminimalizowanym pasku narzędzi"),
|
("Show on the minimized toolbar", "Pokaż na zminimalizowanym pasku narzędzi"),
|
||||||
("All monitors", "Wszystkie ekrany"),
|
|
||||||
("#{} monitor", "Ekran {}"),
|
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -761,7 +761,5 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Switch display", "Trocar de ecrã"),
|
("Switch display", "Trocar de ecrã"),
|
||||||
("Show monitor switch button on the main toolbar", "Mostrar o botão de troca de monitor na barra de ferramentas principal"),
|
("Show monitor switch button on the main toolbar", "Mostrar o botão de troca de monitor na barra de ferramentas principal"),
|
||||||
("Show on the minimized toolbar", "Mostrar na barra de ferramentas minimizada"),
|
("Show on the minimized toolbar", "Mostrar na barra de ferramentas minimizada"),
|
||||||
("All monitors", "Todos os monitores"),
|
|
||||||
("#{} monitor", "Monitor {}"),
|
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -761,7 +761,5 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Switch display", "Trocar de tela"),
|
("Switch display", "Trocar de tela"),
|
||||||
("Show monitor switch button on the main toolbar", "Mostrar botão de troca de tela na barra de ferramentas"),
|
("Show monitor switch button on the main toolbar", "Mostrar botão de troca de tela na barra de ferramentas"),
|
||||||
("Show on the minimized toolbar", "Mostrar na barra de ferramentas minimizada"),
|
("Show on the minimized toolbar", "Mostrar na barra de ferramentas minimizada"),
|
||||||
("All monitors", "Todas as telas"),
|
|
||||||
("#{} monitor", "Tela {}"),
|
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -761,7 +761,5 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Switch display", "Comută afișajul"),
|
("Switch display", "Comută afișajul"),
|
||||||
("Show monitor switch button on the main toolbar", "Afișează butonul de comutare a monitorului în bara de instrumente principală"),
|
("Show monitor switch button on the main toolbar", "Afișează butonul de comutare a monitorului în bara de instrumente principală"),
|
||||||
("Show on the minimized toolbar", "Afișează în bara de instrumente minimizată"),
|
("Show on the minimized toolbar", "Afișează în bara de instrumente minimizată"),
|
||||||
("All monitors", "Toate monitoarele"),
|
|
||||||
("#{} monitor", "Monitor {}"),
|
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -761,7 +761,5 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Switch display", "Переключить дисплей"),
|
("Switch display", "Переключить дисплей"),
|
||||||
("Show monitor switch button on the main toolbar", "Показывать кнопку переключения монитора на главной панели инструментов"),
|
("Show monitor switch button on the main toolbar", "Показывать кнопку переключения монитора на главной панели инструментов"),
|
||||||
("Show on the minimized toolbar", "Показывать на свёрнутой панели инструментов"),
|
("Show on the minimized toolbar", "Показывать на свёрнутой панели инструментов"),
|
||||||
("All monitors", "Все мониторы"),
|
|
||||||
("#{} monitor", "Монитор {}"),
|
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -761,7 +761,5 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Switch display", "Càmbia ischermu"),
|
("Switch display", "Càmbia ischermu"),
|
||||||
("Show monitor switch button on the main toolbar", "Mustra su butone de càmbiu de monitor in sa barra de aina printzipale"),
|
("Show monitor switch button on the main toolbar", "Mustra su butone de càmbiu de monitor in sa barra de aina printzipale"),
|
||||||
("Show on the minimized toolbar", "Mustra in sa barra de aina minimizada"),
|
("Show on the minimized toolbar", "Mustra in sa barra de aina minimizada"),
|
||||||
("All monitors", "Totu sos ischermos"),
|
|
||||||
("#{} monitor", "Ischermu {}"),
|
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -761,7 +761,5 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Switch display", "Prepnúť obrazovku"),
|
("Switch display", "Prepnúť obrazovku"),
|
||||||
("Show monitor switch button on the main toolbar", "Zobraziť tlačidlo prepnutia monitora na hlavnom paneli nástrojov"),
|
("Show monitor switch button on the main toolbar", "Zobraziť tlačidlo prepnutia monitora na hlavnom paneli nástrojov"),
|
||||||
("Show on the minimized toolbar", "Zobraziť na minimalizovanom paneli nástrojov"),
|
("Show on the minimized toolbar", "Zobraziť na minimalizovanom paneli nástrojov"),
|
||||||
("All monitors", "Všetky monitory"),
|
|
||||||
("#{} monitor", "Monitor {}"),
|
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -761,7 +761,5 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Switch display", "Preklopi zaslon"),
|
("Switch display", "Preklopi zaslon"),
|
||||||
("Show monitor switch button on the main toolbar", "Pokaži gumb za preklop monitorja v glavni orodni vrstici"),
|
("Show monitor switch button on the main toolbar", "Pokaži gumb za preklop monitorja v glavni orodni vrstici"),
|
||||||
("Show on the minimized toolbar", "Pokaži v pomanjšani orodni vrstici"),
|
("Show on the minimized toolbar", "Pokaži v pomanjšani orodni vrstici"),
|
||||||
("All monitors", "Vsi zasloni"),
|
|
||||||
("#{} monitor", "Zaslon {}"),
|
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -761,7 +761,5 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Switch display", "Ndërro ekranin"),
|
("Switch display", "Ndërro ekranin"),
|
||||||
("Show monitor switch button on the main toolbar", "Shfaq butonin e ndërrimit të monitorit te shiriti kryesor i veglave"),
|
("Show monitor switch button on the main toolbar", "Shfaq butonin e ndërrimit të monitorit te shiriti kryesor i veglave"),
|
||||||
("Show on the minimized toolbar", "Shfaq te shiriti i minimizuar i veglave"),
|
("Show on the minimized toolbar", "Shfaq te shiriti i minimizuar i veglave"),
|
||||||
("All monitors", "Të gjithë monitorët"),
|
|
||||||
("#{} monitor", "Monitori {}"),
|
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -761,7 +761,5 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Switch display", "Промени екран"),
|
("Switch display", "Промени екран"),
|
||||||
("Show monitor switch button on the main toolbar", "Прикажи дугме за пребацивање монитора на главној траци са алаткама"),
|
("Show monitor switch button on the main toolbar", "Прикажи дугме за пребацивање монитора на главној траци са алаткама"),
|
||||||
("Show on the minimized toolbar", "Прикажи на умањеној траци са алаткама"),
|
("Show on the minimized toolbar", "Прикажи на умањеној траци са алаткама"),
|
||||||
("All monitors", "Svi monitori"),
|
|
||||||
("#{} monitor", "Monitor {}"),
|
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -761,7 +761,5 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Switch display", "Växla skärm"),
|
("Switch display", "Växla skärm"),
|
||||||
("Show monitor switch button on the main toolbar", "Visa knapp för skärmväxling i huvudverktygsfältet"),
|
("Show monitor switch button on the main toolbar", "Visa knapp för skärmväxling i huvudverktygsfältet"),
|
||||||
("Show on the minimized toolbar", "Visa i det minimerade verktygsfältet"),
|
("Show on the minimized toolbar", "Visa i det minimerade verktygsfältet"),
|
||||||
("All monitors", "Alla skärmar"),
|
|
||||||
("#{} monitor", "Skärm {}"),
|
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -761,7 +761,5 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Switch display", "திரையை மாற்று"),
|
("Switch display", "திரையை மாற்று"),
|
||||||
("Show monitor switch button on the main toolbar", "முதன்மை கருவிப்பட்டையில் திரை மாற்று பொத்தானைக் காட்டு"),
|
("Show monitor switch button on the main toolbar", "முதன்மை கருவிப்பட்டையில் திரை மாற்று பொத்தானைக் காட்டு"),
|
||||||
("Show on the minimized toolbar", "சிறிதாக்கப்பட்ட கருவிப்பட்டையில் காட்டு"),
|
("Show on the minimized toolbar", "சிறிதாக்கப்பட்ட கருவிப்பட்டையில் காட்டு"),
|
||||||
("All monitors", "அனைத்து மானிட்டர்களும்"),
|
|
||||||
("#{} monitor", "மானிட்டர் {}"),
|
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -761,7 +761,5 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Switch display", ""),
|
("Switch display", ""),
|
||||||
("Show monitor switch button on the main toolbar", ""),
|
("Show monitor switch button on the main toolbar", ""),
|
||||||
("Show on the minimized toolbar", ""),
|
("Show on the minimized toolbar", ""),
|
||||||
("All monitors", ""),
|
|
||||||
("#{} monitor", ""),
|
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -761,7 +761,5 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Switch display", "สลับจอแสดงผล"),
|
("Switch display", "สลับจอแสดงผล"),
|
||||||
("Show monitor switch button on the main toolbar", "แสดงปุ่มสลับจอภาพบนแถบเครื่องมือหลัก"),
|
("Show monitor switch button on the main toolbar", "แสดงปุ่มสลับจอภาพบนแถบเครื่องมือหลัก"),
|
||||||
("Show on the minimized toolbar", "แสดงบนแถบเครื่องมือที่ย่อเล็กสุด"),
|
("Show on the minimized toolbar", "แสดงบนแถบเครื่องมือที่ย่อเล็กสุด"),
|
||||||
("All monitors", "จอภาพทั้งหมด"),
|
|
||||||
("#{} monitor", "จอภาพ {}"),
|
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -761,7 +761,5 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Switch display", "Ekranı değiştir"),
|
("Switch display", "Ekranı değiştir"),
|
||||||
("Show monitor switch button on the main toolbar", "Ana araç çubuğunda monitör değiştirme düğmesini göster"),
|
("Show monitor switch button on the main toolbar", "Ana araç çubuğunda monitör değiştirme düğmesini göster"),
|
||||||
("Show on the minimized toolbar", "Simge durumuna küçültülmüş araç çubuğunda göster"),
|
("Show on the minimized toolbar", "Simge durumuna küçültülmüş araç çubuğunda göster"),
|
||||||
("All monitors", "Tüm monitörler"),
|
|
||||||
("#{} monitor", "Monitör {}"),
|
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -761,7 +761,5 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Switch display", "切換螢幕"),
|
("Switch display", "切換螢幕"),
|
||||||
("Show monitor switch button on the main toolbar", "在主工具列上顯示螢幕切換按鈕"),
|
("Show monitor switch button on the main toolbar", "在主工具列上顯示螢幕切換按鈕"),
|
||||||
("Show on the minimized toolbar", "在最小化工具列上顯示"),
|
("Show on the minimized toolbar", "在最小化工具列上顯示"),
|
||||||
("All monitors", "所有顯示器"),
|
|
||||||
("#{} monitor", "{}號顯示器"),
|
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -761,7 +761,5 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Switch display", "Перемкнути дисплей"),
|
("Switch display", "Перемкнути дисплей"),
|
||||||
("Show monitor switch button on the main toolbar", "Показувати кнопку перемикання монітора на головній панелі інструментів"),
|
("Show monitor switch button on the main toolbar", "Показувати кнопку перемикання монітора на головній панелі інструментів"),
|
||||||
("Show on the minimized toolbar", "Показувати на згорнутій панелі інструментів"),
|
("Show on the minimized toolbar", "Показувати на згорнутій панелі інструментів"),
|
||||||
("All monitors", "Усі монітори"),
|
|
||||||
("#{} monitor", "Монітор {}"),
|
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -761,7 +761,5 @@ pub static ref T: std::collections::HashMap<&'static str, &'static str> =
|
|||||||
("Switch display", "Chuyển màn hình"),
|
("Switch display", "Chuyển màn hình"),
|
||||||
("Show monitor switch button on the main toolbar", "Hiển thị nút chuyển đổi màn hình trên thanh công cụ chính"),
|
("Show monitor switch button on the main toolbar", "Hiển thị nút chuyển đổi màn hình trên thanh công cụ chính"),
|
||||||
("Show on the minimized toolbar", "Hiển thị trên thanh công cụ thu nhỏ"),
|
("Show on the minimized toolbar", "Hiển thị trên thanh công cụ thu nhỏ"),
|
||||||
("All monitors", "Tất cả màn hình"),
|
|
||||||
("#{} monitor", "Màn hình {}"),
|
|
||||||
].iter().cloned().collect();
|
].iter().cloned().collect();
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -1,7 +1,7 @@
|
|||||||
/// Url handler based on dbus
|
/// Url handler based on dbus
|
||||||
///
|
///
|
||||||
/// Note:
|
/// Note:
|
||||||
/// On linux, we use dbus to communicate between multiple rustdesk processes.
|
/// On linux, we use dbus to communicate multiple rustdesk process.
|
||||||
/// [Flutter]: handle uni links for linux
|
/// [Flutter]: handle uni links for linux
|
||||||
use dbus::blocking::Connection;
|
use dbus::blocking::Connection;
|
||||||
use dbus_crossroads::{Crossroads, IfaceBuilder};
|
use dbus_crossroads::{Crossroads, IfaceBuilder};
|
||||||
|
|||||||
+19
-72
@@ -72,48 +72,6 @@ function getExt(name) {
|
|||||||
class JobTable: Reactor.Component {
|
class JobTable: Reactor.Component {
|
||||||
this var jobs = [];
|
this var jobs = [];
|
||||||
this var job_map = {};
|
this var job_map = {};
|
||||||
this var next_conflict_batch_id = 1;
|
|
||||||
this var remembered_write_strategy = {};
|
|
||||||
|
|
||||||
function nextConflictBatchId() {
|
|
||||||
return this.next_conflict_batch_id++;
|
|
||||||
}
|
|
||||||
|
|
||||||
function getRememberedWriteStrategy(conflict_batch_id) {
|
|
||||||
var is_override = this.remembered_write_strategy[conflict_batch_id];
|
|
||||||
if (is_override == true || is_override == false) return is_override;
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
function rememberWriteStrategy(conflict_batch_id, is_override) {
|
|
||||||
this.remembered_write_strategy[conflict_batch_id] = is_override;
|
|
||||||
}
|
|
||||||
|
|
||||||
function cancelTransferJob(job) {
|
|
||||||
job.finished = true;
|
|
||||||
job.err = "cancel";
|
|
||||||
this.updateJob(job);
|
|
||||||
}
|
|
||||||
|
|
||||||
function cancelTransferConflictBatch(id) {
|
|
||||||
var job = this.job_map[id];
|
|
||||||
if (!job) return;
|
|
||||||
var conflict_batch_id = job.conflict_batch_id;
|
|
||||||
if (conflict_batch_id == null) {
|
|
||||||
this.cancelTransferJob(job);
|
|
||||||
handler.cancel_job(job.id);
|
|
||||||
refreshDir(!job.is_remote);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
delete this.remembered_write_strategy[conflict_batch_id];
|
|
||||||
for (var i = 0; i < this.jobs.length; ++i) {
|
|
||||||
var current_job = this.jobs[i];
|
|
||||||
if (current_job.conflict_batch_id != conflict_batch_id || current_job.finished) continue;
|
|
||||||
this.cancelTransferJob(current_job);
|
|
||||||
handler.cancel_job(current_job.id);
|
|
||||||
}
|
|
||||||
refreshDir(!job.is_remote);
|
|
||||||
}
|
|
||||||
|
|
||||||
function render() {
|
function render() {
|
||||||
var me = this;
|
var me = this;
|
||||||
@@ -151,12 +109,10 @@ class JobTable: Reactor.Component {
|
|||||||
function clearAllJobs() {
|
function clearAllJobs() {
|
||||||
this.jobs = [];
|
this.jobs = [];
|
||||||
this.job_map = {};
|
this.job_map = {};
|
||||||
this.next_conflict_batch_id = 1;
|
|
||||||
this.remembered_write_strategy = {};
|
|
||||||
this.update();
|
this.update();
|
||||||
}
|
}
|
||||||
|
|
||||||
function send(path, is_remote, conflict_batch_id = null) {
|
function send(path, is_remote) {
|
||||||
var to;
|
var to;
|
||||||
var show_hidden;
|
var show_hidden;
|
||||||
if (is_remote) {
|
if (is_remote) {
|
||||||
@@ -167,15 +123,13 @@ class JobTable: Reactor.Component {
|
|||||||
show_hidden = file_transfer.local_folder_view.show_hidden;
|
show_hidden = file_transfer.local_folder_view.show_hidden;
|
||||||
}
|
}
|
||||||
if (!to) return;
|
if (!to) return;
|
||||||
if (conflict_batch_id == null) conflict_batch_id = this.nextConflictBatchId();
|
|
||||||
to += handler.get_path_sep(!is_remote) + getFileName(is_remote, path);
|
to += handler.get_path_sep(!is_remote) + getFileName(is_remote, path);
|
||||||
var id = handler.get_next_job_id();
|
var id = handler.get_next_job_id();
|
||||||
this.jobs.push({ type: "transfer",
|
this.jobs.push({ type: "transfer",
|
||||||
id: id, path: path, to: to,
|
id: id, path: path, to: to,
|
||||||
include_hidden: show_hidden,
|
include_hidden: show_hidden,
|
||||||
is_remote: is_remote,
|
is_remote: is_remote,
|
||||||
is_last: false,
|
is_last: false
|
||||||
conflict_batch_id: conflict_batch_id
|
|
||||||
});
|
});
|
||||||
this.job_map[id] = this.jobs[this.jobs.length - 1];
|
this.job_map[id] = this.jobs[this.jobs.length - 1];
|
||||||
handler.send_files(id, 0, path, to, 0, show_hidden, is_remote);
|
handler.send_files(id, 0, path, to, 0, show_hidden, is_remote);
|
||||||
@@ -187,8 +141,7 @@ class JobTable: Reactor.Component {
|
|||||||
var job = { type: "transfer",
|
var job = { type: "transfer",
|
||||||
id: id, path: path, to: to,
|
id: id, path: path, to: to,
|
||||||
include_hidden: show_hidden,
|
include_hidden: show_hidden,
|
||||||
is_remote: is_remote, is_last: true, file_num: file_num,
|
is_remote: is_remote, is_last: true, file_num: file_num };
|
||||||
conflict_batch_id: this.nextConflictBatchId() };
|
|
||||||
this.jobs.push(job);
|
this.jobs.push(job);
|
||||||
this.job_map[id] = this.jobs[this.jobs.length - 1];
|
this.job_map[id] = this.jobs[this.jobs.length - 1];
|
||||||
handler.update_next_job_id(id + 1);
|
handler.update_next_job_id(id + 1);
|
||||||
@@ -277,7 +230,6 @@ class JobTable: Reactor.Component {
|
|||||||
else return translate("Waiting");
|
else return translate("Waiting");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (job.err == "cancel") return translate("Cancel");
|
|
||||||
if (!job.entries) return translate("Waiting");
|
if (!job.entries) return translate("Waiting");
|
||||||
var i = job.file_num + 1;
|
var i = job.file_num + 1;
|
||||||
var n = job.num_entries || job.entries.length;
|
var n = job.num_entries || job.entries.length;
|
||||||
@@ -310,8 +262,6 @@ class JobTable: Reactor.Component {
|
|||||||
|
|
||||||
function updateJobStatus(id, file_num = -1, err = null, speed = null, finished_size = 0) {
|
function updateJobStatus(id, file_num = -1, err = null, speed = null, finished_size = 0) {
|
||||||
var job = this.job_map[id];
|
var job = this.job_map[id];
|
||||||
if (!job) return;
|
|
||||||
if (job.finished && job.err == "cancel") return;
|
|
||||||
if (job.type == "del-file"){
|
if (job.type == "del-file"){
|
||||||
job.finished = true;
|
job.finished = true;
|
||||||
job.err = err;
|
job.err = err;
|
||||||
@@ -319,6 +269,7 @@ class JobTable: Reactor.Component {
|
|||||||
this.updateJob(job);
|
this.updateJob(job);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
if (!job) return;
|
||||||
if (file_num < job.file_num) return;
|
if (file_num < job.file_num) return;
|
||||||
job.file_num = file_num;
|
job.file_num = file_num;
|
||||||
var n = job.num_entries || job.entries.length;
|
var n = job.num_entries || job.entries.length;
|
||||||
@@ -650,9 +601,8 @@ class FolderView : Reactor.Component {
|
|||||||
event click $(.send) () {
|
event click $(.send) () {
|
||||||
var rows = this.getCurrentRows();
|
var rows = this.getCurrentRows();
|
||||||
if (!rows || rows.length == 0) return;
|
if (!rows || rows.length == 0) return;
|
||||||
var conflict_batch_id = file_transfer.job_table.nextConflictBatchId();
|
|
||||||
for (var i = 0; i < rows.length; ++i) {
|
for (var i = 0; i < rows.length; ++i) {
|
||||||
file_transfer.job_table.send(rows[i][0], this.is_remote, conflict_batch_id);
|
file_transfer.job_table.send(rows[i][0], this.is_remote);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -830,13 +780,6 @@ handler.confirmDeleteFiles = function(id, i, name) {
|
|||||||
|
|
||||||
handler.overrideFileConfirm = function(id, file_num, to, is_upload, is_identical) {
|
handler.overrideFileConfirm = function(id, file_num, to, is_upload, is_identical) {
|
||||||
var jt = file_transfer.job_table;
|
var jt = file_transfer.job_table;
|
||||||
var job = jt.job_map[id];
|
|
||||||
if (!job || job.finished) return;
|
|
||||||
var remembered = jt.getRememberedWriteStrategy(job.conflict_batch_id);
|
|
||||||
if (remembered == true || remembered == false) {
|
|
||||||
handler.set_write_override(id, file_num, remembered, true, is_upload);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
var identical_msg = is_identical ? translate("identical_file_tip"): "";
|
var identical_msg = is_identical ? translate("identical_file_tip"): "";
|
||||||
msgbox("custom-skip", "Confirm Write Strategy", "<div .form> \
|
msgbox("custom-skip", "Confirm Write Strategy", "<div .form> \
|
||||||
<div>" + translate('Overwrite') + " " + translate('files') + ".</div> \
|
<div>" + translate('Overwrite') + " " + translate('files') + ".</div> \
|
||||||
@@ -845,18 +788,22 @@ handler.overrideFileConfirm = function(id, file_num, to, is_upload, is_identical
|
|||||||
<div>" + identical_msg + "</div> \
|
<div>" + identical_msg + "</div> \
|
||||||
<div><button|checkbox(remember) {ts}>" + translate('Do this for all conflicts') + "</button></div> \
|
<div><button|checkbox(remember) {ts}>" + translate('Do this for all conflicts') + "</button></div> \
|
||||||
</div>", "", function(res=null) {
|
</div>", "", function(res=null) {
|
||||||
var current_job = jt.job_map[id];
|
|
||||||
if (!current_job || current_job.finished) return;
|
|
||||||
if (!res) {
|
if (!res) {
|
||||||
jt.cancelTransferConflictBatch(id);
|
jt.updateJobStatus(id, -1, "cancel");
|
||||||
return;
|
handler.cancel_job(id);
|
||||||
|
} else if (res.skip) {
|
||||||
|
if (res.remember){
|
||||||
|
handler.set_write_override(id,file_num,false,true, is_upload); //
|
||||||
|
} else {
|
||||||
|
handler.set_write_override(id,file_num,false,false,is_upload); //
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (res.remember){
|
||||||
|
handler.set_write_override(id,file_num,true,true,is_upload); //
|
||||||
|
} else {
|
||||||
|
handler.set_write_override(id,file_num,true,false,is_upload); //
|
||||||
|
}
|
||||||
}
|
}
|
||||||
var is_override = !res.skip;
|
|
||||||
var remember = res.remember ? true : false;
|
|
||||||
if (remember) {
|
|
||||||
jt.rememberWriteStrategy(current_job.conflict_batch_id, is_override);
|
|
||||||
}
|
|
||||||
handler.set_write_override(id, file_num, is_override, remember, is_upload);
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user