The vr-related crashes are already happening in Leo, I reported a bug on it earlier this week: https://github.com/leo-editor/leo-editor/issues/4009
I suspect it's the same bug, and nothing new your scripting and tests are causing :) Thanks for the explanations and patience -- I was caught up in the CrowdStrike mess yesterday and am severely lacking sleep... Jake On Sat, Jul 20, 2024 at 1:14 PM Thomas Passin <[email protected]> wrote: > The most obvious way is to use try...except blocks. > > if vr_splitter: > vr_splitter.deleteLater() > > would become: > try: > vr_splitter.deleteLater() > except: > pass > > Presumably this would not prevent unhooking the vr object from Leo's event > syste, > On Saturday, July 20, 2024 at 11:50:44 AM UTC-4 Edward K. Ream wrote: > >> On Sat, Jul 20, 2024 at 9:36 AM Jacob Peck wrote: >> >> > can't you [do something general :-)] >> >> I usually approach tricky tasks by writing specific code first. >> >> Here is a prototype undoer for the "quadrants" layout. It's in a separate >> node for prototyping: >> >> h = c.hash() >> pc = g.app.pluginsController >> gui = g.app.gui >> vr_splitter = gui.find_widget_by_name(c, 'vr-body-splitter') >> vr3_splitter = gui.find_widget_by_name(c, 'vr3-body-splitter') >> body_frame = gui.find_widget_by_name(c, 'bodyFrame') >> parent = ( >> vr_splitter.parent() if vr_splitter >> else vr3_splitter.parent() if vr3_splitter >> else None >> ) >> if vr_splitter: >> vr_splitter.deleteLater() >> if vr3_splitter: >> vr3_splitter.deleteLater() >> if parent: >> parent.addWidget(body_frame) >> parent.setSizes([100_000] * len(parent.sizes())) >> >> Notice that there may be *two* body splitters, now *each with its own >> separate name*. >> >> This works, as far as the gui goes, but deleting the splitters causes >> repeated crashes both the VR and VR3 plugins: >> >> Traceback (most recent call last): >> File "C:\Repos\leo-editor\leo\core\leoPlugins.py", line 348, in >> callTagHandler >> result = handler(tag, keywords) >> File "C:\Repos\leo-editor\leo\plugins\viewrendered.py", line 363, in >> onClose >> vr.deleteLater() >> RuntimeError: wrapped C/C++ object of type ViewRenderedController has >> been deleted >> >> Traceback (most recent call last): >> File "C:\Repos\leo-editor\leo\core\leoPlugins.py", line 348, in >> callTagHandler >> result = handler(tag, keywords) >> ^^^^^^^^^^^^^^^^^^^^^^ >> File "C:\Repos\leo-editor\leo\plugins\viewrendered3.py", line 1475, in >> onClose >> vr3.deleteLater() >> RuntimeError: wrapped C/C++ object of type ViewRenderedController3 has >> been deleted >> ... >> >> These crashes aren't too surprising, but fixing them is another matter :-) >> >> *Summary* >> >> My usual method is to generalize *after* I know all the details for a >> *particular* task. YMMV. >> >> Edward >> > -- > You received this message because you are subscribed to the Google Groups > "leo-editor" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To view this discussion on the web visit > https://groups.google.com/d/msgid/leo-editor/72efebb1-840e-4c1c-95d8-3f8698d9d627n%40googlegroups.com > <https://groups.google.com/d/msgid/leo-editor/72efebb1-840e-4c1c-95d8-3f8698d9d627n%40googlegroups.com?utm_medium=email&utm_source=footer> > . > -- You received this message because you are subscribed to the Google Groups "leo-editor" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/leo-editor/CAJ1i%2BSax6S_WMVuFwgmmrWNoN_-b9%2BowkKgto_d8bUGNZA0hJA%40mail.gmail.com.
