winamp/Src/Wasabi/api/skin/widgets/db/queryline.cpp

33 lines
783 B
C++
Raw Normal View History

2024-09-24 12:54:57 +00:00
#include <precomp.h>
#include "queryline.h"
#include <api/api.h>
#include <api/db/metatags.h>
#include <bfc/string/string.h>
#include <bfc/parse/pathparse.h>
QueryLine::QueryLine(const char *query) : autoquery(FALSE), querytext(query), autofield(MT_NAME) {
}
void QueryLine::setQuery(const char *query) {
querytext = query;
String sp = querytext;
if (autoquery && !querytext.isempty()) {
sp = "";
PathParser pp(querytext, " ");
if (pp.getNumStrings() <= 0) return;
for (int i = 0; i < pp.getNumStrings(); i++) {
if (i != 0) sp += " and ";
sp += StringPrintf("(\"%s\" has \"%s\")", autofield.getValue(), pp.enumString(i));
}
}
sqs_setQuery(sp);
}
int QueryLine::setAuto(int bv) {
autoquery = !!bv;
setQuery(querytext);
return 1;
}