quality dropdown

git [01-27-18 - 17:54]
quality dropdown
Filename
IIfA/IIfA.lua
IIfA/IIfA.xml
IIfA/IIfABackpack.lua
IIfA/IIfADataCollection.lua
IIfA/IIfAEvents.lua
IIfA/IIfAMenu.lua
IIfA/IIfASettingsAdapter.lua
IIfA/IIfA_xml_adapter.lua
diff --git a/IIfA/IIfA.lua b/IIfA/IIfA.lua
index e61979d..3daa91f 100644
--- a/IIfA/IIfA.lua
+++ b/IIfA/IIfA.lua
@@ -359,7 +359,7 @@ function IIfA_onLoad(eventCode, addOnName)
 		IIfA.bFilterOnSetName = false
 		ObjSettings.bFilterOnSetName = false
 	end
-	IIFA_GUI_SetNameOnly_Checked:SetHidden(not IIfA.bFilterOnSetName)
+	-- IIFA_GUI_SetNameOnly_Checked:SetHidden(not IIfA.bFilterOnSetName)

 	IIFA_GUI_Header_Filter_Button0:SetState(BSTATE_PRESSED)
 	IIfA.LastFilterControl = IIFA_GUI_Header_Filter_Button0
diff --git a/IIfA/IIfA.xml b/IIfA/IIfA.xml
index a349e29..e1759b7 100644
--- a/IIfA/IIfA.xml
+++ b/IIfA/IIfA.xml
@@ -131,13 +131,21 @@

 						<Control name="$(parent)_Dropdown" inherits="ZO_ComboBox" mouseEnabled="true" >
 							<Dimensions x="200" y="30" />
-							<Anchor point="TOPLEFT" relativeTo="$(parent)" relativePoint="TOPLEFT" offsetX="110" offsetY="40"/>
+							<Anchor point="TOPLEFT" relativeTo="$(parent)_BagButton" relativePoint="TOPRIGHT" offsetX="10" />

 							<OnShow>	IIfA:GuiSetupDropdown(self)</OnShow>
 							<OnMouseEnter>IIfA:GuiShowTooltip(self, "Select inventory to view")</OnMouseEnter>
 							<OnMouseExit>IIfA:GuiHideTooltip(self)</OnMouseExit>
 						</Control>

+						<Control name="$(parent)_Dropdown_Quality" inherits="ZO_ComboBox" mouseEnabled="true" >
+							<Dimensions x="140" y="30" />
+							<Anchor point="TOPLEFT" relativeTo="$(parent)_Dropdown" relativePoint="TOPRIGHT" offsetX="10" />
+							<OnShow>		IIfA:GuiSetupQualityDropdown(self)</OnShow>
+							<OnMouseEnter>	IIfA:GuiShowTooltip(self, "Select quality")</OnMouseEnter>
+							<OnMouseExit>	IIfA:GuiHideTooltip(self)</OnMouseExit>
+						</Control>
+
 						<Control name="$(parent)_Filter" mouseEnabled="true">
 							<Dimensions x="300" y="30" />
 							<Anchor point="TOPLEFT" relativeTo="$(parent)" relativePoint="TOPLEFT" offsetX="50" offsetY="80"/>
@@ -852,17 +860,35 @@
 					</Controls>
 				</Control>

+				<Control name="$(parent)_ListHolder" mouseEnabled="true" resizeToFitDescendents="false">
+					<DimensionConstraints  minY="52"/>
+					<Anchor point="TOPLEFT" relativeTo="$(parent)" relativePoint="TOPLEFT" offsetX="15" offsetY="150"/>
+					<Anchor point="BOTTOMRIGHT" relativeTo="$(parent)" relativePoint="BOTTOMRIGHT" offsetX="-27" offsetY="-55"/>
+					<OnMouseWheel>IIfA:GuiOnScroll(self, delta)</OnMouseWheel>
+
+					<Controls>
+						<Slider name="$(parent)_Slider" mouseEnabled="true" step="1" inherits="ZO_VerticalScrollbarBase">
+							<Anchor point="TOPRIGHT" relativeTo="$(parent)" relativePoint="TOPRIGHT" offsetX="16" offsetY="0"/>
+							<Anchor point="BOTTOMRIGHT" relativeTo="$(parent)" relativePoint="BOTTOMRIGHT" offsetX="20" offsetY="-20"/>
+
+							<OnMouseDown>self.locked = false</OnMouseDown>
+							<OnMouseUp>self.locked = true</OnMouseUp>
+							<OnValueChanged>IIfA:GuiOnSliderUpdate(self, value)</OnValueChanged>
+						</Slider>
+
+					</Controls>
+
+				</Control>
+
 				<Control name="$(parent)_Search" mouseEnabled="true" resizeToFitDescendents="true">

