CommandSearch: Begin basic functionality (prints filename of result)
This commit is contained in:
父節點
be53fc7f6e
當前提交
e37aa61eda
@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -8,10 +8,7 @@ class CommandSearch : public Command
|
||||
public:
|
||||
using Command::Command;
|
||||
|
||||
int handle(QStringList arguments) override
|
||||
{
|
||||
return 23;
|
||||
}
|
||||
int handle(QStringList arguments) override;
|
||||
|
||||
};
|
||||
|
||||
|
@ -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());
|
||||
|
@ -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);
|
||||
|
||||
};
|
||||
|
||||
|
載入中…
新增問題並參考
Block a user