cli: search: implement -r, cleanup of options that don't belong there

This commit is contained in:
Albert S. 2019-08-19 21:09:03 +02:00
джерело 014a31fa3c
коміт f64362ac63
3 змінених файлів з 19 додано та 12 видалено

@ -7,25 +7,26 @@ int CommandSearch::handle(QStringList arguments)
{
QCommandLineParser parser;
parser.addOptions({
{{"r", "reverse"}, "Print most-recent changed files first"},
{"pattern",
"Only delete files from index matching the pattern, e. g. */.git/*. Only applies to --deleted or standalone.",
"pattern"},
{{"r", "reverse"},
"Print most-recent changed files first. This is short for adding \"sort:(mtime asc)\" to the query."},
});
parser.addHelpOption();
parser.addPositionalArgument("delete", "Delete paths from the index", "delete [paths...]");
parser.process(arguments);
bool reverse = parser.isSet("reverse");
if(reverse)
{
throw QSSGeneralException("Reverse option to be implemented");
}
QStringList files = parser.positionalArguments();
QString queryStrings = files.join(' ');
auto results = dbService->search(QSSQuery::build(queryStrings));
QSSQuery query = QSSQuery::build(queryStrings);
bool reverse = parser.isSet("reverse");
if(reverse)
{
SortCondition sc;
sc.field = FILE_MTIME;
sc.order = ASC;
query.addSortCondition(sc);
}
auto results = dbService->search(query);
for(SearchResult &result : results)
{

@ -23,6 +23,11 @@ QueryType QSSQuery::getQueryType()
return static_cast<QueryType>(tokensMask & COMBINED);
}
void QSSQuery::addSortCondition(SortCondition sc)
{
this->sortConditions.append(sc);
}
bool QSSQuery::checkParanthesis(QString expression)
{
QStack<QChar> open;

@ -52,6 +52,7 @@ class QSSQuery
{
return tokensMask;
}
void addSortCondition(SortCondition sc);
static bool checkParanthesis(QString query);
static QSSQuery build(QString query);
};