-					<Anchor point="BOTTOMLEFT" relativeTo="$(parent)" relativePoint="BOTTOMLEFT" offsetX="16" offsetY="-30"/>
-					<Anchor point="BOTTOMRIGHT" relativeTo="$(parent)" relativePoint="BOTTOMRIGHT" offsetX="-16" offsetY="-30"/>
+					<Anchor point="TOPLEFT" relativeTo="$(parent)_ListHolder" relativePoint="BOTTOMLEFT" offsetX="16" offsetY="10"/>
+					<Anchor point="BOTTOMRIGHT" relativeTo="$(parent)" relativePoint="BOTTOMRIGHT" offsetX="-56" offsetY="-20"/>

 					<Controls>
-
 						<EditBox name="$(parent)Box"  inherits="ZO_InventorySearchBox" >
-
-							<Anchor point="TOPLEFT" relativeTo="$(parent)" relativePoint="TOPLEFT" offsetX="0" offsetY="20"/>
-							<Anchor point="TOPRIGHT" relativeTo="$(parent)" relativePoint="TOPRIGHT" offsetX="0" offsetY="20"/>
+							<Anchor point="TOPLEFT" relativeTo="$(parent)" relativePoint="TOPLEFT" offsetX="0" offsetY="5"/>
+							<Anchor point="TOPRIGHT" relativeTo="$(parent)" relativePoint="TOPRIGHT" offsetX="0" offsetY="5"/>

 							<OnTextChanged>IIfA:GuiOnSearchboxText(self)</OnTextChanged>
 							<Controls>
@@ -870,8 +896,9 @@
 								</Backdrop>
 							</Controls>
 						</EditBox>
+
 						<Button name="$(parent)_Clear">
-							<Anchor point="TOPRIGHT" relativeTo="$(parent)" relativePoint="TOPRIGHT" offsetX="-1" offsetY="22"/>
+							<Anchor point="TOPRIGHT" relativeTo="$(parent)" relativePoint="TOPRIGHT" offsetX="-1" offsetY="7"/>
 							<OnMouseEnter>IIfA:GuiShowTooltip(self, "Clear Search Text")</OnMouseEnter>
 							<OnMouseExit>IIfA:GuiHideTooltip(self)</OnMouseExit>
 							<OnMouseUp>IIfA:GuiOnSearchBoxClear()</OnMouseUp>
@@ -884,54 +911,20 @@
 					</Controls>
 				</Control>

