← Back to team overview

yade-dev team mailing list archive

Re: qt4 tree view, new attempt

 

Václav Šmilauer said:     (by the date of Mon, 12 Jul 2010 14:20:11 +0200)

> > Heh if I continue changing that then probably I should make a branch
> > or something :)
> You can make a branch just by doing
> 
> bzr init .
> bzr add *
> bzr commit -m 'initial commit'
> bzr push lp:~yade-dev/qtr-tree
> bzr bind lp:~yade-dev/qt4-tree # make commits online by default

thank you for that info.
 
> I am starting to doubt (after the initial enthusiasm) the design of
> this. You have to serialize the whole simulation before changing stuff.
> Or is it possible to not nest, and just serialize the part of the tree
> that is open?

- it's not possible to "skip" serialization of some variables to
  speed it up. You provide something and all of its internals are
  serialized.

- nothing is forcing you to serialize whole Scene. You can serialize
  anything you want. For example serialize only O.bodies[10], and you
  will see just that and nothing else. In fact from python it could
  be exposed as simply as

  >>> show(O.bodies[10])

  or such.

- it is also possible to build some kind of dictionary while the
  serialization takes place, to speed up later access.

- yes: if you serialize whole Scene - you really have it duplicated
  in memory. There's no way around this. In fact O.saveTmp() could be
  saving into this kind of structure. And display it on the screen on
  demand.

Realtime updates of values during calculation might require either
serializing in a loop with some time delay. IIRC it is nost possible
to use references to original values.

A qt window showing all data of a currently selected body is
something that will work nicely.

Another qt window showing all engines. etc.etc. This will work.


But, it is also to replace a FileGenerator and Display options, where
we still have yade serialization - in those places there is no problem
with serializing whole class. It will work just as good.

The only thing to make it more comfortable are:

- save/load_override for Vector3r, Quaternionr and bool (I'd love to
  have a checkbox for bool, I don't even know if qt4 allows
  checkboxes in qt_tree ;)
- skip displaying some useless rows in a tree (e.g. pointer wrappers,
  they don't even have a name)


BTW: all those boost_*.hpp files seem complex. But on the positive
side they are using the standard boost::serialization interface for
adding custom archive types. In fact 4 years have passed, and changes
in there were really minimal and well documented. It will work in the
future.


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



Follow ups

References