#ifndef SEARCHWORKER_H #define SEARCHWORKER_H #include #include #include #include #include #include "../shared/searchresult.h" class SearchWorker : public QObject { class Command { public: QString key; QString value; Command(QString key = "", QString value = "") { this->key = key; this->value = value; } }; Q_OBJECT private: QVector tokenize(QString expression); QString createSql(const Command &cmd); QString makeSql(const QVector &tokens); QSqlDatabase db; public: SearchWorker(); SearchWorker(const QString &dbpath); bool checkParanthesis(QString expression); public slots: void search(const QString &query); signals: void searchResultsReady(const QVector &results); void searchCancelled(); void searchError(QString e); }; #endif // SEARCHWORKER_H