Refactor search queries: Introduced QSSQuery

Purpose is to seperate certain logic from SQLite and generalize it more.
Even though we only have Sqlite atm, in general the database layers
must be stupid as possible, while QSSQuery should do most of the hard work.

Fixes in Tokenizer logic.
Switched to C++17.
Αυτή η υποβολή περιλαμβάνεται σε:
2019-08-17 11:06:35 +02:00
γονέας 05a5bac22f
υποβολή cff481a57e
14 αρχεία άλλαξαν με 500 προσθήκες και 618 διαγραφές

@@ -1,6 +1,6 @@
QT -= gui
QT += sql concurrent
CONFIG += c++11 console
CONFIG += c++17 console
CONFIG -= app_bundle
# The following define makes your compiler emit warnings if you use
@@ -32,7 +32,8 @@ SOURCES += \
databasefactory.cpp \
sqlitedbservice.cpp \
logger.cpp \
commandsearch.cpp
commandsearch.cpp \
commandlist.cpp
HEADERS += \
encodingdetector.h \
@@ -53,7 +54,8 @@ HEADERS += \
databasefactory.h \
sqlitedbservice.h \
logger.h \
commandsearch.h
commandsearch.h \
commandlist.h
INCLUDEPATH += /usr/include/poppler/qt5/ /usr/include/quazip5

@@ -25,8 +25,7 @@ int CommandSearch::handle(QStringList arguments)
QStringList files = parser.positionalArguments();
QString queryStrings = files.join(' ');
auto results = dbService->search(queryStrings);
auto results = dbService->search(QSSQuery::build(queryStrings));
for(SearchResult &result : results)
{

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

@@ -6,6 +6,7 @@
#include "pagedata.h"
#include "filedata.h"
#include "../shared/sqlitesearch.h"
#include "../shared/token.h"
enum SaveFileResult
{
OK,
@@ -26,7 +27,7 @@ class SqliteDbService
bool deleteFile(QString path);
bool fileExistsInDatabase(QString path);
bool fileExistsInDatabase(QString path, qint64 mtime);
QVector<SearchResult> search(QString searchQuery);
QVector<SearchResult> search(const QSSQuery &query);
};
#endif // SQLITEDBSERVICE_H