diff --git a/README.md b/README.md index c96143e..bb76fb0 100644 --- a/README.md +++ b/README.md @@ -1,37 +1,30 @@ -qss -========= -quite simple search (qss) creates a poor-man full-text search for your files using a sqlite database. +# looqs - Looks for files. And looks inside them +looqs creates a full text search for your files. It allows you to look at previews where your +search terms have been found. -A simple gui renders the pages of the documents where your search keywords have been found. Currently, this allows you search all indexed pdfs and take a look at the pages side by side in an instant. +Currently, this allows you search all indexed pdfs and take a look at the pages side by side in an instant. -The name of the project will probably be changed. - -Screenshots ------------ +## Screenshots Coming soon™ -Goals -===== - * **Find & Preview**. Instead of merely telling you where your search phrase has been found, it should also render the corresponding portion/pages of the documents and highlight the searched words. +## Goals + * **Find & Preview**. Instead of merely telling you where your search phrase has been found, it should also render the corresponding portion/pages of the documents and highlight the searched words. * **No daemons**. As other solutions are prone to have annoying daemons running that eat system resources away, this solution should make do without daemons if possible. * **Easy setup**. Similiarly, there should be no need for heavy-weight databases. Instead, this solution tries to squeeze out the most from simple approaches. In particular, it relies on sqlite. * **GUI & CLI**. Provide CLI interfaces and GUI interfaces -Build ------ -### Ubuntu 20.04 +## Build +### Ubuntu 21.04 ``` -sudo apt install build-essential qt5-default libpoppler-qt5-dev libuchardet-dev libquazip5-dev +sudo apt install build-essential qtbase5-dev libpoppler-qt5-dev libuchardet-dev libquazip5-dev qmake make ``` -Documentation -------------- +## Documentation Coming soon™ -Packages ------ +## Packages Coming soon™ diff --git a/cli/cli.pro b/cli/cli.pro index 459f586..9c985c7 100644 --- a/cli/cli.pro +++ b/cli/cli.pro @@ -2,6 +2,7 @@ QT -= gui QT += sql concurrent CONFIG += c++17 console CONFIG -= app_bundle +TARGET = looqs # The following define makes your compiler emit warnings if you use # any feature of Qt which as been marked deprecated (the exact warnings diff --git a/cli/command.cpp b/cli/command.cpp index 8d29f8e..d088e60 100644 --- a/cli/command.cpp +++ b/cli/command.cpp @@ -2,7 +2,7 @@ #include #include #include "command.h" -#include "qssgeneralexception.h" +#include "looqsgeneralexception.h" diff --git a/cli/commandadd.cpp b/cli/commandadd.cpp index 3e4ed0e..6a6d85b 100644 --- a/cli/commandadd.cpp +++ b/cli/commandadd.cpp @@ -21,7 +21,7 @@ int CommandAdd::handle(QStringList arguments) { QCommandLineParser parser; parser.addOptions({ - { { "c", "continue" }, "Continue adding files, don't exit on first error. If this option is not given, qss will exit asap, but it's possible that a few files will still be processed. " + { { "c", "continue" }, "Continue adding files, don't exit on first error. If this option is not given, looqs will exit asap, but it's possible that a few files will still be processed. " "Set -t 1 to avoid this behavior, but processing will be slower. "}, { { "a", "all" }, "On error, no files should be added, even already processed ones" }, { { "v", "verbose" }, "Print skipped and added files" }, @@ -36,7 +36,7 @@ int CommandAdd::handle(QStringList arguments) bool verbose = parser.isSet("verbose"); if(parser.isSet("all")) { - throw QSSGeneralException("To be implemented"); + throw LooqsGeneralException("To be implemented"); } if(parser.isSet("threads")) { diff --git a/cli/commandlist.cpp b/cli/commandlist.cpp index 84704b4..14d99ed 100644 --- a/cli/commandlist.cpp +++ b/cli/commandlist.cpp @@ -19,13 +19,13 @@ int CommandList::handle(QStringList arguments) bool reverse = parser.isSet("reverse"); if(reverse) { - throw QSSGeneralException("Reverse option to be implemented"); + throw LooqsGeneralException("Reverse option to be implemented"); } QStringList files = parser.positionalArguments(); QString queryStrings = files.join(' '); - auto results = dbService->search(QSSQuery::build(queryStrings)); + auto results = dbService->search(LooqsQuery::build(queryStrings)); for(SearchResult &result : results) { diff --git a/cli/commandsearch.cpp b/cli/commandsearch.cpp index 2495959..64ad457 100644 --- a/cli/commandsearch.cpp +++ b/cli/commandsearch.cpp @@ -16,7 +16,7 @@ int CommandSearch::handle(QStringList arguments) QStringList files = parser.positionalArguments(); QString queryStrings = files.join(' '); - QSSQuery query = QSSQuery::build(queryStrings); + LooqsQuery query = LooqsQuery::build(queryStrings); bool reverse = parser.isSet("reverse"); if(reverse) { diff --git a/cli/commandupdate.cpp b/cli/commandupdate.cpp index c734fec..f4a928b 100644 --- a/cli/commandupdate.cpp +++ b/cli/commandupdate.cpp @@ -15,7 +15,7 @@ int CommandUpdate::handle(QStringList arguments) { { "n", "dry-run"}, "Only print which files would be updated, don't actually update them"}, { "pattern", "Only consider to update files in the index matching the pattern, e. g. */.git/*.", "pattern" }, { { "d", "delete" }, "If a file does not exist anymore, delete it" }, - { { "c", "continue" }, "Continue adding files, don't exit on first error. If this option is not given, qss will exit asap, but it's possible that a few files will still be processed. " + { { "c", "continue" }, "Continue adding files, don't exit on first error. If this option is not given, looqs will exit asap, but it's possible that a few files will still be processed. " "Set -t 1 to avoid this behavior, but processing will be slower."}, { { "a", "all" }, "On error, no files should be updated, even already processed ones" }, { { "t", "threads" }, "Number of threads to use.", "threads" } @@ -34,7 +34,7 @@ int CommandUpdate::handle(QStringList arguments) if(parser.isSet("all")) { - throw QSSGeneralException("To be implemented"); + throw LooqsGeneralException("To be implemented"); } if(parser.isSet("threads")) { diff --git a/cli/databasefactory.cpp b/cli/databasefactory.cpp index 9625e56..f06ada2 100644 --- a/cli/databasefactory.cpp +++ b/cli/databasefactory.cpp @@ -16,7 +16,7 @@ QSqlDatabase DatabaseFactory::createNew() if(!db.open()) { Logger::error() << "Failed to open the database: " << this->connectionString << endl; - throw QSSGeneralException("Failed to create open new connection"); + throw LooqsGeneralException("Failed to create open new connection"); } return db; } @@ -32,7 +32,7 @@ QSqlDatabase DatabaseFactory::forCurrentThread() if(!db.open()) { Logger::error() << "Failed to open the database: " << this->connectionString << endl; - throw QSSGeneralException("Failed to create open new connection"); + throw LooqsGeneralException("Failed to create open new connection"); } dbStore.setLocalData(db); return db; diff --git a/cli/encodingdetector.cpp b/cli/encodingdetector.cpp index a204142..37622b9 100644 --- a/cli/encodingdetector.cpp +++ b/cli/encodingdetector.cpp @@ -1,6 +1,6 @@ #include #include "encodingdetector.h" -#include +#include EncodingDetector::EncodingDetector() { @@ -13,7 +13,7 @@ QString EncodingDetector::detectEncoding(const QByteArray &data) const if(uchardet_handle_data(detector, data.data(), data.size()) != 0 ) { uchardet_delete(detector); - throw QSSGeneralException("Decoder failed"); + throw LooqsGeneralException("Decoder failed"); } uchardet_data_end(detector); QString encoding = uchardet_get_charset(detector); @@ -33,13 +33,13 @@ QString EncodingDetector::detectEncoding(QDataStream &s) const { uchardet_delete(detector); - throw QSSGeneralException("Decoder failed"); + throw LooqsGeneralException("Decoder failed"); } } if(n == -1) { uchardet_delete(detector); - throw QSSGeneralException("Read failed"); + throw LooqsGeneralException("Read failed"); } uchardet_data_end(detector); QString encoding = uchardet_get_charset(detector); diff --git a/cli/filesaver.cpp b/cli/filesaver.cpp index e9003cf..9b4d27b 100644 --- a/cli/filesaver.cpp +++ b/cli/filesaver.cpp @@ -131,7 +131,7 @@ SaveFileResult FileSaver::saveFile(const QFileInfo &fileInfo) pageData = processor->process(Utils::readFile(absPath)); } } - catch(QSSGeneralException &e) + catch(LooqsGeneralException &e) { Logger::error() << "Error while processing" << absPath << ":" << e.message << endl; return PROCESSFAIL; diff --git a/cli/main.cpp b/cli/main.cpp index db5b53e..a63cce3 100644 --- a/cli/main.cpp +++ b/cli/main.cpp @@ -69,7 +69,7 @@ int main(int argc, char *argv[]) { Common::ensureConfigured(); } - catch(QSSGeneralException &e) + catch(LooqsGeneralException &e) { Logger::error() << "Error: " << e.message; return 1; @@ -86,7 +86,7 @@ int main(int argc, char *argv[]) { return cmd->handle(args); } - catch(const QSSGeneralException &e) + catch(const LooqsGeneralException &e) { Logger::error() << "Exception caught, message: " << e.message << endl; } diff --git a/cli/odtprocessor.cpp b/cli/odtprocessor.cpp index 4e72e3b..3107817 100644 --- a/cli/odtprocessor.cpp +++ b/cli/odtprocessor.cpp @@ -6,7 +6,7 @@ QVector OdtProcessor::process(const QByteArray &data) const { - throw QSSGeneralException("Not implemented yet"); + throw LooqsGeneralException("Not implemented yet"); } QVector OdtProcessor::process(QString path) const @@ -15,12 +15,12 @@ QVector OdtProcessor::process(QString path) const zipFile.setFileName("content.xml"); if(!zipFile.open(QIODevice::ReadOnly)) { - throw QSSGeneralException("Error while opening file " + path); + throw LooqsGeneralException("Error while opening file " + path); } QByteArray entireContent = zipFile.readAll(); if(entireContent.isEmpty()) { - throw QSSGeneralException("Error while reading content.xml of " + path); + throw LooqsGeneralException("Error while reading content.xml of " + path); } TagStripperProcessor tsp; return tsp.process(entireContent); diff --git a/cli/pdfprocessor.cpp b/cli/pdfprocessor.cpp index 87f4181..76f6a57 100644 --- a/cli/pdfprocessor.cpp +++ b/cli/pdfprocessor.cpp @@ -13,11 +13,11 @@ QVector PdfProcessor::process(const QByteArray &data) const QScopedPointer doc(Poppler::Document::loadFromData(data)); if(doc.isNull()) { - throw QSSGeneralException("Failed to process pdf data"); + throw LooqsGeneralException("Failed to process pdf data"); } if(doc->isLocked()) { - throw QSSGeneralException("Doc is locked"); + throw LooqsGeneralException("Doc is locked"); } QRectF entirePage; diff --git a/cli/sqlitedbservice.cpp b/cli/sqlitedbservice.cpp index 9d05b3b..b6dfb6a 100644 --- a/cli/sqlitedbservice.cpp +++ b/cli/sqlitedbservice.cpp @@ -11,7 +11,7 @@ bool SqliteDbService::fileExistsInDatabase(QString path, qint64 mtime) query.addBindValue(path); query.addBindValue(mtime); if(!query.exec()) - { throw QSSGeneralException("Error while trying to query for file existance: " + query.lastError().text()); + { throw LooqsGeneralException("Error while trying to query for file existance: " + query.lastError().text()); } if(!query.next()) { @@ -20,7 +20,7 @@ bool SqliteDbService::fileExistsInDatabase(QString path, qint64 mtime) return query.value(0).toBool(); } -QVector SqliteDbService::search(const QSSQuery &query) +QVector SqliteDbService::search(const LooqsQuery &query) { auto connection = dbFactory->forCurrentThread(); SqliteSearch searcher(connection); @@ -33,7 +33,7 @@ bool SqliteDbService::fileExistsInDatabase(QString path) query.prepare("SELECT 1 FROM file WHERE path = ?"); query.addBindValue(path); if(!query.exec()) - { throw QSSGeneralException("Error while trying to query for file existance: " + query.lastError().text()); + { throw LooqsGeneralException("Error while trying to query for file existance: " + query.lastError().text()); } if(!query.next()) { @@ -82,7 +82,7 @@ int SqliteDbService::getFiles(QVector &results, QString wildCardPatter query.setForwardOnly(true); if(!query.exec()) { - throw QSSGeneralException("Error while trying to retrieve files from database: " + query.lastError().text()); + throw LooqsGeneralException("Error while trying to retrieve files from database: " + query.lastError().text()); } //TODO: port this to QRegularExpression once >5.12 gets more widespread because of this bug diff --git a/cli/sqlitedbservice.h b/cli/sqlitedbservice.h index fd01f1d..6811b59 100644 --- a/cli/sqlitedbservice.h +++ b/cli/sqlitedbservice.h @@ -26,7 +26,7 @@ public: bool deleteFile(QString path); bool fileExistsInDatabase(QString path); bool fileExistsInDatabase(QString path, qint64 mtime); - QVector search(const QSSQuery &query); + QVector search(const LooqsQuery &query); }; diff --git a/cli/utils.cpp b/cli/utils.cpp index 9832926..4a29483 100644 --- a/cli/utils.cpp +++ b/cli/utils.cpp @@ -10,12 +10,12 @@ QByteArray Utils::readFile(QString path) QFile file(path); if(!file.open(QIODevice::ReadOnly)) { - throw QSSGeneralException("Failed to open file: " + path); + throw LooqsGeneralException("Failed to open file: " + path); } QByteArray data = file.readAll(); if(data.isEmpty() && file.error() != QFileDevice::FileError::NoError) { - throw QSSGeneralException("Error reading file: " + path + ", Error: " + file.error()); + throw LooqsGeneralException("Error reading file: " + path + ", Error: " + file.error()); } return data; } diff --git a/cli/utils.h b/cli/utils.h index 49cd27b..c5dd71e 100644 --- a/cli/utils.h +++ b/cli/utils.h @@ -5,7 +5,7 @@ #include #include #include -#include "qssgeneralexception.h" +#include "looqsgeneralexception.h" class Utils { diff --git a/gui/gui.pro b/gui/gui.pro index afe47d7..5417c1f 100644 --- a/gui/gui.pro +++ b/gui/gui.pro @@ -8,7 +8,7 @@ QT += core concurrent gui greaterThan(QT_MAJOR_VERSION, 4): QT += widgets CONFIG += c++17 -TARGET = qss-gui +TARGET = looqs-gui TEMPLATE = app # The following define makes your compiler emit warnings if you use diff --git a/gui/main.cpp b/gui/main.cpp index d17979a..df3ee28 100644 --- a/gui/main.cpp +++ b/gui/main.cpp @@ -14,7 +14,7 @@ int main(int argc, char *argv[]) { Common::ensureConfigured(); } - catch(QSSGeneralException &e) + catch(LooqsGeneralException &e) { qDebug() << e.message; QMessageBox::critical(nullptr, "Error", e.message); diff --git a/gui/mainwindow.cpp b/gui/mainwindow.cpp index 0088d2e..5585eea 100644 --- a/gui/mainwindow.cpp +++ b/gui/mainwindow.cpp @@ -15,7 +15,7 @@ #include "ui_mainwindow.h" #include "clicklabel.h" #include "../shared/sqlitesearch.h" -#include "../shared/qssgeneralexception.h" +#include "../shared/looqsgeneralexception.h" #include "../shared/common.h" MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) @@ -52,7 +52,7 @@ void MainWindow::connectSignals() auto results = searchWatcher.future().result(); handleSearchResults(results); } - catch(QSSGeneralException &e) + catch(LooqsGeneralException &e) { handleSearchError(e.message); } @@ -170,7 +170,7 @@ void MainWindow::pdfPreviewReceived(PdfPreview preview) void MainWindow::lineEditReturnPressed() { QString q = ui->txtSearch->text(); - if(!QSSQuery::checkParanthesis(q)) + if(!LooqsQuery::checkParanthesis(q)) { ui->lblSearchResults->setText("Invalid paranthesis"); return; @@ -180,7 +180,7 @@ void MainWindow::lineEditReturnPressed() this->ui->txtSearch->setEnabled(false); QFuture> searchFuture = QtConcurrent::run([&, q]() { SqliteSearch searcher(db); - this->currentQuery = QSSQuery::build(q); + this->currentQuery = LooqsQuery::build(q); return searcher.search(this->currentQuery); }); searchWatcher.setFuture(searchFuture); diff --git a/gui/mainwindow.h b/gui/mainwindow.h index 5743cd9..ba3ba79 100644 --- a/gui/mainwindow.h +++ b/gui/mainwindow.h @@ -9,7 +9,7 @@ #include #include #include "pdfworker.h" -#include "../shared/qssquery.h" +#include "../shared/looqsquery.h" namespace Ui { class MainWindow; } @@ -40,7 +40,7 @@ private: unsigned int processedPdfPreviews; void handleSearchResults(const QVector &results); void handleSearchError(QString error); - QSSQuery currentQuery; + LooqsQuery currentQuery; int pdfPreviewsPerPage; void createSearchResutlMenu(QMenu &menu, const QFileInfo &fileInfo); private slots: diff --git a/qss.pro b/looqs.pro similarity index 100% rename from qss.pro rename to looqs.pro diff --git a/shared/common.cpp b/shared/common.cpp index 63af832..1d35878 100644 --- a/shared/common.cpp +++ b/shared/common.cpp @@ -7,7 +7,7 @@ #include #include #include -#include "qssgeneralexception.h" +#include "looqsgeneralexception.h" #include "common.h" #define SETTINGS_KEY_DBPATH "dbpath" @@ -64,13 +64,13 @@ void Common::ensureConfigured() { if(!dir.mkpath(dbpath)) { - throw QSSGeneralException("Failed to create dbpath directory"); + throw LooqsGeneralException("Failed to create dbpath directory"); } } - dbpath += "/qss.sqlite"; + dbpath += "/looqs.sqlite"; if(!initSqliteDatabase(dbpath)) { - throw QSSGeneralException("Failed to initialize sqlite database"); + throw LooqsGeneralException("Failed to initialize sqlite database"); } settings.setValue(SETTINGS_KEY_FIRSTRUN, false); settings.setValue(SETTINGS_KEY_DBPATH, dbpath); @@ -81,7 +81,7 @@ void Common::ensureConfigured() QString dbpath = databasePath(); if(!QFile::exists(dbpath)) { - throw QSSGeneralException("Database " + dbpath + " was not found"); + throw LooqsGeneralException("Database " + dbpath + " was not found"); } } } @@ -90,7 +90,7 @@ void Common::setupAppInfo() { QCoreApplication::setOrganizationName("quitesimple.org"); QCoreApplication::setOrganizationDomain("quitesimple.org"); - QCoreApplication::setApplicationName("qss"); + QCoreApplication::setApplicationName("looqs"); } QString Common::databasePath() diff --git a/shared/looqsgeneralexception.cpp b/shared/looqsgeneralexception.cpp new file mode 100644 index 0000000..5913ad9 --- /dev/null +++ b/shared/looqsgeneralexception.cpp @@ -0,0 +1,2 @@ +#include "looqsgeneralexception.h" + diff --git a/shared/looqsgeneralexception.h b/shared/looqsgeneralexception.h new file mode 100644 index 0000000..5aeda24 --- /dev/null +++ b/shared/looqsgeneralexception.h @@ -0,0 +1,15 @@ +#ifndef LOOQSGENERALEXCEPTION_H +#define LOOQSGENERALEXCEPTION_H + +#include + +class LooqsGeneralException : public QException +{ +public: + QString message; + LooqsGeneralException(QString message) { this->message = message; } + void raise() const override { throw *this; } + LooqsGeneralException *clone() const override { return new LooqsGeneralException(*this); } +}; + +#endif // LOOQSGENERALEXCEPTION_H diff --git a/shared/qssquery.cpp b/shared/looqsquery.cpp similarity index 85% rename from shared/qssquery.cpp rename to shared/looqsquery.cpp index a8e17f8..ec9f122 100644 --- a/shared/qssquery.cpp +++ b/shared/looqsquery.cpp @@ -6,30 +6,30 @@ #include #include #include -#include "qssquery.h" +#include "looqsquery.h" -const QVector &QSSQuery::getTokens() const +const QVector &LooqsQuery::getTokens() const { return tokens; } -const QVector &QSSQuery::getSortConditions() const +const QVector &LooqsQuery::getSortConditions() const { return sortConditions; } -QueryType QSSQuery::getQueryType() +QueryType LooqsQuery::getQueryType() { return static_cast(tokensMask & COMBINED); } -void QSSQuery::addSortCondition(SortCondition sc) +void LooqsQuery::addSortCondition(SortCondition sc) { this->sortConditions.append(sc); } -bool QSSQuery::checkParanthesis(QString expression) +bool LooqsQuery::checkParanthesis(QString expression) { QStack open; QStack close; @@ -105,7 +105,7 @@ QVector createSortConditions(QString sortExpression) QStringList splitted = splitted_inner[i].split(" "); if(splitted.length() < 1 || splitted.length() > 2) { - throw QSSGeneralException("sort specifier must have format [field] (asc|desc)"); + throw LooqsGeneralException("sort specifier must have format [field] (asc|desc)"); } @@ -113,7 +113,7 @@ QVector createSortConditions(QString sortExpression) auto queryField = fromString(field); if(!queryField) { - throw QSSGeneralException("Unknown sort field supplied"); + throw LooqsGeneralException("Unknown sort field supplied"); } SortOrder order; @@ -130,7 +130,7 @@ QVector createSortConditions(QString sortExpression) } else { - throw QSSGeneralException("Unknown order specifier: " + order); + throw LooqsGeneralException("Unknown order specifier: " + order); } } @@ -152,7 +152,7 @@ QVector createSortConditions(QString sortExpression) } -void QSSQuery::addToken(Token t) +void LooqsQuery::addToken(Token t) { tokens.append(t); tokensMask |= t.type; @@ -164,14 +164,14 @@ void QSSQuery::addToken(Token t) * thus, "Downloads zip" becomes essentailly "path.contains:(Downloads) AND path.contains:(zip)" * * TODO: It's a bit ugly still*/ -QSSQuery QSSQuery::build(QString expression) +LooqsQuery LooqsQuery::build(QString expression) { if(!checkParanthesis(expression)) { - throw QSSGeneralException("Invalid paranthesis"); + throw LooqsGeneralException("Invalid paranthesis"); } - QSSQuery result; + LooqsQuery result; //TODO: merge lonewords QRegularExpression rx("((?(\\.|\\w)+):(?\\((?[^\\)]+)\\)|([\\w,])+)|(?AND|OR)|(?!)|(?\\(|\\))|(?\\w+))"); QRegularExpressionMatchIterator i = rx.globalMatch(expression); @@ -191,11 +191,11 @@ QSSQuery QSSQuery::build(QString expression) { if(previousWasBool()) { - throw QSSGeneralException("Can't have two booleans following each other"); + throw LooqsGeneralException("Can't have two booleans following each other"); } if(previousWas(NEGATION)) { - throw QSSGeneralException("Can't have a negation preceeding a boolean"); + throw LooqsGeneralException("Can't have a negation preceeding a boolean"); } if(boolean == "AND") { @@ -210,7 +210,7 @@ QSSQuery QSSQuery::build(QString expression) { if(previousWas(NEGATION)) { - throw QSSGeneralException("Can't have two negations following each other"); + throw LooqsGeneralException("Can't have two negations following each other"); } if(!previousWasBool()) { @@ -279,7 +279,7 @@ QSSQuery QSSQuery::build(QString expression) { if(!result.sortConditions.empty()) { - throw QSSGeneralException("Two sort statements are illegal"); + throw LooqsGeneralException("Two sort statements are illegal"); } //TODO: hack, since we are not a "filter", we must remove a preceeding (implicit) boolean if(result.tokens.last().type & BOOL == BOOL) @@ -291,7 +291,7 @@ QSSQuery QSSQuery::build(QString expression) } else { - throw QSSGeneralException("Unknown filter provided!"); + throw LooqsGeneralException("Unknown filter provided!"); } result.addToken(Token(tokenType, value)); } @@ -303,7 +303,7 @@ QSSQuery QSSQuery::build(QString expression) if(!contentsearch && sortsForContent) { - throw QSSGeneralException("We cannot sort by text if we don't search for it"); + throw LooqsGeneralException("We cannot sort by text if we don't search for it"); } diff --git a/shared/qssquery.h b/shared/looqsquery.h similarity index 86% rename from shared/qssquery.h rename to shared/looqsquery.h index 190a660..b97c834 100644 --- a/shared/qssquery.h +++ b/shared/looqsquery.h @@ -1,8 +1,8 @@ -#ifndef QSSQUERY_H -#define QSSQUERY_H +#ifndef LOOQSQUERY_H +#define LOOQSQUERY_H #include #include -#include "qssgeneralexception.h" +#include "looqsgeneralexception.h" #include "token.h" /* Fields that can be queried or sorted */ enum QueryField @@ -34,7 +34,7 @@ enum QueryType COMBINED = PATH_ONLY | CONTENT_ONLY }; -class QSSQuery +class LooqsQuery { private: /* Helper field to determine quertype as well as to quickly check what kind of filters etc. @@ -50,7 +50,7 @@ public: int getTokensMask() const { return tokensMask; } void addSortCondition(SortCondition sc); static bool checkParanthesis(QString query); - static QSSQuery build(QString query); + static LooqsQuery build(QString query); }; @@ -58,4 +58,4 @@ public: -#endif // QSSQUERY_H +#endif // LOOQSQUERY_H diff --git a/shared/qssgeneralexception.cpp b/shared/qssgeneralexception.cpp deleted file mode 100644 index befc46f..0000000 --- a/shared/qssgeneralexception.cpp +++ /dev/null @@ -1,2 +0,0 @@ -#include "qssgeneralexception.h" - diff --git a/shared/qssgeneralexception.h b/shared/qssgeneralexception.h deleted file mode 100644 index 42197dc..0000000 --- a/shared/qssgeneralexception.h +++ /dev/null @@ -1,15 +0,0 @@ -#ifndef QSSGENERALEXCEPTION_H -#define QSSGENERALEXCEPTION_H - -#include - -class QSSGeneralException : public QException -{ -public: - QString message; - QSSGeneralException(QString message) { this->message = message; } - void raise() const override { throw *this; } - QSSGeneralException *clone() const override { return new QSSGeneralException(*this); } -}; - -#endif // QSSGENERALEXCEPTION_H diff --git a/shared/shared.pro b/shared/shared.pro index a78c084..88072ea 100644 --- a/shared/shared.pro +++ b/shared/shared.pro @@ -25,16 +25,16 @@ DEFINES += QT_DEPRECATED_WARNINGS #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0 SOURCES += sqlitesearch.cpp \ - qssgeneralexception.cpp \ - qssquery.cpp \ - common.cpp + looqsgeneralexception.cpp \ + common.cpp \ + looqsquery.cpp HEADERS += sqlitesearch.h \ filedata.h \ + looqsgeneralexception.h \ + looqsquery.h \ searchresult.h \ - qssgeneralexception.h \ token.h \ - qssquery.h \ common.h unix { target.path = /usr/lib diff --git a/shared/sqlitesearch.cpp b/shared/sqlitesearch.cpp index 3a246bd..f4af5a0 100644 --- a/shared/sqlitesearch.cpp +++ b/shared/sqlitesearch.cpp @@ -5,7 +5,7 @@ #include #include #include "sqlitesearch.h" -#include "qssgeneralexception.h" +#include "looqsgeneralexception.h" SqliteSearch::SqliteSearch(QSqlDatabase &db) { @@ -46,7 +46,7 @@ QString SqliteSearch::createSortSql(const QVector sortConditions) QString field = fieldToColumn(sc.field); if(field == "") { - throw QSSGeneralException("Unknown sort field supplied"); + throw LooqsGeneralException("Unknown sort field supplied"); } if(sc.order == DESC) { @@ -119,10 +119,10 @@ QPair> SqliteSearch::createSql(const Token &token) "rank) ", {value}}; } - throw QSSGeneralException("Unknown token passed (should not happen)"); + throw LooqsGeneralException("Unknown token passed (should not happen)"); } -QSqlQuery SqliteSearch::makeSqlQuery(const QSSQuery &query) +QSqlQuery SqliteSearch::makeSqlQuery(const LooqsQuery &query) { QString whereSql; QString joinSql; @@ -130,7 +130,7 @@ QSqlQuery SqliteSearch::makeSqlQuery(const QSSQuery &query) bool isContentSearch = query.getTokensMask() & FILTER_CONTENT == FILTER_CONTENT; if(query.getTokens().isEmpty()) { - throw QSSGeneralException("Nothing to search for supplied"); + throw LooqsGeneralException("Nothing to search for supplied"); } for(const Token &token : query.getTokens()) @@ -185,7 +185,7 @@ QSqlQuery SqliteSearch::makeSqlQuery(const QSSQuery &query) return dbquery; } -QVector SqliteSearch::search(const QSSQuery &query) +QVector SqliteSearch::search(const LooqsQuery &query) { QVector results; QSqlQuery dbQuery = makeSqlQuery(query); @@ -195,7 +195,7 @@ QVector SqliteSearch::search(const QSSQuery &query) qDebug() << dbQuery.lastError(); qDebug() << dbQuery.executedQuery(); - throw QSSGeneralException("SQL Error: " + dbQuery.lastError().text()); + throw LooqsGeneralException("SQL Error: " + dbQuery.lastError().text()); } while(dbQuery.next()) diff --git a/shared/sqlitesearch.h b/shared/sqlitesearch.h index ab377ae..c5e6546 100644 --- a/shared/sqlitesearch.h +++ b/shared/sqlitesearch.h @@ -4,17 +4,17 @@ #include #include "searchresult.h" #include "token.h" -#include "../shared/qssquery.h" +#include "../shared/looqsquery.h" class SqliteSearch { public: SqliteSearch(QSqlDatabase &db); - QVector search(const QSSQuery &query); + QVector search(const LooqsQuery &query); private: QSqlDatabase *db; - QSqlQuery makeSqlQuery(const QSSQuery &query); + QSqlQuery makeSqlQuery(const LooqsQuery &query); QString fieldToColumn(QueryField field); QPair > createSql(const Token &token); QString createSortSql(const QVector sortConditions);