RootDrive navigation
This commit is contained in:
@@ -47,12 +47,21 @@ public class NavigationUserCommandHandlerService : UserCommandHandlerServiceBase
|
||||
new TypeUserCommandHandler<GoUpCommand>(GoUp),
|
||||
new TypeUserCommandHandler<MoveCursorDownCommand>(MoveCursorDown),
|
||||
new TypeUserCommandHandler<MoveCursorUpCommand>(MoveCursorUp),
|
||||
new TypeUserCommandHandler<OpenSelectedCommand>(OpenContainer),
|
||||
new TypeUserCommandHandler<OpenContainerCommand>(OpenContainer),
|
||||
new TypeUserCommandHandler<OpenSelectedCommand>(OpenSelected),
|
||||
new TypeUserCommandHandler<SwitchToTabCommand>(SwitchToTab),
|
||||
});
|
||||
}
|
||||
|
||||
private Task OpenContainer()
|
||||
private async Task OpenContainer(OpenContainerCommand command)
|
||||
{
|
||||
var resolvedPath = await command.Path.ResolveAsync();
|
||||
if (resolvedPath is not IContainer resolvedContainer) return;
|
||||
|
||||
_selectedTab?.Tab?.SetCurrentLocation(resolvedContainer);
|
||||
}
|
||||
|
||||
private Task OpenSelected()
|
||||
{
|
||||
if (_currentSelectedItem is not IContainerViewModel containerViewModel || containerViewModel.Container is null) return Task.CompletedTask;
|
||||
|
||||
@@ -132,9 +141,9 @@ public class NavigationUserCommandHandlerService : UserCommandHandlerServiceBase
|
||||
private Task CloseTab()
|
||||
{
|
||||
if (_appState.Tabs.Count < 2) return Task.CompletedTask;
|
||||
|
||||
|
||||
_appState.RemoveTab(_selectedTab!);
|
||||
|
||||
|
||||
return Task.CompletedTask;
|
||||
}
|
||||
}
|
||||
@@ -67,8 +67,8 @@ public partial class TabViewModel : ITabViewModel, IDisposable
|
||||
CurrentLocation = tab.CurrentLocation.AsObservable();
|
||||
CurrentItems = tab.CurrentItems
|
||||
.Select(items => items?.Transform(i => MapItemToViewModel(i, ItemViewModelType.Main)))
|
||||
.ObserveOn(_rxSchedulerService.GetWorkerScheduler())
|
||||
.SubscribeOn(_rxSchedulerService.GetUIScheduler())
|
||||
/*.ObserveOn(_rxSchedulerService.GetWorkerScheduler())
|
||||
.SubscribeOn(_rxSchedulerService.GetUIScheduler())*/
|
||||
.Publish(null)
|
||||
.RefCount();
|
||||
|
||||
@@ -119,8 +119,8 @@ public partial class TabViewModel : ITabViewModel, IDisposable
|
||||
.Where(c => c is null or not IContainerViewModel)
|
||||
.Select(_ => (IObservable<IChangeSet<IItemViewModel>>?) null)
|
||||
)
|
||||
.ObserveOn(_rxSchedulerService.GetWorkerScheduler())
|
||||
.SubscribeOn(_rxSchedulerService.GetUIScheduler())
|
||||
/*.ObserveOn(_rxSchedulerService.GetWorkerScheduler())
|
||||
.SubscribeOn(_rxSchedulerService.GetUIScheduler())*/
|
||||
.Publish(null)
|
||||
.RefCount();
|
||||
}
|
||||
@@ -147,8 +147,8 @@ public partial class TabViewModel : ITabViewModel, IDisposable
|
||||
.Where(p => p is null)
|
||||
.Select(_ => (IObservable<IChangeSet<IItemViewModel>>?) null)
|
||||
)
|
||||
.ObserveOn(_rxSchedulerService.GetWorkerScheduler())
|
||||
.SubscribeOn(_rxSchedulerService.GetUIScheduler())
|
||||
/*.ObserveOn(_rxSchedulerService.GetWorkerScheduler())
|
||||
.SubscribeOn(_rxSchedulerService.GetUIScheduler())*/
|
||||
.Publish(null)
|
||||
.RefCount();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user