-				<Control name="$(parent)_SetNameOnly" mouseEnabled="true">
-					<Anchor point="BOTTOMLEFT" relativeTo="$(parent)_Search" relativePoint="TOPLEFT" offsetX="0" offsetY="-8"/>
-					<Controls>
-						<Button name="$(parent)_Box">
-							<Anchor point="TOPLEFT" relativeTo="$(parent)" relativePoint="TOPLEFT" offsetX="0" offsetY="0"/>
-							<Dimensions x="20" y="20"/>
-							<OnMouseUp>IIfA:SetNameFilterToggle()</OnMouseUp>
-							<Textures
-								normal = "esoui/art/buttons/swatchframe_down.dds"
-							 />
-						</Button>
-						<Button name="$(parent)_Checked" hidden="true">
-							<Anchor point="TOPLEFT" relativeTo="$(parent)" relativePoint="TOPLEFT" offsetX="0" offsetY="0"/>
-							<Dimensions x="20" y="20"/>
-							<OnMouseUp>IIfA:SetNameFilterToggle()</OnMouseUp>
-							<Textures
-								normal = "esoui/art/buttons/decline_up.dds"
-							 />
-						</Button>
-						<Label name="$(parent)_Label" mouseEnabled="true" font="ZoFontGame" text="|cC5C29EFilter on Set Name only|r">
-							<Anchor point="TOPLEFT" relativeTo="$(parent)_Box" relativePoint="TOPRIGHT" offsetX="5" offsetY="-3"/>
-							<OnMouseUp>IIfA:SetNameFilterToggle()</OnMouseUp>
-						</Label>
-
-					</Controls>
-				</Control>
-
-				<Control name="$(parent)_ListHolder" mouseEnabled="true">
-					<DimensionConstraints  minY="52"/>
-					<Anchor point="TOPLEFT" relativeTo="$(parent)" relativePoint="TOPLEFT" offsetX="15" offsetY="150"/>
-					<Anchor point="BOTTOMRIGHT" relativeTo="$(parent)" relativePoint="BOTTOMRIGHT" offsetX="-27" offsetY="-75"/>
-					<OnMouseWheel>IIfA:GuiOnScroll(self, delta)</OnMouseWheel>
-
-					<Controls>
-						<Slider name="$(parent)_Slider" mouseEnabled="true" step="1" inherits="ZO_VerticalScrollbarBase">
-							<Anchor point="TOPRIGHT" relativeTo="$(parent)" relativePoint="TOPRIGHT" offsetX="16" offsetY="0"/>
-							<Anchor point="BOTTOMRIGHT" relativeTo="$(parent)" relativePoint="BOTTOMRIGHT" offsetX="16" offsetY="0"/>
-
-							<OnMouseDown>self.locked = false</OnMouseDown>
-							<OnMouseUp>self.locked = true</OnMouseUp>
-							<OnValueChanged>IIfA:GuiOnSliderUpdate(self, value)</OnValueChanged>
-						</Slider>
-
-					</Controls>
-
-				</Control>
-
-
+				<Button name="$(parent)_SetNameOnly">
+					<Anchor point="TOPLEFT" relativeTo="$(parent)_Search" relativePoint="TOPRIGHT" offsetX="5" offsetY="-5"/>
+					<Anchor point="BOTTOMRIGHT" relativeTo="$(parent)" relativePoint="BOTTOMRIGHT" offsetX="-5" offsetY="-5" />
+
+					<OnMouseUp>		IIfA:SetNameFilterToggle()</OnMouseUp>
+					<OnMouseEnter>	IIfA:GuiShowTooltip(self, "Filter on set name only")</OnMouseEnter>
+					<OnMouseExit>	IIfA:GuiHideTooltip(self)</OnMouseExit>
+					<Textures
+						normal="esoui/art/dye/dyes_tabicon_costumedye_up.dds"
+						pressed="esoui/art/dye/dyes_tabicon_costumedye_down.dds"
+						mouseOver="esoui/art/dye/dyes_tabicon_costumedye_over.dds"
+					 />
+				</Button>
+
 			</Controls>

 		</TopLevelControl>
@@ -974,7 +967,6 @@
 		</Control>


-
 			<!-- tooltips -->
 			<Tooltip name="IIFA_POPUP_TOOLTIP" hidden="true" mouseEnabled="false" movable="false" clampedToScreen="true" virtual="true" inherits="ItemTooltipBase">
 				<Dimensions  x="416" y="200" />
diff --git a/IIfA/IIfABackpack.lua b/IIfA/IIfABackpack.lua
index d6c0211..719a8e9 100644
--- a/IIfA/IIfABackpack.lua
+++ b/IIfA/IIfABackpack.lua
@@ -7,19 +7,8 @@ IIfA.ActiveFilter = 0
 IIfA.ActiveSubFilter = 0
 IIfA.InventoryFilter = "All"

-IIfA.InventoryListFilter = "All"
-
--- Get pointer to current settings based on user pref (global or per char)
-function IIfA:GetSettings()
-	if IIfA.data.saveSettingsGlobally then return IIfA.data end
-	return IIfA.settings
-end
-
--- this is for the dropdown menu
-function IIfA:GetInventoryListFilter()
-	if not IIfA.InventoryListFilter then return "All" end
-	return IIfA.InventoryListFilter
-end
+IIfA.InventoryListFilter = "Any"
+IIfA.InventoryListFilterQuality = 99


 -- this is for the buttons
