Messagelib

searchlinestatus.h
1 /*
2  SPDX-FileCopyrightText: 2016-2023 Laurent Montel <[email protected]>
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>
14 class QStringListModel;
15 class QAction;
16 namespace MessageList
17 {
18 namespace Core
19 {
20 class FilterSavedMenu;
21 class Filter;
22 class MESSAGELIST_TESTS_EXPORT SearchLineStatus : public QLineEdit
23 {
24  Q_OBJECT
25 public:
26  explicit SearchLineStatus(QWidget *parent = nullptr);
27  ~SearchLineStatus() override;
28 
29  void setLocked(bool b);
30  Q_REQUIRED_RESULT bool locked() const;
31 
32  void setContainsOutboundMessages(bool containsOutboundMessages);
33  Q_REQUIRED_RESULT bool containsOutboundMessages() const;
34  Q_REQUIRED_RESULT QuickSearchLine::SearchOptions searchOptions() const;
35  void setSearchOptions(QuickSearchLine::SearchOptions opts);
36  void setFilterMessageStatus(const QList<Akonadi::MessageStatus> &newLstStatus);
37  void addCompletionItem(const QString &str);
38  void slotClearHistory();
39  void clearFilterButtonClicked();
40 Q_SIGNALS:
41  void filterActionChanged(const QList<Akonadi::MessageStatus> &lst);
42  void searchOptionChanged();
43  void clearButtonClicked();
44  void forceLostFocus();
45  void saveFilter();
46  void activateFilter(MessageList::Core::Filter *f);
47 
48 protected:
49  void contextMenuEvent(QContextMenuEvent *e) override;
50  void keyPressEvent(QKeyEvent *e) override;
51 
52 private:
53  void slotToggledLockAction();
54  void showMenu();
55  void slotFilterActionClicked(QAction *act);
56  void clearFilterAction();
57  void createFilterAction(const QIcon &icon, const QString &text, int value);
58  void createMenuSearch();
59  void updateLockAction();
60  void initializeActions();
61  void updateFilterActionIcon();
62  void updateFilters();
63  void createFilterByAction();
64  void clearFilterByAction();
65  void changeSearchAgainstFromOrToText();
66  void slotClear();
67  void showSavedFiltersMenu();
68  void slotConfigureFilters();
69  void slotActivateFilter(const QString &identifier);
70 
71  bool mLocked = false;
72  bool mHasFilter = false;
73  QIcon mWithoutFilter;
74  QIcon mWithFilter;
75  QAction *mLockAction = nullptr;
76  QAction *mFiltersAction = nullptr;
77  QAction *mSaveFilterAction = nullptr;
78  QMenu *mFilterMenu = nullptr;
79  QCompleter *const mCompleter;
80  QList<QAction *> mFilterListActions;
81  QAction *mSearchEveryWhereAction = nullptr;
82  QAction *mSearchAgainstBodyAction = nullptr;
83  QAction *mSearchAgainstSubjectAction = nullptr;
84  QAction *mSearchAgainstFromOrToAction = nullptr;
85  QAction *mSearchAgainstBccAction = nullptr;
86  QStringListModel *const mCompleterListModel;
87  FilterSavedMenu *mFilterSavedMenu = nullptr;
88  QStringList mListCompetion;
89  QString mColorName;
90  bool mContainsOutboundMessages = false;
91 };
92 }
93 }
This class is responsible of matching messages that should be displayed in the View.
Definition: filter.h:44
This file is part of the KDE documentation.
Documentation copyright © 1996-2023 The KDE developers.
Generated on Tue Sep 26 2023 04:00:45 by doxygen 1.8.17 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.