> On Oct. 16, 2011, 6:04 p.m., Dmitry Kazakov wrote:
> > Hi!
> > 
> > It's a really cool idea to use uuids here! I think the patch is very good, 
> > but i have one small concern. Is it possible to remove old code like 
> > copyFromName(), setCopyFromName() and findNodeByName()? Probably, map the 
> > name to the uuid right during the loading in KisKraLoader or 
> > KisKraLoadVisitor. Is it possible? I think keeping this old code might play 
> > a negative role in a long-term plan =)
> 
> Torio Mlshi wrote:
>     Hi!
>     
>     I guess it is impossible to do this good way because during loading clone 
> layer in KisKraLoader all we know is a target name. We even don't know is it 
> created or still only present in xml. I can imagine some hacks which would 
> allow to know uuid of that node (search for existing node with the same name, 
> if found get uuid from it; if not, write to a map that node with required 
> name should have special uuid), but they would be definetly worse is 
> long-term plan.

Well, then you could leave KisKraLoader as it is but encapsulate the clone 
information into a separate object like:

CloneInfo {
public:
    CloneInfo(const QUuid &uuid);
    CloneInfo(const QString &name);

    KisNodeSP findNode(KisNodeSP rootNode);

private:
    QUuid m_uuid;
    QString m_name;
};

And store this object in clone layers. This would remove all the duplications 
from the layer's code and remove findNodeByName/ByUuid duplicated cycles from 
the loader. The loader would create clone information from information it has 
in xml. What do you think about this solution? 


- Dmitry


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://git.reviewboard.kde.org/r/102896/#review7401
-----------------------------------------------------------


On Oct. 16, 2011, 4:59 p.m., Torio Mlshi wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> http://git.reviewboard.kde.org/r/102896/
> -----------------------------------------------------------
> 
> (Updated Oct. 16, 2011, 4:59 p.m.)
> 
> 
> Review request for Calligra and Boudewijn Rempt.
> 
> 
> Description
> -------
> 
> This patch fixes saving and loading of clone layers. It adds uuid to 
> KisBaseNode so that clone layers use it to store information about their 
> targets, making sure to target required layer.
> 
> About compatibility:
> All nodes get uuid on creation. So node will have uuid even if no one is 
> provided in file (which overwrites if present). Clone layers also use old 
> code if no copyfromuuid field. So old files should work fine.
> And new files should also be loaded ok by old versions because no fields are 
> removed and old fields (such as copyfrom) are still valid. Of course, old 
> versions will open new files just as old ones and bug will still present 
> there.
> 
> 
> This addresses bug 283610.
>     http://bugs.kde.org/show_bug.cgi?id=283610
> 
> 
> Diffs
> -----
> 
>   krita/image/kis_base_node.h 798bb06 
>   krita/image/kis_base_node.cpp cccbee8 
>   krita/image/kis_clone_layer.h 21e766e 
>   krita/image/kis_clone_layer.cpp 050ef5f 
>   krita/ui/kra/kis_kra_load_visitor.h 89bf501 
>   krita/ui/kra/kis_kra_load_visitor.cpp d980ab0 
>   krita/ui/kra/kis_kra_loader.cpp 5d3e5d5 
>   krita/ui/kra/kis_kra_savexml_visitor.cpp ecee329 
>   krita/ui/kra/kis_kra_tags.h a737ae3 
> 
> Diff: http://git.reviewboard.kde.org/r/102896/diff/diff
> 
> 
> Testing
> -------
> 
> Old files worked fine, as expected.
> 
> 
> Thanks,
> 
> Torio Mlshi
> 
>

_______________________________________________
calligra-devel mailing list
calligra-devel@kde.org
https://mail.kde.org/mailman/listinfo/calligra-devel

Reply via email to