@@ -81,16 +70,6 @@ function IIfA:SetActiveSubFilter(value)
 end


-function IIfA:SetInventoryListFilter(value)
-	if not value or value == "" then value = "All" end
-	IIfA.InventoryListFilter = value
-
-	IIfA.searchFilter = IIFA_GUI_SearchBox:GetText()
-
-	IIfA:UpdateScrollDataLinesData()
-	IIfA:UpdateInventoryScroll()
-end
-

 --[[----------------------------------------------------------------------]]
 --[[----------------------------------------------------------------------]]
@@ -174,17 +153,35 @@ local function matchCurrentInventory(locationName)
 	return (IIfA:GetInventoryListFilter() == "All")
 end

+local qualityDictionary
+local function getColoredString(color, s)
+	local c = ZO_ColorDef:New(GetInterfaceColor(INTERFACE_COLOR_TYPE_ITEM_QUALITY_COLORS, color))
+	return c:Colorize(s)
+end
+local function getQualityDict()
+
+	if nil == qualityDictionary then
+		qualityDictionary = {}
+		qualityDictionary["Any"] = 99
+		qualityDictionary[getColoredString(ITEM_QUALITY_TRASH,  "Junk")] 			= ITEM_QUALITY_TRASH
+		qualityDictionary[getColoredString(ITEM_QUALITY_NORMAL, "Normal")] 			= ITEM_QUALITY_NORMAL
+		qualityDictionary[getColoredString(ITEM_QUALITY_MAGIC,  "Magic")] 			= ITEM_QUALITY_MAGIC
+		qualityDictionary[getColoredString(ITEM_QUALITY_ARCANE, "Arcane")] 			= ITEM_QUALITY_ARCANE
+		qualityDictionary[getColoredString(ITEM_QUALITY_ARTIFACT, "Artifact")] 		= ITEM_QUALITY_ARTIFACT
+		qualityDictionary[getColoredString(ITEM_QUALITY_LEGENDARY, "Legendary")] 	= ITEM_QUALITY_LEGENDARY
+	end
+	return qualityDictionary
+end
+
 local function matchFilter(itemName, itemLink)
     local ret = true
 	local itemMatch = false
 	local hasSetInfo, setName

 	local searchFilter = IIfA.searchFilter
--- 17-7-30 AM - moved lowercasing to when it's created, it's an extra var overall, but will cut down filtering because it's one less call to lowercase for every item
---    if not searchFilter then searchFilter = "" end
---	searchFilter = string.lower(searchFilter)
-    local name = string.lower(itemName)
-    if not name then name = "" end
+	-- 17-7-30 AM - moved lowercasing to when it's created, one less call to lowercase for every item
+
+    local name = string.lower(itemName) or ""

 	-- text filter takes precedence
 	-- 3-6-17 AM - you're either filtering on a set name, or not - much less confusing (hopefully)
@@ -209,6 +206,7 @@ local function matchFilter(itemName, itemLink)
 	local bWorn = false
 	local equipType = 0
 	local itemType = 0
+	local itemQuality = ITEM_QUALITY_NORMAL
 	local subType

 	if IIfA.filterGroup ~= "All" and ret then		-- it's not everything, and text search matches, filter by some more stuff
@@ -294,7 +292,10 @@ local function matchFilter(itemName, itemLink)
 	end
     return ret
 end
-
+local function matchQuality(itemQuality)
+	local quality = IIfA.InventoryListFilterQuality
+	return 99 == quality or itemQuality == quality
+end

 --sort datalines
 local function IIfA_FilterCompareUp(a, b)
@@ -367,7 +368,7 @@ function IIfA:UpdateScrollDataLinesData()
 					worn = bWorn
 				}

-				if(itemCount > 0) and matchFilter(item.itemName, iLink) and match then
+				if(itemCount > 0) and matchFilter(item.itemName, iLink) and matchQuality(item.itemQuality) and match then
 					table.insert(dataLines, tempDataLine)
 				end
 				match = false
@@ -649,7 +650,7 @@ function IIfA:QueryAccountInventory(itemLink)
 	return queryItem
 end

