CommandSearch: Begin basic functionality (prints filename of result)
Cette révision appartient à :
		| @@ -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); | ||||
|  | ||||
| }; | ||||
|  | ||||
|   | ||||
		Référencer dans un nouveau ticket
	
	Bloquer un utilisateur