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
джерело 4cdb1296a9
коміт 8047c16558
3 змінених файлів з 19 додано та 11 видалено

@ -7,24 +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)
{

@ -21,7 +21,12 @@ const QVector<SortCondition> &QSSQuery::getSortConditions() const
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)

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