-function IIfA:CreateInventoryDropdown()
+local function createInventoryDropdown()
 	local comboBox, i

 	if IIFA_GUI_Header_Dropdown.comboBox ~= nil then
@@ -680,6 +681,41 @@ function IIfA:CreateInventoryDropdown()
 	return IIFA_GUI_Header_Dropdown
 end

+
+local function createInventoryDropdownQuality()
+	local comboBox, i
+
+	IIFA_GUI_Header_Dropdown_Quality.comboBox = IIFA_GUI_Header_Dropdown_Quality.comboBox or ZO_ComboBox_ObjectFromContainer(IIFA_GUI_Header_Dropdown_Quality)
+
+	local validChoices =  {}
+	table.insert(validChoices, "Any")
+	table.insert(validChoices, getColoredString(ITEM_QUALITY_TRASH, "Junk"))
+	table.insert(validChoices, getColoredString(ITEM_QUALITY_NORMAL, "Normal"))
+	table.insert(validChoices, getColoredString(ITEM_QUALITY_MAGIC, "Magic"))
+	table.insert(validChoices, getColoredString(ITEM_QUALITY_ARCANE, "Arcane"))
+	table.insert(validChoices, getColoredString(ITEM_QUALITY_ARTIFACT, "Artifact"))
+	table.insert(validChoices, getColoredString(ITEM_QUALITY_LEGENDARY, "Legendary"))
+
+	local comboBox = IIFA_GUI_Header_Dropdown_Quality.comboBox
+
+	function OnItemSelect(_, choiceText, choice)
+		IIfA:SetInventoryListFilterQuality(getQualityDict()[choiceText])
+	  	PlaySound(SOUNDS.POSITIVE_CLICK)
+	end
+
+	comboBox:SetSortsItems(false)
+
+	for i = 1, #validChoices do
+       	entry = comboBox:CreateItemEntry(validChoices[i], OnItemSelect)
+		comboBox:AddItem(entry)
+		if getQualityDict()[validChoices[i]] == IIfA:GetInventoryListFilterQuality() then
+			comboBox:SetSelectedItem(validChoices[i])
+		end
+	end
+
+	return IIFA_GUI_Header_Dropdown
+end
+
 function IIfA:SetSceneVisible(name, value)
 	IIfA:GetSettings().frameSettings[name].hidden = not value
 end
@@ -695,20 +731,16 @@ end
 function IIfA:SetupBackpack()
 	IIfA.InventoryListFilter = IIfA.data.in2DefaultInventoryFrameView
 	IIfA:CreateInventoryScroll()
-	IIfA:CreateInventoryDropdown()
+	createInventoryDropdown()
+	createInventoryDropdownQuality()
 	IIfA:GuiOnSort(true)
 end

 function IIfA:ProcessRightClick(control)
-	if control == nil then
-		return
-	end
+	if control == nil then return end

 	control = control:GetParent()
-	if control:GetName():match("IIFA_ListItem") == nil or
-		control.itemLink == nil then
-		return
-	end
+	if control:GetName():match("IIFA_ListItem") == nil or control.itemLink == nil then return end

 	-- it's an IIFA list item, lets see if it has data, and allow menu if it does

@@ -882,7 +914,7 @@ function IIfA:FilterByItemName(control)
 	itemName = GetItemLinkName(control.itemLink)

 	IIfA.searchFilter = itemName
-	IIFA_GUI_SetNameOnly_Checked:SetHidden(true)
+	-- IIFA_GUI_SetNameOnly_Checked:SetHidden(true)
 	IIFA_GUI_SearchBox:SetText(itemName)
 	IIFA_GUI_SearchBoxText:SetHidden(true)
 	IIfA.bFilterOnSetName = false
@@ -909,7 +941,7 @@ function IIfA:FilterByItemSet(control)
 	end

 	IIfA.searchFilter = setName
-	IIFA_GUI_SetNameOnly_Checked:SetHidden(false)
+	-- IIFA_GUI_SetNameOnly_Checked:SetHidden(false)
 	IIFA_GUI_SearchBox:SetText(setName)
 	IIFA_GUI_SearchBoxText:SetHidden(true)
 	IIfA.bFilterOnSetName = true
