mirror of
https://github.com/xivdev/Penumbra.git
synced 2025-12-14 20:54:16 +01:00
Make the import popup closeable by clicking outside if it is finished.
This commit is contained in:
parent
22af545e8d
commit
94a05afbe0
2 changed files with 18 additions and 16 deletions
|
|
@ -25,20 +25,22 @@ public partial class TexToolsImporter
|
||||||
if (_modPackCount == 0)
|
if (_modPackCount == 0)
|
||||||
{
|
{
|
||||||
ImGuiUtil.Center("Nothing to extract.");
|
ImGuiUtil.Center("Nothing to extract.");
|
||||||
return false;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (_modPackCount == _currentModPackIdx)
|
if (_modPackCount == _currentModPackIdx)
|
||||||
return DrawEndState();
|
{
|
||||||
|
DrawEndState();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
ImGui.NewLine();
|
ImGui.NewLine();
|
||||||
var percentage = (float)_currentModPackIdx / _modPackCount;
|
var percentage = (float)_currentModPackIdx / _modPackCount;
|
||||||
ImGui.ProgressBar(percentage, size, $"Mod {_currentModPackIdx + 1} / {_modPackCount}");
|
ImGui.ProgressBar(percentage, size, $"Mod {_currentModPackIdx + 1} / {_modPackCount}");
|
||||||
ImGui.NewLine();
|
ImGui.NewLine();
|
||||||
if (State == ImporterState.DeduplicatingFiles)
|
ImGui.TextUnformatted(State == ImporterState.DeduplicatingFiles
|
||||||
ImGui.TextUnformatted($"Deduplicating {_currentModName}...");
|
? $"Deduplicating {_currentModName}..."
|
||||||
else
|
: $"Extracting {_currentModName}...");
|
||||||
ImGui.TextUnformatted($"Extracting {_currentModName}...");
|
|
||||||
|
|
||||||
if (_currentNumOptions > 1)
|
if (_currentNumOptions > 1)
|
||||||
{
|
{
|
||||||
|
|
@ -63,18 +65,15 @@ public partial class TexToolsImporter
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private bool DrawEndState()
|
private void DrawEndState()
|
||||||
{
|
{
|
||||||
var success = ExtractedMods.Count(t => t.Error == null);
|
var success = ExtractedMods.Count(t => t.Error == null);
|
||||||
|
|
||||||
if (ImGui.IsKeyPressed(ImGuiKey.Escape))
|
|
||||||
return true;
|
|
||||||
|
|
||||||
ImGui.TextUnformatted($"Successfully extracted {success} / {ExtractedMods.Count} files.");
|
ImGui.TextUnformatted($"Successfully extracted {success} / {ExtractedMods.Count} files.");
|
||||||
ImGui.NewLine();
|
ImGui.NewLine();
|
||||||
using var table = ImRaii.Table("##files", 2);
|
using var table = ImRaii.Table("##files", 2);
|
||||||
if (!table)
|
if (!table)
|
||||||
return false;
|
return;
|
||||||
|
|
||||||
foreach (var (file, dir, ex) in ExtractedMods)
|
foreach (var (file, dir, ex) in ExtractedMods)
|
||||||
{
|
{
|
||||||
|
|
@ -93,8 +92,6 @@ public partial class TexToolsImporter
|
||||||
ImGuiUtil.HoverTooltip(ex.ToString());
|
ImGuiUtil.HoverTooltip(ex.ToString());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool DrawCancelButton(Vector2 size)
|
public bool DrawCancelButton(Vector2 size)
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,6 @@
|
||||||
|
using Dalamud.Game.ClientState.Keys;
|
||||||
using Dalamud.Interface.Windowing;
|
using Dalamud.Interface.Windowing;
|
||||||
|
using Dalamud.Plugin.Services;
|
||||||
using ImGuiNET;
|
using ImGuiNET;
|
||||||
using OtterGui.Raii;
|
using OtterGui.Raii;
|
||||||
using OtterGui.Services;
|
using OtterGui.Services;
|
||||||
|
|
@ -68,13 +70,16 @@ public sealed class ImportPopup : Window, IUiService
|
||||||
ImGui.SetNextWindowSize(size);
|
ImGui.SetNextWindowSize(size);
|
||||||
using var popup = ImRaii.Popup(importPopup, ImGuiWindowFlags.Modal);
|
using var popup = ImRaii.Popup(importPopup, ImGuiWindowFlags.Modal);
|
||||||
PopupWasDrawn = true;
|
PopupWasDrawn = true;
|
||||||
|
var terminate = false;
|
||||||
using (var child = ImRaii.Child("##import", new Vector2(-1, size.Y - ImGui.GetFrameHeight() * 2)))
|
using (var child = ImRaii.Child("##import", new Vector2(-1, size.Y - ImGui.GetFrameHeight() * 2)))
|
||||||
{
|
{
|
||||||
if (child)
|
if (child.Success && import.DrawProgressInfo(new Vector2(-1, ImGui.GetFrameHeight())))
|
||||||
import.DrawProgressInfo(new Vector2(-1, ImGui.GetFrameHeight()));
|
if (!ImGui.IsMouseHoveringRect(ImGui.GetWindowPos(), ImGui.GetWindowPos() + ImGui.GetWindowSize())
|
||||||
|
&& ImGui.IsMouseClicked(ImGuiMouseButton.Left))
|
||||||
|
terminate = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
var terminate = import.State == ImporterState.Done
|
terminate |= import.State == ImporterState.Done
|
||||||
? ImGui.Button("Close", -Vector2.UnitX)
|
? ImGui.Button("Close", -Vector2.UnitX)
|
||||||
: import.DrawCancelButton(-Vector2.UnitX);
|
: import.DrawCancelButton(-Vector2.UnitX);
|
||||||
if (terminate)
|
if (terminate)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue