Jeck - Deck editor filtering now works much better- single filter, automatically recolors itself to match the active color.

This commit is contained in:
wagic.jeck
2010-02-17 04:08:51 +00:00
parent a123cebfe5
commit ab22719e4d
5 changed files with 46 additions and 47 deletions

View File

@@ -1326,12 +1326,18 @@ bool WGuiFilters::Finish(){
string src;
if(source){
src = getCode();
if(priorFilter == src)
if(priorFilter == src && recolorTo == priorRecolor)
return false;
source->clearFilters();
if(src.size()){
WCFilterFactory * wc = WCFilterFactory::GetInstance();
source->addFilter(wc->Construct(src));
WCardFilter * f = wc->Construct(src);
if(recolorTo > -1 && recolorTo < Constants::MTG_NB_COLORS){
if(!f->filtersColor())
f = NEW WCFilterAND(f,NEW WCFilterColor(recolorTo));
f->recolor(recolorTo);
}
source->addFilter(f);
}
if(!source->Size()){
source->clearFilters(); //TODO: Pop a "No results found" warning
@@ -1375,8 +1381,14 @@ void WGuiFilters::buildList(){
WGuiFilters::WGuiFilters(string header, WSrcCards * src) : WGuiItem(header) {
bFinished = false;
source = src;
recolorTo = -1;
priorRecolor = -1;
buildList();
}
void WGuiFilters::recolorFilter(int color){
priorRecolor = recolorTo;
recolorTo = color;
}
string WGuiFilters::getCode(){
if(!list)
return "";