diff --git a/MareSynchronos/PlayerData/Handlers/PairHandler.cs b/MareSynchronos/PlayerData/Handlers/PairHandler.cs index 6778809..88bf97a 100644 --- a/MareSynchronos/PlayerData/Handlers/PairHandler.cs +++ b/MareSynchronos/PlayerData/Handlers/PairHandler.cs @@ -37,6 +37,7 @@ public sealed class PairHandler : DisposableMediatorSubscriberBase private bool _isVisible; private string _penumbraCollection; private bool _redrawOnNextApplication = false; + public long LastAppliedDataSize { get; private set; } public PairHandler(ILogger logger, OnlineUserIdentDto onlineUser, GameObjectHandlerFactory gameObjectHandlerFactory, @@ -81,6 +82,8 @@ public sealed class PairHandler : DisposableMediatorSubscriberBase _redrawOnNextApplication = true; } }); + + LastAppliedDataSize = -1; } public bool IsVisible @@ -398,6 +401,12 @@ public sealed class PairHandler : DisposableMediatorSubscriberBase if (updateModdedPaths) { await _ipcManager.PenumbraSetTemporaryModsAsync(Logger, _applicationId, _penumbraCollection, moddedPaths).ConfigureAwait(false); + LastAppliedDataSize = -1; + foreach (var path in moddedPaths.Select(v => new FileInfo(v.Value)).Where(p => p.Exists)) + { + if (path.Exists) + LastAppliedDataSize += path.Length; + } } if (updateManip) diff --git a/MareSynchronos/PlayerData/Pairs/Pair.cs b/MareSynchronos/PlayerData/Pairs/Pair.cs index 83a9a5a..5c1742c 100644 --- a/MareSynchronos/PlayerData/Pairs/Pair.cs +++ b/MareSynchronos/PlayerData/Pairs/Pair.cs @@ -44,6 +44,7 @@ public class Pair public bool IsVisible => CachedPlayer?.IsVisible ?? false; public CharacterData? LastReceivedCharacterData { get; set; } public string? PlayerName => CachedPlayer?.PlayerName ?? string.Empty; + public long LastAppliedDataSize => CachedPlayer?.LastAppliedDataSize ?? -1; public UserData UserData => UserPair.User; diff --git a/MareSynchronos/UI/CompactUI.cs b/MareSynchronos/UI/CompactUI.cs index 1be869c..4207ebe 100644 --- a/MareSynchronos/UI/CompactUI.cs +++ b/MareSynchronos/UI/CompactUI.cs @@ -68,8 +68,7 @@ public class CompactUi : WindowMediatorSubscriberBase _selectPairsForGroupUi = selectPairForTagUi; _tabMenu = new TopTabMenu(Mediator, _apiController, _pairManager); - // todo: reenable when dalamud title bar buttons are out of staging - /*AllowPinning = false; + AllowPinning = false; AllowClickthrough = false; TitleBarButtons = new() { @@ -82,7 +81,7 @@ public class CompactUi : WindowMediatorSubscriberBase }, IconOffset = new(2,1) } - };*/ + }; _drawFolders = GetDrawFolders().ToList(); @@ -371,17 +370,6 @@ public class CompactUi : WindowMediatorSubscriberBase } UiSharedService.AttachToolTip("Click to copy"); - // todo: remove when dalamud title bar buttons are out of staging - ImGui.SetWindowFontScale(1.5f); - var buttonSize = UiSharedService.GetIconButtonSize(FontAwesomeIcon.Cog); - ImGui.SameLine(); - ImGui.SetCursorPosX(ImGui.GetWindowContentRegionMax().X - buttonSize.X); - if (UiSharedService.NormalizedIconButton(FontAwesomeIcon.Cog)) - { - Mediator.Publish(new UiToggleMessage(typeof(SettingsUi))); - } - ImGui.SetWindowFontScale(1.0f); - if (!string.Equals(_apiController.DisplayName, _apiController.UID, StringComparison.Ordinal)) { var origTextSize = ImGui.CalcTextSize(_apiController.UID); diff --git a/MareSynchronos/UI/Components/DrawUserPair.cs b/MareSynchronos/UI/Components/DrawUserPair.cs index 572915c..dbb8466 100644 --- a/MareSynchronos/UI/Components/DrawUserPair.cs +++ b/MareSynchronos/UI/Components/DrawUserPair.cs @@ -227,6 +227,12 @@ public class DrawUserPair userPairText += UiSharedService.TooltipSeparator + "You are directly Paired"; } + if (_pair.LastAppliedDataSize >= 0) + { + userPairText += UiSharedService.TooltipSeparator + (!_pair.IsVisible ? "(Last) " : string.Empty) + + "Loaded Mods Size: " + UiSharedService.ByteToString(_pair.LastAppliedDataSize, true); + } + if (_syncedGroups.Any()) { userPairText += UiSharedService.TooltipSeparator + string.Join(Environment.NewLine, diff --git a/MareSynchronos/UI/SettingsUi.cs b/MareSynchronos/UI/SettingsUi.cs index fea0a6c..1d7cc0b 100644 --- a/MareSynchronos/UI/SettingsUi.cs +++ b/MareSynchronos/UI/SettingsUi.cs @@ -69,9 +69,8 @@ public class SettingsUi : WindowMediatorSubscriberBase _apiController = apiController; _fileCompactor = fileCompactor; _uiShared = uiShared; - // todo: reenable when dalamud is out of staging - /*AllowClickthrough = false; - AllowPinning = false;*/ + AllowClickthrough = false; + AllowPinning = false; SizeConstraints = new WindowSizeConstraints() { diff --git a/MareSynchronos/UI/UISharedService.cs b/MareSynchronos/UI/UISharedService.cs index ef497a3..5fea4db 100644 --- a/MareSynchronos/UI/UISharedService.cs +++ b/MareSynchronos/UI/UISharedService.cs @@ -420,7 +420,7 @@ public partial class UiSharedService : DisposableMediatorSubscriberBase var frameOffsetY = ((frameHeight - iconData.IconSize.Y * iconData.IconScaling) / 2f); - drawList.AddText(UiBuilder.IconFont, ImGui.GetFontSize() * iconData.IconScaling, + drawList.AddText(UiBuilder.IconFont, UiBuilder.IconFont.FontSize * iconData.IconScaling, new(windowPos.X - scrollPosX + cursorPos.X + iconData.OffsetX, windowPos.Y - scrollPosY + cursorPos.Y + frameOffsetY), color, icon.ToIconString());