#ifndef MAINWINDOW_H #define MAINWINDOW_H #include #include #include #include #include #include #include #include #include "previewworker.h" #include "../shared/looqsquery.h" #include "ipcclient.h" #include "indexer.h" namespace Ui { class MainWindow; } class MainWindow : public QMainWindow { Q_OBJECT public: explicit MainWindow(QWidget *parent, IPCClient &client); ~MainWindow(); signals: void beginSearch(const QString &query); void startPdfPreviewGeneration(QVector paths, double scalefactor); private: DatabaseFactory *dbFactory; SqliteDbService *dbService; Ui::MainWindow *ui; IPCClient *ipcClient; Indexer *indexer; QFileIconProvider iconProvider; bool previewDirty; QSqlDatabase db; QFutureWatcher> searchWatcher; QFutureWatcher> previewWorkerWatcher; void add(QString path, unsigned int page); QVector previewableSearchResults; void connectSignals(); void makePreviews(int page); bool previewTabActive(); bool indexerTabActive(); void keyPressEvent(QKeyEvent *event) override; unsigned int processedPdfPreviews; void handleSearchResults(const QVector &results); void handleSearchError(QString error); LooqsQuery contentSearchQuery; int previewsPerPage; void createSearchResutlMenu(QMenu &menu, const QFileInfo &fileInfo); void ipcDocOpen(QString path, int num); void ipcFileOpen(QString path); private slots: void lineEditReturnPressed(); void treeSearchItemActivated(QTreeWidgetItem *item, int i); void showSearchResultsContextMenu(const QPoint &point); void tabChanged(); void previewReceived(QSharedPointer preview); void comboScaleChanged(int i); void spinPreviewPageValueChanged(int val); void startIndexing(); void finishIndexing(); void addPathToIndex(); }; #endif // MAINWINDOW_H