public void ReopenItemsSavedInUserConfig() { string tmp = UserConfig.Get <string> ("OpenedItems"); string sel = UserConfig.Get <string> ("SelectedProjItems"); ProjectFile selItem = null; if (string.IsNullOrEmpty(tmp)) { return; } foreach (string f in tmp.Split(';')) { foreach (Project p in Projects) { ProjectFile pi; if (p.TryGetProjectFileFromAbsolutePath(f, out pi)) { OpenedItems.AddElement(pi); pi.Project.IsExpanded = true; ProjectNode pn = pi.Parent; while (pn != null) { pn.IsExpanded = true; pn = pn.Parent; } if (pi.AbsolutePath == sel) { selItem = pi; } break; } } } SelectedItem = selItem; //BUG: loading in another thread focused last loaded pf }
private void RemoveOpenedItem(int tag, bool ifParent) { bool search = false; if (ifParent) { foreach (var v in OpenedItems) { if (v.Tag == tag) { foreach (var t in v.Items) { RemoveTabEvent?.Invoke(t.Tag); search = true; } OpenedItems.Remove(v); break; } } } else { foreach (var v in OpenedItems) { foreach (var t in v.Items) { if (t.Tag == tag) { RemoveTabEvent?.Invoke(t.Tag); v.Items.Remove(t); search = true; break; } } if (v.Items.Count == 0) { OpenedItems.Remove(v); break; } if (search) { break; } } } }
private void AddOpenedItem(int fileHash, string itemName, int tag) { bool found = false; for (int i = 0; i < OpenedItems.Count; i++) { if (OpenedItems[i].FileHash == fileHash) { OpenedItems[i].AddSubItem(itemName, tag); found = true; } } if (!found) { OpenedFile o = new OpenedFile(_fileHelper.GetFile(fileHash), tag); o.AddSubItem(itemName, tag); OpenedItems.Add(o); } }