feat: use adw navigation split view instead of overlay split view

This commit is contained in:
Gabriele Musco 2023-12-04 06:24:10 +00:00
parent 7266f0b2f0
commit 71c8451833
3 changed files with 7 additions and 21 deletions

View file

@ -74,7 +74,7 @@ pub struct App {
#[tracker::do_not_track]
debug_view: Controller<DebugView>,
#[tracker::do_not_track]
split_view: Option<adw::OverlaySplitView>,
split_view: Option<adw::NavigationSplitView>,
#[tracker::do_not_track]
about_dialog: Controller<AboutDialog>,
#[tracker::do_not_track]
@ -276,17 +276,13 @@ impl SimpleComponent for App {
set_hexpand: true,
set_vexpand: true,
#[name = "split_view"]
adw::OverlaySplitView {
adw::NavigationSplitView {
set_hexpand: true,
set_vexpand: true,
set_content: Some(model.main_view.widget()),
set_sidebar: Some(model.debug_view.widget()),
set_sidebar_position: gtk::PackType::End,
set_show_sidebar: model.config.debug_view_enabled,
set_sidebar_width_fraction: 1.0,
// stupid way to make sidebar hexpand
set_max_sidebar_width: 999999.9,
set_pin_sidebar: true,
set_sidebar: Some(&adw::NavigationPage::new(model.main_view.widget(), APP_NAME)),
set_content: Some(&adw::NavigationPage::new(model.debug_view.widget(), "Debug View")),
set_show_content: false,
set_collapsed: !model.config.debug_view_enabled,
}
},
connect_close_request[sender] => move |win| {
@ -384,7 +380,7 @@ impl SimpleComponent for App {
self.set_enable_debug_view(val);
self.config.debug_view_enabled = val;
self.config.save();
self.split_view.clone().unwrap().set_show_sidebar(val);
self.split_view.clone().unwrap().set_collapsed(!val);
self.main_view
.sender()
.emit(MainViewMsg::EnableDebugViewChanged(val));

View file

@ -66,10 +66,6 @@ impl SimpleComponent for DebugView {
set_hexpand: true,
set_vexpand: false,
add_css_class: "flat",
#[wrap(Some)]
set_title_widget: title_label = &adw::WindowTitle {
set_title: "Debug View",
},
pack_end: search_toggle = &gtk::ToggleButton {
set_icon_name: "edit-find-symbolic",
set_tooltip_text: Some("Filter Log"),

View file

@ -140,16 +140,10 @@ impl SimpleComponent for MainView {
add_top_bar: top_bar = &adw::HeaderBar {
set_hexpand: true,
set_vexpand: false,
#[wrap(Some)]
set_title_widget: title_label = &adw::WindowTitle {
set_title: APP_NAME,
},
pack_end: menu_btn = &gtk::MenuButton {
set_icon_name: "open-menu-symbolic",
set_menu_model: Some(&app_menu),
},
#[track = "model.changed(Self::enable_debug_view())"]
set_show_end_title_buttons: !model.enable_debug_view,
},
#[wrap(Some)]
set_content: content = &gtk::ScrolledWindow {