示例#1
0
        protected override void OnClosing(CancelEventArgs e)
        {
            if (!Settings.KeyExists("restart.file") && !Program.ExceptionQuit)
            {
                if (enable_last)
                {
                    Settings.Set("files.last", string.Join(";", lastFiles));
                }
                if (!fileHandler.NotifyIfUnsaved())
                {
                    e.Cancel = true;
                }

                ClearTemp();
            }

            AppClosing?.Invoke(this, null);

            base.OnClosing(e);
        }
示例#2
0
        public void BootstrapExtensions()
        {
            if (Logger == null || RootForm == null)
            {
                throw new InvalidOperationException("Bootstrapper was not fully initialized before attempted to bootstrap extensions!");
            }

            if (!extensionsPreLoaded)
            {
                throw new InvalidOperationException("Extensions have not been preloaded before attempting to initializing them!");
            }

            // Initialize (already loaded) extensions (==> base for the next steps)
            ExtensionManager.InitActivatedExtensions(registry);

            // Initialize Export/Import
            var exporters = GetRegistered <IExport>();
            var importers = GetRegistered <IImport>();

            FileHandler.InitializeExportImport(exporters, importers);

            // Load templates from files & extensions
            var templatePath    = settings.Get("tmpl.root", DEFAULT_TEMPLATE_PATH);
            var templateManager = new TemplateManager(registry, this, templatePath);

            templateManager.LoadTemplates(templatePath);
            if (OptionsParser.TemplateDebug)
            {
                Task.Run(() => Application.Instance.Invoke(() => templateManager.DebugCompileAll()));
            }
            TemplateManager = templateManager;

            ExtensionsLoaded?.Invoke(this, new EventArgs());

            (RootForm as Window) !.Closing += (s, e) => AppClosing?.Invoke(this, null);
        }
示例#3
0
 private void CurrentDomain_ProcessExit(object sender, EventArgs e)
 {
     AppClosing?.Invoke(this, e);
 }
示例#4
0
 public void SimulateEvent()
 {
     AppClosing?.Invoke(this, EventArgs.Empty);
 }