Sackville replaces the default bag containers with virtual bags that smartly groups items into sections based on flexible filtering and sorting rules. I'm taking a similar approach as Baggins where the user will be able to define their own bags with items grouped into sections using categories composed of individual rules.
Another neat feature is that for each section I can define a custom multi-sort. For example I can have my Armor sorted by equipped slot and then by descending item level while my Trade Goods are sorted first by name then by stack count.
I set all this up by parsing a config table. Right now the bag configuration is hard-coded and there is no configuration GUI at all, but I intend to build one for release.
The project page is here: http://www.wowace.com/addons/sackville/
There's a screenshot here: http://www.wowace.com/addons/sackville/images/
The project is still in early alpha stage but it's capable enough that I'm not embarrassed to have others take a look now and begin to offer some comments and encouragement. If you look at the project page I already have a list of development items and features that I put together. There are a lot of features that I would like to implement, but at the same time I'm wary of adding unnecessary complexity. My aim is to:
* Provide a default configuration that will satisfy most users.
* Do not overwhelm the user with too many configuration options.
* Provide enough flexibility for advanced users.
This project uses the GPLv3 license so anyone is free to clone the repository, offer patches, or copy code to use in their own GPL-compatible project.
Right now the bags are bound to the "Open All Bags" event. There's one particular issue I just discovered tonight that when the addon is loaded for the first time ever, I see blank textures for the bag items and filtering doesn't work, but after the first /reload or relog I never see that happen again. I'm a bit puzzled by this since my addon doesn't even use any saved variables right now, so I'm guessing that something must be going on with an embedded library. If anyone has an idea on that let me know.