diff --git a/IIfA/IIfADataCollection.lua b/IIfA/IIfADataCollection.lua
index 1518d88..7fa39d9 100644
--- a/IIfA/IIfADataCollection.lua
+++ b/IIfA/IIfADataCollection.lua
@@ -309,7 +309,7 @@ function IIfA:EvalBagItem(bagId, slotNum, fromXfer, qty)
 			location =GetString(IIFA_BAG_CRAFTBAG)
 		elseif(bagId == BAG_GUILDBANK) then
 			location = GetGuildName(GetSelectedGuildBankId())
-		else
+		elseif GetAPIVersion() >= 100022 then
 			local collectibleId = GetCollectibleForHouseBankBag(GetBankingBag())
 			location = GetCollectibleNickname(collectibleId)
 			if location == EMPTY_STRING then location = GetCollectibleName(collectibleId) end
diff --git a/IIfA/IIfAEvents.lua b/IIfA/IIfAEvents.lua
index 329cc65..8822916 100644
--- a/IIfA/IIfAEvents.lua
+++ b/IIfA/IIfAEvents.lua
@@ -42,6 +42,24 @@ local function IIfA_CollectibleUpdate(eventCode, collectibleId, justUnlocked)
 	local nickName 	= GetCollectibleNickname(collectibleId)


+	-- TODO: Check this!
+	-- function ZO_SharedInventoryManager:HandleSlotCreationOrUpdate(bagCache, bagId, slotIndex, isNewItem)
+		-- local existingSlotData = bagCache[slotIndex]
+		-- local slotData, result = self:CreateOrUpdateSlotData(existingSlotData, bagId, slotIndex, isNewItem)
+		-- bagCache[slotIndex] = slotData
+
+		-- if result == SHARED_INVENTORY_SLOT_RESULT_REMOVED then
+			-- self:FireCallbacks("SlotRemoved", bagId, slotIndex, existingSlotData)
+		-- elseif result == SHARED_INVENTORY_SLOT_RESULT_ADDED then
+			-- self:FireCallbacks("SlotAdded", bagId, slotIndex, slotData)
+		-- elseif result == SHARED_INVENTORY_SLOT_RESULT_UPDATED then
+			-- self:FireCallbacks("SlotUpdated", bagId, slotIndex, slotData)
+		-- elseif result == SHARED_INVENTORY_SLOT_RESULT_REMOVE_AND_ADD then
+			-- self:FireCallbacks("SlotRemoved", bagId, slotIndex, existingSlotData)
+			-- self:FireCallbacks("SlotAdded", bagId, slotIndex, slotData)
+		-- end
+	-- end
+

 end

diff --git a/IIfA/IIfAMenu.lua b/IIfA/IIfAMenu.lua
index 0943b90..5f011b9 100644
--- a/IIfA/IIfAMenu.lua
+++ b/IIfA/IIfAMenu.lua
@@ -392,7 +392,7 @@ function IIfA:CreateOptionsMenu()
 			setFunc = function(value)
 				IIfA:GetSettings().bFilterOnSetName = value
 				IIfA.bFilterOnSetName = value
-				IIFA_GUI_SetNameOnly_Checked:SetHidden(not value)
+				-- IIFA_GUI_SetNameOnly_Checked:SetHidden(not value)
 			end,
 		}, -- checkbox end

diff --git a/IIfA/IIfASettingsAdapter.lua b/IIfA/IIfASettingsAdapter.lua
index 2ea520b..085db83 100644
--- a/IIfA/IIfASettingsAdapter.lua
+++ b/IIfA/IIfASettingsAdapter.lua
@@ -34,4 +34,51 @@ function IIfA:GetIgnoredCharacterList()
 		end
 	end
 	return ret
