Cleaning up warning
This commit is contained in:
@@ -23,7 +23,7 @@ public class ContainerSizeSizeScanProvider : ContentProviderBase, IContainerSize
|
||||
_serviceProvider = serviceProvider;
|
||||
}
|
||||
|
||||
public override async Task<IItem> GetItemByFullNameAsync(
|
||||
public override Task<IItem> GetItemByFullNameAsync(
|
||||
FullName fullName,
|
||||
PointInTime pointInTime,
|
||||
bool forceResolve = false,
|
||||
@@ -32,14 +32,14 @@ public class ContainerSizeSizeScanProvider : ContentProviderBase, IContainerSize
|
||||
)
|
||||
{
|
||||
if (fullName.Path == ContentProviderName)
|
||||
return this;
|
||||
return Task.FromResult((IItem)this);
|
||||
|
||||
var pathParts = fullName.Path.Split(Constants.SeparatorChar);
|
||||
|
||||
var item = _sizeScanTasks.FirstOrDefault(t => t.SizeSizeScanContainer.Name == pathParts[1])?.SizeSizeScanContainer;
|
||||
|
||||
if (pathParts.Length == 2)
|
||||
return item ?? throw new ItemNotFoundException(fullName);
|
||||
return Task.FromResult((IItem)item!) ?? throw new ItemNotFoundException(fullName);
|
||||
|
||||
for (var i = 2; i < pathParts.Length - 1 && item != null; i++)
|
||||
{
|
||||
@@ -47,22 +47,8 @@ public class ContainerSizeSizeScanProvider : ContentProviderBase, IContainerSize
|
||||
item = item.ChildContainers.FirstOrDefault(c => c.Name == childName);
|
||||
}
|
||||
|
||||
if (item is not null)
|
||||
{
|
||||
var childItem = item.SizeItems.FirstOrDefault(c => c.Name == pathParts[^1]);
|
||||
if (childItem is not null) return childItem;
|
||||
|
||||
/*var childName = item.RealContainer.FullName?.GetChild(pathParts[^1]);
|
||||
if (childName is null) throw new ItemNotFoundException(fullName);
|
||||
|
||||
return await _timelessContentProvider.GetItemByFullNameAsync(
|
||||
childName,
|
||||
pointInTime,
|
||||
forceResolve,
|
||||
forceResolvePathType,
|
||||
itemInitializationSettings
|
||||
);*/
|
||||
}
|
||||
var childItem = item?.SizeItems.FirstOrDefault(c => c.Name == pathParts[^1]);
|
||||
if (childItem != null) return Task.FromResult((IItem)childItem);
|
||||
|
||||
throw new ItemNotFoundException(fullName);
|
||||
}
|
||||
|
||||
@@ -17,8 +17,8 @@ public interface ITabViewModel : IInitable<ITab, int>, IDisposable
|
||||
IDeclarativeProperty<IContainerViewModel?> CurrentSelectedItemAsContainer { get; }
|
||||
IDeclarativeProperty<ObservableCollection<IItemViewModel>?> CurrentItems { get; }
|
||||
IDeclarativeProperty<ObservableCollection<FullName>> MarkedItems { get; }
|
||||
IDeclarativeProperty<ObservableCollection<IItemViewModel>> SelectedsChildren { get; }
|
||||
IDeclarativeProperty<ObservableCollection<IItemViewModel>> ParentsChildren { get; }
|
||||
IDeclarativeProperty<ObservableCollection<IItemViewModel>?> SelectedsChildren { get; }
|
||||
IDeclarativeProperty<ObservableCollection<IItemViewModel>?> ParentsChildren { get; }
|
||||
IDeclarativeProperty<int?> CurrentSelectedItemIndex { get; set; }
|
||||
|
||||
void ClearMarkedItems();
|
||||
|
||||
@@ -8,8 +8,8 @@ namespace FileTime.App.Core.Services;
|
||||
public abstract class DialogServiceBase : IDialogServiceBase
|
||||
{
|
||||
private readonly IModalService _modalService;
|
||||
private OcConsumer _readInputConsumer = new();
|
||||
private OcConsumer _lastMessageBoxConsumer = new();
|
||||
private readonly OcConsumer _readInputConsumer = new();
|
||||
private readonly OcConsumer _lastMessageBoxConsumer = new();
|
||||
public ScalarComputing<ReadInputsViewModel?> ReadInput { get; }
|
||||
public ScalarComputing<MessageBoxViewModel?> LastMessageBox { get; }
|
||||
|
||||
@@ -20,14 +20,14 @@ public abstract class DialogServiceBase : IDialogServiceBase
|
||||
.OpenModals
|
||||
.OfTypeComputing<ReadInputsViewModel>()
|
||||
.FirstComputing()
|
||||
.For(_readInputConsumer);
|
||||
.For(_readInputConsumer)!;
|
||||
|
||||
LastMessageBox =
|
||||
modalService
|
||||
.OpenModals
|
||||
.OfTypeComputing<MessageBoxViewModel>()
|
||||
.LastComputing()
|
||||
.For(_lastMessageBoxConsumer);
|
||||
.For(_lastMessageBoxConsumer)!;
|
||||
}
|
||||
|
||||
private void ReadInputs(
|
||||
|
||||
@@ -166,7 +166,7 @@ public class TabPersistenceService : ITabPersistenceService
|
||||
}
|
||||
|
||||
var tab = await _serviceProvider
|
||||
.GetAsyncInitableResolver<IContainer>(currentDirectory ?? _localContentProvider)
|
||||
.GetAsyncInitableResolver(currentDirectory ?? _localContentProvider)
|
||||
.GetRequiredServiceAsync<ITab>();
|
||||
var tabViewModel = _serviceProvider.GetInitableResolver(tab, 1).GetRequiredService<ITabViewModel>();
|
||||
|
||||
@@ -191,8 +191,8 @@ public class TabPersistenceService : ITabPersistenceService
|
||||
if (tab.Path == null) continue;
|
||||
if (_contentProvidersNotToRestore.Any(p => tab.Path.StartsWith(p))) continue;
|
||||
|
||||
IContainer? container = null;
|
||||
var path = FullName.CreateSafe(tab.Path);
|
||||
IContainer? container;
|
||||
var path = FullName.CreateSafe(tab.Path)!;
|
||||
while (true)
|
||||
{
|
||||
try
|
||||
@@ -213,7 +213,7 @@ public class TabPersistenceService : ITabPersistenceService
|
||||
}
|
||||
catch
|
||||
{
|
||||
path = path?.GetParent();
|
||||
path = path.GetParent();
|
||||
if (path == null)
|
||||
{
|
||||
throw new Exception($"Could not find an initializable path along {tab.Path}");
|
||||
|
||||
@@ -91,7 +91,7 @@ public class RapidTravelModeKeyInputHandler : IRapidTravelModeKeyInputHandler
|
||||
if (selectedCommandBinding != null)
|
||||
{
|
||||
args.Handled = true;
|
||||
await CallCommandAsync(_identifiableUserCommandService.GetCommand(selectedCommandBinding.Command));
|
||||
await CallCommandAsync(_identifiableUserCommandService.GetCommand(selectedCommandBinding.Command)!);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -47,10 +47,10 @@ public abstract partial class AppStateBase : IAppState
|
||||
|
||||
SearchText = _searchText.AsObservable();
|
||||
SelectedTab = DeclarativePropertyHelpers.CombineLatest<ObservableCollection<ITabViewModel>, ITabViewModel, ITabViewModel>(
|
||||
_tabs.Watch(),
|
||||
_selectedTab,
|
||||
(tabs, selectedTab) => Task.FromResult(GetSelectedTab(tabs, selectedTab))
|
||||
);
|
||||
_tabs.Watch()!,
|
||||
_selectedTab!,
|
||||
(tabs, selectedTab) => Task.FromResult(GetSelectedTab(tabs, selectedTab)!)
|
||||
)!;
|
||||
|
||||
Tabs = new ReadOnlyObservableCollection<ITabViewModel>(_tabs);
|
||||
|
||||
@@ -58,7 +58,7 @@ public abstract partial class AppStateBase : IAppState
|
||||
.Map(t => t?.CurrentLocation)
|
||||
.Switch()
|
||||
.Map(c => c?.GetExtension<StatusProviderContainerExtension>()?.GetStatusProperty())
|
||||
.Switch();
|
||||
.Switch()!;
|
||||
}
|
||||
|
||||
public void AddTab(ITabViewModel tabViewModel)
|
||||
|
||||
@@ -45,7 +45,7 @@ public abstract partial class ItemViewModel : IItemViewModel
|
||||
|
||||
var sourceCollection = itemViewModelType switch
|
||||
{
|
||||
ItemViewModelType.Main => parentTab.CurrentItems,
|
||||
ItemViewModelType.Main => parentTab.CurrentItems!,
|
||||
ItemViewModelType.Parent => parentTab.ParentsChildren,
|
||||
ItemViewModelType.SelectedChild => parentTab.SelectedsChildren,
|
||||
_ => throw new InvalidEnumArgumentException()
|
||||
@@ -59,15 +59,15 @@ public abstract partial class ItemViewModel : IItemViewModel
|
||||
? (IReadOnlyList<ItemNamePart>) await nameConverterProvider.GetItemNamePartsAsync(item)
|
||||
: _itemNameConverterService.GetDisplayName(item.DisplayName, s)
|
||||
),
|
||||
_ => new DeclarativeProperty<IReadOnlyList<ItemNamePart>>(new List<ItemNamePart> {new(item.DisplayName)}),
|
||||
_ => new DeclarativeProperty<IReadOnlyList<ItemNamePart>>(new List<ItemNamePart> {new(item.DisplayName)})!,
|
||||
};
|
||||
|
||||
BaseItem = item;
|
||||
DisplayName = displayName;
|
||||
DisplayName = displayName!;
|
||||
DisplayNameText = item.DisplayName;
|
||||
|
||||
IsMarked = itemViewModelType is ItemViewModelType.Main
|
||||
? parentTab.MarkedItems.Map(m => m.Any(i => i.Path == item.FullName?.Path))
|
||||
? parentTab.MarkedItems!.Map(m => m!.Any(i => i.Path == item.FullName?.Path))
|
||||
: new DeclarativeProperty<bool>(false);
|
||||
|
||||
IsSelected = itemViewModelType is ItemViewModelType.Main
|
||||
@@ -78,7 +78,7 @@ public abstract partial class ItemViewModel : IItemViewModel
|
||||
: new DeclarativeProperty<bool>(IsInDeepestPath());
|
||||
|
||||
IsAlternative = sourceCollection
|
||||
.Debounce(TimeSpan.FromMilliseconds(100))
|
||||
.Debounce(TimeSpan.FromMilliseconds(100))!
|
||||
.Map(c =>
|
||||
c?.Index().FirstOrDefault(i => EqualsTo(i.Value)).Key % 2 == 1
|
||||
);
|
||||
|
||||
@@ -21,7 +21,6 @@ namespace FileTime.App.Core.ViewModels;
|
||||
public partial class TabViewModel : ITabViewModel
|
||||
{
|
||||
private readonly IServiceProvider _serviceProvider;
|
||||
private readonly IAppState _appState;
|
||||
private readonly ITimelessContentProvider _timelessContentProvider;
|
||||
private readonly IRefreshSmoothnessCalculator _refreshSmoothnessCalculator;
|
||||
private readonly ObservableCollection<FullName> _markedItems = new();
|
||||
@@ -34,16 +33,16 @@ public partial class TabViewModel : ITabViewModel
|
||||
public ITab? Tab { get; private set; }
|
||||
public int TabNumber { get; private set; }
|
||||
|
||||
public IDeclarativeProperty<bool> IsSelected { get; }
|
||||
public IDeclarativeProperty<bool> IsSelected { get; } = null!;
|
||||
|
||||
public IDeclarativeProperty<IContainer?> CurrentLocation { get; private set; }
|
||||
public IDeclarativeProperty<IItemViewModel?> CurrentSelectedItem { get; private set; }
|
||||
public IDeclarativeProperty<int?> CurrentSelectedItemIndex { get; set; }
|
||||
public IDeclarativeProperty<IContainerViewModel?> CurrentSelectedItemAsContainer { get; private set; }
|
||||
public IDeclarativeProperty<ObservableCollection<IItemViewModel>?> CurrentItems { get; private set; }
|
||||
public IDeclarativeProperty<ObservableCollection<FullName>> MarkedItems { get; }
|
||||
public IDeclarativeProperty<ObservableCollection<IItemViewModel>?> SelectedsChildren { get; private set; }
|
||||
public IDeclarativeProperty<ObservableCollection<IItemViewModel>?> ParentsChildren { get; private set; }
|
||||
public IDeclarativeProperty<IContainer?> CurrentLocation { get; private set; } = null!;
|
||||
public IDeclarativeProperty<IItemViewModel?> CurrentSelectedItem { get; private set; } = null!;
|
||||
public IDeclarativeProperty<int?> CurrentSelectedItemIndex { get; set; } = null!;
|
||||
public IDeclarativeProperty<IContainerViewModel?> CurrentSelectedItemAsContainer { get; private set; } = null!;
|
||||
public IDeclarativeProperty<ObservableCollection<IItemViewModel>?> CurrentItems { get; private set; } = null!;
|
||||
public IDeclarativeProperty<ObservableCollection<FullName>> MarkedItems { get; } = null!;
|
||||
public IDeclarativeProperty<ObservableCollection<IItemViewModel>?> SelectedsChildren { get; private set; } = null!;
|
||||
public IDeclarativeProperty<ObservableCollection<IItemViewModel>?> ParentsChildren { get; private set; } = null!;
|
||||
|
||||
|
||||
public TabViewModel(
|
||||
@@ -53,10 +52,9 @@ public partial class TabViewModel : ITabViewModel
|
||||
IRefreshSmoothnessCalculator refreshSmoothnessCalculator)
|
||||
{
|
||||
_serviceProvider = serviceProvider;
|
||||
_appState = appState;
|
||||
|
||||
MarkedItems = _markedItems.Watch();
|
||||
IsSelected = _appState.SelectedTab.Map(s => s == this);
|
||||
MarkedItems = _markedItems.Watch()!;
|
||||
IsSelected = appState.SelectedTab.Map(s => s == this);
|
||||
_timelessContentProvider = timelessContentProvider;
|
||||
_refreshSmoothnessCalculator = refreshSmoothnessCalculator;
|
||||
}
|
||||
@@ -117,7 +115,7 @@ public partial class TabViewModel : ITabViewModel
|
||||
return Task.FromResult<int?>(-1);
|
||||
});
|
||||
|
||||
CurrentSelectedItem.Subscribe((v) =>
|
||||
CurrentSelectedItem.Subscribe(_ =>
|
||||
{
|
||||
_refreshSmoothnessCalculator.RegisterChange();
|
||||
_refreshSmoothnessCalculator.RecalculateSmoothness();
|
||||
@@ -176,12 +174,6 @@ public partial class TabViewModel : ITabViewModel
|
||||
computing.For(consumer);
|
||||
}
|
||||
|
||||
private static SortExpressionComparer<IItemViewModel> SortItems()
|
||||
//TODO: Order
|
||||
=> SortExpressionComparer<IItemViewModel>
|
||||
.Ascending(i => i.BaseItem?.Type ?? AbsolutePathType.Unknown)
|
||||
.ThenByAscending(i => i.DisplayNameText?.ToLower() ?? "");
|
||||
|
||||
private static IItem MapItem(AbsolutePath item)
|
||||
{
|
||||
var t = Task.Run(async () =>
|
||||
|
||||
@@ -37,7 +37,7 @@ public class FrequencyNavigationViewModel : FuzzyPanelViewModel<string>, IFreque
|
||||
if (keyEventArgs.Key == Keys.Enter)
|
||||
{
|
||||
keyEventArgs.Handled = true;
|
||||
var targetContainer = await _timelessContentProvider.GetItemByFullNameAsync(new FullName(SelectedItem), PointInTime.Present);
|
||||
var targetContainer = await _timelessContentProvider.GetItemByFullNameAsync(new FullName(SelectedItem!), PointInTime.Present);
|
||||
var openContainerCommand = new OpenContainerCommand(new AbsolutePath(_timelessContentProvider, targetContainer));
|
||||
await _userCommandHandlerService.HandleCommandAsync(openContainerCommand);
|
||||
Close();
|
||||
|
||||
@@ -71,7 +71,9 @@ public class SearchTask : ISearchTask
|
||||
_isSearching = true;
|
||||
_searchingLock.Release();
|
||||
|
||||
#pragma warning disable CS4014
|
||||
Task.Run(BootstrapSearch);
|
||||
#pragma warning restore CS4014
|
||||
|
||||
async Task BootstrapSearch()
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user