private void InitLayouts() { //Built-in layouts Directory.CreateDirectory(m_builtinLayoutFileFolder); foreach (var filePath in Directory.GetFiles(m_builtinLayoutFileFolder)) { string extension = Path.GetExtension(filePath); if (extension == ".cfg") { LayoutPresets.Add(new CLayoutPresetViewModel(this, Path.GetFileNameWithoutExtension(filePath), filePath)); } } //User defined layouts Directory.CreateDirectory(m_builtinLayoutFileFolder); foreach (var filePath in Directory.GetFiles(m_userLayoutFileFolder)) { string extension = Path.GetExtension(filePath); if (extension == ".cfg") { LayoutPresets.Add(new CLayoutPresetViewModel(this, Path.GetFileNameWithoutExtension(filePath), filePath)); } } UpdateInputGestures(); }
public void OnSaveLayoutAs(object param) { LayoutSaveDialog dialog = new LayoutSaveDialog(); bool? result = dialog.ShowDialog(); string layoutName = dialog.LayoutNameBox.Text; string layoutPath = m_userLayoutFileFolder + "\\" + layoutName + ".cfg"; if (DoesLayoutExist(layoutName, out string existingPath)) { bool?assuranceResult = KlaxDialog.ShowDialog(string.Format("A layout named {0} already exists. Do you want to overwrite it?", layoutName), EDialogIcon.Warning, MessageBoxButton.YesNo); if (!assuranceResult.HasValue || !assuranceResult.Value) { return; } else { File.SetAttributes(existingPath, FileAttributes.Normal); File.Delete(existingPath); for (int i = 0, count = m_layoutPresets.Count; i < count; i++) { if (m_layoutPresets[i].Name == layoutName) { m_layoutPresets.RemoveAt(i); break; } } } } var layoutSerializer = new XmlLayoutSerializer(m_dockingManager); layoutSerializer.Serialize(layoutPath); LayoutPresets.Add(new CLayoutPresetViewModel(this, layoutName, layoutPath)); UpdateInputGestures(); }