davidedmundson added a comment.
hypothetically (and this would still require a Qt change) if we could
override loadResource would that be enough for doing what this is doing?
INLINE COMMENTS
> textsanitizer.cpp:41
> +
> + QScopedPointer<QTextDocument> newDocument(new QTextDocument());
> + newDocument->setHtml(text);
just make it on the stack?
> textsanitizer.cpp:59
> + // all of this trouble already we might as well look at
> everything.
> + QUrl backgroundUrl =
> format.property(QTextFormat::BackgroundImageUrl).toUrl();
> + if (!backgroundUrl.isLocalFile()) {
format might not be valid here, does that cause a problem?
> textsanitizer.cpp:60
> + QUrl backgroundUrl =
> format.property(QTextFormat::BackgroundImageUrl).toUrl();
> + if (!backgroundUrl.isLocalFile()) {
> + format.setProperty(QTextFormat::BackgroundImageUrl,
> QVariant());
probably better to do do:
!backgroundUrl.isEmpty() && !isLocalFile..
QTextFormat was still doing some processing at least.
> textsanitizer.cpp:86
> +
> + // FIXME is there a better way?
> + // we cannot just setHtml on the TextEdit's textDocument at the
> beginning
(untested)
Make a QTextCursor on qqdoc->textDocument() and then you can insertFragment.
This way you can do it with only shallow copies, and all in a single pass over
the original document.
Removing images becomes a lot easier then, as you just skip that fragment
rather than trying to remove text.
REPOSITORY
R120 Plasma Workspace
REVISION DETAIL
https://phabricator.kde.org/D6673
To: broulik, #plasma, fvogt
Cc: davidedmundson, plasma-devel, ZrenBot, progwolff, lesliezhai, ali-mohamed,
jensreuterberg, abetts, sebas, apol, mart, lukas