replace navigationsplitview with overlaysplitview

show toggle sidebar only if sidebar and content don't have enough space
cleaup
This commit is contained in:
tranfelix 2023-10-19 14:02:51 +02:00
parent 62af24da81
commit 53de208d55
4 changed files with 372 additions and 363 deletions

View file

@ -5,235 +5,249 @@
<requires lib="libadwaita" version="1.4"/>
<template class="resetUI" parent="AdwApplicationWindow">
<child>
<object class="GtkBox">
<property name="orientation">vertical</property>
<child>
<object class="AdwHeaderBar">
<property name="centering-policy">strict</property>
<property name="title-widget">
<object class="AdwWindowTitle">
<property name="title">ReSet</property>
</object>
</property>
<object class="AdwOverlaySplitView" id="resetOverlaySplitView">
<property name="content">
<object class="GtkBox">
<property name="margin-start">5</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkButton" id="resetSideBarToggle">
<property name="icon-name">sidebar-show-symbolic</property>
<object class="GtkBox">
<child>
<object class="GtkButton" id="resetSideBarToggle">
<property name="icon-name">sidebar-show-symbolic</property>
<property name="visible">False</property>
</object>
</child>
<child>
<object class="GtkButton">
<property name="icon-name">go-previous-symbolic</property>
</object>
</child>
<child>
<object class="GtkButton">
<property name="icon-name">go-previous-symbolic-rtl</property>
</object>
</child>
<child>
<object class="GtkLabel">
<property name="label">breadcrum path</property>
</object>
</child>
<child>
<object class="GtkButton">
<property name="halign">end</property>
<property name="hexpand">True</property>
<property name="icon-name">open-menu-symbolic</property>
<property name="valign">center</property>
</object>
</child>
<child>
<object class="GtkButton">
<property name="icon-name">window-close-symbolic</property>
</object>
</child>
</object>
</child>
<child>
<object class="GtkFlowBox" id="resetMain">
<property name="column-spacing">25</property>
<property name="homogeneous">True</property>
<property name="row-spacing">25</property>
<property name="selection-mode">none</property>
<property name="valign">start</property>
</object>
</child>
</object>
</child>
<child>
<object class="AdwNavigationSplitView" id="resetNavigationSplitView">
<property name="content">
<object class="AdwNavigationPage">
<property name="child">
<object class="GtkFlowBox" id="resetMain">
<property name="column-spacing">25</property>
<property name="homogeneous">True</property>
<property name="row-spacing">25</property>
<property name="selection-mode">none</property>
<property name="valign">start</property>
</property>
<property name="margin-end">5</property>
<property name="margin-start">5</property>
<property name="margin-top">5</property>
<property name="max-sidebar-width">180.0</property>
<property name="sidebar">
<object class="GtkViewport">
<child>
<object class="GtkBox">
<property name="orientation">vertical</property>
<property name="width-request">150</property>
<child>
<object class="GtkSearchEntry" id="resetSearchEntry">
<property name="margin-end">5</property>
<property name="placeholder-text">Search</property>
</object>
</property>
<property name="margin-bottom">20</property>
<property name="margin-end">20</property>
<property name="margin-start">20</property>
<property name="margin-top">20</property>
<property name="title">fdas</property>
</object>
</property>
<property name="max-sidebar-width">200.0</property>
<property name="min-sidebar-width">200.0</property>
<property name="show-content">True</property>
<property name="sidebar">
<object class="AdwNavigationPage">
<property name="child">
<object class="GtkViewport">
<property name="vscroll-policy">natural</property>
</child>
<child>
<object class="GtkListBox" id="resetSidebarList">
<property name="css-name">resetList</property>
<property name="width-request">150</property>
<child>
<object class="GtkBox">
<property name="orientation">vertical</property>
<property name="width-request">150</property>
<object class="GtkListBoxRow" id="resetConnectivity">
<child>
<object class="GtkSearchEntry" id="resetSearchEntry">
<property name="margin-end">5</property>
<property name="margin-start">5</property>
<property name="placeholder-text">Search</property>
</object>
</child>
<child>
<object class="GtkListBox" id="resetSidebarList">
<property name="css-name">resetList</property>
<property name="width-request">150</property>
<object class="GtkBox">
<property name="margin-bottom">10</property>
<property name="margin-start">10</property>
<property name="margin-top">10</property>
<child>
<object class="GtkListBoxRow" id="resetConnectivity">
<child>
<object class="GtkBox">
<property name="margin-bottom">10</property>
<property name="margin-start">10</property>
<property name="margin-top">10</property>
<child>
<object class="GtkImage">
<property name="icon-name">network-wired-symbolic</property>
<property name="margin-end">10</property>
</object>
</child>
<child>
<object class="GtkLabel">
<property name="label">Connectivity</property>
</object>
</child>
</object>
</child>
<object class="GtkImage">
<property name="icon-name">network-wired-symbolic</property>
<property name="margin-end">10</property>
</object>
</child>
<child>
<object class="GtkListBoxRow" id="resetWifi">
<child>
<object class="GtkBox">
<property name="margin-bottom">10</property>
<property name="margin-start">30</property>
<property name="margin-top">10</property>
<child>
<object class="GtkImage">
<property name="icon-name">network-wireless-symbolic</property>
<property name="margin-end">10</property>
</object>
</child>
<child>
<object class="GtkLabel">
<property name="label">WiFi</property>
</object>
</child>
</object>
</child>
<object class="GtkLabel">
<property name="label">Connectivity</property>
</object>
</child>
<child>
<object class="GtkListBoxRow" id="resetBluetooth">
<child>
<object class="GtkBox">
<property name="margin-bottom">10</property>
<property name="margin-start">30</property>
<property name="margin-top">10</property>
<child>
<object class="GtkImage">
<property name="icon-name">bluetooth-symbolic</property>
<property name="margin-end">10</property>
</object>
</child>
<child>
<object class="GtkLabel">
<property name="label">Bluetooth</property>
</object>
</child>
</object>
</child>
</object>
</child>
<child>
<object class="GtkListBoxRow" id="resetVPN">
<child>
<object class="GtkBox">
<property name="margin-bottom">10</property>
<property name="margin-start">30</property>
<property name="margin-top">10</property>
<child>
<object class="GtkImage">
<property name="icon-name">network-vpn-symbolic</property>
<property name="margin-end">10</property>
</object>
</child>
<child>
<object class="GtkLabel">
<property name="label">VPN</property>
</object>
</child>
</object>
</child>
</object>
</child>
<child>
<object class="GtkListBoxRow" id="resetAudio">
<child>
<object class="GtkBox">
<property name="margin-bottom">10</property>
<property name="margin-start">10</property>
<property name="margin-top">10</property>
<child>
<object class="GtkImage">
<property name="icon-name">audio-headset-symbolic</property>
<property name="margin-end">10</property>
</object>
</child>
<child>
<object class="GtkLabel">
<property name="label">Audio</property>
</object>
</child>
</object>
</child>
</object>
</child>
<child>
<object class="GtkListBoxRow" id="resetVolume">
<child>
<object class="GtkBox">
<property name="margin-bottom">10</property>
<property name="margin-start">30</property>
<property name="margin-top">10</property>
<child>
<object class="GtkImage">
<property name="icon-name">audio-volume-high-symbolic</property>
<property name="margin-end">10</property>
</object>
</child>
<child>
<object class="GtkLabel">
<property name="label">Volume</property>
</object>
</child>
</object>
</child>
</object>
</child>
<child>
<object class="GtkListBoxRow" id="resetMicrophone">
<child>
<object class="GtkBox">
<property name="margin-bottom">10</property>
<property name="margin-start">30</property>
<property name="margin-top">10</property>
<child>
<object class="GtkImage">
<property name="icon-name">audio-input-microphone-symbolic</property>
<property name="margin-end">10</property>
</object>
</child>
<child>
<object class="GtkLabel">
<property name="label">Microphone</property>
</object>
</child>
</object>
</child>
</object>
</child>
<style>
<class name="b"/>
</style>
</object>
</child>
</object>
</child>
<child>
<object class="GtkListBoxRow" id="resetWifi">
<child>
<object class="GtkBox">
<property name="margin-bottom">10</property>
<property name="margin-start">30</property>
<property name="margin-top">10</property>
<child>
<object class="GtkImage">
<property name="icon-name">network-wireless-symbolic</property>
<property name="margin-end">10</property>
</object>
</child>
<child>
<object class="GtkLabel">
<property name="label">WiFi</property>
</object>
</child>
</object>
</child>
</object>
</child>
<child>
<object class="GtkListBoxRow" id="resetBluetooth">
<child>
<object class="GtkBox">
<property name="margin-bottom">10</property>
<property name="margin-start">30</property>
<property name="margin-top">10</property>
<child>
<object class="GtkImage">
<property name="icon-name">bluetooth-symbolic</property>
<property name="margin-end">10</property>
</object>
</child>
<child>
<object class="GtkLabel">
<property name="label">Bluetooth</property>
</object>
</child>
</object>
</child>
</object>
</child>
<child>
<object class="GtkListBoxRow" id="resetVPN">
<child>
<object class="GtkBox">
<property name="margin-bottom">10</property>
<property name="margin-start">30</property>
<property name="margin-top">10</property>
<child>
<object class="GtkImage">
<property name="icon-name">network-vpn-symbolic</property>
<property name="margin-end">10</property>
</object>
</child>
<child>
<object class="GtkLabel">
<property name="label">VPN</property>
</object>
</child>
</object>
</child>
</object>
</child>
<child>
<object class="GtkListBoxRow" id="resetAudio">
<child>
<object class="GtkBox">
<property name="margin-bottom">10</property>
<property name="margin-start">10</property>
<property name="margin-top">10</property>
<child>
<object class="GtkImage">
<property name="icon-name">audio-headset-symbolic</property>
<property name="margin-end">10</property>
</object>
</child>
<child>
<object class="GtkLabel">
<property name="label">Audio</property>
</object>
</child>
</object>
</child>
</object>
</child>
<child>
<object class="GtkListBoxRow" id="resetVolume">
<child>
<object class="GtkBox">
<property name="margin-bottom">10</property>
<property name="margin-start">30</property>
<property name="margin-top">10</property>
<child>
<object class="GtkImage">
<property name="icon-name">audio-volume-high-symbolic</property>
<property name="margin-end">10</property>
</object>
</child>
<child>
<object class="GtkLabel">
<property name="label">Volume</property>
</object>
</child>
</object>
</child>
</object>
</child>
<child>
<object class="GtkListBoxRow" id="resetMicrophone">
<child>
<object class="GtkBox">
<property name="margin-bottom">10</property>
<property name="margin-start">30</property>
<property name="margin-top">10</property>
<child>
<object class="GtkImage">
<property name="icon-name">audio-input-microphone-symbolic</property>
<property name="margin-end">10</property>
</object>
</child>
<child>
<object class="GtkLabel">
<property name="label">Microphone</property>
</object>
</child>
</object>
</child>
</object>
</child>
<style>
<class name="b"/>
</style>
</object>
</property>
<property name="title">asdf</property>
</child>
</object>
</property>
<property name="vexpand">True</property>
</child>
</object>
</child>
</property>
<!-- Custom fragments -->
</object>
</child>
<!-- Custom fragments -->
<child>
<object id="resetSidebarBreakpoint" class="AdwBreakpoint">
</object>
</child>
</template>

