From 94c6546461e1133932f230133fa80c0e5f2bc1df Mon Sep 17 00:00:00 2001 From: Cara Date: Sun, 17 May 2020 14:10:27 +0930 Subject: [PATCH 1/2] Disallow linking of invalid items. --- Dalamud/Interface/ItemSearchWindow.cs | 29 ++++++++++++++++++--------- 1 file changed, 19 insertions(+), 10 deletions(-) diff --git a/Dalamud/Interface/ItemSearchWindow.cs b/Dalamud/Interface/ItemSearchWindow.cs index 96dea4d93..112c35b36 100644 --- a/Dalamud/Interface/ItemSearchWindow.cs +++ b/Dalamud/Interface/ItemSearchWindow.cs @@ -161,11 +161,13 @@ namespace Dalamud.Interface if (ImGui.IsMouseDoubleClicked(0)) { - OnItemChosen?.Invoke(this, this.searchTask.Result[i]); - if (this.closeOnChoose) - { - this.selectedItemTex?.Dispose(); - isOpen = false; + if (this.selectedItemTex != null){ + OnItemChosen?.Invoke(this, this.searchTask.Result[i]); + if (this.closeOnChoose) + { + this.selectedItemTex?.Dispose(); + isOpen = false; + } } } } @@ -189,14 +191,16 @@ namespace Dalamud.Interface ImGui.EndChild(); // Darken choose button if it shouldn't be clickable - ImGui.PushStyleVar(ImGuiStyleVar.Alpha, this.selectedItemIndex < 0 ? 0.25f : 1); + ImGui.PushStyleVar(ImGuiStyleVar.Alpha, this.selectedItemIndex < 0 || this.selectedItemTex == null ? 0.25f : 1); if (ImGui.Button(Loc.Localize("Choose", "Choose"))) { try { - OnItemChosen?.Invoke(this, this.searchTask.Result[this.selectedItemIndex]); - if (this.closeOnChoose) { - this.selectedItemTex?.Dispose(); - isOpen = false; + if (this.selectedItemTex != null) { + OnItemChosen?.Invoke(this, this.searchTask.Result[this.selectedItemIndex]); + if (this.closeOnChoose) { + this.selectedItemTex?.Dispose(); + isOpen = false; + } } } catch (Exception ex) { Log.Error($"Exception in Choose: {ex.Message}"); @@ -214,6 +218,11 @@ namespace Dalamud.Interface } } + if (this.selectedItemIndex >= 0 && this.selectedItemTex == null) { + ImGui.SameLine(); + ImGui.Text(Loc.Localize("DalamudItemNotLinkable", "This item is not linkable.")); + } + ImGui.End(); return isOpen; From 219b4a30111cda3808c5eb89d0ebc8ea9f187d47 Mon Sep 17 00:00:00 2001 From: Cara Date: Mon, 18 May 2020 19:06:24 +0930 Subject: [PATCH 2/2] Don't show invalid items in list at all --- Dalamud/Interface/ItemSearchWindow.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dalamud/Interface/ItemSearchWindow.cs b/Dalamud/Interface/ItemSearchWindow.cs index 112c35b36..f05ffa66d 100644 --- a/Dalamud/Interface/ItemSearchWindow.cs +++ b/Dalamud/Interface/ItemSearchWindow.cs @@ -120,7 +120,7 @@ namespace Dalamud.Interface asyncEnum = asyncEnum.Where( x => (x.Name.ToLower().Contains(this.searchText.ToLower()) || int.TryParse(this.searchText, out var parsedId) && - parsedId == x.RowId)); + parsedId == x.RowId) && x.Icon < 65000); } if (this.currentKind != 0)