mirror of
https://github.com/Caraxi/mare.client.git
synced 2025-12-12 18:27:24 +01:00
Use InputText/Combo hybrids for MCDO ACLs (#81)
* Use InputText/Combo hybrids for MCDO ACLs * Hybrid combo factoring, filtering, ordering, caching
This commit is contained in:
parent
0646ffd351
commit
02cd6d3c10
2 changed files with 62 additions and 5 deletions
|
|
@ -7,6 +7,7 @@ using ImGuiNET;
|
|||
using MareSynchronos.API.Dto.CharaData;
|
||||
using MareSynchronos.MareConfiguration;
|
||||
using MareSynchronos.MareConfiguration.Models;
|
||||
using MareSynchronos.PlayerData.Pairs;
|
||||
using MareSynchronos.Services;
|
||||
using MareSynchronos.Services.CharaData.Models;
|
||||
using MareSynchronos.Services.Mediator;
|
||||
|
|
@ -24,6 +25,7 @@ internal sealed partial class CharaDataHubUi : WindowMediatorSubscriberBase
|
|||
private readonly CharaDataConfigService _configService;
|
||||
private readonly DalamudUtilService _dalamudUtilService;
|
||||
private readonly FileDialogManager _fileDialogManager;
|
||||
private readonly PairManager _pairManager;
|
||||
private readonly ServerConfigurationManager _serverConfigurationManager;
|
||||
private readonly UiSharedService _uiSharedService;
|
||||
private CancellationTokenSource _closalCts = new();
|
||||
|
|
@ -53,11 +55,14 @@ internal sealed partial class CharaDataHubUi : WindowMediatorSubscriberBase
|
|||
private string _specificIndividualAdd = string.Empty;
|
||||
private string _specificGroupAdd = string.Empty;
|
||||
private bool _abbreviateCharaName = false;
|
||||
private string? _openComboHybridId = null;
|
||||
private (string Id, string? Alias, string AliasOrId, string? Note)[]? _openComboHybridEntries = null;
|
||||
private bool _comboHybridUsedLastFrame = false;
|
||||
|
||||
public CharaDataHubUi(ILogger<CharaDataHubUi> logger, MareMediator mediator, PerformanceCollectorService performanceCollectorService,
|
||||
CharaDataManager charaDataManager, CharaDataNearbyManager charaDataNearbyManager, CharaDataConfigService configService,
|
||||
UiSharedService uiSharedService, ServerConfigurationManager serverConfigurationManager,
|
||||
DalamudUtilService dalamudUtilService, FileDialogManager fileDialogManager)
|
||||
DalamudUtilService dalamudUtilService, FileDialogManager fileDialogManager, PairManager pairManager)
|
||||
: base(logger, mediator, "Mare Synchronos Character Data Hub###MareSynchronosCharaDataUI", performanceCollectorService)
|
||||
{
|
||||
SetWindowSizeConstraints();
|
||||
|
|
@ -69,6 +74,7 @@ internal sealed partial class CharaDataHubUi : WindowMediatorSubscriberBase
|
|||
_serverConfigurationManager = serverConfigurationManager;
|
||||
_dalamudUtilService = dalamudUtilService;
|
||||
_fileDialogManager = fileDialogManager;
|
||||
_pairManager = pairManager;
|
||||
Mediator.Subscribe<GposeStartMessage>(this, (_) => IsOpen |= _configService.Current.OpenMareHubOnGposeStart);
|
||||
}
|
||||
|
||||
|
|
@ -97,6 +103,8 @@ internal sealed partial class CharaDataHubUi : WindowMediatorSubscriberBase
|
|||
_sharedWithYouOwnerFilter = string.Empty;
|
||||
_importCode = string.Empty;
|
||||
_charaDataNearbyManager.ComputeNearbyData = false;
|
||||
_openComboHybridId = null;
|
||||
_openComboHybridEntries = null;
|
||||
}
|
||||
|
||||
public override void OnOpen()
|
||||
|
|
@ -117,6 +125,13 @@ internal sealed partial class CharaDataHubUi : WindowMediatorSubscriberBase
|
|||
|
||||
protected override void DrawInternal()
|
||||
{
|
||||
if (!_comboHybridUsedLastFrame)
|
||||
{
|
||||
_openComboHybridId = null;
|
||||
_openComboHybridEntries = null;
|
||||
}
|
||||
_comboHybridUsedLastFrame = false;
|
||||
|
||||
_disableUI = !(_charaDataManager.UiBlockingComputation?.IsCompleted ?? true);
|
||||
if (DateTime.UtcNow.Subtract(_lastFavoriteUpdateTime).TotalSeconds > 2)
|
||||
{
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue