Update to adwaita 1.4, and add a navigation page stack

This commit is contained in:
Savanni D'Gerinel 2023-12-25 01:09:31 -05:00
parent fe5e4ed044
commit 5cd0e822c6
4 changed files with 22 additions and 11 deletions

View File

@ -6,7 +6,7 @@ edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies] [dependencies]
adw = { version = "0.5", package = "libadwaita", features = [ "v1_2" ] } adw = { version = "0.5", package = "libadwaita", features = [ "v1_4" ] }
async-channel = { version = "2.1" } async-channel = { version = "2.1" }
chrono = { version = "0.4" } chrono = { version = "0.4" }
chrono-tz = { version = "0.8" } chrono-tz = { version = "0.8" }

View File

@ -37,6 +37,7 @@ pub struct AppWindow {
layout: gtk::Box, layout: gtk::Box,
current_view: Rc<RefCell<View>>, current_view: Rc<RefCell<View>>,
settings: gio::Settings, settings: gio::Settings,
navigation: adw::NavigationView,
} }
impl AppWindow { impl AppWindow {
@ -76,9 +77,7 @@ impl AppWindow {
#[allow(deprecated)] #[allow(deprecated)]
context.add_provider(&provider, STYLE_PROVIDER_PRIORITY_USER); context.add_provider(&provider, STYLE_PROVIDER_PRIORITY_USER);
let header = adw::HeaderBar::builder() let navigation = adw::NavigationView::new();
.title_widget(&gtk::Label::new(Some("FitnessTrax")))
.build();
let layout = gtk::Box::builder() let layout = gtk::Box::builder()
.orientation(gtk::Orientation::Vertical) .orientation(gtk::Orientation::Vertical)
@ -86,10 +85,21 @@ impl AppWindow {
let initial_view = View::Placeholder(PlaceholderView::new().upcast()); let initial_view = View::Placeholder(PlaceholderView::new().upcast());
layout.append(&header); // layout.append(&header);
layout.append(&initial_view.widget()); layout.append(&initial_view.widget());
window.set_content(Some(&layout)); let nav_layout = gtk::Box::new(gtk::Orientation::Vertical, 0);
nav_layout.append(&adw::HeaderBar::new());
nav_layout.append(&layout);
navigation.push(
&adw::NavigationPage::builder()
.can_pop(false)
.title("FitnessTrax")
.child(&nav_layout)
.build(),
);
window.set_content(Some(&navigation));
window.present(); window.present();
let s = Self { let s = Self {
@ -97,6 +107,7 @@ impl AppWindow {
layout, layout,
current_view: Rc::new(RefCell::new(initial_view)), current_view: Rc::new(RefCell::new(initial_view)),
settings: gio::Settings::new(app_id), settings: gio::Settings::new(app_id),
navigation,
}; };
s s

View File

@ -51,16 +51,16 @@
}, },
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1691421349, "lastModified": 1703200384,
"narHash": "sha256-RRJyX0CUrs4uW4gMhd/X4rcDG8PTgaaCQM5rXEJOx6g=", "narHash": "sha256-q5j06XOsy0qHOarsYPfZYJPWbTbc8sryRxianlEPJN0=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "011567f35433879aae5024fc6ec53f2a0568a6c4", "rev": "0b3d618173114c64ab666f557504d6982665d328",
"type": "github" "type": "github"
}, },
"original": { "original": {
"id": "nixpkgs", "id": "nixpkgs",
"ref": "nixos-23.05", "ref": "nixos-23.11",
"type": "indirect" "type": "indirect"
} }
}, },

View File

@ -2,7 +2,7 @@
description = "Lumenescent Dreams Tools"; description = "Lumenescent Dreams Tools";
inputs = { inputs = {
nixpkgs.url = "nixpkgs/nixos-23.05"; nixpkgs.url = "nixpkgs/nixos-23.11";
unstable.url = "nixpkgs/nixos-unstable"; unstable.url = "nixpkgs/nixos-unstable";
pkgs-cargo2nix.url = "github:cargo2nix/cargo2nix"; pkgs-cargo2nix.url = "github:cargo2nix/cargo2nix";
typeshare.url = "github:1Password/typeshare"; typeshare.url = "github:1Password/typeshare";