Merge "persistent color scheme selection"
[trojita.git] / src / Gui / MessageListWidget.h
blob24c79f9d69d18789121e5c75a920cc3090a7aa2f
1 /* Copyright (C) 2006 - 2014 Jan Kundrát <jkt@flaska.net>
3 This file is part of the Trojita Qt IMAP e-mail client,
4 http://trojita.flaska.net/
6 This program is free software; you can redistribute it and/or
7 modify it under the terms of the GNU General Public License as
8 published by the Free Software Foundation; either version 2 of
9 the License or (at your option) version 3 or any later version
10 accepted by the membership of KDE e.V. (or its successor approved
11 by the membership of KDE e.V.), which shall act as a proxy
12 defined in Section 14 of version 3 of the license.
14 This program is distributed in the hope that it will be useful,
15 but WITHOUT ANY WARRANTY; without even the implied warranty of
16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 GNU General Public License for more details.
19 You should have received a copy of the GNU General Public License
20 along with this program. If not, see <http://www.gnu.org/licenses/>.
23 #ifndef MESSAGELISTWIDGET_H
24 #define MESSAGELISTWIDGET_H
26 #include <QWidget>
27 #include "Imap/Model/FavoriteTagsModel.h"
29 class LineEdit;
30 class QTimer;
31 class QToolButton;
33 namespace Gui {
35 class MsgListView;
37 /** @short Widget containing a list of messages along with quick filtering toolbar */
38 class MessageListWidget : public QWidget
40 Q_OBJECT
41 public:
42 explicit MessageListWidget(QWidget *parent, Imap::Mailbox::FavoriteTagsModel *m_favoriteTagsModel);
44 void setFuzzySearchSupported(bool supported);
45 void setRawSearchEnabled(bool enabled);
47 QStringList searchConditions() const;
49 // FIXME: consider making this private and moving the logic from Window with it
50 MsgListView *tree;
52 public slots:
53 void focusSearch();
54 void focusRawSearch();
56 signals:
57 void requestingSearch(const QStringList &conditions);
58 void rawSearchSettingChanged(bool enabled);
60 protected slots:
61 void slotApplySearch();
62 void slotAutoEnableDisableSearch();
63 void slotSortingFailed();
65 private slots:
66 void slotComplexSearchInput(QAction*);
67 void slotConditionalSearchReset();
68 void slotDeActivateSimpleSearch();
69 void slotResetSortingFailed();
70 void slotUpdateSearchCursor();
72 private:
73 LineEdit *m_quickSearchText;
74 QAction *m_searchOptions;
75 QAction *m_searchInSubject;
76 QAction *m_searchInBody;
77 QAction *m_searchInSenders;
78 QAction *m_searchInRecipients;
79 QAction *m_searchFuzzy;
80 QAction *m_rawSearch;
81 bool m_supportsFuzzySearch;
82 QTimer *m_searchResetTimer;
83 QString m_queryPlaceholder;
85 friend class MainWindow; // needs access to our private slots
90 #endif // MESSAGELISTWIDGET_H