Download
(11 Kb)
Download
Updated: 12/22/18 04:37 PM
Compatibility:
Elsweyr (5.0.5)
Wrathstone (4.3)
Murkmire (4.2)
Wolfhunter (4.1)
Summerset (4.0)
Updated:12/22/18 04:37 PM
Created:05/04/14 10:13 PM
Monthly downloads:99
Total downloads:54,841
Favorites:86
MD5:
LibFilters-2.0  Popular! (More than 5000 hits)
Version: 2.0r3.9
by: Randactyl, Baertram, ingeniousclown
LibFilters-2.0
Depends on the following libraries:
LibStub


This librray is not supported anymore. If you are still using this in your addon switch to LibFilters 3.0 NOW!

Attention - PLEASE READ
LibFilters-2.0 will be changing soon to LibFilters-3.0.
The needed library LibStub will be removed!
Please update your addons to NOT use LibFilters-2.0 anymore, instead use LibFilters-3.0!
Change your addons manifest TXT file to ##DependsOn: LibFilters-3.0 and be sure to update the call of your addon to LibFilters-3.0 global variable LibFilters3 instead of the old one (or LiBStub instanced one)!


Welcome to LibFilters-2.0!

The goal of LibFilters is to provide an easy interface for applying custom sorting rules to different lists of items found in the game. At the moment, you can filter the inventory, bank withdrawal, bank deposits, guild bank withdrawal, guild bank deposits, vendor buying, vendor selling, buyback, repair, guild store selling, mail sending, trading, smithing (refinement, deconstruction, improvement, research), alchemy creation, enchanting creation, enchanting extraction, fence selling, fence laundering, the craftbag, and the quickslot inventory.

