← Back to team overview

yade-dev team mailing list archive

Re: qt4 tree view, new attempt

 

Janek Kozicki said:     (by the date of Mon, 12 Jul 2010 17:16:08 +0200)

> Janek Kozicki said:     (by the date of Mon, 12 Jul 2010 15:49:06 +0200)
> > Václav Šmilauer said:     (by the date of Mon, 12 Jul 2010 15:09:53 +0200)
> > 
> > > > - it's not possible to "skip" serialization of some variables to
> > > >   speed it up. You provide something and all of its internals are
> > > >   serialized.
> > > Too bad...

Well, guy, now it works.

Only the "top" of the data is serialized. Things that are possible to
"dive in" are marked with [+], when you click it, a re-serialization
"on-demand" is performed. And only this 'unfold_path' is
re-serialized again.  Everything else is skipped. This is done by
`void populate()` member function.

This means that QT tree holds only a partial (& fragmented) copy of original.

This works currently only in one direction - generating a QT tree.

If you wanted to save edited content, right now this fragmented copy
would try to replace the original (which crashes).

But by applying analogous modifications to *_iarchive_*, as I have
just made in *_oarchive_*, it is possible to "save" data from QT
tree only from the modified path. This will avoid destruction of
original data, but replacing the data where m_user_modified==true. A
fairly simple modification. In fact, I think that if you are
interested in this approach, you should do this modification, this
will let you easily understand how it works.
Copy the main logic from
boost_basic_tree_oarchive.hpp save_override() to
boost_basic_tree_iarchive.hpp
and fix in few other places, like, where m_user_modified is set.

Also, all that allows you to "seek" some element in whole data, just
by giving it a std::string path.

dreams come true?

Now I have to stop working on this, I must get back to
clumps + triaxial test & moment law, hopefully.

best regards
-- 
Janek Kozicki                               http://janek.kozicki.pl/  |



Follow ups

References