make the setings dialog adapt to the pages size
[trojita.git] / src / Gui / ComposerTextEdit.h
blob5d68d338d2452c2e4ccbd2b99a7e4d53aec0dcd0
1 /* Copyright (C) 2012 Thomas Lübking <thomas.luebking@gmail.com>
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 class QTimer;
25 #include <QList>
26 #include <QUrl>
27 #include <QTextEdit>
29 class ComposerTextEdit : public QTextEdit {
30 Q_OBJECT
31 public:
32 explicit ComposerTextEdit(QWidget *parent = 0);
33 /**
34 * use the view to display a notification for @p timeout ms
35 * using an empty or null string will clear the notification at once
36 * a @p timeout of 0ms shows the notification until it's replaced or reset
38 void notify(const QString &n, uint timeout = 0);
39 signals:
40 void sendRequest();
41 void urlsAdded(QList<QUrl> urls);
42 protected:
43 /** DND reimplementation **/
44 bool canInsertFromMimeData( const QMimeData * source ) const;
45 void insertFromMimeData(const QMimeData *source);
46 void keyPressEvent(QKeyEvent *event);
47 void keyReleaseEvent(QKeyEvent *event);
48 /** painter reimplementation for notification **/
49 void paintEvent(QPaintEvent *pe);
50 virtual void contextMenuEvent(QContextMenuEvent *e);
51 private slots:
52 void resetNotification();
53 void slotPasteAsQuotation();
54 private:
55 QString m_notification;
56 QTimer *m_notificationTimer;
57 bool m_couldBeSendRequest;
58 QAction *m_pasteQuoted;