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
parent 4cdb1296a9
commit 8047c16558
3 changed files with 19 additions and 11 deletions

View File

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

View File

@ -21,7 +21,12 @@ const QVector<SortCondition> &QSSQuery::getSortConditions() const
QueryType QSSQuery::getQueryType() QueryType QSSQuery::getQueryType()
{ {
return static_cast<QueryType>(tokensMask & COMBINED); return static_cast<QueryType>(tokensMask & COMBINED);
}
void QSSQuery::addSortCondition(SortCondition sc)
{
this->sortConditions.append(sc);
} }
bool QSSQuery::checkParanthesis(QString expression) bool QSSQuery::checkParanthesis(QString expression)

View File

@ -48,6 +48,7 @@ public:
const QVector<SortCondition> & getSortConditions() const; const QVector<SortCondition> & getSortConditions() const;
QueryType getQueryType(); QueryType getQueryType();
int getTokensMask() const { return tokensMask; } int getTokensMask() const { return tokensMask; }
void addSortCondition(SortCondition sc);
static bool checkParanthesis(QString query); static bool checkParanthesis(QString query);
static QSSQuery build(QString query); static QSSQuery build(QString query);