View file

@ -7,47 +7,49 @@
(5,1,None,"resetWifiEntry",None,None,None,None,None,None,None)
</ui>
<object>
(3,1,"AdwApplicationWindow","resetUI",None,None,None,None,-1,None),
(3,2,"GtkBox",None,1,None,None,None,-1,None),
(3,3,"AdwHeaderBar",None,2,None,None,None,None,None),
(3,5,"AdwWindowTitle",None,3,None,None,None,-1,None),
(3,6,"AdwNavigationSplitView","resetNavigationSplitView",2,None,None,None,1,None),
(3,7,"AdwNavigationPage",None,6,None,None,None,-1,None),
(3,8,"AdwNavigationPage",None,6,None,None,None,-1,None),
(3,73,"GtkViewport",None,7,None,None,None,-1,None),
(3,74,"GtkBox",None,73,None,None,None,None,None),
(3,75,"GtkSearchEntry","resetSearchEntry",74,None,None,None,None,None),
(3,76,"GtkListBox","resetSidebarList",74,None,None,None,1,None),
(3,79,"GtkListBoxRow","resetWifi",76,None,None,None,1,None),
(3,81,"GtkListBoxRow","resetBluetooth",76,None,None,None,2,None),
(3,83,"GtkListBoxRow","resetVPN",76,None,None,None,3,None),
(3,85,"GtkListBoxRow","resetAudio",76,None,None,None,4,None),
(3,87,"GtkListBoxRow","resetVolume",76,None,None,None,5,None),
(3,89,"GtkListBoxRow","resetMicrophone",76,None,None,None,6,None),
(3,91,"GtkListBoxRow","resetConnectivity",76,None,None,None,None,None),
(3,93,"GtkBox",None,91,None,None,None,None,None),
(3,94,"GtkImage",None,93,None,None,None,None,None),
(3,95,"GtkLabel",None,93,None,None,None,1,None),
(3,96,"GtkBox",None,79,None,None,None,None,None),
(3,97,"GtkImage",None,96,None,None,None,None,None),
(3,98,"GtkLabel",None,96,None,None,None,1,None),
(3,99,"GtkBox",None,89,None,None,None,None,None),
(3,100,"GtkImage",None,99,None,None,None,None,None),
(3,101,"GtkLabel",None,99,None,None,None,1,None),
(3,102,"GtkBox",None,83,None,None,None,None,None),
(3,103,"GtkImage",None,102,None,None,None,None,None),
(3,104,"GtkLabel",None,102,None,None,None,1,None),
(3,105,"GtkBox",None,87,None,None,None,None,None),
(3,106,"GtkImage",None,105,None,None,None,None,None),
(3,107,"GtkLabel",None,105,None,None,None,1,None),
(3,108,"GtkBox",None,81,None,None,None,None,None),
(3,109,"GtkImage",None,108,None,None,None,None,None),
(3,110,"GtkLabel",None,108,None,None,None,1,None),
(3,111,"GtkBox",None,85,None,None,None,None,None),
(3,112,"GtkImage",None,111,None,None,None,None,None),
(3,113,"GtkLabel",None,111,None,None,None,1,None),
(3,117,"GtkFlowBox","resetMain",8,None,None,None,-1,None),
(3,118,"GtkButton","resetSideBarToggle",3,None,None,None,-1,None),
(3,1,"AdwApplicationWindow","resetUI",None,None,None,None,-1," &lt;child&gt;\n &lt;object id=\"resetSidebarBreakpoint\" class=\"AdwBreakpoint\"&gt;\n &lt;/object&gt;\n &lt;/child&gt;"),
(3,2,"AdwOverlaySplitView","resetOverlaySplitView",1,None,None,None,None,""),
(3,3,"GtkBox",None,2,None,None,None,None,None),
(3,4,"GtkBox",None,3,None,None,None,None,None),
(3,5,"GtkButton","resetSideBarToggle",4,None,None,None,None,None),
(3,6,"GtkButton",None,4,None,None,None,1,None),
(3,7,"GtkButton",None,4,None,None,None,2,None),
(3,8,"GtkLabel",None,4,None,None,None,3,None),
(3,9,"GtkButton",None,4,None,None,None,4,None),
(3,10,"GtkButton",None,4,None,None,None,5,None),
(3,11,"GtkFlowBox","resetMain",3,None,None,None,1,None),
(3,12,"GtkViewport",None,2,None,None,None,None,None),
(3,13,"GtkBox",None,12,None,None,None,None,None),
(3,14,"GtkSearchEntry","resetSearchEntry",13,None,None,None,None,None),
(3,15,"GtkListBox","resetSidebarList",13,None,None,None,1,None),
(3,16,"GtkListBoxRow","resetConnectivity",15,None,None,None,None,None),
(3,17,"GtkBox",None,16,None,None,None,None,None),
(3,18,"GtkImage",None,17,None,None,None,None,None),
(3,19,"GtkLabel",None,17,None,None,None,1,None),
(3,20,"GtkListBoxRow","resetWifi",15,None,None,None,1,None),
(3,21,"GtkBox",None,20,None,None,None,None,None),
(3,22,"GtkImage",None,21,None,None,None,None,None),
(3,23,"GtkLabel",None,21,None,None,None,1,None),
(3,24,"GtkListBoxRow","resetBluetooth",15,None,None,None,2,None),
(3,25,"GtkBox",None,24,None,None,None,None,None),
(3,26,"GtkImage",None,25,None,None,None,None,None),
(3,27,"GtkLabel",None,25,None,None,None,1,None),
(3,28,"GtkListBoxRow","resetVPN",15,None,None,None,3,None),
(3,29,"GtkBox",None,28,None,None,None,None,None),
(3,30,"GtkImage",None,29,None,None,None,None,None),
(3,31,"GtkLabel",None,29,None,None,None,1,None),
(3,32,"GtkListBoxRow","resetAudio",15,None,None,None,4,None),
(3,33,"GtkBox",None,32,None,None,None,None,None),
(3,34,"GtkImage",None,33,None,None,None,None,None),
(3,35,"GtkLabel",None,33,None,None,None,1,None),
(3,36,"GtkListBoxRow","resetVolume",15,None,None,None,5,None),
(3,37,"GtkBox",None,36,None,None,None,None,None),
(3,38,"GtkImage",None,37,None,None,None,None,None),
(3,39,"GtkLabel",None,37,None,None,None,1,None),
(3,40,"GtkListBoxRow","resetMicrophone",15,None,None,None,6,None),
(3,41,"GtkBox",None,40,None,None,None,None,None),
(3,42,"GtkImage",None,41,None,None,None,None,None),
(3,43,"GtkLabel",None,41,None,None,None,1,None),
(4,7,"GtkBox","resetWifi",None,None,None,None,None,None),
(4,8,"AdwClampScrollable",None,7,None,None,None,None,None),
(4,9,"GtkBox",None,8,None,None,None,None,None),
@ -68,80 +70,77 @@
(5,5,"GtkButton","resetWifiButton",2,None,None,None,2,None)
</object>
<object_property>
(3,2,"GtkOrientable","orientation","vertical",None,None,None,None,None,None,None,None,None),
(3,3,"AdwHeaderBar","centering-policy","strict",None,None,None,None,None,None,None,None,None),
(3,3,"AdwHeaderBar","title-widget",None,None,None,None,None,5,None,None,None,None),
(3,5,"AdwWindowTitle","title","ReSet",None,None,None,None,None,None,None,None,None),
(3,6,"AdwNavigationSplitView","content",None,None,None,None,None,8,None,None,None,None),
(3,6,"AdwNavigationSplitView","max-sidebar-width","200.0",None,None,None,None,None,None,None,None,None),
(3,6,"AdwNavigationSplitView","min-sidebar-width","200.0",None,None,None,None,None,None,None,None,None),
(3,6,"AdwNavigationSplitView","show-content","True",None,None,None,None,None,None,None,None,None),
(3,6,"AdwNavigationSplitView","sidebar",None,None,None,None,None,7,None,None,None,None),
(3,6,"GtkWidget","vexpand","True",None,None,None,None,None,None,None,None,None),
(3,7,"AdwNavigationPage","child",None,None,None,None,None,73,None,None,None,None),
(3,7,"AdwNavigationPage","title","asdf",None,None,None,None,None,None,None,None,None),
(3,8,"AdwNavigationPage","child",None,None,None,None,None,117,None,None,None,None),
(3,8,"AdwNavigationPage","title","fdas",None,None,None,None,None,None,None,None,None),
(3,8,"GtkWidget","margin-bottom","20",None,None,None,None,None,None,None,None,None),
(3,8,"GtkWidget","margin-end","20",None,None,None,None,None,None,None,None,None),
(3,8,"GtkWidget","margin-start","20",None,None,None,None,None,None,None,None,None),
(3,8,"GtkWidget","margin-top","20",None,None,None,None,None,None,None,None,None),
(3,73,"GtkScrollable","vscroll-policy","natural",None,None,None,None,None,None,None,None,None),
(3,74,"GtkOrientable","orientation","vertical",None,None,None,None,None,None,None,None,None),
(3,74,"GtkWidget","width-request","150",None,None,None,None,None,None,None,None,None),
(3,75,"GtkSearchEntry","placeholder-text","Search",None,None,None,None,None,None,None,None,None),
(3,75,"GtkWidget","margin-end","5",None,None,None,None,None,None,None,None,None),
(3,75,"GtkWidget","margin-start","5",None,None,None,None,None,None,None,None,None),
(3,76,"GtkWidget","css-name","resetList",None,None,None,None,None,None,None,None,None),
(3,76,"GtkWidget","width-request","150",None,None,None,None,None,None,None,None,None),
(3,93,"GtkWidget","margin-bottom","10",None,None,None,None,None,None,None,None,None),
(3,93,"GtkWidget","margin-start","10",None,None,None,None,None,None,None,None,None),
(3,93,"GtkWidget","margin-top","10",None,None,None,None,None,None,None,None,None),
(3,94,"GtkImage","icon-name","network-wired-symbolic",None,None,None,None,None,None,None,None,None),
(3,94,"GtkWidget","margin-end","10",None,None,None,None,None,None,None,None,None),
(3,95,"GtkLabel","label","Connectivity",None,None,None,None,None,None,None,None,None),
(3,96,"GtkWidget","margin-bottom","10",None,None,None,None,None,None,None,None,None),
(3,96,"GtkWidget","margin-start","30",None,None,None,None,None,None,None,None,None),
(3,96,"GtkWidget","margin-top","10",None,None,None,None,None,None,None,None,None),
(3,97,"GtkImage","icon-name","network-wireless-symbolic",None,None,None,None,None,None,None,None,None),
(3,97,"GtkWidget","margin-end","10",None,None,None,None,None,None,None,None,None),
(3,98,"GtkLabel","label","WiFi",None,None,None,None,None,None,None,None,None),
(3,99,"GtkWidget","margin-bottom","10",None,None,None,None,None,None,None,None,None),
(3,99,"GtkWidget","margin-start","30",None,None,None,None,None,None,None,None,None),
(3,99,"GtkWidget","margin-top","10",None,None,None,None,None,None,None,None,None),
(3,100,"GtkImage","icon-name","audio-input-microphone-symbolic",None,None,None,None,None,None,None,None,None),
(3,100,"GtkWidget","margin-end","10",None,None,None,None,None,None,None,None,None),
(3,101,"GtkLabel","label","Microphone",None,None,None,None,None,None,None,None,None),
(3,102,"GtkWidget","margin-bottom","10",None,None,None,None,None,None,None,None,None),
(3,102,"GtkWidget","margin-start","30",None,None,None,None,None,None,None,None,None),
(3,102,"GtkWidget","margin-top","10",None,None,None,None,None,None,None,None,None),
(3,103,"GtkImage","icon-name","network-vpn-symbolic",None,None,None,None,None,None,None,None,None),
(3,103,"GtkWidget","margin-end","10",None,None,None,None,None,None,None,None,None),
(3,104,"GtkLabel","label","VPN",None,None,None,None,None,None,None,None,None),
(3,105,"GtkWidget","margin-bottom","10",None,None,None,None,None,None,None,None,None),
(3,105,"GtkWidget","margin-start","30",None,None,None,None,None,None,None,None,None),
(3,105,"GtkWidget","margin-top","10",None,None,None,None,None,None,None,None,None),
(3,106,"GtkImage","icon-name","audio-volume-high-symbolic",None,None,None,None,None,None,None,None,None),
(3,106,"GtkWidget","margin-end","10",None,None,None,None,None,None,None,None,None),
(3,107,"GtkLabel","label","Volume",None,None,None,None,None,None,None,None,None),
(3,108,"GtkWidget","margin-bottom","10",None,None,None,None,None,None,None,None,None),
(3,108,"GtkWidget","margin-start","30",None,None,None,None,None,None,None,None,None),
(3,108,"GtkWidget","margin-top","10",None,None,None,None,None,None,None,None,None),
(3,109,"GtkImage","icon-name","bluetooth-symbolic",None,None,None,None,None,None,None,None,None),
(3,109,"GtkWidget","margin-end","10",None,None,None,None,None,None,None,None,None),
(3,110,"GtkLabel","label","Bluetooth",None,None,None,None,None,None,None,None,None),
(3,111,"GtkWidget","margin-bottom","10",None,None,None,None,None,None,None,None,None),
(3,111,"GtkWidget","margin-start","10",None,None,None,None,None,None,None,None,None),
(3,111,"GtkWidget","margin-top","10",None,None,None,None,None,None,None,None,None),
(3,112,"GtkImage","icon-name","audio-headset-symbolic",None,None,None,None,None,None,None,None,None),
(3,112,"GtkWidget","margin-end","10",None,None,None,None,None,None,None,None,None),
(3,113,"GtkLabel","label","Audio",None,None,None,None,None,None,None,None,None),
(3,117,"GtkFlowBox","column-spacing","25",None,None,None,None,None,None,None,None,None),
(3,117,"GtkFlowBox","homogeneous","True",None,None,None,None,None,None,None,None,None),
(3,117,"GtkFlowBox","row-spacing","25",None,None,None,None,None,None,None,None,None),
(3,117,"GtkFlowBox","selection-mode","none",None,None,None,None,None,None,None,None,None),
(3,117,"GtkWidget","valign","start",None,None,None,None,None,None,None,None,None),
(3,118,"GtkButton","icon-name","sidebar-show-symbolic",None,None,None,None,None,None,None,None,None),
(3,2,"AdwOverlaySplitView","content",None,None,None,None,None,3,None,None,None,None),
(3,2,"AdwOverlaySplitView","max-sidebar-width","180.0",None,None,None,None,None,None,None,None,None),
(3,2,"AdwOverlaySplitView","sidebar",None,None,None,None,None,12,None,None,None,None),
(3,2,"GtkWidget","margin-end","5",None,None,None,None,None,None,None,None,None),
(3,2,"GtkWidget","margin-start","5",None,None,None,None,None,None,None,None,None),
(3,2,"GtkWidget","margin-top","5",None,None,None,None,None,None,None,None,None),
(3,3,"GtkOrientable","orientation","vertical",None,None,None,None,None,None,None,None,None),
(3,3,"GtkWidget","margin-start","5",None,None,None,None,None,None,None,None,None),
(3,5,"GtkButton","icon-name","sidebar-show-symbolic",None,None,None,None,None,None,None,None,None),
(3,5,"GtkWidget","visible","False",None,None,None,None,None,None,None,None,None),
(3,6,"GtkButton","icon-name","go-previous-symbolic",None,None,None,None,None,None,None,None,None),
(3,7,"GtkButton","icon-name","go-previous-symbolic-rtl",None,None,None,None,None,None,None,None,None),
(3,8,"GtkLabel","label","breadcrum path",None,None,None,None,None,None,None,None,None),
(3,9,"GtkButton","icon-name","open-menu-symbolic",None,None,None,None,None,None,None,None,None),
(3,9,"GtkWidget","halign","end",None,None,None,None,None,None,None,None,None),
(3,9,"GtkWidget","hexpand","True",None,None,None,None,None,None,None,None,None),
(3,9,"GtkWidget","valign","center",None,None,None,None,None,None,None,None,None),
(3,10,"GtkButton","icon-name","window-close-symbolic",None,None,None,None,None,None,None,None,None),
(3,11,"GtkFlowBox","column-spacing","25",None,None,None,None,None,None,None,None,None),
(3,11,"GtkFlowBox","homogeneous","True",None,None,None,None,None,None,None,None,None),
(3,11,"GtkFlowBox","row-spacing","25",None,None,None,None,None,None,None,None,None),
(3,11,"GtkFlowBox","selection-mode","none",None,None,None,None,None,None,None,None,None),
(3,11,"GtkWidget","valign","start",None,None,None,None,None,None,None,None,None),
(3,13,"GtkOrientable","orientation","vertical",None,None,None,None,None,None,None,None,None),
(3,13,"GtkWidget","width-request","150",None,None,None,None,None,None,None,None,None),
(3,14,"GtkSearchEntry","placeholder-text","Search",None,None,None,None,None,None,None,None,None),
(3,14,"GtkWidget","margin-end","5",None,None,None,None,None,None,None,None,None),
(3,15,"GtkWidget","css-name","resetList",None,None,None,None,None,None,None,None,None),
(3,15,"GtkWidget","width-request","150",None,None,None,None,None,None,None,None,None),
(3,17,"GtkWidget","margin-bottom","10",None,None,None,None,None,None,None,None,None),
(3,17,"GtkWidget","margin-start","10",None,None,None,None,None,None,None,None,None),
(3,17,"GtkWidget","margin-top","10",None,None,None,None,None,None,None,None,None),
(3,18,"GtkImage","icon-name","network-wired-symbolic",None,None,None,None,None,None,None,None,None),
(3,18,"GtkWidget","margin-end","10",None,None,None,None,None,None,None,None,None),
(3,19,"GtkLabel","label","Connectivity",None,None,None,None,None,None,None,None,None),
(3,21,"GtkWidget","margin-bottom","10",None,None,None,None,None,None,None,None,None),
(3,21,"GtkWidget","margin-start","30",None,None,None,None,None,None,None,None,None),
(3,21,"GtkWidget","margin-top","10",None,None,None,None,None,None,None,None,None),
(3,22,"GtkImage","icon-name","network-wireless-symbolic",None,None,None,None,None,None,None,None,None),
(3,22,"GtkWidget","margin-end","10",None,None,None,None,None,None,None,None,None),
(3,23,"GtkLabel","label","WiFi",None,None,None,None,None,None,None,None,None),
(3,25,"GtkWidget","margin-bottom","10",None,None,None,None,None,None,None,None,None),
(3,25,"GtkWidget","margin-start","30",None,None,None,None,None,None,None,None,None),
(3,25,"GtkWidget","margin-top","10",None,None,None,None,None,None,None,None,None),
(3,26,"GtkImage","icon-name","bluetooth-symbolic",None,None,None,None,None,None,None,None,None),
(3,26,"GtkWidget","margin-end","10",None,None,None,None,None,None,None,None,None),
(3,27,"GtkLabel","label","Bluetooth",None,None,None,None,None,None,None,None,None),
(3,29,"GtkWidget","margin-bottom","10",None,None,None,None,None,None,None,None,None),
(3,29,"GtkWidget","margin-start","30",None,None,None,None,None,None,None,None,None),
(3,29,"GtkWidget","margin-top","10",None,None,None,None,None,None,None,None,None),
(3,30,"GtkImage","icon-name","network-vpn-symbolic",None,None,None,None,None,None,None,None,None),
(3,30,"GtkWidget","margin-end","10",None,None,None,None,None,None,None,None,None),
(3,31,"GtkLabel","label","VPN",None,None,None,None,None,None,None,None,None),
(3,33,"GtkWidget","margin-bottom","10",None,None,None,None,None,None,None,None,None),
(3,33,"GtkWidget","margin-start","10",None,None,None,None,None,None,None,None,None),
(3,33,"GtkWidget","margin-top","10",None,None,None,None,None,None,None,None,None),
(3,34,"GtkImage","icon-name","audio-headset-symbolic",None,None,None,None,None,None,None,None,None),
(3,34,"GtkWidget","margin-end","10",None,None,None,None,None,None,None,None,None),
(3,35,"GtkLabel","label","Audio",None,None,None,None,None,None,None,None,None),
(3,37,"GtkWidget","margin-bottom","10",None,None,None,None,None,None,None,None,None),
(3,37,"GtkWidget","margin-start","30",None,None,None,None,None,None,None,None,None),
(3,37,"GtkWidget","margin-top","10",None,None,None,None,None,None,None,None,None),
(3,38,"GtkImage","icon-name","audio-volume-high-symbolic",None,None,None,None,None,None,None,None,None),
(3,38,"GtkWidget","margin-end","10",None,None,None,None,None,None,None,None,None),
(3,39,"GtkLabel","label","Volume",None,None,None,None,None,None,None,None,None),
(3,41,"GtkWidget","margin-bottom","10",None,None,None,None,None,None,None,None,None),
(3,41,"GtkWidget","margin-start","30",None,None,None,None,None,None,None,None,None),
(3,41,"GtkWidget","margin-top","10",None,None,None,None,None,None,None,None,None),
(3,42,"GtkImage","icon-name","audio-input-microphone-symbolic",None,None,None,None,None,None,None,None,None),
(3,42,"GtkWidget","margin-end","10",None,None,None,None,None,None,None,None,None),
(3,43,"GtkLabel","label","Microphone",None,None,None,None,None,None,None,None,None),
(4,7,"GtkOrientable","orientation","vertical",None,None,None,None,None,None,None,None,None),
(4,7,"GtkWidget","halign","start",None,None,None,None,None,None,None,None,None),
(4,7,"GtkWidget","valign","start",None,None,None,None,None,None,None,None,None),
@ -170,10 +169,10 @@
(5,5,"GtkWidget","valign","center",None,None,None,None,None,None,None,None,None)
</object_property>
<object_data>
(3,76,"GtkWidget",2,2,None,1,None,None,None,None),
(3,76,"GtkWidget",1,1,None,None,None,None,None,None)
(3,15,"GtkWidget",2,2,None,1,None,None,None,None),
(3,15,"GtkWidget",1,1,None,None,None,None,None,None)
</object_data>
<object_data_arg>
(3,76,"GtkWidget",2,2,"name","b")
(3,15,"GtkWidget",2,2,"name","b")
</object_data_arg>
</cambalache-project>

