Anatomy of the style manager

Pierre Stirnweiss pstirnweiss at googlemail.com
Thu May 30 13:19:24 BST 2013


Hello Elvis,

I am unfortunately kept away from coding by non hobby stuff at the moment.
I have been working for quite a while on a new style manager. The current
style manager is a mix of several partial rewrites on top of each other. I
have started from scratch completely, using a QAbstractModel approach (so
we can later easily go to QML stuff). The style manager is actually nearly
rewritten (for paragraph style stuff). I would however really welcome help
in that. If you are interested in this part of calligra, you can find my
stuff in the branch: textshape_stylesWidget_pierreSt.
Let me know, if you want to help me with this. To start with I have only
tried to replicate the current dialog. However, I don't think they are
particularly good, so the second step should probably be to improve them.
Also there are some really good wish items for the style manager which
ought to be implemented.

PierreSt, who is actually still alive


On Tue, May 28, 2013 at 7:04 PM, Elvis Stansvik <elvstone at gmail.com> wrote:

> Hi again,
>
> Some more questions about the style manager :)
>
> The style manager currently contains, among other things:
>
>     QHash<int, KoCharacterStyle*> charStyles;
>     QHash<int, KoParagraphStyle*> paragStyles;
>     QHash<int, KoParagraphStyle *> unusedParagraphStyles;
>     QVector<int> m_usedCharacterStyles;
>     QVector<int> m_usedParagraphStyles;
>
> The first two are the ones that holds all char/parag styles currently in
> the manager, and they have been there since a long time.
>
> The unusedParagraphStyles, along with the associated
> API addUnusedStyle(...) and moveToUsedStyles(...) was added later by
> Gopalakrishna.
>
> The last two are the most recently added, by Pierre, for use in the
> DockerStylesComboModel.
>
> Taking a paragraph style as example, when it is added to the manager
> normally using add(...), it's added to paragStyles, and if it's used
> (isApplied() returns true), its ID is also added to m_usedParagraphStyles.
> The manager also starts listening on the styleApplied signal of the style,
> and adds the ID to m_usedParagraphStyles when the signal fires. It also
> seems that these IDs are never removed from m_usedParagraphStyles, but
> since style IDs are monotonically increasing, I don't think this is a
> practical problem (just a slight memory/performance bug).
>
> However, in KoStyleManager::moveToUsedStyles(...), which seems to be used
> for transporting a style from unusedParagraphStyles into paragStyles, the
> corresponding ID is never added to m_usedParagraphStyles, and the manager
> does not connect to the styleApplied signal. Is this a bug or intended?
>
> It would be great if someone who's more experienced with the SM could shed
> some light on the motivation for these different containers, and also point
> out if I have gotten something wrong.
>
> Cheers,
> Elvis
>
> _______________________________________________
> calligra-devel mailing list
> calligra-devel at kde.org
> https://mail.kde.org/mailman/listinfo/calligra-devel
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/calligra-devel/attachments/20130530/fa91ddcf/attachment.htm>


More information about the calligra-devel mailing list