-end
\ No newline at end of file
+end
+
+function IIfA:SetSetNameFilterOnly(value)
+	IIFA_GUI_SetNameOnly:SetState((IIfA.bFilterOnSetName and BSTATE_PRESSED) or BSTATE_NORMAL)
+	IIfA.bFilterOnSetName = not IIfA.bFilterOnSetName
+    IIfA:UpdateScrollDataLinesData()
+    IIfA:UpdateInventoryScroll()
+end
+
+
+-- Get pointer to current settings based on user pref (global or per char)
+function IIfA:GetSettings()
+	if IIfA.data.saveSettingsGlobally then return IIfA.data end
+	return IIfA.settings
+end
+
+-- this is for the dropdown menu
+function IIfA:GetInventoryListFilter()
+	if not IIfA.InventoryListFilter then return "All" end
+	return IIfA.InventoryListFilter
+end
+
+
+function IIfA:SetInventoryListFilter(value)
+	if not value or value == "" then value = "All" end
+	IIfA.InventoryListFilter = value
+
+	IIfA.searchFilter = IIFA_GUI_SearchBox:GetText()
+
+	IIfA:UpdateScrollDataLinesData()
+	IIfA:UpdateInventoryScroll()
+end
+
+-- this is for the dropdown menu
+function IIfA:GetInventoryListFilterQuality()
+	return IIfA.InventoryListFilterQuality or 99
+end
+
+
+-- this is for the dropdown menu
+function IIfA:SetInventoryListFilterQuality(value)
+	IIfA.InventoryListFilterQuality = value
+
+	IIfA.searchFilter = IIFA_GUI_SearchBox:GetText()
+
+	IIfA:UpdateScrollDataLinesData()
+    IIfA:UpdateInventoryScroll()
+end
diff --git a/IIfA/IIfA_xml_adapter.lua b/IIfA/IIfA_xml_adapter.lua
index 8b2ee48..3dfe35d 100644
--- a/IIfA/IIfA_xml_adapter.lua
+++ b/IIfA/IIfA_xml_adapter.lua
@@ -156,6 +156,11 @@ function IIfA:GuiSetupDropdown(dropdown)
 	dropdown.comboBox:SetSelectedItem(selectedItem)
 end

+function IIfA:GuiSetupQualityDropdown(dropdown)
+	local selectedItem = IIfA:GetInventoryListFilterQuality()
+	dropdown.comboBox:SetSelectedItem(selectedItem)
+end
+
 -- click functions
 function IIfA:GuiOnFilterButton(control, filterGroup, filterTypes, filterTypeNames)
 	-- identify if this is main or sub filter clicked
@@ -249,9 +254,10 @@ function IIfA:GuiOnFilterButton(control, filterGroup, filterTypes, filterTypeNam
 	newAnchor:SetOffsets(IIFA_GUI_ListHolder.savedAnchor1[X_OFFSET_INDEX], IIFA_GUI_ListHolder.savedAnchor1[Y_OFFSET_INDEX] + IIFA_GUI_Header_Subfilter:GetHeight())
 	newAnchor:AddToControl(IIFA_GUI_ListHolder)

-	newAnchor = ZO_Anchor:New(unpack(IIFA_GUI_ListHolder.savedAnchor2))
-	newAnchor:SetOffsets(IIFA_GUI_ListHolder.savedAnchor2[X_OFFSET_INDEX], IIFA_GUI_ListHolder.savedAnchor2[Y_OFFSET_INDEX])
-	newAnchor:AddToControl(IIFA_GUI_ListHolder)
+	IIFA_GUI_ListHolder:SetAnchor(BOTTOMRIGHT, IIFA_GUI, BOTTOMRIGHT, -27, -55)
+	-- newAnchor = ZO_Anchor:New(unpack(IIFA_GUI_ListHolder.savedAnchor2))
+	-- newAnchor:SetOffsets(IIFA_GUI_ListHolder.savedAnchor2[X_OFFSET_INDEX], IIFA_GUI_ListHolder.savedAnchor2[Y_OFFSET_INDEX])
+	-- newAnchor:AddToControl(IIFA_GUI_ListHolder)

 	IIfA:GuiResizeScroll()

@@ -560,9 +566,8 @@ function IIfA:RePositionFrame(settings)
 	IIFA_GUI:SetHidden(settings.hidden)
 end

+
+
 function IIfA:SetNameFilterToggle()
-	IIFA_GUI_SetNameOnly_Checked:SetHidden(IIfA.bFilterOnSetName)
-	IIfA.bFilterOnSetName = not IIfA.bFilterOnSetName
-    IIfA:UpdateScrollDataLinesData()
-    IIfA:UpdateInventoryScroll()
+	IIfA:SetSetNameFilterOnly(not IIfA.bFilterOnSetName)
 end