mirror of
https://github.com/rustdesk/rustdesk.git
synced 2025-12-12 02:57:22 +00:00
fix sendFiles wrong direction
This commit is contained in:
@@ -55,13 +55,15 @@ class FileModel {
|
||||
getSessionID: getSessionID,
|
||||
dialogManager: parent.target?.dialogManager,
|
||||
jobController: jobController,
|
||||
fileFetcher: fileFetcher);
|
||||
fileFetcher: fileFetcher,
|
||||
getOtherSideDirectoryData: () => remoteController.directoryData());
|
||||
remoteController = FileController(
|
||||
isLocal: false,
|
||||
getSessionID: getSessionID,
|
||||
dialogManager: parent.target?.dialogManager,
|
||||
jobController: jobController,
|
||||
fileFetcher: fileFetcher);
|
||||
fileFetcher: fileFetcher,
|
||||
getOtherSideDirectoryData: () => localController.directoryData());
|
||||
}
|
||||
|
||||
Future<void> onReady() async {
|
||||
@@ -189,6 +191,12 @@ class FileModel {
|
||||
}
|
||||
}
|
||||
|
||||
class DirectoryData {
|
||||
final DirectoryOptions options;
|
||||
final FileDirectory directory;
|
||||
DirectoryData(this.directory, this.options);
|
||||
}
|
||||
|
||||
class FileController {
|
||||
final bool isLocal;
|
||||
final GetSessionID getSessionID;
|
||||
@@ -205,12 +213,15 @@ class FileController {
|
||||
final JobController jobController;
|
||||
final OverlayDialogManager? dialogManager;
|
||||
|
||||
final DirectoryData Function() getOtherSideDirectoryData;
|
||||
|
||||
FileController(
|
||||
{required this.isLocal,
|
||||
required this.getSessionID,
|
||||
required this.dialogManager,
|
||||
required this.jobController,
|
||||
required this.fileFetcher});
|
||||
required this.fileFetcher,
|
||||
required this.getOtherSideDirectoryData});
|
||||
|
||||
String get homePath => options.value.home;
|
||||
|
||||
@@ -229,6 +240,10 @@ class FileController {
|
||||
}
|
||||
}
|
||||
|
||||
DirectoryData directoryData() {
|
||||
return DirectoryData(directory.value, options.value);
|
||||
}
|
||||
|
||||
Future<void> onReady() async {
|
||||
options.value.home = await bind.mainGetHomeDir();
|
||||
options.value.showHidden = (await bind.sessionGetPeerOption(
|
||||
@@ -372,18 +387,18 @@ class FileController {
|
||||
}
|
||||
|
||||
/// sendFiles from other side (SelectedItems) to current side (FileController.isLocal).
|
||||
void sendFiles(SelectedItems items) {
|
||||
/// ignore same side
|
||||
if (items.isLocal == isLocal) {
|
||||
void sendFiles(SelectedItems items, DirectoryData otherSideData) {
|
||||
/// ignore wrong items side status
|
||||
if (items.isLocal != isLocal) {
|
||||
return;
|
||||
}
|
||||
|
||||
// alias
|
||||
final isRemoteToLocal = isLocal;
|
||||
final isRemoteToLocal = !isLocal;
|
||||
|
||||
final toPath = directory.value.path;
|
||||
final isWindows = options.value.isWindows;
|
||||
final showHidden = options.value.showHidden;
|
||||
final toPath = otherSideData.directory.path;
|
||||
final isWindows = otherSideData.options.isWindows;
|
||||
final showHidden = otherSideData.options.showHidden;
|
||||
for (var from in items.items) {
|
||||
final jobID = jobController.add(from, isRemoteToLocal);
|
||||
bind.sessionSendFiles(
|
||||
@@ -403,7 +418,7 @@ class FileController {
|
||||
|
||||
Future<void> removeAction(SelectedItems items) async {
|
||||
_removeCheckboxRemember = false;
|
||||
if (items.isLocal == isLocal) {
|
||||
if (items.isLocal != isLocal) {
|
||||
debugPrint("Failed to removeFile, wrong files");
|
||||
return;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user