2.1.1

git [02-03-18 - 17:20]
2.1.1
Filename
FurnitureCatalogue/FurCDatabaseQuery.lua
FurnitureCatalogue/FurCFilter.lua
FurnitureCatalogue/FurCGui.lua
FurnitureCatalogue/FurCSettingsAdapter.lua
FurnitureCatalogue/FurnitureCatalogue.txt
FurnitureCatalogue/data/Homestead/H_LuxuryFurnisher.lua
FurnitureCatalogue/data/LuxuryFurnisher.lua
FurnitureCatalogue/locale/de.lua
FurnitureCatalogue/locale/en.lua
FurnitureCatalogue/locale/fr.lua
FurnitureCatalogue/locale/jp.lua
FurnitureCatalogue/locale/ru.lua
FurnitureCatalogue/startup.lua
diff --git a/FurnitureCatalogue/FurCDatabaseQuery.lua b/FurnitureCatalogue/FurCDatabaseQuery.lua
index a026d49..70beee8 100644
--- a/FurnitureCatalogue/FurCDatabaseQuery.lua
+++ b/FurnitureCatalogue/FurCDatabaseQuery.lua
@@ -4,6 +4,7 @@ local vendorColor 	= "d68957"
 local goldColor 	= "e5da40"
 local apColor 		= "25C31E"
 local tvColor		= "5EA4FF"
+local voucherColor	= "82BCFF"
 local p 			= FurC.DebugOut -- debug function calling zo_strformat with up to 10 args


@@ -21,13 +22,14 @@ local function getRollisSource(recipeKey, recipeArray)
 	local versionData = FurC.Rollis[recipeArray.version]

 	if nil ~= versionData and nil ~= versionData[recipeKey] then
-		local itemPrice = zo_strformat(GetString(SI_FURC_STRING_FOR_VOUCHERS), versionData[recipeKey])
-		return  zo_strformat(GetString(SI_FURC_STRING_ROLLIS), itemPrice)
+		local itemPrice = zo_strformat(GetString(SI_FURC_STRING_FOR_VOUCHERS), colorise(versionData[recipeKey], voucherColor))
+		return zo_strformat(GetString(SI_FURC_STRING_ROLLIS), itemPrice)
 	end
+
 	versionData = FurC.Faustina[recipeArray.version]
 	if nil ~= versionData and nil ~= versionData[recipeKey] then
-		local itemPrice = zo_strformat(GetString(SI_FURC_STRING_FOR_VOUCHERS), versionData[recipeKey])
-		return  zo_strformat(GetString(SI_FURC_STRING_FAUSTINA), itemPrice)
+		local itemPrice = zo_strformat(GetString(SI_FURC_STRING_FOR_VOUCHERS), colorise(versionData[recipeKey], voucherColor))
+		return zo_strformat(GetString(SI_FURC_STRING_FAUSTINA), itemPrice)
 	end

 	return GetString(SI_FURC_STRING_VOUCHER_VENDOR)
diff --git a/FurnitureCatalogue/FurCFilter.lua b/FurnitureCatalogue/FurCFilter.lua
index 6bd5705..fab6bd4 100644
--- a/FurnitureCatalogue/FurCFilter.lua
+++ b/FurnitureCatalogue/FurCFilter.lua
@@ -92,10 +92,11 @@ local function matchSourceDropdown()
 	elseif FURC_FAVE 					== ddSource then
 		return recipeArray.favorite
 	elseif FURC_VENDOR 					== ddSource then
-		return (recipeArray.origin 		== FURC_VENDOR or recipeArray.origin == FURC_ROLLIS or
-		(mergeLuxuryAndSales and recipeArray.origin == FURC_LUXURY))
+		return (recipeArray.origin 		== FURC_VENDOR or (mergeLuxuryAndSales and recipeArray.origin == FURC_LUXURY))
 	elseif FURC_RUMOUR 					== ddSource then
 		return recipeArray.origin 		== FURC_RUMOUR
