Skip to content

Commit 444499e

Browse files
committed
add ApplySuggestEditorLayoutCommand
1 parent 8798ed1 commit 444499e

File tree

6 files changed

+84
-4
lines changed

6 files changed

+84
-4
lines changed

OngekiFumenEditor/AppBootstrapper.cs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -236,8 +236,7 @@ public async void ShowStartupGUI()
236236
{
237237
if (MessageBox.Show(Resources.ShouldLoadSuggestLayout, Resources.Suggest, MessageBoxButton.YesNo) == MessageBoxResult.Yes)
238238
{
239-
using var stream = ResourceUtils.OpenReadFromLocalAssemblyResourcesFolder("suggestLayout.bin");
240-
var result = await IoC.Get<IEditorLayoutManager>().LoadLayout(stream);
239+
var result = await IoC.Get<IEditorLayoutManager>().ApplyDefaultSuggestEditorLayout();
241240
if (!result)
242241
MessageBox.Show(Resources.LoadLayoutFailed);
243242
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
using Gemini.Framework.Commands;
2+
using OngekiFumenEditor.Properties;
3+
4+
namespace OngekiFumenEditor.Kernel.EditorLayout.Commands.About
5+
{
6+
[CommandDefinition]
7+
public class ApplySuggestEditorLayoutCommandDefinition : CommandDefinition
8+
{
9+
public const string CommandName = "EditorLayout.ApplySuggestEditorLayout";
10+
11+
public override string Name
12+
{
13+
get { return CommandName; }
14+
}
15+
16+
public override string Text
17+
{
18+
get { return "使用推荐的布局"; }
19+
}
20+
21+
public override string ToolTip
22+
{
23+
get { return Text; }
24+
}
25+
}
26+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
using Caliburn.Micro;
2+
using Gemini.Framework.Commands;
3+
using Gemini.Framework.Threading;
4+
using OngekiFumenEditor.Kernel.EditorLayout;
5+
using OngekiFumenEditor.Kernel.EditorLayout.Commands.About;
6+
using OngekiFumenEditor.Modules.FumenVisualEditor.Kernel;
7+
using OngekiFumenEditor.UI.Dialogs;
8+
using System.Threading.Tasks;
9+
10+
namespace OngekiFumenEditor.Kernel.MiscMenu.Commands.About
11+
{
12+
[CommandHandler]
13+
public class ApplySuggestEditorLayoutCommandHandler : CommandHandlerBase<ApplySuggestEditorLayoutCommandDefinition>
14+
{
15+
public override async Task Run(Command command)
16+
{
17+
await IoC.Get<IEditorLayoutManager>().ApplyDefaultSuggestEditorLayout();
18+
}
19+
}
20+
}

OngekiFumenEditor/Kernel/EditorLayout/EditorLayoutManager.cs

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
using Caliburn.Micro;
2+
using Gemini.Framework;
23
using Gemini.Framework.Services;
34
using Gemini.Modules.Shell.Services;
45
using Gemini.Modules.Shell.ViewModels;
@@ -53,7 +54,15 @@ public async Task<bool> LoadLayout(Stream intputLayoutDataStream)
5354
if (!TryGetDependices(out var shell, out var shellView))
5455
return false;
5556

56-
return layoutItemStatePersister.LoadState(shell, shellView, tempFilePath);
57+
var r = layoutItemStatePersister.LoadState(shell, shellView, tempFilePath);
58+
if (!r)
59+
60+
return false;
61+
62+
if (shell.Documents.FirstOrDefault() is IDocument document)
63+
await shell.OpenDocumentAsync(document);
64+
65+
return true;
5766
}
5867
catch (Exception e)
5968
{
@@ -84,5 +93,11 @@ public async Task<bool> SaveLayout(Stream outputLayoutDataStream)
8493
return false;
8594
}
8695
}
96+
97+
public Task<bool> ApplyDefaultSuggestEditorLayout()
98+
{
99+
using var stream = ResourceUtils.OpenReadFromLocalAssemblyResourcesFolder("suggestLayout.bin");
100+
return IoC.Get<IEditorLayoutManager>().LoadLayout(stream);
101+
}
87102
}
88103
}

OngekiFumenEditor/Kernel/EditorLayout/IEditorLayoutManager.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,6 @@ public interface IEditorLayoutManager
1212
Task<bool> SaveLayout(Stream outputLayoutDataStream);
1313
Task<bool> LoadLayout(Stream intputLayoutDataStream);
1414

15-
//Task CheckAndNotifyUserUseSuggestLayout();
15+
Task<bool> ApplyDefaultSuggestEditorLayout();
1616
}
1717
}
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
using Gemini.Framework.Menus;
2+
using OngekiFumenEditor.Kernel.EditorLayout.Commands.About;
3+
using OngekiFumenEditor.Kernel.MiscMenu.Commands.About;
4+
using OngekiFumenEditor.Kernel.MiscMenu.Commands.CallFullGC;
5+
using OngekiFumenEditor.Kernel.MiscMenu.Commands.OpenUrlCommon;
6+
using OngekiFumenEditor.Properties;
7+
using System.ComponentModel.Composition;
8+
9+
namespace OngekiFumenEditor.Kernel.EditorLayout
10+
{
11+
public static class MenuDefinitions
12+
{
13+
[Export]
14+
public static MenuItemGroupDefinition EditorLayoutMenuGroup = new MenuItemGroupDefinition(Gemini.Modules.MainMenu.MenuDefinitions.WindowMenu, 999);
15+
16+
[Export]
17+
public static MenuItemDefinition ApplySuggestEditorLayoutMenuItem = new CommandMenuItemDefinition<ApplySuggestEditorLayoutCommandDefinition>(
18+
EditorLayoutMenuGroup, 0);
19+
}
20+
}

0 commit comments

Comments
 (0)