[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