private void LoadScintillaConfiguration() { var scintillaConfigFile = new FileInfo(_startupPath + SCINTILLA_CONFIG_FILE); if (scintillaConfigFile.Exists) { var maxTries = 3; while (maxTries > 0) { try { _configFile = new ConfigurationUtility().LoadConfiguration(scintillaConfigFile.FullName) as ConfigFile; break; } catch { if (--maxTries == 1) { File.Copy(scintillaConfigFile.FullName, scintillaConfigFile.FullName + ".tmp", true); scintillaConfigFile = new FileInfo(scintillaConfigFile.FullName + ".tmp"); } else { Thread.Sleep(10); } } } } if (_configFile == null) { return; } _scintillaConfigureDelegate = _configFile.MasterScintilla.Configure; ZeusScintillaControl.StaticConfigure = _scintillaConfigureDelegate; }
/// <summary> /// Constructor loads up the default settings, starts an async version check, loads the scintilla config, etc. /// </summary> /// <param name="startupPath"></param> /// <param name="args"></param> public MDIParent(string startupPath, params string[] args) { TheParent = this; DefaultSettings settings = DefaultSettings.Instance; languageMappings = new LanguageMappings(this); dbTargetMappings = new DbTargetMappings(this); metaDataBrowser = new MetaDataBrowser(this); userMetaData = new UserMetaData(this); globalUserMetaData = new GlobalUserMetaData(this); metaProperties = new MetaProperties(this); //Any files that were locked when the TemplateLibrary downloaded and tried to replace them will be replaced now. ProcessReplacementFiles(); StartVersionCheck(settings); userMetaData.MetaDataBrowser = this.metaDataBrowser; globalUserMetaData.MetaDataBrowser = this.metaDataBrowser; InitializeComponent(); this.startupPath = startupPath; //Configuration.MyGeneration x = Configuration.MyGeneration.PopulatedObject; Scintilla.Configuration.Legacy.ConfigurationUtility cu = new Scintilla.Configuration.Legacy.ConfigurationUtility(); // If the file doesn't exist, create it. FileInfo scintillaConfigFile = new FileInfo(startupPath + @"\settings\ScintillaNET.xml"); if (scintillaConfigFile.Exists) { //TODO: Retry this with a copy of the file until we can upgrade Scintilla.Net with a fix. int maxTries = 3; while (maxTries > 0) { try { //ConfigFile cf = new ConfigFile(); configFile = cu.LoadConfiguration(scintillaConfigFile.FullName) as ConfigFile; //cf. //object o = cu.LoadConfiguration(typeof(Configuration.MyGeneration), scintillaConfigFile.FullName); //configFile = o as Configuration.; //configFile.CollectScintillaNodes(null); break; } catch { if (--maxTries == 1) { File.Copy(scintillaConfigFile.FullName, scintillaConfigFile.FullName + ".tmp", true); scintillaConfigFile = new FileInfo(scintillaConfigFile.FullName + ".tmp"); } else { System.Threading.Thread.Sleep(10); } } } } if (configFile != null) { configureDelegate = configFile.MasterScintilla.Configure; ZeusScintillaControl.StaticConfigure = configureDelegate; } this.IsMdiContainer = true; this.MdiChildActivate += new EventHandler(this.MDIChildActivated); startupFiles = args; if (settings.CompactMemoryOnStartup) FlushMemory(); this.RefreshRecentFiles(); }
private void MyGenerationMDI_Load(object sender, EventArgs e) { switch (settings.WindowState) { case "Maximized": this.WindowState = FormWindowState.Maximized; break; case "Minimized": this.WindowState = FormWindowState.Minimized; break; case "Normal": int x = Convert.ToInt32(settings.WindowPosLeft); int y = Convert.ToInt32(settings.WindowPosTop); int w = Convert.ToInt32(settings.WindowPosWidth); int h = Convert.ToInt32(settings.WindowPosHeight); this.Location = new System.Drawing.Point(x, y); this.Size = new Size(w, h); break; } // Load up the scintilla configuration ConfigurationUtility cu = new ConfigurationUtility(); FileInfo scintillaConfigFile = new FileInfo(startupPath + SCINTILLA_CONFIG_FILE); #region HACK: this needs to be cleaned up at some point. // If the file doesn't exist, create it. if (scintillaConfigFile.Exists) { //TODO: Retry this with a copy of the file until we can upgrade Scintilla.Net with a fix. int maxTries = 3; while (maxTries > 0) { try { configFile = cu.LoadConfiguration(scintillaConfigFile.FullName) as ConfigFile; break; } catch { if (--maxTries == 1) { File.Copy(scintillaConfigFile.FullName, scintillaConfigFile.FullName + ".tmp", true); scintillaConfigFile = new FileInfo(scintillaConfigFile.FullName + ".tmp"); } else { System.Threading.Thread.Sleep(10); } } } } #endregion if (configFile != null) { configureDelegate = configFile.MasterScintilla.Configure; ZeusScintillaControl.StaticConfigure = configureDelegate; } // Dock Content configuration DeserializeDockContent deserializeDockContent = new DeserializeDockContent(GetContentFromPersistString); string dockConfigFileName = startupPath + DOCK_CONFIG_FILE; if (File.Exists(dockConfigFileName)) { try { dockPanel.LoadFromXml(dockConfigFileName, deserializeDockContent); } catch (Exception ex) { try { File.Delete(dockConfigFileName); } catch {} } } // Startup files from the command line if (this.startupFiles != null) { OpenDocuments(startupFiles); } // Show Default Properties if this is the first load. if (settings.FirstLoad) { if (!settings.EnableDocumentStyleSettings) { if (options != null) { this.OptionsDockContent.Hide(); this.options = null; } DefaultSettingsDialog dsd = new DefaultSettingsDialog(this); dsd.ShowDialog(this); } else { if (this.OptionsDockContent.IsHidden) this.OptionsDockContent.Show(this.dockPanel); this.OptionsDockContent.Activate(); } } }