File indexing completed on 2024-05-12 05:12:48

0001 /*
0002     This file is part of Akonadi.
0003 
0004     SPDX-FileCopyrightText: 2009 Tobias Koenig <tokoe@kde.org>
0005 
0006     SPDX-License-Identifier: GPL-2.0-or-later
0007 */
0008 
0009 #pragma once
0010 
0011 #include <QWidget>
0012 
0013 class KComboBox;
0014 class KJob;
0015 class QTextBrowser;
0016 
0017 class QListView;
0018 class QModelIndex;
0019 class QStandardItemModel;
0020 class QTreeView;
0021 class QSplitter;
0022 class QPlainTextEdit;
0023 
0024 namespace Xapian
0025 {
0026 class Database;
0027 class Error;
0028 }
0029 
0030 class SearchWidget : public QWidget
0031 {
0032     Q_OBJECT
0033 
0034 public:
0035     explicit SearchWidget(QWidget *parent = nullptr);
0036     ~SearchWidget() override;
0037 
0038 private Q_SLOTS:
0039     void search();
0040     void openStore(int idx);
0041     void fetchItem(const QModelIndex &);
0042     void itemFetched(KJob *);
0043 
0044 private:
0045     void xapianError(const Xapian::Error &e);
0046     void closeDataBase();
0047 
0048     KComboBox *mStoreCombo = nullptr;
0049     QTextBrowser *mItemView = nullptr;
0050     QPlainTextEdit *mQueryWidget = nullptr;
0051     QListView *mDatabaseView = nullptr;
0052     QStandardItemModel *mDocumentModel = nullptr;
0053     QTreeView *mDocumentView = nullptr;
0054     QStandardItemModel *mTermModel = nullptr;
0055     QSplitter *mHSplitter = nullptr;
0056     QSplitter *mVSplitter = nullptr;
0057 
0058     Xapian::Database *mDatabase = nullptr;
0059 };