示例#1
0
        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;
            }
        }
示例#2
0
        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();
        }
示例#3
0
 private void EditScriptContent()
 {
     ScriptEditWindow editWindow = new ScriptEditWindow();
     editWindow.Initialize(this.GUID, "ScriptContent", this._script);
     editWindow.ShowDialog();
 }