[kde-doc-english] [trojita] src/Gui: GUI: don't load overly long inlined attachments when not in "online, trash data" mode
Jan Kundrát
jkt at flaska.net
Fri Aug 9 16:30:11 UTC 2013
Git commit c0d85b3b81b07bf7e8e4582be4ba9976a3f6f48e by Jan Kundrát.
Committed on 04/08/2013 at 21:34.
Pushed by jkt into branch 'master'.
GUI: don't load overly long inlined attachments when not in "online, trash data" mode
M +10 -6 src/Gui/PartWidgetFactory.cpp
http://commits.kde.org/trojita/c0d85b3b81b07bf7e8e4582be4ba9976a3f6f48e
diff --git a/src/Gui/PartWidgetFactory.cpp b/src/Gui/PartWidgetFactory.cpp
index 437a5ae..25ed5c7 100644
--- a/src/Gui/PartWidgetFactory.cpp
+++ b/src/Gui/PartWidgetFactory.cpp
@@ -159,16 +159,17 @@ QWidget *PartWidgetFactory::create(const QModelIndex &partIndex, int recursionDe
}
}
+ const Imap::Mailbox::Model *constModel = 0;
+ Imap::Mailbox::TreeItemPart *part = dynamic_cast<Imap::Mailbox::TreeItemPart *>(Imap::Mailbox::Model::realTreeItem(partIndex, &constModel));
+ Imap::Mailbox::Model *model = const_cast<Imap::Mailbox::Model *>(constModel);
+ Q_ASSERT(model);
+ Q_ASSERT(part);
+ part->fetchFromCache(model);
+
// The problem is that some nasty MUAs (hint hint Thunderbird) would
// happily attach a .tar.gz and call it "inline"
if (showInline && recognizedMimeType && partIndex.data(Imap::Mailbox::RolePartFileName).toString().isEmpty()) {
// showing inline without any decorations whatsoever
- const Imap::Mailbox::Model *constModel = 0;
- Imap::Mailbox::TreeItemPart *part = dynamic_cast<Imap::Mailbox::TreeItemPart *>(Imap::Mailbox::Model::realTreeItem(partIndex, &constModel));
- Imap::Mailbox::Model *model = const_cast<Imap::Mailbox::Model *>(constModel);
- Q_ASSERT(model);
- Q_ASSERT(part);
- part->fetchFromCache(model);
bool showDirectly = loadingMode == LOAD_IMMEDIATELY;
if (!part->fetched())
@@ -190,6 +191,9 @@ QWidget *PartWidgetFactory::create(const QModelIndex &partIndex, int recursionDe
if (contentWidget && !showInline) {
contentWidget->hide();
}
+ if (contentWidget && !part->fetched() && !model->isNetworkOnline() && part->octets() > ExpensiveFetchThreshold) {
+ contentWidget->hide();
+ }
return new AttachmentView(0, manager, partIndex, contentWidget);
}
}
More information about the kde-doc-english
mailing list