private void changeMapsetFolder() { var initialDirectory = Path.GetFullPath(project.MapsetPath); if (!Directory.Exists(initialDirectory)) { initialDirectory = OsuHelper.GetOsuSongFolder(); } Manager.OpenFilePicker("Pick a new mapset location", "", initialDirectory, ".osu files (*.osu)|*.osu", (newPath) => { if (!Directory.Exists(newPath) && File.Exists(newPath)) { project.MapsetPath = Path.GetDirectoryName(newPath); } else { Manager.ShowMessage("Invalid mapset path."); } }); }
public override void Load() { base.Load(); WidgetManager.Root.StyleName = "panel"; WidgetManager.Root.Add(mainLayout = new LinearLayout(WidgetManager) { AnchorTarget = WidgetManager.Root, AnchorFrom = BoxAlignment.Centre, AnchorTo = BoxAlignment.Centre, Padding = new FourSide(16), FitChildren = true, Children = new Widget[] { new Label(WidgetManager) { Text = "New Project", AnchorFrom = BoxAlignment.Centre, }, projectNameTextbox = new Textbox(WidgetManager) { LabelText = "Project Name", AnchorFrom = BoxAlignment.Centre, }, mapsetPathSelector = new PathSelector(WidgetManager, PathSelectorMode.OpenDirectory) { Value = OsuHelper.GetOsuSongFolder(), LabelText = "Mapset Path", AnchorFrom = BoxAlignment.Centre, Filter = ".osu files (*.osu)|*.osu", }, new LinearLayout(WidgetManager) { Horizontal = true, AnchorFrom = BoxAlignment.Centre, Fill = true, Children = new Widget[] { startButton = new Button(WidgetManager) { Text = "Start", AnchorFrom = BoxAlignment.Centre, }, cancelButton = new Button(WidgetManager) { Text = "Cancel", AnchorFrom = BoxAlignment.Centre, }, }, }, }, }); projectNameTextbox.OnValueChanged += (sender, e) => updateButtonsState(); projectNameTextbox.OnValueCommited += (sender, e) => { var name = projectNameTextbox.Value; foreach (var character in Path.GetInvalidFileNameChars()) { name = name.Replace(character, '_'); } projectNameTextbox.Value = name; }; mapsetPathSelector.OnValueChanged += (sender, e) => updateButtonsState(); mapsetPathSelector.OnValueCommited += (sender, e) => { if (!Directory.Exists(mapsetPathSelector.Value) && File.Exists(mapsetPathSelector.Value)) { mapsetPathSelector.Value = Path.GetDirectoryName(mapsetPathSelector.Value); return; } updateButtonsState(); }; updateButtonsState(); startButton.OnClick += (sender, e) => createProject(); cancelButton.OnClick += (sender, e) => Exit(); }