Merge pull request #113 from Caraxi/no-linking-invalid-items

This commit is contained in:
goaaats 2020-05-18 14:38:45 +02:00 committed by GitHub
commit cb0dd6ce5f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -120,7 +120,7 @@ namespace Dalamud.Interface
asyncEnum = asyncEnum.Where( asyncEnum = asyncEnum.Where(
x => (x.Name.ToLower().Contains(this.searchText.ToLower()) || x => (x.Name.ToLower().Contains(this.searchText.ToLower()) ||
int.TryParse(this.searchText, out var parsedId) && int.TryParse(this.searchText, out var parsedId) &&
parsedId == x.RowId)); parsedId == x.RowId) && x.Icon < 65000);
} }
if (this.currentKind != 0) if (this.currentKind != 0)
@ -161,11 +161,13 @@ namespace Dalamud.Interface
if (ImGui.IsMouseDoubleClicked(0)) if (ImGui.IsMouseDoubleClicked(0))
{ {
OnItemChosen?.Invoke(this, this.searchTask.Result[i]); if (this.selectedItemTex != null){
if (this.closeOnChoose) OnItemChosen?.Invoke(this, this.searchTask.Result[i]);
{ if (this.closeOnChoose)
this.selectedItemTex?.Dispose(); {
isOpen = false; this.selectedItemTex?.Dispose();
isOpen = false;
}
} }
} }
} }
@ -189,14 +191,16 @@ namespace Dalamud.Interface
ImGui.EndChild(); ImGui.EndChild();
// Darken choose button if it shouldn't be clickable // 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"))) { if (ImGui.Button(Loc.Localize("Choose", "Choose"))) {
try { try {
OnItemChosen?.Invoke(this, this.searchTask.Result[this.selectedItemIndex]); if (this.selectedItemTex != null) {
if (this.closeOnChoose) { OnItemChosen?.Invoke(this, this.searchTask.Result[this.selectedItemIndex]);
this.selectedItemTex?.Dispose(); if (this.closeOnChoose) {
isOpen = false; this.selectedItemTex?.Dispose();
isOpen = false;
}
} }
} catch (Exception ex) { } catch (Exception ex) {
Log.Error($"Exception in Choose: {ex.Message}"); 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(); ImGui.End();
return isOpen; return isOpen;