Merge "persistent color scheme selection"
[trojita.git] / src / Gui / AddressRowWidget.h
blob3cd303925a49a91eb81ce238db7516017dc56116
1 /* Copyright (C) 2006 - 2015 Jan Kundrát <jkt@kde.org>
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/>.
22 #ifndef GUI_ADDRESSROWWIDGET_H
23 #define GUI_ADDRESSROWWIDGET_H
25 #include <QLabel>
27 namespace Imap {
28 namespace Message {
29 class MailAddress;
33 namespace Gui {
35 class MessageView;
37 /** @short A label with expansion indicating text and "clicked" signal */
38 class Expander : public QLabel
40 Q_OBJECT
41 public:
42 explicit Expander(QWidget *parent, int count = 0);
43 int expanding() const;
44 void setExpanding(const int expanding);
45 QSize sizeHint() const;
46 signals:
47 void clicked();
48 protected:
49 void mouseReleaseEvent(QMouseEvent *me);
50 void paintEvent(QPaintEvent *pe);
51 private:
52 int m_expanding;
55 /** @short Widget displaying the message envelope */
56 class AddressRowWidget : public QWidget
58 Q_OBJECT
59 public:
60 AddressRowWidget(QWidget *parent, const QString &description, const QList<Imap::Message::MailAddress> &addresses, MessageView *messageView);
61 void addAddresses(const QString &description, const QList<Imap::Message::MailAddress> &addresses, MessageView *messageView);
63 private slots:
64 void toggle();
65 private:
66 AddressRowWidget(const AddressRowWidget &) = delete;
67 AddressRowWidget &operator=(const AddressRowWidget &) = delete;
68 Expander *m_expander;
69 uint m_expandedLength;
74 #endif