CommandSearch: Begin basic functionality (prints filename of result)
Dieser Commit ist enthalten in:
Ursprung
623eea80ec
Commit
cfe30ae5fd
@ -1 +1,35 @@
|
||||
#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;
|
||||
};
|
||||
|
||||
#endif // COMMANDSEARCH_H
|
||||
|
@ -21,6 +21,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,
|
||||
@ -25,6 +26,7 @@ class SqliteDbService
|
||||
bool deleteFile(QString path);
|
||||
bool fileExistsInDatabase(QString path);
|
||||
bool fileExistsInDatabase(QString path, qint64 mtime);
|
||||
QVector<SearchResult> search(QString searchQuery);
|
||||
};
|
||||
|
||||
#endif // SQLITEDBSERVICE_H
|
||||
|
Laden…
In neuem Issue referenzieren
Einen Benutzer sperren