bool targetDragDrop(object sender, DragEventArgs e) { var formats = e.Data.GetFormats(); e.Effect = DragDropEffects.Move; string[] fd = (string[])e.Data.GetData(DataFormats.FileDrop); //file drop if (selectedTemplate != null) { return(selectedTemplate.DragDrop(fd)); } else { foreach (var file in fd) { if (Directory.Exists(file)) { var files = SelectMultipleForm.DirSearch(file); var targets = files.Select(it => Vault.RequestFileTarget(it)); if (targets.Count() > 1 && FileWatch.currentSession.selectedTargetType == TargetType.SINGLE_FILE) { cbTargetType.SelectedItem = cbTargetType.Items.Cast <object>().FirstOrDefault(iterator => iterator.ToString() == TargetType.MULTIPLE_FILE_MULTIDOMAIN); } lbTargets.Items.AddRange(targets.ToArray()); } else { var targets = fd.Select(it => Vault.RequestFileTarget(it)); if (targets.Count() > 1 && FileWatch.currentSession.selectedTargetType == TargetType.SINGLE_FILE) { cbTargetType.SelectedItem = cbTargetType.Items.Cast <object>().FirstOrDefault(iterator => iterator.ToString() == TargetType.MULTIPLE_FILE_MULTIDOMAIN); } lbTargets.Items.AddRange(targets.ToArray()); } } return(true); } }
internal static bool LoadTarget() { if (currentFileInfo.selectedTargetType == TargetType.SINGLE_FILE) { FileInterface.identity = FileInterfaceIdentity.SELF_DESCRIBE; string filename = Path.Combine(FileWatch.currentDir, "DOSBOX", "save", "1", "Memory"); if (!File.Exists(filename)) { MessageBox.Show($"Could not find part of the path {filename}\n\nMake sure you have created your savestate with the button in this interface\n\nIf you changed the Save State slot, put it back to 1."); return(false); } /* * OpenFileDialog OpenFileDialog1; * OpenFileDialog1 = new OpenFileDialog(); * * OpenFileDialog1.Title = "Open File"; * OpenFileDialog1.Filter = "files|*.*"; * OpenFileDialog1.RestoreDirectory = true; * if (OpenFileDialog1.ShowDialog() == DialogResult.OK) * { * if (OpenFileDialog1.FileName.ToString().Contains('^')) * { * MessageBox.Show("You can't use a file that contains the character ^ "); * return false; * } * * filename = OpenFileDialog1.FileName; * } * else * return false; */ string targetId = "File|" + filename; CloseTarget(false); FileInterface fi = null; Action <object, EventArgs> action = (ob, ea) => { fi = new FileInterface(targetId, FileWatch.currentFileInfo.bigEndian, true); if (FileWatch.currentFileInfo.useCacheAndMultithread) { fi.getMemoryDump(); } }; Action <object, EventArgs> postAction = (ob, ea) => { if (fi == null || fi.lastMemorySize == null) { MessageBox.Show("Failed to load target"); S.GET <StubForm>().DisableTargetInterface(); return; } FileWatch.currentFileInfo.targetShortName = fi.ShortFilename; FileWatch.currentFileInfo.targetFullName = fi.Filename; FileWatch.currentFileInfo.targetInterface = fi; S.GET <StubForm>().lbTarget.Text = targetId + "|MemorySize:" + fi.lastMemorySize.ToString(); if (VanguardCore.vanguardConnected) { UpdateDomains(); } //Refresh the UI //RefreshUIPostLoad(); }; S.GET <StubForm>().RunProgressBar($"Loading target...", 0, action, postAction); } else //MULTIPLE_FILE { switch (currentFileInfo.selectedTargetType) { case TargetType.MULTIPLE_FILE_SINGLEDOMAIN: FileInterface.identity = FileInterfaceIdentity.SELF_DESCRIBE; break; case TargetType.MULTIPLE_FILE_MULTIDOMAIN: FileInterface.identity = FileInterfaceIdentity.HASHED_PREFIX; break; case TargetType.MULTIPLE_FILE_MULTIDOMAIN_FULLPATH: FileInterface.identity = FileInterfaceIdentity.FULL_PATH; break; } S.GET <SelectMultipleForm>().Close(); var smForm = new SelectMultipleForm(); S.SET(smForm); if (smForm.ShowDialog() != DialogResult.OK) { return(false); } var mfi = (MultipleFileInterface)FileWatch.currentFileInfo.targetInterface; //currentTargetName = mfi.ShortFilename; S.GET <StubForm>().lbTarget.Text = mfi.ShortFilename + "|MemorySize:" + mfi.lastMemorySize.ToString(); StockpileManager_EmuSide.UnCorruptBL = null; } return(true); }
internal static bool InsertTargets() { if (currentSession.selectedTargetType == TargetType.SINGLE_FILE) { FileInterface.identity = FileInterfaceIdentity.SELF_DESCRIBE; string filename = null; OpenFileDialog OpenFileDialog1; OpenFileDialog1 = new OpenFileDialog(); OpenFileDialog1.Title = "Open File"; OpenFileDialog1.Filter = "files|*.*"; OpenFileDialog1.RestoreDirectory = true; if (OpenFileDialog1.ShowDialog() == DialogResult.OK) { if (OpenFileDialog1.FileName.ToString().Contains('^')) { MessageBox.Show("You can't use a file that contains the character ^ "); return(false); } filename = OpenFileDialog1.FileName; } else { return(false); } var target = Vault.RequestFileTarget(filename); //here we make target objects S.GET <StubForm>().lbTargets.Items.Clear(); S.GET <StubForm>().lbTargets.Items.Add(target); } else //MULTIPLE_FILE { switch (currentSession.selectedTargetType) { case TargetType.MULTIPLE_FILE_SINGLEDOMAIN: FileInterface.identity = FileInterfaceIdentity.SELF_DESCRIBE; break; case TargetType.MULTIPLE_FILE_MULTIDOMAIN: default: FileInterface.identity = FileInterfaceIdentity.HASHED_PREFIX; break; case TargetType.MULTIPLE_FILE_MULTIDOMAIN_FULLPATH: FileInterface.identity = FileInterfaceIdentity.FULL_PATH; break; } S.GET <SelectMultipleForm>().Close(); var smForm = new SelectMultipleForm(); S.SET(smForm); if (smForm.ShowDialog() != DialogResult.OK) { return(false); } } return(true); }