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/>.
22 #ifndef LOADABLEPARTWIDGET_H
23 #define LOADABLEPARTWIDGET_H
25 #include <QPersistentModelIndex>
26 #include <QStackedWidget>
28 #include "Gui/AbstractPartWidget.h"
29 #include "Gui/PartWalker.h"
38 /** @short Widget which implements delayed loading of message parts
40 This class supports two modes of loading, either a "click-through" one for loading message parts
41 on demand after the user clicks a button, or an "automated" mode where the data are loaded after
42 this widget becomes visible.
45 class LoadablePartWidget
: public QStackedWidget
, public AbstractPartWidget
49 LoadablePartWidget(QWidget
*parent
, Imap::Network::MsgPartNetAccessManager
*manager
, const QModelIndex
&part
,
50 PartWidgetFactory
*factory
, int recursionDepth
,
51 const UiUtils::PartLoadingOptions loadingMode
);
52 QString
quoteMe() const override
;
53 virtual bool searchDialogRequested() override
;
54 virtual void reloadContents() override
;
55 virtual void zoomIn() override
;
56 virtual void zoomOut() override
;
57 virtual void zoomOriginal() override
;
59 virtual void showEvent(QShowEvent
*event
) override
;
63 Imap::Network::MsgPartNetAccessManager
*manager
;
64 QPersistentModelIndex partIndex
;
65 PartWidgetFactory
*m_factory
;
67 UiUtils::PartLoadingOptions m_loadingMode
;
69 QPushButton
*loadButton
;
72 LoadablePartWidget(const LoadablePartWidget
&); // don't implement
73 LoadablePartWidget
&operator=(const LoadablePartWidget
&); // don't implement
78 #endif // LOADABLEPARTWIDGET_H