View file

@ -1,6 +1,6 @@
use adw::glib::{StaticTypeExt};
use adw::NavigationSplitView;
use adw::subclass::prelude::AdwApplicationWindowImpl;
use adw::{Breakpoint, OverlaySplitView};
use adw::subclass::prelude::{AdwApplicationWindowImpl};
use glib::subclass::InitializingObject;
use gtk::subclass::prelude::*;
use gtk::{glib, CompositeTemplate, SearchEntry, ListBox, FlowBox, Button};
@ -11,15 +11,17 @@ use crate::wifi::WifiBox;
#[template(resource = "/org/xetibo/reset/resetMainWindow.ui")]
pub struct Window {
#[template_child]
pub resetNavigationSplitView: TemplateChild<NavigationSplitView>,
pub resetMain: TemplateChild<FlowBox>,
#[template_child]
pub resetSidebarBreakpoint: TemplateChild<Breakpoint>,
#[template_child]
pub resetOverlaySplitView: TemplateChild<OverlaySplitView>,
#[template_child]
pub resetSearchEntry: TemplateChild<SearchEntry>,
#[template_child]
pub resetSidebarList: TemplateChild<ListBox>,
#[template_child]
pub resetMain: TemplateChild<FlowBox>,
#[template_child]
pub resetSideBarToggle: TemplateChild<Button>
pub resetSideBarToggle: TemplateChild<Button>,
}
#[glib::object_subclass]
@ -44,6 +46,7 @@ impl ObjectImpl for Window {
let object = self.obj();
object.setupCallback();
object.handleDynamicSidebar();
let wifibox = WifiBox::new();
let wifibox2 = WifiBox::new();
@ -57,17 +60,7 @@ impl ObjectImpl for Window {
}
}
impl WidgetImpl for Window {
fn size_allocate(&self, width: i32, height: i32, baseline: i32) {
println!("new width {}, new hight {}", width, height);
self.parent_size_allocate(width, height, baseline);
if width < 550 {
self.obj().hideSidebar(true);
} else {
self.obj().hideSidebar(false);
}
}
}
impl WidgetImpl for Window {}
impl WindowImpl for Window {}

