/// <summary> /// Setup the backgroundworker and progress forms (Main thread) /// </summary> /// <param name="args"></param> public void WorkerLoadFileSetup(LoadFileArgs args) { MainController.Get().ProjectStatus = EProjectStatus.Busy; this.Text = Path.GetFileName(args.Filename) + " [" + args.Filename + "]"; if (!backgroundWorker1.IsBusy) { ProgressForm = new frmProgress() { Text = "Loading File...", StartPosition = FormStartPosition.CenterScreen, FormBorderStyle = FormBorderStyle.None }; workerAction = WorkerLoadFile; backgroundWorker1.RunWorkerAsync(args); var dr = ProgressForm.ShowDialog(this); } else { MainController.LogString("The background worker is currently busy.\r\n", Logtype.Error); } MainController.Get().ProjectStatus = EProjectStatus.Ready; }
public frmCR2WDocument(CR2WDocumentViewModel documentViewModel) { vm = documentViewModel; vm.ClosingRequest += (sender, e) => this.Close(); vm.ActivateRequest += (sender, e) => this.Activate(); vm.PropertyChanged += ViewModel_PropertyChanged; InitializeComponent(); ApplyCustomTheme(); chunkList = new frmChunkList(vm) { DockAreas = DockAreas.Document }; propertyWindow = new frmChunkProperties(vm); backgroundWorker1.WorkerReportsProgress = true; backgroundWorker1.WorkerSupportsCancellation = true; backgroundWorker1.DoWork += backgroundWorker1_DoWork; backgroundWorker1.ProgressChanged += backgroundWorker1_ProgressChanged; backgroundWorker1.RunWorkerCompleted += backgroundWorker1_RunWorkerCompleted; m_deserializeDockContent = new DeserializeDockContent(GetContentFromPersistString); docLoggerService = new LoggerService(); docLoggerService.PropertyChanged += LoggerUpdated; docLoggerService.OnStringLogged += (sender, e) => MainController.LogString(e.Message, e.Logtype); }
public void ShowRadishUtility() { if (MainController.Get().ActiveMod == null) { MessageBox.Show(@"Please create a new mod project." , "Missing Mod Project" , System.Windows.Forms.MessageBoxButtons.OK , System.Windows.Forms.MessageBoxIcon.Information); return; } var filedir = new DirectoryInfo(MainController.Get().ActiveMod.FileDirectory); var radishdir = filedir.GetFiles("*.bat", SearchOption.AllDirectories)?.FirstOrDefault(_ => _.Name == "_settings_.bat")?.Directory; if (radishdir == null) { MainController.LogString("ERROR! No radish mod directory found.\r\n", WolvenKit.Common.Services.Logtype.Error); return; } if (RadishUtility == null || RadishUtility.IsDisposed) { RadishUtility = new frmRadish(); RadishUtility.Show(dockPanel, DockState.Document); } RadishUtility.Activate(); }
public void ImportBytes(CVariable editvar) { var dlg = new OpenFileDialog() { InitialDirectory = MainController.Get().Configuration.InitialExportDirectory }; if (dlg.ShowDialog() == DialogResult.OK) { MainController.Get().Configuration.InitialExportDirectory = Path.GetDirectoryName(dlg.FileName); using (var fs = new FileStream(dlg.FileName, FileMode.Open, FileAccess.Read)) { using (var reader = new BinaryReader(fs)) { var bytes = ImportExportUtility.GetImportBytes(reader); editvar.SetValue(bytes); MainController.LogString( $"{((CVariable) editvar).GetFullDependencyStringName()} succesfully imported from {dlg.FileName}", Logtype.Success); } } } }
public frmModExplorer() { // initialize Viewmodel vm = MockKernel.Get().GetModExplorerModel(); vm.PropertyChanged += ViewModel_PropertyChanged; //vm.UpdateMonitoringRequest += (sender, e) => this.ViewModel_UpdateMonitoringRequest(e); InitializeComponent(); ApplyCustomTheme(); // Init ObjectListView this.treeListView.CanExpandGetter = delegate(object x) { return((x is DirectoryInfo) && vm.IsTreeview && (x as DirectoryInfo).HasFilesOrFolders()); }; this.treeListView.ChildrenGetter = delegate(object x) { DirectoryInfo dir = (DirectoryInfo)x; return(dir.Exists ? new ArrayList(dir.GetFileSystemInfos() .Where(_ => _.Extension != ".bat") .ToArray()) : new ArrayList()); }; treeListView.SmallImageList = new ImageList(); this.olvColumnName.ImageGetter = delegate(object row) { string extension = this.GetFileExtension(row); if (!this.treeListView.SmallImageList.Images.ContainsKey(extension)) { try { Image smallImage = GetSmallIconForFileType(extension); this.treeListView.SmallImageList.Images.Add(extension, smallImage); } catch (Exception e) { MainController.LogString("e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3", Logtype.Error); this.Close(); } } return(extension); }; treeListView.RevealAfterExpand = false; // Update the TreeView vm.RepopulateTreeView(); treeListView.ExpandAll(); }
public void ExportBytes(IByteSource editvar) { var dlg = new SaveFileDialog(); var bytes = editvar.GetBytes(); dlg.Filter = string.Join("|", ImportExportUtility.GetPossibleExtensions(bytes, (CVariable)editvar)); dlg.InitialDirectory = MainController.Get().Configuration.InitialExportDirectory; if (dlg.ShowDialog() == DialogResult.OK) { MainController.Get().Configuration.InitialExportDirectory = Path.GetDirectoryName(dlg.FileName); using (var fs = new FileStream(dlg.FileName, FileMode.Create, FileAccess.Write)) using (var writer = new BinaryWriter(fs)) { bytes = ImportExportUtility.GetExportBytes(bytes, Path.GetExtension(dlg.FileName), (CVariable)editvar); writer.Write(bytes); MainController.LogString( $"{((CVariable) editvar).GetFullDependencyStringName()} succesfully exported to {dlg.FileName}", Logtype.Success); } } }
/// <summary> /// /// </summary> /// <param name="filename"></param> /// <param name="openrenderer"></param> public void PostLoadFile(string filename = "", bool openrenderer = false) { #region SetupFile // Backgroundwork Start Stopwatch stopwatch = new Stopwatch(); stopwatch.Start(); switch (Path.GetExtension(filename)) { case ".w2scene": case ".w2quest": case ".w2phase": { //this.flowDiagram = new frmChunkFlowDiagram(); //this.flowDiagram.OnOutput += MainController.LogString; //this.flowDiagram.File = this.File; //this.flowDiagram.DockAreas = DockAreas.Document; //this.flowDiagram.OnSelectChunk += this.frmCR2WDocument_OnSelectChunk; //this.flowDiagram.Show(this.FormPanel, DockState.Document); break; } case ".journal": { this.JournalEditor = new frmJournalEditor { File = this.File, DockAreas = DockAreas.Document }; this.JournalEditor.Show(this.FormPanel, DockState.Document); break; } case ".xbm": { this.ImageViewer = new frmImagePreview { DockAreas = DockAreas.Document }; this.ImageViewer.Show(this.FormPanel, DockState.Document); CR2WExportWrapper imagechunk = this.File?.Chunks?.FirstOrDefault(_ => _.data.REDType.Contains("CBitmapTexture")); this.ImageViewer.SetImage(imagechunk); break; } case ".redswf": { CR2WExportWrapper imagechunk = this.File?.Chunks?.FirstOrDefault(_ => _.data is CBitmapTexture); if (imagechunk != null) { this.ImageViewer = new frmImagePreview { DockAreas = DockAreas.Document }; this.ImageViewer.Show(this.FormPanel, DockState.Document); this.ImageViewer.SetImage(imagechunk); } break; } case ".w2mesh": { if (openrenderer) { try { // add all dependencies MockKernel.Get().Window.PauseMonitoring(); WccHelper.AddAllImports(filename, true, false); MockKernel.Get().Window.ResumeMonitoring(); this.RenderViewer = new Render.frmRender { LoadDocument = LoadDocumentAndGetFile, MeshFile = this.File, DockAreas = DockAreas.Document, renderHelper = new Render.RenderHelper(MainController.Get().ActiveMod, MainController.Get().Logger) }; this.RenderViewer.Show(this.FormPanel, DockState.Document); } catch (Exception ex) { MainController.LogString(ex.ToString(), Logtype.Error); } } break; } default: { break; } } var output = new StringBuilder(); if (this.File.UnknownTypes.Any()) { //ShowConsole(); //ShowOutput(); output.Append(this.FileName + ": contains " + this.File.UnknownTypes.Count + " unknown type(s):\n"); foreach (var unk in this.File.UnknownTypes) { output.Append("\"" + unk + "\", \n"); } output.Append("-------\n\n"); } var hasUnknownBytes = false; foreach (var t in this.File.Chunks.Where(t => t.unknownBytes?.Bytes != null && t.unknownBytes.Bytes.Length > 0)) { output.Append(t.REDName + " contains " + t.unknownBytes.Bytes.Length + " unknown bytes. \n"); hasUnknownBytes = true; } if (hasUnknownBytes) { output.Append("-------\n\n"); } //output.Append($"CR2WFile {filename} loaded in: {stopwatch.Elapsed}\n\n"); stopwatch.Stop(); MainController.LogString(output.ToString(), Logtype.Important); #endregion CR2WFile LoadDocumentAndGetFile(string path) { throw new NotImplementedException(); //foreach (var t in MockKernel.Get().GetMainViewModel().OpenDocuments.Where(_ => _.File is CR2WFile).Where(t => t.FileName == path)) // return t.File as CR2WFile; ////var activedoc = vm.OpenDocuments.FirstOrDefault(d => d.IsActivated); //var doc2 = LoadDocument(path) as frmCR2WDocument; ////activedoc.Activate(); //return doc2?.File; } }