CommandSearch: Begin basic functionality (prints filename of result)

This commit is contained in:
Albert S. 2019-04-22 22:00:40 +02:00
rodzic be53fc7f6e
commit e37aa61eda
4 zmienionych plików z 43 dodań i 4 usunięć

Wyświetl plik

@ -1,3 +1,36 @@
#include <QCommandLineParser>
#include "commandsearch.h"
#include "databasefactory.h"
#include "logger.h"
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" },
});
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(queryStrings);
for(SearchResult &result : results)
{
Logger::info() << result.fileData.absPath << endl;
}
}

Wyświetl plik

@ -8,10 +8,7 @@ class CommandSearch : public Command
public:
using Command::Command;
int handle(QStringList arguments) override
{
return 23;
}
int handle(QStringList arguments) override;
};

Wyświetl plik

@ -20,6 +20,13 @@ bool SqliteDbService::fileExistsInDatabase(QString path, qint64 mtime)
return query.value(0).toBool();
}
QVector<SearchResult> SqliteDbService::search(QString searchQuery)
{
auto connection = dbFactory->forCurrentThread();
SqliteSearch searcher(connection);
return searcher.search(searchQuery);
}
bool SqliteDbService::fileExistsInDatabase(QString path)
{
auto query = QSqlQuery(dbFactory->forCurrentThread());

Wyświetl plik

@ -5,6 +5,7 @@
#include "utils.h"
#include "pagedata.h"
#include "filedata.h"
#include "../shared/sqlitesearch.h"
enum SaveFileResult
{
OK,
@ -24,6 +25,7 @@ public:
bool deleteFile(QString path);
bool fileExistsInDatabase(QString path);
bool fileExistsInDatabase(QString path, qint64 mtime);
QVector<SearchResult> search(QString searchQuery);
};