+	elseif FURC_WRIT_VENDOR 			== ddSource then
+		return recipeArray.origin 		== FURC_ROLLIS
 	elseif FURC_OTHER					== ddSource then
 		return (
 			recipeArray.origin == FURC_FESTIVAL_DROP or
diff --git a/FurnitureCatalogue/FurCGui.lua b/FurnitureCatalogue/FurCGui.lua
index 657116a..33780e0 100644
--- a/FurnitureCatalogue/FurCGui.lua
+++ b/FurnitureCatalogue/FurCGui.lua
@@ -354,12 +354,10 @@ local function createGui()
 		local validChoices 		= dropdownData[string.format("%s%s", "Choices", dropdownName)]
 		local choicesTooltips 	= dropdownData[string.format("%s%s", "Tooltips", dropdownName)]
 		local comboBox
-		if control.comboBox ~= nil then
-			comboBox = control.comboBox
-		else
-			comboBox = ZO_ComboBox_ObjectFromContainer(control)
-			control.comboBox = comboBox
-		end
+
+
+		control.comboBox = control.comboBox or ZO_ComboBox_ObjectFromContainer(control)
+		comboBox = control.comboBox

 		-- ruthlessly stolen from LAM
 		local function SetupTooltips(comboBox, choicesTooltips)
@@ -377,17 +375,11 @@ local function createGui()
 			comboBox.ShowDropdownInternal = function(comboBox)
 				originalShow(comboBox)
 				local entries = ZO_Menu.items
-				for i = 1, #entries do
+				for i = 1, #entries do
+
 					local entry = entries[i]
 					local control = entries[i].item
-					control.tooltip = choicesTooltips[i]
-					if (i == FURC_LUXURY and FurC.GetMergeLuxuryAndSales() or
-					i == FURC_CROWN 	and FurC.GetHideCrownStoreEntry() or
-					i == FURC_RUMOUR 	and FurC.GetHideRumourRecipesEntry()
-					) then
-
-
-					end
+					control.tooltip = choicesTooltips[i]

 					if control.tooltip then
 						entry.onMouseEnter = control:GetHandler("OnMouseEnter")
@@ -395,6 +387,7 @@ local function createGui()
 						ZO_PreHookHandler(control, "OnMouseEnter", ShowTooltip)
 						ZO_PreHookHandler(control, "OnMouseExit", HideTooltip)
 					end
+
 				end
 			end

@@ -426,10 +419,10 @@ local function createGui()
 				addedDropdownCharacterNames[characterName] = true
 				table.insert(validChoices, characterName)
 				table.insert(dropdownData["Tooltips"..dropdownName], string.format("%s%s", GetString(SI_FURC_STRING_RECIPESFORCHAR), characterName))
-			end
+			end
 		end

-		for i = 1, #validChoices do
+		for i = 1, #validChoices do
 			entry = comboBox:CreateItemEntry(validChoices[i], OnItemSelect)
 			comboBox:AddItem(entry)
 			if validChoices[i] == FurC.GetDropdownChoiceTextual(dropdownName) then
diff --git a/FurnitureCatalogue/FurCSettingsAdapter.lua b/FurnitureCatalogue/FurCSettingsAdapter.lua
index 655e9ab..9ac9c86 100644
--- a/FurnitureCatalogue/FurCSettingsAdapter.lua
+++ b/FurnitureCatalogue/FurCSettingsAdapter.lua
@@ -20,6 +20,7 @@ function FurC.GetHideRumourRecipes()
 end
 function FurC.SetHideRumourRecipes(value)
 	FurC.settings["hideDoubtfuls"] = value
+	FurC.updateDropdownData()
 	FurC.UpdateGui()
 end
 function FurC.GetHideCrownStoreItems()
@@ -27,6 +28,7 @@ function FurC.GetHideCrownStoreItems()
 end
 function FurC.SetHideCrownStoreItems(value)
 	FurC.settings["hideCrownstore"] = value
+	FurC.updateDropdownData()
 	FurC.UpdateGui()
 end
 function FurC.GetHideRumourRecipesEntry()
@@ -34,12 +36,16 @@ function FurC.GetHideRumourRecipesEntry()
 end
 function FurC.SetHideRumourRecipesEntry(value)
 	FurC.settings["hideRumourEntry"] = value
+	FurC.updateDropdownData()
+	FurC.UpdateGui()
 end
 function FurC.GetHideCrownStoreEntry()
 	return FurC.settings["hideCrownStoreEntry"]
 end
 function FurC.SetHideCrownStoreEntry(value)
 	FurC.settings["hideCrownStoreEntry"] = value
+	FurC.updateDropdownData()
+	FurC.UpdateGui()
 end


diff --git a/FurnitureCatalogue/FurnitureCatalogue.txt b/FurnitureCatalogue/FurnitureCatalogue.txt
index 91c185e..acdb5af 100644
--- a/FurnitureCatalogue/FurnitureCatalogue.txt
+++ b/FurnitureCatalogue/FurnitureCatalogue.txt
@@ -1,8 +1,9 @@
 ## Title: FurnitureCatalogue
 ## Author: manavortex
-## Version: 2.0.19
+## Version: 2.1.1
 ## APIVersion: 100021
 ## SavedVariables: FurnitureCatalogue_Settings
+## OptionalDependsOn: pChat

 libs\LibStub\LibStub.lua
 libs\LibAsync\LibAsync.lua
diff --git a/FurnitureCatalogue/data/Homestead/H_LuxuryFurnisher.lua b/FurnitureCatalogue/data/Homestead/H_LuxuryFurnisher.lua
index 7fec9e1..65eb1cc 100644
--- a/FurnitureCatalogue/data/Homestead/H_LuxuryFurnisher.lua
+++ b/FurnitureCatalogue/data/Homestead/H_LuxuryFurnisher.lua
@@ -2,6 +2,10 @@ FurC.LuxuryFurnisher = FurC.LuxuryFurnisher or {}

 FurC.LuxuryFurnisher[FURC_HOMESTEAD] = {

+	[120821] = {	-- Sigil Stendarr
+		itemPrice 	= 15000,
+		itemDate	= "2017-04-28",
+	},
 	[120823] = {	-- Sigil Stand
 		itemPrice 	= 15000,
 		itemDate	= "2017-04-28",
diff --git a/FurnitureCatalogue/data/LuxuryFurnisher.lua b/FurnitureCatalogue/data/LuxuryFurnisher.lua
index 13fba91..412b4fd 100644
--- a/FurnitureCatalogue/data/LuxuryFurnisher.lua
+++ b/FurnitureCatalogue/data/LuxuryFurnisher.lua
@@ -5,6 +5,20 @@ FurC.LuxuryFurnisher[FURC_CLOCKWORK] = {



+	[134469] = { -- Ayleid Constellation Stele, the Mage
+		itemPrice	= 20000,
+		itemDate	= "2018-02-30",
+	},
+	[134470] = { -- Ayleid Constellation Stele, Thief
+		itemPrice	= 20000,
+		itemDate	= "2018-02-30",
+	},
+	[134471] = { -- Ayleid Constellation Stele, Warrior
+		itemPrice	= 20000,
+		itemDate	= "2018-02-30",
+	},
+
+
 	[134466] = { -- Ayleid Sconce, Empty
 		itemPrice	= 4000,
 		itemDate	= "2018-01-27",
diff --git a/FurnitureCatalogue/locale/de.lua b/FurnitureCatalogue/locale/de.lua
index 91cf72a..80e30e6 100644
--- a/FurnitureCatalogue/locale/de.lua
+++ b/FurnitureCatalogue/locale/de.lua
@@ -33,9 +33,11 @@ local strings = {
 	SI_FURC_STRING_WASSOLDBY = 					"Was sold by <<1>> in <<2>> (<<3>>) <<4>>",
 	SI_FURC_STRING_WEEKEND_AROUND = 			"(around <<1>>)",

-	SI_FURC_STRING_ROLLIS = 					"Sold by |cd68957Rollis Hlaalu|r<<1>><<2>><<3>>",
-	SI_FURC_STRING_FAUSTINA = 					"Sold by |cd68957Faustina Curio|r<<1>><<2>><<3>>",
-	SI_FURC_STRING_FOR_VOUCHERS =				" for |ce5da40<<1>>|h vouchers",
+	SI_FURC_STRING_WRIT_VENDOR =				"Master Writ Vendor",
+	SI_FURC_STRING_WRIT_VENDOR_TT =				"Obtainable for Master Writs in your alliance's capital",
+	SI_FURC_STRING_ROLLIS = 					"Sold by |cd68957Rollis Hlaalu|r <<1>>",
+	SI_FURC_STRING_FAUSTINA = 					"Sold by |cd68957Faustina Curio|r <<1>>",
+	SI_FURC_STRING_FOR_VOUCHERS =				"for <<1>> vouchers",

 	SI_FURC_FESTIVAL_DROP = 					"can be acquired during <<1>> (<<2>>)",
 	SI_FURC_STRING_RECIPELEARNED = 				"Recipe learned: <<1>> <<2>> <<3>>",
@@ -57,7 +59,7 @@ local strings = {
 	SI_FURC_STRING_MENU_SCAN_FILES_TT = 		"Will run a full scan of the data in Furniture Catalogue's files",
 	SI_FURC_STRING_MENU_SCAN_CHAR_NAME = 		"Scan character",
 	SI_FURC_STRING_MENU_SCAN_CHAR_TT = 			"Will run a full scan of your known furniture recipes and update the database accordingly",
-	SI_FURC_STRING_MENU_DELETE_CHAR_NAME =	"delete character",
+	SI_FURC_STRING_MENU_DELETE_CHAR_NAME =		"delete character data",
 	SI_FURC_STRING_MENU_DELETE_CHAR_TT =		"Deletes all knowledge for this character from the database. \nCharacter will be scanned again the next time they log in with the add-on enabled. \n Character name won't show up in the dropdown if they don't know any recipes!",
 	SI_FURC_STRING_MENU_DELETE_CHAR_WARNING =	"Character knowledge will be wiped immediately",
 	SI_FURC_STRING_MENU_ENABLE_SHOPPINGLIST =	"Enable integration?",
diff --git a/FurnitureCatalogue/locale/en.lua b/FurnitureCatalogue/locale/en.lua
index 1dc91d6..862bc56 100644
--- a/FurnitureCatalogue/locale/en.lua
+++ b/FurnitureCatalogue/locale/en.lua
@@ -56,9 +56,11 @@ local strings = {
 	SI_FURC_STRING_WASSOLDBY = 					"Was sold by <<1>> in <<2>> (<<3>>) <<4>>",
 	SI_FURC_STRING_WEEKEND_AROUND = 			"(around <<1>>)",

-	SI_FURC_STRING_ROLLIS = 					"Sold by |cd68957Rollis Hlaalu|r<<1>><<2>><<3>>",
-	SI_FURC_STRING_FAUSTINA = 					"Sold by |cd68957Faustina Curio|r<<1>><<2>><<3>>",
-	SI_FURC_STRING_FOR_VOUCHERS =				" for |ce5da40<<1>>|h vouchers",
+	SI_FURC_STRING_WRIT_VENDOR =				"Master Writ Vendor",
+	SI_FURC_STRING_WRIT_VENDOR_TT =				"Obtainable for Master Writs in your alliance's capital",
+	SI_FURC_STRING_ROLLIS = 					"Sold by |cd68957Rollis Hlaalu|r <<1>>",
+	SI_FURC_STRING_FAUSTINA = 					"Sold by |cd68957Faustina Curio|r <<1>>",
+	SI_FURC_STRING_FOR_VOUCHERS =				"for <<1>> vouchers",

 	SI_FURC_FESTIVAL_DROP = 					"can be acquired during <<1>> (<<2>>)",
 	SI_FURC_STRING_RECIPELEARNED = 				"Recipe learned: <<1>> <<2>> <<3>>",
@@ -79,7 +81,7 @@ local strings = {
 	SI_FURC_STRING_MENU_SCAN_FILES_TT = 		"Will run a full scan of the data in Furniture Catalogue's files",
 	SI_FURC_STRING_MENU_SCAN_CHAR_NAME = 		"Scan character",
 	SI_FURC_STRING_MENU_SCAN_CHAR_TT = 			"Will run a full scan of your known furniture recipes and update the database accordingly",
-	SI_FURC_STRING_MENU_DELETE_CHAR_NAME =	"delete character",
+	SI_FURC_STRING_MENU_DELETE_CHAR_NAME =		"delete character",
 	SI_FURC_STRING_MENU_DELETE_CHAR_TT =		"Deletes all knowledge for this character from the database. \nCharacter will be scanned again the next time they log in with the add-on enabled. \n Character name won't show up in the dropdown if they don't know any recipes!",
 	SI_FURC_STRING_MENU_DELETE_CHAR_WARNING =	"Character knowledge will be wiped immediately",
 	SI_FURC_STRING_MENU_ENABLE_SHOPPINGLIST =	"Enable integration?",
diff --git a/FurnitureCatalogue/locale/fr.lua b/FurnitureCatalogue/locale/fr.lua
index 188c292..09c2df4 100644
--- a/FurnitureCatalogue/locale/fr.lua
+++ b/FurnitureCatalogue/locale/fr.lua
@@ -33,9 +33,12 @@ local strings = {
 	SI_FURC_STRING_WASSOLDBY = 					"Was sold by <<1>> in <<2>> (<<3>>) <<4>>",
 	SI_FURC_STRING_WEEKEND_AROUND = 			"(around <<1>>)",

-	SI_FURC_STRING_ROLLIS = 					"Sold by |cd68957Rollis Hlaalu|r<<1>><<2>><<3>>",
-	SI_FURC_STRING_FAUSTINA = 					"Sold by |cd68957Faustina Curio|r<<1>><<2>><<3>>",
-	SI_FURC_STRING_FOR_VOUCHERS =				" for |ce5da40<<1>>|h vouchers",
+	SI_FURC_STRING_WRIT_VENDOR =				"Master Writ Vendor",
+	SI_FURC_STRING_WRIT_VENDOR_TT =				"Obtainable for Master Writs in your alliance's capital",
+
+	SI_FURC_STRING_ROLLIS = 					"Sold by |cd68957Rollis Hlaalu|r <<1>>",
+	SI_FURC_STRING_FAUSTINA = 					"Sold by |cd68957Faustina Curio|r <<1>>",
+	SI_FURC_STRING_FOR_VOUCHERS =				"for <<1>> vouchers",

 	SI_FURC_FESTIVAL_DROP = 					"can be acquired during <<1>> (<<2>>)",
 	SI_FURC_STRING_RECIPELEARNED = 				"Recipe learned: <<1>> <<2>> <<3>>",
diff --git a/FurnitureCatalogue/locale/jp.lua b/FurnitureCatalogue/locale/jp.lua
index 91cf72a..45f4654 100644
--- a/FurnitureCatalogue/locale/jp.lua
+++ b/FurnitureCatalogue/locale/jp.lua
@@ -33,9 +33,12 @@ local strings = {
 	SI_FURC_STRING_WASSOLDBY = 					"Was sold by <<1>> in <<2>> (<<3>>) <<4>>",
 	SI_FURC_STRING_WEEKEND_AROUND = 			"(around <<1>>)",

-	SI_FURC_STRING_ROLLIS = 					"Sold by |cd68957Rollis Hlaalu|r<<1>><<2>><<3>>",
-	SI_FURC_STRING_FAUSTINA = 					"Sold by |cd68957Faustina Curio|r<<1>><<2>><<3>>",
-	SI_FURC_STRING_FOR_VOUCHERS =				" for |ce5da40<<1>>|h vouchers",
+	SI_FURC_STRING_WRIT_VENDOR =				"Master Writ Vendor",
+	SI_FURC_STRING_WRIT_VENDOR_TT =				"Obtainable for Master Writs in your alliance's capital",
+
+	SI_FURC_STRING_ROLLIS = 					"Sold by |cd68957Rollis Hlaalu|r <<1>>",
+	SI_FURC_STRING_FAUSTINA = 					"Sold by |cd68957Faustina Curio|r <<1>>",
+	SI_FURC_STRING_FOR_VOUCHERS =				"for <<1>> vouchers",

 	SI_FURC_FESTIVAL_DROP = 					"can be acquired during <<1>> (<<2>>)",
 	SI_FURC_STRING_RECIPELEARNED = 				"Recipe learned: <<1>> <<2>> <<3>>",
diff --git a/FurnitureCatalogue/locale/ru.lua b/FurnitureCatalogue/locale/ru.lua
index 91cf72a..45f4654 100644
--- a/FurnitureCatalogue/locale/ru.lua
+++ b/FurnitureCatalogue/locale/ru.lua
@@ -33,9 +33,12 @@ local strings = {
 	SI_FURC_STRING_WASSOLDBY = 					"Was sold by <<1>> in <<2>> (<<3>>) <<4>>",
 	SI_FURC_STRING_WEEKEND_AROUND = 			"(around <<1>>)",

-	SI_FURC_STRING_ROLLIS = 					"Sold by |cd68957Rollis Hlaalu|r<<1>><<2>><<3>>",
-	SI_FURC_STRING_FAUSTINA = 					"Sold by |cd68957Faustina Curio|r<<1>><<2>><<3>>",
-	SI_FURC_STRING_FOR_VOUCHERS =				" for |ce5da40<<1>>|h vouchers",
+	SI_FURC_STRING_WRIT_VENDOR =				"Master Writ Vendor",
+	SI_FURC_STRING_WRIT_VENDOR_TT =				"Obtainable for Master Writs in your alliance's capital",
+
+	SI_FURC_STRING_ROLLIS = 					"Sold by |cd68957Rollis Hlaalu|r <<1>>",
+	SI_FURC_STRING_FAUSTINA = 					"Sold by |cd68957Faustina Curio|r <<1>>",
+	SI_FURC_STRING_FOR_VOUCHERS =				"for <<1>> vouchers",

 	SI_FURC_FESTIVAL_DROP = 					"can be acquired during <<1>> (<<2>>)",
 	SI_FURC_STRING_RECIPELEARNED = 				"Recipe learned: <<1>> <<2>> <<3>>",
diff --git a/FurnitureCatalogue/startup.lua b/FurnitureCatalogue/startup.lua
index 8bbd1eb..f4c05a3 100644
--- a/FurnitureCatalogue/startup.lua
+++ b/FurnitureCatalogue/startup.lua
@@ -95,57 +95,100 @@ FURC_RUMOUR 			= FURC_CROWN +1
 FURC_LUXURY 			= FURC_RUMOUR +1
 FURC_OTHER 				= FURC_LUXURY +1
 FURC_ROLLIS 			= FURC_OTHER +1
-FURC_DROP 				= FURC_ROLLIS +1
+FURC_WRIT_VENDOR 		= FURC_ROLLIS +1
+FURC_DROP 				= FURC_WRIT_VENDOR +1
 FURC_JUSTICE 			= FURC_DROP +1
 FURC_FISHING 			= FURC_JUSTICE +1
 FURC_GUILDSTORE 		= FURC_FISHING +1
 FURC_FESTIVAL_DROP 		= FURC_GUILDSTORE +1

-
+local function updateSourceIndices()
+	FURC_CROWN 				= FURC_PVP + tonumber((FurC.GetHideCrownStoreEntry() and 0) or 1)
+	FURC_RUMOUR 			= FURC_CROWN + tonumber((FurC.GetHideRumourRecipesEntry() and 0) or 1)
+	FURC_LUXURY 			= FURC_RUMOUR + tonumber((FurC.GetMergeLuxuryAndSales() and 0) or 1)
+	FURC_OTHER 				= FURC_LUXURY +1
+	FURC_ROLLIS 			= FURC_OTHER +1
+	FURC_WRIT_VENDOR 		= FURC_ROLLIS +1
+	FURC_DROP 				= FURC_WRIT_VENDOR +1
+	FURC_JUSTICE 			= FURC_DROP +1
+	FURC_FISHING 			= FURC_JUSTICE +1
+	FURC_GUILDSTORE 		= FURC_FISHING +1
+	FURC_FESTIVAL_DROP 		= FURC_GUILDSTORE +1
+end
+FurC.updateSourceIndices = updateSourceIndices

 FURC_EMPTY_STRING 		= ""
+local sourceIndicesKeys = {}
+local function getSourceIndicesKeys()
+	updateSourceIndices()
+	sourceIndicesKeys[FURC_NONE] 						= "off"
+	sourceIndicesKeys[FURC_FAVE] 						= "favorites"
+	sourceIndicesKeys[FURC_CRAFTING] 					= "craft_all"
+	sourceIndicesKeys[FURC_CRAFTING_KNOWN] 				= "craft_known"
+	sourceIndicesKeys[FURC_CRAFTING_UNKNOWN] 			= "craft_unknown"
+	sourceIndicesKeys[FURC_VENDOR] 						= "purch_gold"
+	sourceIndicesKeys[FURC_PVP] 						= "purch_ap"
+	if not FurC.GetHideCrownStoreEntry() then
+		sourceIndicesKeys[FURC_CROWN] 					= "crownstore"
+	end
+	sourceIndicesKeys[FURC_WRIT_VENDOR] 				= "writ_vendor"
+	if not FurC.GetHideRumourRecipesEntry() then
+		sourceIndicesKeys[FURC_RUMOUR] 					= "rumour"
+	end
+	if not FurC.GetMergeLuxuryAndSales() then
+		sourceIndicesKeys[FURC_LUXURY] 					= "luxury"
+	end
+	sourceIndicesKeys[FURC_OTHER] 						= "other"
+
+
+
+	return sourceIndicesKeys
+end


-local sourceIndicesKeys = {
-	[FURC_NONE] 						= "off",
-	[FURC_FAVE] 						= "favorites",
-	[FURC_CRAFTING] 					= "craft_all",
-	[FURC_CRAFTING_KNOWN] 				= "craft_known",
-	[FURC_CRAFTING_UNKNOWN] 			= "craft_unknown",
-	[FURC_VENDOR] 						= "purch_gold",
-	[FURC_PVP] 							= "purch_ap",
-	[FURC_CROWN] 						= "crownstore",
-	[FURC_RUMOUR] 						= "rumour",
-	[FURC_LUXURY] 						= "luxury",
-	[FURC_OTHER] 						= "other"
-}
+local choicesSource = {}
+local function getChoicesSource()
+	choicesSource[FURC_NONE]						= GetString(SI_FURC_NONE)
+	choicesSource[FURC_FAVE] 						= GetString(SI_FURC_FAVE)
+	choicesSource[FURC_CRAFTING] 					= GetString(SI_FURC_CRAFTING)
+	choicesSource[FURC_CRAFTING_KNOWN] 				= GetString(SI_FURC_CRAFTING_KNOWN)
+	choicesSource[FURC_CRAFTING_UNKNOWN] 			= GetString(SI_FURC_CRAFTING_UNKNOWN)
+	choicesSource[FURC_VENDOR] 						= GetString(SI_FURC_VENDOR)
+	choicesSource[FURC_PVP] 						= GetString(SI_FURC_PVP)
+	choicesSource[FURC_WRIT_VENDOR] 				= GetString(SI_FURC_STRING_WRIT_VENDOR)
+	if not FurC.GetHideCrownStoreEntry() then
+		choicesSource[FURC_CROWN] 					= GetString(SI_FURC_CROWN)
+	end
+	if not FurC.GetHideRumourRecipesEntry() then
+		choicesSource[FURC_RUMOUR] 					= GetString(SI_FURC_LUXURY)
+	end
+	if not FurC.GetMergeLuxuryAndSales() then
+		choicesSource[FURC_LUXURY] 					= GetString(SI_FURC_OTHER)
+	end
+	return choicesSource
+end

-local choicesSource = {
-	[FURC_NONE]							= GetString(SI_FURC_NONE),
-	[FURC_FAVE] 						= GetString(SI_FURC_FAVE),
-	[FURC_CRAFTING] 					= GetString(SI_FURC_CRAFTING),
-	[FURC_CRAFTING_KNOWN] 				= GetString(SI_FURC_CRAFTING_KNOWN),
-	[FURC_CRAFTING_UNKNOWN] 			= GetString(SI_FURC_CRAFTING_UNKNOWN),
-	[FURC_VENDOR] 						= GetString(SI_FURC_VENDOR),
-	[FURC_PVP] 							= GetString(SI_FURC_PVP),
-	[FURC_CROWN] 						= GetString(SI_FURC_CROWN),
-	[FURC_RUMOUR] 						= GetString(SI_FURC_RUMOUR),
-	[FURC_LUXURY] 						= GetString(SI_FURC_LUXURY),
-	[FURC_OTHER] 						= GetString(SI_FURC_OTHER),
-}
-local tooltipsSource = {
-	[FURC_NONE]							= GetString(SI_FURC_NONE_TT),
-	[FURC_FAVE] 						= GetString(SI_FURC_FAVE_TT),
-	[FURC_CRAFTING] 					= GetString(SI_FURC_CRAFTING_TT),
-	[FURC_CRAFTING_KNOWN] 				= GetString(SI_FURC_CRAFTING_KNOWN_TT),
-	[FURC_CRAFTING_UNKNOWN] 			= GetString(SI_FURC_CRAFTING_UNKNOWN_TT),
-	[FURC_VENDOR] 						= GetString(SI_FURC_VENDOR_TT),
-	[FURC_PVP] 							= GetString(SI_FURC_PVP_TT),
-	[FURC_CROWN] 						= GetString(SI_FURC_CROWN_TT),
-	[FURC_RUMOUR] 						= GetString(SI_FURC_RUMOUR_TT),
-	[FURC_LUXURY] 						= GetString(SI_FURC_LUXURY_TT),
-	[FURC_OTHER] 						= GetString(SI_FURC_OTHER_TT),
-}
+local tooltipsSource = {}
+local function getTooltipsSource()
+	tooltipsSource[FURC_NONE]						= GetString(SI_FURC_NONE_TT)
+	tooltipsSource[FURC_FAVE] 						= GetString(SI_FURC_FAVE_TT)
+	tooltipsSource[FURC_CRAFTING] 					= GetString(SI_FURC_CRAFTING_TT)
+	tooltipsSource[FURC_CRAFTING_KNOWN] 			= GetString(SI_FURC_CRAFTING_KNOWN_TT)
+	tooltipsSource[FURC_CRAFTING_UNKNOWN] 			= GetString(SI_FURC_CRAFTING_UNKNOWN_TT)
+	tooltipsSource[FURC_VENDOR] 					= GetString(SI_FURC_VENDOR_TT)
+	tooltipsSource[FURC_PVP] 						= GetString(SI_FURC_PVP_TT)
+	tooltipsSource[FURC_WRIT_VENDOR] 				= GetString(SI_FURC_STRING_WRIT_VENDOR_TT)
+	if not FurC.GetHideCrownStoreEntry() then
+		tooltipsSource[FURC_CROWN] 					= GetString(SI_FURC_CROWN_TT)
+	end
+	if not FurC.GetHideRumourRecipesEntry() then
+		tooltipsSource[FURC_RUMOUR] 				= GetString(SI_FURC_LUXURY_TT)
+	end
+	if not FurC.GetMergeLuxuryAndSales() then
+		tooltipsSource[FURC_LUXURY] 				= GetString(SI_FURC_OTHER_TT)
+	end
+	return tooltipsSource
+end

 FurnitureCatalogue.DropdownData = {
 	ChoicesVersion	= {
@@ -177,7 +220,22 @@ FurnitureCatalogue.DropdownData = {
 }


+local function updateDropdownData()
+	updateSourceIndices()
+	FurnitureCatalogue.DropdownData.ChoicesSource  = getChoicesSource()
+	FurnitureCatalogue.DropdownData.TooltipsSource = getTooltipsSource()
+end
+FurnitureCatalogue.updateDropdownData = updateDropdownData

+local function setupSourceDropdown()
+	updateDropdownData()
+	sourceIndices = {}
+
+	for idx, key in pairs(getSourceIndicesKeys()) do
+		sourceIndices[key] = idx
+	end
+	FurC.SourceIndices = sourceIndices
+end

 function FurnitureCatalogue.DebugOut(output, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10)
 	if not FurC.GetEnableDebug() then return end
@@ -208,27 +266,14 @@ function FurnitureCatalogue.DebugOut(output, a1, a2, a3, a4, a5, a6, a7, a8, a9,
 	end
 end

-local function p(output, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10)
-	FurC.DebugOut(output, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10)
+local function p(...)
+	FurC.DebugOut(...)
 end

 function whoami()
 	return FurnitureCatalogue.CharacterName
 end

-local function setupSourceDropdown()
-
-
-   FurnitureCatalogue.DropdownData.ChoicesSource  = choicesSource
-   FurnitureCatalogue.DropdownData.TooltipsSource = tooltipsSource
-
-	sourceIndices = {}
-
-	for idx, key in pairs(sourceIndicesKeys) do
-		sourceIndices[key] = idx
-	end
-	FurC.SourceIndices = sourceIndices
-end

 function FurnitureCatalogue_ToggleDev(arg)
 	if arg == 0 or arg == "true" then
@@ -256,7 +301,7 @@ function FurnitureCatalogue_Initialize(eventCode, addOnName)
 	FurC.settings.filterQuality 				= {}
 	setupSourceDropdown()

-	FurnitureCatalogue.CreateSettings(FurnitureCatalogue.settings, defaults, FurnitureCatalogue)
+	FurnitureCatalogue.CreateSettings(FurnitureCatalogue.settings, defaults, FurnitureCatalogue)

 	FurnitureCatalogue.CharacterName = zo_strformat(GetUnitName('player'))

@@ -277,8 +322,7 @@ function FurnitureCatalogue_Initialize(eventCode, addOnName)
 	FurnitureCatalogue.ScanRecipes(scanFiles, not FurC.GetSkipInitialScan())
 	FurC.settings.databaseVersion 	= FurC.version
 	SLASH_COMMANDS["/fur"] 			= FurnitureCatalogue_Toggle
-
-
+
 	FurC.SetFilter(true)
 	EVENT_MANAGER:UnregisterForEvent("FurnitureCatalogue", EVENT_ADD_ON_LOADED)