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/a0ed3069-ed29-4241-a8d9-ea6f74bb75cdn%40googlegroups.com.