Messagelib

searchlinestatus.h
1/*
2 SPDX-FileCopyrightText: 2016-2024 Laurent Montel <montel@kde.org>
3
4 SPDX-License-Identifier: GPL-2.0-or-later
5*/
6
7#pragma once
8
9#include "messagelist_private_export.h"
10#include "quicksearchline.h"
11#include <Akonadi/MessageStatus>
12#include <QIcon>
13#include <QLineEdit>
15class QAction;
16namespace MessageList
17{
18namespace Core
19{
20class FilterSavedMenu;
21class Filter;
22class MESSAGELIST_TESTS_EXPORT SearchLineStatus : public QLineEdit
23{
24 Q_OBJECT
25public:
26 explicit SearchLineStatus(QWidget *parent = nullptr);
27 ~SearchLineStatus() override;
28
29 void setLocked(bool b);
30 [[nodiscard]] bool locked() const;
31
32 void addCompletionItem(const QString &str);
33 void slotClearHistory();
34 void clearFilterButtonClicked();
35 void filterAdded();
36Q_SIGNALS:
37 void clearButtonClicked();
38 void forceLostFocus();
39 void saveFilter();
40 void activateFilter(MessageList::Core::Filter *f);
41
42protected:
43 void contextMenuEvent(QContextMenuEvent *e) override;
44 void keyPressEvent(QKeyEvent *e) override;
45
46private:
47 MESSAGELIST_NO_EXPORT void slotToggledLockAction();
48 MESSAGELIST_NO_EXPORT void clearFilterAction();
49 MESSAGELIST_NO_EXPORT void updateLockAction();
50 MESSAGELIST_NO_EXPORT void initializeActions();
51 MESSAGELIST_NO_EXPORT void updateFilterLineEditBackgroundColor();
52 MESSAGELIST_NO_EXPORT void slotClear();
53 MESSAGELIST_NO_EXPORT void showSavedFiltersMenu();
54 MESSAGELIST_NO_EXPORT void slotConfigureFilters();
55 MESSAGELIST_NO_EXPORT void slotActivateFilter(const QString &identifier);
56
57 bool mLocked = false;
58 bool mHasFilter = false;
59 QAction *mLockAction = nullptr;
60 QAction *mSaveFilterAction = nullptr;
61 QCompleter *const mCompleter;
62 QStringListModel *const mCompleterListModel;
63 FilterSavedMenu *mFilterSavedMenu = nullptr;
64 QStringList mListCompetion;
65 QString mColorName;
66};
67}
68}
This class is responsible of matching messages that should be displayed in the View.
Definition filter.h:33
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.