To use LibFilters in your addon, you need to copy the LibStub (if you don't already have it from elsewhere) and LibFilters-2.0 folders from this directory to your addon's directory. In your manifest you need to load these files:

path\to\LibStub\LibStub.lua
path\to\LibFilters-2.0\LibFilters-2.0.lua
path\to\LibFilters-2.0\helper.lua
In your addon, you need to invoke LibFilters with LibStub and then initialize LibFilters:

local LibFilters = LibStub("LibFilters-2.0")
LibFilters:InitializeLibFilters()

This is the list of available filterType constants:
Code:
LF_INVENTORY                = 1
LF_BANK_WITHDRAW            = 2
LF_BANK_DEPOSIT             = 3
LF_GUILDBANK_WITHDRAW       = 4
LF_GUILDBANK_DEPOSIT        = 5
LF_VENDOR_BUY               = 6
LF_VENDOR_SELL              = 7
LF_VENDOR_BUYBACK           = 8
LF_VENDOR_REPAIR            = 9
LF_GUILDSTORE_BROWSE        = 10
LF_GUILDSTORE_SELL          = 11
LF_MAIL_SEND                = 12
LF_TRADE                    = 13
LF_SMITHING_REFINE          = 14
LF_SMITHING_CREATION        = 15
LF_SMITHING_DECONSTRUCT     = 16
LF_SMITHING_IMPROVEMENT     = 17
LF_SMITHING_RESEARCH        = 18
LF_ALCHEMY_CREATION         = 19
LF_ENCHANTING_CREATION      = 20
LF_ENCHANTING_EXTRACTION    = 21
LF_PROVISIONING_COOK        = 22
LF_PROVISIONING_BREW        = 23
LF_FENCE_SELL               = 24
LF_FENCE_LAUNDER            = 25
LF_CRAFTBAG                 = 26
LF_QUICKSLOT                = 27
LF_RETRAIT                  = 28
LF_HOUSE_BANK_WITHDRAW      = 29
LF_HOUSE_BANK_DEPOSIT       = 30
LF_JEWELRY_REFINE           = 31
LF_JEWELRY_CREATION         = 32
LF_JEWELRY_DECONSTRUCT      = 33
LF_JEWELRY_IMPROVEMENT      = 34
LF_JEWELRY_RESEARCH         = 35
LF_SMITHING_RESEARCH_DIALOG = 36
LF_JEWELRY_RESEARCH_DIALOG  = 37
LF_FILTER_MAX               = LF_JEWELRY_RESEARCH_DIALOG
The filterTypes will pass information from the bag&slotInde xor the inventorySlot to a filterCallback function registered to that filterType. For the slots, these are the keys available in the passed table:

Code:
inventory slot: age, bagId, condition, dataEntry, equipType, filterData,
  iconFile, inventory, isJunk, isPlayerLocked, itemInstanceId, itemType,
  launderPrice, locked, meetsUsageRequirement, name, quality, rawName,
  requiredLevel, searchData, sellPrice, slotControl, slotIndex,
  specializedItemType, stackCount, stackLaunderPrice, statValue, stolen,
  uniqueId

store slot: currencyQuantity1, currencyQuantity2, currencyType1,
  currencyType2, dataEntry, entryType, filterData, icon, isUnique,
  meetsRequirementsToBuy, meetsRequirementsToEquip, name, price, quality,
  questNameColor, sellPrice, slotIndex, stack, stackBuyPrice,
  stackBuyPriceCurrency1, stackBuyPriceCurrency2, statValue

buyback slot: icon, meetsRequirements, name, price, quality, slotIndex,
  stack, stackBuyPrice

repair slot: bagId, condition, dataEntry, icon, name, quality, repairCost,
  slotIndex, stackCount

quickslot slot: age, bagId, filterData, iconFile, locked,
  meetsUsageRequirement, name, quality, sellPrice, slotIndex, slotType,
  stackCount, stackSellPrice, stolen
LibFilters has the following functions available:

Code:
LibFilters:GetMaxFilter()
Returns the maximum filterType available

LibFilters:HookAdditionalFilter(filterType, inventory)
FilterType is one of the provided "LF_" prefixed constants. Inventory needs
  to be some construct which can make use of an additionalFilter to
  determine if an item is shown or not. Look in
  LibFilters:InitializeLibFilters and/or helper.lua for examples.

LibFilters:InitializeLibFilters()
Must be called after you've invoked LibFilters-2.0 with LibStub

LibFilters:GetCurrentFilterTypeForInventory(inventoryType)
Returns the filterType currently affecting the provided inventoryType.

LibFilters:GetFilterCallback(filterTag, filterType)
filterTag is the unique string that identifies your filter. filterType is
  the provided "LF_" prefixed constants your filter was registered for.
  Returns the filterCallback registered for the provided filterTag and
  filterType; returns nil otherwise.

LibFilters:IsFilterRegistered(filterTag, filterType)
filterTag is the unique string that identifies your filter. filterType is
  the provided "LF_" prefixed constants your filter was registered for.
  Returns true if there is a filter registered with the provided filterTag.
  Returns false if there is not a filter registered with the provided
  filterTag. filterType is optional. If a filterType is provided, will only
  return true if a filter is registered to that filterType under the
  provided filterTag.

LibFilters:RegisterFilter(filterTag, filterType, filterCallback)
filterTag is a unique string to identify your filter. filterType is one of
  the provided "LF_" prefixed constants. filterCallback is a function which
  accepts either one or two arguments; this is determined by the filterType.
  filterCallback should return true if an item is to be shown.
  filterCallback should return false if an item should not be shown.

LibFilters:RequestUpdate(filterType)
filterType is one of the provided "LF_" prefixed constants. Runs the updater
  appropriate for the provided filter type to pick up any filtering changes.

LibFilters:UnregisterFilter(filterTag, filterType)
filterTag is the unique string that identifies your filter. filterType the
  provided "LF_" prefixed constants your filter was registered for.
  filterType is optional. If a filterType is not provided, all filters
  registered with the provided filterTag will be unregistered.
v2.0 r3.9 - Baertram
-Fixed filters at crafting research popup dialog. The smithing research updater function will not be called for other ZO_ListDialog popups (enchant, charge, repair, ...) anymore.

v2.0 r3.8 - Baertram
- Added filters at crafting research popup dialog:
LF_SMITHING_RESEARCH_DIALOG = 36
LF_JEWELRY_RESEARCH_DIALOG = 37
LF_FILTER_MAX = LF_JEWELRY_RESEARCH_DIALOG
- updated minimum API version to 100025 (ESO 4.2 Murkmire)

v2.0 r3.7 - Baertram
- Fixed filters at jewelry crafting refine panel
- updated minimum API version to 100024 (ESO 4.1, Wolfhunter)

v2.0 r3.6 - Baertram
- added support for jewelry crafting
- updated minimum API version to 100023 (ESO 4.0, Summerset)

v2.0 r3.5 - Baertram
- added support for house bank
- updated minimum API version to 100022 (ESO 3.3.x, Dragon Bones)

v2.0 r3.3 - Randactyl
- added support for retrait stations with LF_RETRAIT
- updated research helper rules for locked and retraited items
- updated minimum API version to 100021 (ESO 3.2.x, Clockwork City)

v2.0 r3.2 - Randactyl, sirinsidiator
- fixed filtering for refining, deconstructing, and improvement
- updated helper function for filtering research

v2.0 r3.1 - Randactyl
- fixed filtering for alchemy, enchanting, refining, deconstructing, and improvement
- updated minimum API version to 100020 (ESO 3.1.x, Horns of the Reach)

v2.0 r3.0 - Randactyl, Baertram
- disabled test file
- fixed handling of Enchantment additional filter
- support API version 100018 (ESO 2.7)
- add versioning to helper functions (r3.0 is incompatible with previous revisions due to this change)
- known issue: see https://github.com/Randactyl/LibFilters-2.0/issues/3

v2.0r2.3 - merlight, votan, sirinsidiator
- SafeUpdateList optimization

v2.0r2.2 - Randactyl
- extended safe list update to all variations of object:UpdateList(...)

v2.0r2.1 - Randactyl, Sirinsidiator, Baertram
- fixed insecure "UseItem" error which occurred in specific situations. See http://www.esoui.com/forums/showpost.php?p=28829&postcount=9

v2.0r2 - Randactyl
- see description or README.md

v1.0r16.1 - Baertram
- corrected alchemy updater

v1.0r16 - Randactyl
- added LAF_ALCHEMY
- removed safety check before hooking BACKPACK_GUILD_BANK_LAYOUT_FRAGMENT

v1.0r15.2 - Randactyl
- fixed broken guild bank filters by hooking a new inventory fragment added in 2.1: BACKPACK_GUILD_BANK_LAYOUT_FRAGMENT

v1.0r15.1 - Randactyl
- reverted previous forceUpdate change
- addons are now responsible for calling RequestInventoryUpdate(filterType). See readme for details

v1.0r15 - Circonian
- added new forceUpdate parameter to RegisterFilter and UnregisterFilter. See readme for details

v1.0r14.1 - Randactyl
- reduced inventory update defer time to 10ms from 40ms
- made inventory update request function local (you shouldn't be using it right now anyway)

v1.0r14 - Randactyl
- added LAF_FENCE and LAF_LAUNDER for filtering at the new Fence NPC scenes
- removed LAF_ENCHANTING as an alias of LAF_ENCHANTING_EXTRACTION

v1.0r13 - Randactyl
- removed "version" variable that was mistakenly left in after debugging
- exposed internal function as "libFilters:HookAdditionalFilter(filterType, inventory)" in order to improve compatibility between libFilters addons and addons that create custom inventory fragments. (Thanks for the request, Baertram)

v1.0r12 - Randactyl
- Changed version to 12 from 11.2 to get around LibStub limitation. No code changes.

v1.0r11.2 - merlight and Baertram
- revised GetCurrentLAF() to be more reliable
- added LAF_IMPROVEMENT for completeness

v1.0r11 - merlight and Randactyl
- more polish from merlight
-> registering and unregistering filters now works very similarly to registering and unregistering for events.
-> replaced LAF_ENCHANTING and LAF_ENCHANTING2 with LAF_ENCHANTING_EXTRACTION and LAF_ENCHANTING_CREATION, respectively. LAF_ENCHANTING is included for this revision as an alias of LAF_ENCHANTING_EXTRACTION in order to keep a bit of backwards compatibility without breaking everything.
- added function libFilters:GetCurrentLAF() so you can access exactly which LAF is currently being used and apply filters appropriately (used in Advanced Filters)

v1.0r10 - merlight and Baertram
- major revision from merlight
- addition of second enchanting filter by Baertram

Huge thanks to all of the work done by Baertram, circonian, and merlight for this version of the library. You guys rock

v1.0r9 - Randactyl
- include update provided by eShinobu

v1.0r8.1 - Randactyl
- Fixed enchanting support so it does not touch the creation panel.

v1.0r8 - Randactyl
- Added filtering for enchanting extraction. Another special case had to be added because extraction doesn't follow the exact same pattern as normal deconstruction.


v1.0r7
-More init logic fixes. Everything should finally be sorted out thanks to ckaotik.
-Error message when registering filters is now much less misleading.


v1.0r6
-Another fix to the initialization logic. As a result, you NO LONGER need to call "libFilters:InitializeLibFilters()" in your add-on loaded function; libFilters is now lazily initialized.


v1.0r5
-Fixed the initialization logic. As a result, you now need to call "libFilters:InitializeLibFilters()" in your add-on loaded function.
-Updated the API version, just in case.


v1.0r4
-Minor change to how the "already registered" error message shows up. Should no longer complain about duplicates from the init.


v1.0r3
-Changed the version format
-Better support for multiple different versions existing; this should have also fixed the errors that popped up sometimes on a reload when you have multiple addons using libFilters.
-Shop filters should be a little more reliable
-Fixed libFilters:BagIdToLAF


v1.0.0b
-Fix for nil value error.


v1.0.0
-Initial release
Archived Files (33)
File Name
Version
Size
Uploader
Date
2.0r3.8
11kB
Baertram
12/15/18 04:45 AM
2.0 r3.6
10kB
Randactyl
05/21/18 11:59 AM
2.0 r3.5
10kB
Randactyl
03/31/18 12:06 PM
2.0 r3.3
10kB
Randactyl
11/18/17 05:22 PM
2.0 r3.2
10kB
Randactyl
08/16/17 05:41 PM
2.0 r3.1
10kB
Randactyl
08/14/17 01:12 PM
2.0 r3.0
9kB
Randactyl
01/20/17 02:54 PM
2.0 r2.3
9kB
Randactyl
11/08/16 11:43 AM
2.0 r2.2
9kB
Randactyl
11/07/16 01:25 PM
2.0 r2.1
9kB
Randactyl
11/07/16 11:15 AM
2.0 r2
9kB
Randactyl
07/28/16 05:56 PM
1.0r16.1
5kB
Randactyl
01/18/16 08:12 PM
1.0r16
5kB
Randactyl
11/02/15 03:41 PM
1.0r15.2
5kB
Randactyl
08/30/15 12:48 PM
1.0r15.1
5kB
Randactyl
07/17/15 02:37 PM
1.0r15
5kB
Randactyl
07/16/15 06:25 PM
1.0r14.1
5kB
Randactyl
07/16/15 01:45 PM
1.0r14
4kB
Randactyl
03/06/15 04:24 PM
1.0r13
4kB
Randactyl
01/07/15 02:35 PM
1.0r12
4kB
Randactyl
12/03/14 05:28 PM
1.0r11.2
4kB
Randactyl
12/01/14 12:31 AM
1.0r11
4kB
Randactyl
11/30/14 12:20 AM
1.0r10
5kB
Randactyl
11/26/14 04:15 PM
1.0r9
4kB
Randactyl
11/03/14 10:22 AM
1.0r8.1
4kB
Randactyl
09/02/14 11:22 AM
1.0r8
4kB
Randactyl
08/15/14 12:31 PM
1.0r7
4kB
ingeniousclown
06/07/14 11:25 AM
1.0r6
47kB
ingeniousclown
06/06/14 08:24 PM
1.0r5
4kB
ingeniousclown
06/01/14 02:22 PM
1.0r4
4kB
ingeniousclown
05/18/14 02:38 PM
1.0r3
4kB
ingeniousclown
05/08/14 12:08 AM
1.0.0b
4kB
ingeniousclown
05/04/14 11:23 PM
1.0.0
4kB
ingeniousclown
05/04/14 10:13 PM


Post A Reply Comment Options
Unread 08/30/19, 03:08 PM  
Baertram
Super Moderator
 
Baertram's Avatar
ESOUI Super Moderator
AddOn Author - Click to view AddOns

Forum posts: 4903
File comments: 5974
Uploads: 78
This librray is not supported anymore. If you are still using this in your addon switch to LibFilters 3.0 NOW!
Report comment to moderator  
Reply With Quote
Unread 11/30/18, 01:43 PM  
Baertram
Super Moderator
 
Baertram's Avatar
ESOUI Super Moderator
AddOn Author - Click to view AddOns

Forum posts: 4903
File comments: 5974
Uploads: 78
LibFilters v2.0 r3.8

-Removed some unneeded variables
-Added support for research popup dialog filters:
LF_SMITHING_RESEARCH_DIALOG
LF_JEWELRY_RESEARCH_DIALOG

Download here: LibFilters (unofficial) v2.0 r3.8

Attention:
Rename the folder "LibFilters-2.0-Baertram-libFilters-2.0-v3.8" in the ZIP file to "LibFilters-2.0"!
Last edited by Baertram : 11/30/18 at 01:45 PM.
Report comment to moderator  
Reply With Quote
Unread 11/30/18, 01:39 PM  
Baertram
Super Moderator
 
Baertram's Avatar
ESOUI Super Moderator
AddOn Author - Click to view AddOns

Forum posts: 4903
File comments: 5974
Uploads: 78
Re: This Lib prevents me from depositing to Guild Bank

Originally Posted by Kestrelator
Both the file downloaded via Minion, and the r3.6 version cited a couple comments down--when enabled, I can no longer deposit items to my Guild Banks. FCO ItemSaver won't work without this lib.
So maybe check the FCOItemSaver settings then and "Disable" the guild bank deposit protection?
It only protects you from depositting items into a guild bank where you got no rights to withdraw the items from again.
If you don't need this protection just disable it:

FCOItemSaver settings (chat command: /fcoiss)
-> Protection -> scroll down to "Guild bank"
Report comment to moderator  
Reply With Quote
Unread 10/20/18, 11:43 AM  
Kestrelator

Forum posts: 0
File comments: 28
Uploads: 0
Unhappy This Lib prevents me from depositing to Guild Bank

Both the file downloaded via Minion, and the r3.6 version cited a couple comments down--when enabled, I can no longer deposit items to my Guild Banks. FCO ItemSaver won't work without this lib.
Report comment to moderator  
Reply With Quote
Unread 09/05/18, 09:45 AM  
Marazota
AddOn Author - Click to view AddOns

Forum posts: 257
File comments: 1517
Uploads: 2
differences of version at esoui and in manifest
2.0 r3.6
vs
2.0r3.6

its confusing Minion, because it want to update it every time after launch
Report comment to moderator  
Reply With Quote
Unread 05/21/18, 09:58 AM  
Baertram
Super Moderator
 
Baertram's Avatar
ESOUI Super Moderator
AddOn Author - Click to view AddOns

Forum posts: 4903
File comments: 5974
Uploads: 78
for the current patch 4.0 Summerset there is an unoffical change of libFilters to verison 3.6 which should fix the research bug (lua error message) and which adds new filter constants LF_JEWELRY* for jewelry refine, creation, deconstruction, improvement and research.

You can download it here:
libFilters 2.0 v3.6 for Summerset 4.0
Report comment to moderator  
Reply With Quote
Unread 05/31/17, 08:50 PM  
SteveCampsOut
 
SteveCampsOut's Avatar

Forum posts: 38
File comments: 363
Uploads: 0
Originally Posted by Randactyl
Originally Posted by SteveCampsOut
Does this addon replace LibFilters-2.0 and should I remove that old one?
This is LibFilters-2.0. If you're not developing an addon, you probably shouldn't be messing with libraries
I think one of my addons required it at one time, don't really remember which one.
Report comment to moderator  
Reply With Quote
Unread 05/24/17, 11:12 PM  
Randactyl
 
Randactyl's Avatar
AddOn Author - Click to view AddOns

Forum posts: 251
File comments: 462
Uploads: 17
Originally Posted by SteveCampsOut
Does this addon replace LibFilters-2.0 and should I remove that old one?
This is LibFilters-2.0. If you're not developing an addon, you probably shouldn't be messing with libraries
Report comment to moderator  
Reply With Quote
Unread 05/24/17, 10:29 PM  
SteveCampsOut
 
SteveCampsOut's Avatar

Forum posts: 38
File comments: 363
Uploads: 0
Does this addon replace LibFilters-2.0 and should I remove that old one?
Report comment to moderator  
Reply With Quote
Unread 11/19/16, 01:19 AM  
Baertram
Super Moderator
 
Baertram's Avatar
ESOUI Super Moderator
AddOn Author - Click to view AddOns

Forum posts: 4903
File comments: 5974
Uploads: 78
Found a bug in libFilters 2.3

The enchantment creation panel is not filtering anymore and the enchantment extraction panel will not work properly sometimes. I guess it is because of the craftbag additions to the standard filters.

if you remove the special treatment for enchantment (removing the "already given additionalFilters" for enchantment) from function LibFilters:HookAdditionalFilter it works properly again!

New function:
Lua Code:
  1. function LibFilters:HookAdditionalFilter(filterType, inventory)
  2.     local layoutData = inventory.layoutData or inventory
  3.     local originalFilter = layoutData.additionalFilter
  4.  
  5.     layoutData.LibFilters2_filterType = filterType
  6.  
  7.     if type(originalFilter) == "function" then
  8.         layoutData.additionalFilter = function(...)
  9. --[[
  10.             --for enchanting
  11.             if (filterType == LF_ENCHANTING_CREATION or filterType == LF_ENCHANTING_EXTRACTION) then
  12.                 return originalFilter(...) and runFilters(filterType, ...)
  13.             end
  14. ]]
  15.             return originalFilter(...) and runFilters(filterType, ...)
  16.         end
  17.     else
  18.         layoutData.additionalFilter = function(...)
  19.             return runFilters(filterType, ...)
  20.         end
  21.     end
  22. end
Report comment to moderator  
Reply With Quote
Unread 11/13/16, 04:57 PM  
Randactyl
 
Randactyl's Avatar
AddOn Author - Click to view AddOns

Forum posts: 251
File comments: 462
Uploads: 17
No work has been done to specifically support gamepad mode yet. It is a priority when I get back into full dev mode again.
Report comment to moderator  
Reply With Quote
Unread 11/08/16, 09:49 PM  
Architecture
 
Architecture's Avatar
AddOn Author - Click to view AddOns

Forum posts: 7
File comments: 79
Uploads: 8
Does this support Gamepad mode as well?
Report comment to moderator  
Reply With Quote
Unread 11/21/15, 02:00 PM  
Baertram
Super Moderator
 
Baertram's Avatar
ESOUI Super Moderator
AddOn Author - Click to view AddOns

Forum posts: 4903
File comments: 5974
Uploads: 78
You've chosen the wrong "refresh" function for the alchemy panel. The correct one should be :HandleDirtyEvent()


Code:
local inventoryUpdaters = {
	BACKPACK = function()
		PLAYER_INVENTORY:UpdateList(INVENTORY_BACKPACK)
	end,
	BANK = function()
		PLAYER_INVENTORY:UpdateList(INVENTORY_BANK)
	end,
	GUILD_BANK = function()
		PLAYER_INVENTORY:UpdateList(INVENTORY_GUILD_BANK)
	end,
	DECONSTRUCTION = function()
		SMITHING.deconstructionPanel.inventory:HandleDirtyEvent()
	end,
	IMPROVEMENT = function()
		SMITHING.improvementPanel.inventory:HandleDirtyEvent()
	end,
	ENCHANTING = function()
		ENCHANTING.inventory:HandleDirtyEvent()
	end,
	ALCHEMY = function()
		ALCHEMY.inventory:HandleDirtyEvent()
	end,
}
If you change it everything works as it should.

I'll update libFilters ONLY inside FCOItemSaver (and FCOCraftFilters) to version 16.1.
Please update the library afterwards officially to 16.1 with the one line changed to :HandleDirtyEvent()

Many thanks!

Baertram
Report comment to moderator  
Reply With Quote
Unread 08/31/15, 04:15 PM  
Baertram
Super Moderator
 
Baertram's Avatar
ESOUI Super Moderator
AddOn Author - Click to view AddOns

Forum posts: 4903
File comments: 5974
Uploads: 78
Ok, thanks for informing me.

Originally Posted by Randactyl
Originally Posted by Baertram
I'll wait with my updates until 2.1 is live in the eu servers then and the safety check is removed again :-)
I'm probably not going to remove it until there is another reason to edit the library - it's just a simple if statement.
Report comment to moderator  
Reply With Quote
Unread 08/30/15, 06:43 PM  
Randactyl
 
Randactyl's Avatar
AddOn Author - Click to view AddOns

Forum posts: 251
File comments: 462
Uploads: 17
Originally Posted by Baertram
I'll wait with my updates until 2.1 is live in the eu servers then and the safety check is removed again :-)
I'm probably not going to remove it until there is another reason to edit the library - it's just a simple if statement.
Report comment to moderator  
Reply With Quote
Post A Reply



Category Jump: