private void ScriptInternalEditorCommand_Executed(object sender, ExecutedRoutedEventArgs e) { // Force update of script interface ScriptEditButton.Focus(); Script sc = Model.CurMainTree.Script; if (ScriptEditWindow.Count != 0) { return; } ScriptEditDialog = new ScriptEditWindow(sc, Model) { Owner = this }; // Open as Modal // If ScriptEditWindow returns true in DialogResult, refresh script if (ScriptEditDialog.ShowDialog() == true) { sc = ScriptEditDialog.Tag as Script; Debug.Assert(sc != null, $"{nameof(sc)} != null"); Model.DisplayScript(sc); Model.CurMainTree.Script = sc; } }
private async void Window_Closing(object sender, CancelEventArgs e) { if (Engine.WorkingEngine != null) { await Engine.WorkingEngine.ForceStopWait(); } if (0 < LogWindow.Count) { LogDialog.Close(); LogDialog = null; } if (0 < UtilityWindow.Count) { UtilityDialog.Close(); UtilityDialog = null; } if (0 < ScriptEditWindow.Count) { ScriptEditDialog.Close(); ScriptEditDialog = null; } // TODO: Do this in more cleaner way while (Model.ScriptRefreshing != 0) { await Task.Delay(500); } while (ScriptCache.DbLock != 0) { await Task.Delay(500); } if (Model.ProjectsLoading != 0) { await Task.Delay(500); } Global.ScriptCache?.WaitClose(); Logger.Db.Close(); }
private void EditScriptContent() { ScriptEditWindow editWindow = new ScriptEditWindow(); editWindow.Initialize(this.GUID, "ScriptContent", this._script); editWindow.ShowDialog(); }