[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: Re: koffice/libs/kotext
From: zander () kde ! org
Date: 2010-08-17 14:04:43
Message-ID: 201008171604.44006.zander () kde ! org
[Download RAW message or body]
Please don't use QPointer for new code; QPointer is not very well written and
new code should use QWeakPointer instead.
QPointer uses a global list for all the pointed-to objects which makes it
slow, QWeakPointer is much more cleanly designed.
See r1126678 for an example conversion.
On Tuesday 17. August 2010 13.37.45 Boudewijn Rempt wrote:
> SVN commit 1164652 by rempt:
>
> fix segfault when saving notes
>
> Originally, the notes stored a complete QTextDocument for every note.
> After review that was changed to fragments. This meant, though, that
> we lost the reference to the style manager, and that meant that we
> couldn't save.
>
> M +6 -1 KoInlineNote.cpp
>
>
> --- trunk/koffice/libs/kotext/KoInlineNote.cpp #1164651:1164652
> @@ -39,8 +39,8 @@
> #include <QFontMetricsF>
> #include <QTextOption>
> #include <QDateTime>
> +#include <QPointer>
>
> -
> class KoInlineNote::Private
> {
> public:
> @@ -52,6 +52,7 @@
> QDateTime date;
> bool autoNumbering;
> KoInlineNote::Type type;
> + QPointer<KoStyleManager> styleManager;
> };
>
> KoInlineNote::KoInlineNote(Type type)
> @@ -176,6 +177,7 @@
> QTextCursor cursor(document);
> KoTextDocument textDocument(document);
> textDocument.setStyleManager(styleManager);
> + d->styleManager = styleManager;
> textDocument.setChangeTracker(changeTracker);
>
> KoTextLoader loader(context);
> @@ -230,6 +232,9 @@
> {
> KoXmlWriter *writer = &context.xmlWriter();
> QTextDocument *document = new QTextDocument();
> + KoTextDocument textDocument(document);
> + textDocument.setStyleManager(d->styleManager);
> +
> QTextCursor cursor(document);
> cursor.insertFragment(d->text);
--
Thomas Zander
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic