public void UpdateTitle(FileNameFromPath currentPreset, bool presetDirty) { _Title = "Arma Server Cmd Util"; if (currentPreset != null) { _Title += " - " + currentPreset.Name; if (presetDirty) { _Title += "*"; } } PropertyChanged.Invoke(this, new PropertyChangedEventArgs("text")); }
private void SavePreset(string fileName) { if (fileName == "") { return; } try { XmlDocument presetDoc = new XmlDocument(); XmlElement rootXML = presetDoc.CreateElement("Save"); presetDoc.AppendChild(rootXML); XmlElement prefixXML = presetDoc.CreateElement("Prefix"); prefixXML.InnerText = cmdPrefix; rootXML.AppendChild(prefixXML); XmlElement modListXML = presetDoc.CreateElement("Mods"); foreach (string modName in modList.CheckedItems) { XmlElement modXML = presetDoc.CreateElement("Mod"); modXML.InnerText = modName; modListXML.AppendChild(modXML); } rootXML.AppendChild(modListXML); presetDoc.Save(fileName); //make sure this is last in case of an exception currentPreset = new FileNameFromPath(fileName); presetDirty = false; UpdateTitle(); AddRecentPreset(fileName); SaveConfig(); } catch { MessageBox.Show("Preset save error: Unknown reason", "Preset Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
private void newMenu_Click(object sender, System.EventArgs e) { if (!CheckForNeededSave()) { return; } inLoad = true; for (int i = 0; i < modList.Items.Count; ++i) { modList.SetItemChecked(i, false); } currentPreset = null; presetDirty = false; UpdateTitle(); UpdateOutputLine(); SaveConfig(); inLoad = false; }
private void LoadPreset(string fileName) { try { inLoad = true; XmlDocument presetDoc = new XmlDocument(); presetDoc.Load(fileName); XmlElement rootXMl = presetDoc["Save"]; if (rootXMl == null) { throw new XmlException("Failed to find root element \"Save\""); } XmlElement prefixXMl = rootXMl["Prefix"]; if (prefixXMl == null) { throw new XmlException("Failed to find element \"Prefix\""); } string prefix = prefixXMl.InnerText; ArrayList mods = new ArrayList(); XmlElement modsXML = rootXMl["Mods"]; if (modsXML == null) { throw new XmlException("Failed to find element \"Mods\""); } foreach (XmlElement modNode in modsXML) { mods.Add(modNode.InnerText); } //xml load finished cmdPrefix = prefix; for (int i = 0; i < modList.Items.Count; ++i) { modList.SetItemChecked(i, false); } foreach (string mod in mods) { int i = 0; for (; i < modList.Items.Count; ++i) { string listedMod = (string)modList.Items[i]; if (listedMod == mod) { modList.SetItemChecked(i, true); break; } } if (i == modList.Items.Count) { //failed to find mod MessageBox.Show(string.Format("Failed to load mod \"{0}\" from preset \"{1}\"\nIt will not be included", mod, fileName), "Preset Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning); } } currentPreset = new FileNameFromPath(fileName); presetDirty = false; UpdateTitle(); UpdateOutputLine(); AddRecentPreset(fileName); SaveConfig(); } catch (FileNotFoundException) { //fine, do nothing return; } catch (XmlException ex) { MessageBox.Show(string.Format("Failed to load preset \"{0}\"\nXML Parse Error(Line:{2},Col:{3}):\n{1}", fileName, ex.Message, ex.LineNumber, ex.LinePosition), "Preset Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } catch { MessageBox.Show("Preset load error: Unknown reason", "Preset Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } finally { inLoad = false; } }