Messagelib

quicksearchline.h
1/*
2 SPDX-FileCopyrightText: 2014-2024 Laurent Montel <montel@kde.org>
3
4 SPDX-License-Identifier: LGPL-2.0-or-later
5
6*/
7
8#pragma once
9
10#include "messagelist_export.h"
11#include "searchmessagebybuttons.h"
12#include <Akonadi/MessageStatus>
13#include <QWidget>
14
15class QComboBox;
16namespace MessageList
17{
18namespace Core
19{
20class SearchLineStatus;
21class Filter;
22class SearchStatusButtons;
23class SearchMessageByButtons;
24/**
25 * @brief The QuickSearchLine class
26 * @author Laurent Montel <montel@kde.org>
27 */
28class MESSAGELIST_EXPORT QuickSearchLine : public QWidget
29{
30 Q_OBJECT
31public:
32 explicit QuickSearchLine(QWidget *parent = nullptr);
33 ~QuickSearchLine() override;
34
35 [[nodiscard]] SearchMessageByButtons::SearchOptions searchOptions() const;
36
37 void focusQuickSearch(const QString &selectedText);
38
39 [[nodiscard]] QComboBox *tagFilterComboBox() const;
40 [[nodiscard]] SearchLineStatus *searchEdit() const;
41 void resetFilter();
42 [[nodiscard]] QList<Akonadi::MessageStatus> status() const;
43
44 void updateComboboxVisibility();
45
46 [[nodiscard]] bool containsOutboundMessages() const;
47 void setContainsOutboundMessages(bool containsOutboundMessages);
48
49 void changeQuicksearchVisibility(bool show);
50 void addCompletionItem(const QString &str);
51
52 void setSearchOptions(SearchMessageByButtons::SearchOptions opts);
53 void setFilterMessageStatus(const QList<Akonadi::MessageStatus> &newLstStatus);
54
55Q_SIGNALS:
56 void clearButtonClicked();
57 void searchEditTextEdited(const QString &);
58 void searchOptionChanged();
59 void statusButtonsClicked();
60 void forceLostFocus();
61 void saveFilter();
62 void activateFilter(MessageList::Core::Filter *f);
63
64protected:
65 bool eventFilter(QObject *object, QEvent *e) override;
66private Q_SLOTS:
67 MESSAGELIST_NO_EXPORT void slotSearchEditTextEdited(const QString &text);
68 MESSAGELIST_NO_EXPORT void slotClearButtonClicked();
69 MESSAGELIST_NO_EXPORT void slotFilterActionChanged(const QList<Akonadi::MessageStatus> &lst);
70
71private:
72 SearchLineStatus *const mSearchEdit;
73 SearchStatusButtons *const mSearchStatusButtons;
74 SearchMessageByButtons *const mSearchMessageByButtons;
75 QComboBox *const mTagFilterCombo;
77};
78}
79}
This class is responsible of matching messages that should be displayed in the View.
Definition filter.h:33
The QuickSearchLine class.
Q_SCRIPTABLE CaptureState status()
This file is part of the KDE documentation.
Documentation copyright © 1996-2024 The KDE developers.
Generated on Fri Jul 26 2024 11:54:19 by doxygen 1.11.0 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.