public Editor(STBLXMLEntry stblEntry = null) { if (stblEntry != null) { STBLEntry = stblEntry; } InitializeComponent(); IdentifierTextBox.Text = STBLEntry.Identifier; LastKeyValue = STBLEntry.Key; KeyDecimalTextBox.Text = STBLEntry.Key.ToString(); KeyHexadecimalTextBox.Text = STBLEntry.Key.ToString("x").ToUpper(); foreach (STBL.Languages language in STBL.GetAllLanguages()) { string languageText = STBLEntry.GetText(language); CurrentLanguageStrings[language] = Tools.NormalizeLineEndings(languageText); CurrentLanguageStates[language] = languageText != null ? true : false; } Forms.SetupLanguageComboBox(LanguageSelector, DefaultLanguage); }
public static void AddEntry(STBLXMLEntry entry) { entry.IsDirtyable = true; entry.EntryIsDirty = true; Data.Entries.Add(entry); SortEntries(); }
public void ScrollToItem(STBLXMLEntry entry, bool selectItem = false) { DataGridViewRow entryRow = FindRow(entry); if (entryRow != null) { ScrollToItem(entryRow, selectItem: selectItem); } }
public void RemoveItem(DataGridViewRow entryRow) { STBLXMLEntry entry = FindEntry(entryRow); Loading.Data.Entries.Remove(entry); BrowserGridView.Rows.Remove(entryRow); InvokeItemCountUpdateEvent(); InvokeSelectedCountUpdateEvent(); }
public DataGridViewRow FindRow(STBLXMLEntry entry) { for (int entryRowIndex = 0; entryRowIndex < BrowserGridView.Rows.Count; entryRowIndex++) { if ((BrowserGridView.Rows[entryRowIndex].DataBoundItem as EntryWrapper)?.STBLEntry == entry) { return(BrowserGridView.Rows[entryRowIndex]); } } return(null); }
public static STBLXMLFile ImportFromPackageFile(string importFilePath, System.Collections.IEnumerable importingLanguages) { STBLXMLFile importedFile = new STBLXMLFile(); using (BinaryReader importFileReader = new BinaryReader(new FileStream(importFilePath, FileMode.Open))) { string fileIdentifier = Encoding.UTF8.GetString(importFileReader.ReadBytes(4)); if (fileIdentifier != "STBL") { throw new NotPackageSTBLFileException("Invalid STBL file identifier, expected 'STBL'."); } short version = importFileReader.ReadInt16(); if (version != 5) { throw new NotPackageSTBLFileException("Invalid STBL file version, expected '5'."); } importFileReader.BaseStream.Seek(1, SeekOrigin.Current); // Skip the 'compressed' byte, its not used. ulong entryCount = importFileReader.ReadUInt64(); importFileReader.BaseStream.Seek(6, SeekOrigin.Current); // Skip the two 'reserved' bytes and the 'string length' bytes. for (ulong entryIndex = 0; entryIndex < entryCount; entryIndex++) { uint entryKey = importFileReader.ReadUInt32(); importFileReader.BaseStream.Seek(1, SeekOrigin.Current); // Skip the flags byte. ushort entryLength = importFileReader.ReadUInt16(); string entryText = Encoding.UTF8.GetString(importFileReader.ReadBytes(entryLength)); STBLXMLEntry entry = new STBLXMLEntry() { Key = entryKey }; foreach (STBL.Languages importingLanguage in importingLanguages) { entry.SetText(importingLanguage, entryText); } importedFile.Entries.Add(entry); } } return(importedFile); }
public List <STBLXMLEntry> GetAllSelectedItemEntries() { List <STBLXMLEntry> selectedEntries = new List <STBLXMLEntry>(); foreach (DataGridViewRow entryRow in BrowserGridView.SelectedRows) { STBLXMLEntry entry = FindEntry(entryRow); if (entry != null) { selectedEntries.Add(entry); } } return(selectedEntries); }
public void RemoveSelectedItems() { DataGridViewSelectedRowCollection selectedEntryRows = BrowserGridView.SelectedRows; for (int entryRowIndex = 0; entryRowIndex < selectedEntryRows.Count; entryRowIndex++) { STBLXMLEntry entry = FindEntry(selectedEntryRows[entryRowIndex]); Loading.Data.Entries.Remove(entry); BrowserGridView.Rows.Remove(selectedEntryRows[entryRowIndex]); } InvokeItemCountUpdateEvent(); InvokeSelectedCountUpdateEvent(); }
private void AddEntryButton_Click(object sender, EventArgs e) { SelectorNew selectorNewForm = new SelectorNew(); selectorNewForm.ShowDialog(); STBLXMLEntry createdEntry = selectorNewForm.CreatedEntry; if (createdEntry == null) { return; } EntryBrowser.SetupRows(); EntryBrowser.ScrollToItem(createdEntry, selectItem: true); }
private void MenuStripEditSelectedResetKeysItem_Click(object sender, EventArgs e) { foreach (DataGridViewRow selectedEntryRow in EntryBrowser.GetAllSelectedItems()) { STBLXMLEntry entry = EntryBrowser.FindEntry(selectedEntryRow); if (entry != null) { continue; } entry.Key = STBL.GetRandomUIntKey(blockedKeys: Loading.GetAllEntryKeys()); } EntryBrowser.RefreshItems(); }
public static bool EntryKeyCollides(uint entryKey, STBLXMLEntry ignoringEntry) { for (int entryIndex = 0; entryIndex < Data.Entries.Count; entryIndex++) { if (Data.Entries[entryIndex] == ignoringEntry) { continue; } if (Data.Entries[entryIndex].Key == entryKey) { return(true); } } return(false); }
private void FormOkButton_Click(object sender, EventArgs e) { if (FilePathTextBox.Text == null || string.IsNullOrWhiteSpace(FilePathTextBox.Text)) { ShowNoOrInvalidFileDialog(); DialogResult = DialogResult.None; return; } if (SelectedLanguages.Count <= 0) { ShowNoLanguagesSelectedDialog(); DialogResult = DialogResult.None; return; } STBLXMLFile splitSTBLFile = new STBLXMLFile(); foreach (STBLXMLEntry splittingEntry in SplittingEntries) { STBLXMLEntry splitEntry = new STBLXMLEntry() { Key = splittingEntry.Key, Identifier = splittingEntry.Identifier }; foreach (STBL.Languages language in SelectedLanguages) { splitEntry.SetText(language, splittingEntry.GetText(language)); } splitSTBLFile.Entries.Add(splitEntry); } try { Tools.WriteXML(FilePathTextBox.Text, splitSTBLFile); } catch (Exception saveException) { ShowSaveFailureDialog(saveException); DialogResult = DialogResult.None; return; } }
public static STBLXMLEntry AddNewEntry(uint?key = null, string identifier = "") { if (key == null) { key = STBL.GetRandomUIntKey(blockedKeys: GetAllEntryKeys()); } STBLXMLEntry newEntry = new STBLXMLEntry() { Key = (uint)key, Identifier = identifier }; newEntry.IsDirtyable = true; newEntry.EntryIsDirty = true; Data.Entries.Add(newEntry); SortEntries(); return(newEntry); }
public Translator(STBLXMLEntry stblEntry = null) { if (stblEntry != null) { STBLEntry = stblEntry; } InitializeComponent(); IdentifierTextBox.Text = STBLEntry.Identifier; foreach (STBL.Languages language in STBL.GetAllLanguages()) { string languageText = STBLEntry.GetText(language); CurrentLanguageStrings[language] = Tools.NormalizeLineEndings(languageText); CurrentLanguageStates[language] = languageText != null ? true : false; } Forms.SetupLanguageComboBox(ReferencingLanguageSelector, DefaultReferenceLanguage); Forms.SetupLanguageComboBox(EditingLanguageSelector, DefaultEditingLanguage); }
public EntryWrapper(STBLXMLEntry entry) { STBLEntry = entry; }
private void FormOkButton_Click(object sender, EventArgs e) { uint entryKey = uint.Parse(KeyDecimalTextBox.Text); CreatedEntry = Loading.AddNewEntry(key: entryKey, identifier: IdentifierTextBox.Text); }