Hey, that looks like great fun!

On Monday, May 13, 2024 at 3:00:58 PM UTC+1 Edward K. Ream wrote:

> On Sunday, May 12, 2024 at 4:17:19 PM UTC-5 tbp1...@gmail.com wrote:
>
> I have devised a script that can [swap the body and VR3 panes].  You can 
> put it into a button for easy activation, or you could make it into a 
> command in the Settings tree and bind it to a keystroke. 
>
>
> Thomas, your private email on this topic was a Eureka moment for me. I 
> realized that we Leo devs aren't aware of the hierarchy of Leo's Qt widgets.
>
> The following script helps cure that ignorance:
>
> """Scripts to discover Leo's Qt Widget hierarchy."""
> g.cls()
>
> total = 0
>
> def w_name(w):
>     name = w.objectName() or 'no name'
>     return f"<{name}>:{ w.__class__.__name__}"
>
> def dump(tag, w, level=0):
>     global total
>     total += 1
>     ws = (level * 2) * ' '
>     print(f"{id(w):<14} lvl {level:2}: {ws}{tag}:{w_name(w)}")
>     
> def dump_children(w, level=0):
>     if 1:  # Specify wanted classes...
>         wanted = (
>             'DynamicWindow', 'Frame', 'Layout',
>             'Splitter', 'Stacked', 'Text', 'Widget')
>         children = [z for z in w.children()
>             if any (z2 in z.__class__.__name__ for z2 in wanted)]
>     else:  # Specifiy unwanted classes...
>         ignore = ('action', 'animation', 'menu')
>         children = [z for z in w.children()
>             if not any (z2 in z.__class__.__name__.lower() for z2 in 
> ignore)]
>     if children:
>         for i, child in enumerate(children):
>             dump(f"child {i}", child, level + 1)
>             dump_children(child, level + 1)
>         
> def full_dump(tag, w, level=0):
>     print('')
>     print(f"Full dump of {w_name(w)} at {id(w)}...\n")
>     dump(tag, w)
>     dump_children(w)
>             
> if 1:
>     full_dump('c.frame.top.parent()', c.frame.top.parent())
> else:
>
>     flc = c.free_layout  # free layout controller
>     top_splitter = flc.get_top_splitter()
>     dump('c.frame.top.parent()', c.frame.top.parent())
>     dump('c.frame.top', c.frame.top)
>     full_dump('top_splitter', top_splitter)
>
> print('')
> print(f"total objects: {total}")
>
> And here is the output:
>
> Full dump of <qt_tabwidget_stackedwidget>:QStackedWidget at 
> 2877793745520...
>
> 2877793745520  lvl  0: 
> c.frame.top.parent():<qt_tabwidget_stackedwidget>:QStackedWidget
> 2877793745840  lvl  1:   child 0:<no name>:QStackedLayout
> 2877687572080  lvl  1:   child 1:<MainWindow>:DynamicWindow
> 2877793745200  lvl  2:     child 0:<_layout>:QLayout
> 2877687572560  lvl  2:     child 1:<centralwidget>:QWidget
> 2877687572880  lvl  3:       child 0:<mainVLayout>:QVBoxLayout
> 2877687573040  lvl  3:       child 1:<main_splitter>:NestedSplitter
> 2877793731920  lvl  4:         child 0:<no name>:NestedSplitter
> 2877692019248  lvl  5:           child 0:<bodyFrame>:QFrame
> 2877692019408  lvl  6:             child 0:<innerBodyFrame>:QFrame
> 2877692019728  lvl  7:               child 
> 0:<bodyStackedWidget>:QStackedWidget
> 2877793746480  lvl  8:                 child 0:<no name>:QStackedLayout
> 2877692019888  lvl  8:                 child 1:<bodyPage2>:QWidget
> 2877692020368  lvl  9:                   child 
> 0:<richTextEdit>:LeoQTextBrowser
> 2877793746320  lvl 10:                     child 
> 0:<qt_scrollarea_viewport>:QWidget
> 2877793746640  lvl 10:                     child 
> 1:<qt_scrollarea_hcontainer>:QWidget
> 2877793550416  lvl 11:                       child 0:<no name>:QBoxLayout
> 2877793731440  lvl 10:                     child 
> 2:<qt_scrollarea_vcontainer>:QWidget
> 2877793746800  lvl 11:                       child 0:<no name>:QBoxLayout
> 2877692020848  lvl  9:                   child 1:<bodyVLayout>:QVBoxLayout
> 2877692021168  lvl  7:               child 1:<bodyInnerGrid>:QGridLayout
> 2877692021008  lvl  6:             child 1:<bodyGrid>:QGridLayout
> 2877793732080  lvl  5:           child 
> 1:<qt_splithandle_viewrendered_pane>:NestedSplitterHandle
> 2877692019568  lvl  5:           child 
> 2:<qt_splithandle_bodyFrame>:NestedSplitterHandle
> 2877687573200  lvl  4:         child 1:<secondary_splitter>:NestedSplitter
> 2877687574640  lvl  5:           child 0:<logFrame>:QFrame
> 2877687574800  lvl  6:             child 0:<logInnerFrame>:QFrame
> 2877687575120  lvl  7:               child 0:<logTabWidget>:QTabWidget
> 2877793746480  lvl  8:                 child 
> 0:<qt_tabwidget_stackedwidget>:QStackedWidget
> 2877793731440  lvl  9:                   child 0:<no name>:QStackedLayout
> 2877687575920  lvl  9:                   child 1:<spellTab>:QWidget
> 2877687576080  lvl 10:                     child 
> 0:<spellVLayout>:QVBoxLayout
> 2877687576240  lvl 10:                     child 1:<spellFrame>:QFrame
> 2877687576400  lvl 11:                       child 
> 0:<spellVLayout>:QVBoxLayout
> 2877687576560  lvl 12:                         child 
> 0:<spellGrid>:QGridLayout
> 2877692018768  lvl 11:                       child 
> 1:<leo_spell_listBox>:QListWidget
> 2877793746320  lvl 12:                         child 
> 0:<qt_scrollarea_viewport>:QWidget
> 2877793746640  lvl 12:                         child 
> 1:<qt_scrollarea_hcontainer>:QWidget
> 2877793743600  lvl 13:                           child 0:<no 
> name>:QBoxLayout
> 2877793746800  lvl 12:                         child 
> 2:<qt_scrollarea_vcontainer>:QWidget
> 2877793743920  lvl 13:                           child 0:<no 
> name>:QBoxLayout
> 2877695206864  lvl  9:                   child 
> 2:<log-widget>:LeoQTextBrowser
> 2877793746800  lvl 10:                     child 
> 0:<qt_scrollarea_viewport>:QWidget
> 2877793746640  lvl 10:                     child 
> 1:<qt_scrollarea_hcontainer>:QWidget
> 2877793746320  lvl 11:                       child 0:<no name>:QBoxLayout
> 2877793743920  lvl 10:                     child 
> 2:<qt_scrollarea_vcontainer>:QWidget
> 2877793746320  lvl 11:                       child 0:<no name>:QBoxLayout
> 2877687575280  lvl  7:               child 1:<logInnerGrid>:QGridLayout
> 2877687575440  lvl  6:             child 1:<logGrid>:QGridLayout
> 2877687573360  lvl  5:           child 1:<outlineFrame>:QFrame
> 2877687573680  lvl  6:             child 0:<outlineInnerFrame>:QFrame
> 2877687574000  lvl  7:               child 0:<treeWidget>:LeoQTreeWidget
> 2877793746480  lvl  8:                 child 
> 0:<qt_scrollarea_viewport>:QWidget
> 2877793731440  lvl  8:                 child 
> 1:<qt_scrollarea_hcontainer>:QWidget
> 2877793746800  lvl  9:                   child 0:<no name>:QBoxLayout
> 2877793743920  lvl  8:                 child 
> 2:<qt_scrollarea_vcontainer>:QWidget
> 2877793743600  lvl  9:                   child 0:<no name>:QBoxLayout
> 2877687574480  lvl  7:               child 1:<outlineInnerGrid>:QGridLayout
> 2877687574320  lvl  6:             child 1:<outlineGrid>:QGridLayout
> 2877687573840  lvl  5:           child 
> 2:<qt_splithandle_>:NestedSplitterHandle
> 2877687574960  lvl  5:           child 
> 3:<qt_splithandle_>:NestedSplitterHandle
> 2877687573520  lvl  4:         child 
> 2:<qt_splithandle_>:NestedSplitterHandle
> 2877793732240  lvl  4:         child 
> 3:<qt_splithandle_>:NestedSplitterHandle
> 2877692021328  lvl  3:       child 2:<minibufferFrame>:QFrame
> 2877692022928  lvl  4:         child 0:<minibufferHLayout>:QHBoxLayout
>
> total objects: 65
>
> I'll say more later.
>
> 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 leo-editor+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/leo-editor/7c1ada46-3a69-412f-96c6-83418c7339d1n%40googlegroups.com.

Reply via email to