View file

@ -1,5 +1,6 @@
mod imp;
use adw::BreakpointCondition;
use adw::glib::clone;
use adw::subclass::prelude::ObjectSubclassIsExt;
use glib::Object;
@ -20,22 +21,32 @@ impl Window {
}
fn setupCallback(&self) {
self.imp()
.resetSearchEntry
self.imp().resetSearchEntry
.connect_search_changed(clone!(@ weak self as window => move |_| {
window.filterList();
}));
self.imp()
.resetSideBarToggle
self.imp().resetSideBarToggle
.connect_clicked(clone!(@ weak self as window => move |_| {
window.toggleSidebar();
}));
}
fn handleDynamicSidebar(&self) {
self.imp().resetSidebarBreakpoint
.set_condition(BreakpointCondition::parse("max-width: 500sp").as_ref().ok());
self.imp().resetSidebarBreakpoint
.add_setter(&Object::from(self.imp().resetOverlaySplitView.get()),
"collapsed",
&true.to_value());
self.imp().resetSidebarBreakpoint
.add_setter(&Object::from(self.imp().resetSideBarToggle.get()),
"visible",
&true.to_value());
}
fn filterList(&self) {
let text = self.imp()
.resetSearchEntry
let text = self.imp().resetSearchEntry
.text()
.to_string();
self.imp().resetSidebarList.set_filter_func(move |x| {
@ -53,21 +64,13 @@ impl Window {
});
}
fn hideSidebar(&self, hidden: bool) {
self.imp()
.resetNavigationSplitView
.set_collapsed(hidden);
}
fn toggleSidebar(&self) {
if self.imp().resetNavigationSplitView.shows_content() {
self.imp()
.resetNavigationSplitView
.set_show_content(false);
if self.imp().resetOverlaySplitView.shows_sidebar() {
self.imp().resetOverlaySplitView
.set_show_sidebar(false);
} else {
self.imp()
.resetNavigationSplitView
.set_show_content(true);
self.imp().resetOverlaySplitView
.set_show_sidebar(true);
}
}
}