Switch classifier sessions onto bread-onnx v0.7.2
Replace local ort Session::builder/ROCm wiring with bread_onnx::build_session (MIGraphX + CPU fallback, same pin as breadmill). Drop the breadman chip/init_adw shim now that bread-theme v0.7.4 exports those helpers.
This commit is contained in:
parent
51338af7eb
commit
39e26a1b9f
11 changed files with 254 additions and 137 deletions
|
|
@ -15,7 +15,7 @@ breadpad-shared = { path = "../breadpad-shared" }
|
|||
bread-screenshots = { git = "https://git.breadway.dev/Breadway/bread-ecosystem", tag = "v0.7.2" }
|
||||
# Shared `--screenshot` pair validation + settle delay (`screenshot_cli`).
|
||||
bread-utils = { git = "https://git.breadway.dev/Breadway/bread-ecosystem", tag = "v0.7.2" }
|
||||
# `adw` implies `gtk`. Local chip/init shims remain in src/theme_widgets.rs.
|
||||
# `adw` implies `gtk` (`chip`, `set_chip_active`, `adw::init`).
|
||||
bread-theme = { git = "https://git.breadway.dev/Breadway/bread-ecosystem", tag = "v0.7.4", features = ["adw"] }
|
||||
libadwaita = { version = "0.9", features = ["v1_7"] }
|
||||
anyhow.workspace = true
|
||||
|
|
|
|||
|
|
@ -62,16 +62,16 @@ pub fn open_editor(
|
|||
let type_row = libadwaita::ActionRow::builder().title("Type").build();
|
||||
let type_pill_box = gtk4::Box::builder().orientation(gtk4::Orientation::Horizontal).spacing(4).valign(gtk4::Align::Center).build();
|
||||
let selected_type: Rc<RefCell<String>> = Rc::new(RefCell::new(note.note_type.as_str().to_string()));
|
||||
let type_pills: Vec<(gtk4::Button, &'static str)> = NoteType::all_builtin().iter().map(|&name| (crate::theme_widgets::chip(name), name)).collect();
|
||||
let type_pills: Vec<(gtk4::Button, &'static str)> = NoteType::all_builtin().iter().map(|&name| (bread_theme::gtk::chip(name), name)).collect();
|
||||
for (btn, name) in &type_pills {
|
||||
crate::theme_widgets::set_chip_active(btn, *name == selected_type.borrow().as_str());
|
||||
bread_theme::gtk::set_chip_active(btn, *name == selected_type.borrow().as_str());
|
||||
let sel = selected_type.clone();
|
||||
let name = *name;
|
||||
let all_btns: Vec<gtk4::Button> = type_pills.iter().map(|(b, _)| b.clone()).collect();
|
||||
btn.connect_clicked(move |clicked| {
|
||||
*sel.borrow_mut() = name.to_string();
|
||||
for b in &all_btns { crate::theme_widgets::set_chip_active(b, false); }
|
||||
crate::theme_widgets::set_chip_active(clicked, true);
|
||||
for b in &all_btns { bread_theme::gtk::set_chip_active(b, false); }
|
||||
bread_theme::gtk::set_chip_active(clicked, true);
|
||||
});
|
||||
type_pill_box.append(btn);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -14,7 +14,6 @@ use std::sync::Arc;
|
|||
|
||||
mod editor;
|
||||
mod screenshot;
|
||||
mod theme_widgets;
|
||||
mod views;
|
||||
|
||||
// ── Args ─────────────────────────────────────────────────────────────────────
|
||||
|
|
@ -363,7 +362,7 @@ fn build_app_window(
|
|||
// Needed once before constructing any adw:: widget (see views::settings) —
|
||||
// also forces dark mode, since bread-theme's palette is a fixed dark base
|
||||
// regardless of the system GTK preference.
|
||||
theme_widgets::init_adw();
|
||||
bread_theme::adw::init();
|
||||
|
||||
let store = Arc::new(Store::new()?);
|
||||
let notes = store.load_all()?;
|
||||
|
|
@ -645,17 +644,17 @@ fn show_add_note_window(parent: >k4::ApplicationWindow, state: AppState, prese
|
|||
let selected_type: Rc<RefCell<NoteType>> = Rc::new(RefCell::new(preselect.clone()));
|
||||
let chips: Vec<(gtk4::Button, NoteType)> = NoteType::all_builtin()
|
||||
.iter()
|
||||
.map(|&name| (theme_widgets::chip(name), NoteType::from_str(name)))
|
||||
.map(|&name| (bread_theme::gtk::chip(name), NoteType::from_str(name)))
|
||||
.collect();
|
||||
for (btn, nt) in &chips {
|
||||
theme_widgets::set_chip_active(btn, *nt == preselect);
|
||||
bread_theme::gtk::set_chip_active(btn, *nt == preselect);
|
||||
let sel = selected_type.clone();
|
||||
let nt_c = nt.clone();
|
||||
let all_btns: Vec<gtk4::Button> = chips.iter().map(|(b, _)| b.clone()).collect();
|
||||
btn.connect_clicked(move |clicked| {
|
||||
*sel.borrow_mut() = nt_c.clone();
|
||||
for b in &all_btns { theme_widgets::set_chip_active(b, false); }
|
||||
theme_widgets::set_chip_active(clicked, true);
|
||||
for b in &all_btns { bread_theme::gtk::set_chip_active(b, false); }
|
||||
bread_theme::gtk::set_chip_active(clicked, true);
|
||||
});
|
||||
chip_box.append(btn);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,23 +0,0 @@
|
|||
//! Local stand-ins for `bread_theme::gtk::{chip, set_chip_active}` and
|
||||
//! `bread_theme::adw::init`, which are not on bread-theme v0.7.1.
|
||||
|
||||
use gtk4::prelude::*;
|
||||
|
||||
pub fn chip(label: &str) -> gtk4::Button {
|
||||
gtk4::Button::builder().label(label).css_classes(["chip"]).build()
|
||||
}
|
||||
|
||||
pub fn set_chip_active(chip: &impl IsA<gtk4::Widget>, active: bool) {
|
||||
if active {
|
||||
chip.add_css_class("active");
|
||||
} else {
|
||||
chip.remove_css_class("active");
|
||||
}
|
||||
}
|
||||
|
||||
/// Initializes libadwaita and forces dark mode (bread-theme's palette is a
|
||||
/// fixed dark base regardless of the system GTK preference).
|
||||
pub fn init_adw() {
|
||||
libadwaita::init().expect("failed to initialize libadwaita");
|
||||
libadwaita::StyleManager::default().set_color_scheme(libadwaita::ColorScheme::ForceDark);
|
||||
}
|
||||
|
|
@ -92,10 +92,10 @@ pub fn build(cfg: &Config, on_save: impl Fn(Config) + 'static) -> gtk4::Scrolled
|
|||
let selected_type: Rc<RefCell<String>> = Rc::new(RefCell::new(cfg.settings.default_type.clone()));
|
||||
let type_pills: Vec<(gtk4::Button, &'static str)> = NoteType::all_builtin()
|
||||
.iter()
|
||||
.map(|&name| (crate::theme_widgets::chip(name), name))
|
||||
.map(|&name| (bread_theme::gtk::chip(name), name))
|
||||
.collect();
|
||||
for (btn, name) in &type_pills {
|
||||
crate::theme_widgets::set_chip_active(btn, *name == selected_type.borrow().as_str());
|
||||
bread_theme::gtk::set_chip_active(btn, *name == selected_type.borrow().as_str());
|
||||
type_pill_box.append(btn);
|
||||
}
|
||||
general_list.append(&field_row("Default type", None, &type_pill_box));
|
||||
|
|
@ -260,8 +260,8 @@ pub fn build(cfg: &Config, on_save: impl Fn(Config) + 'static) -> gtk4::Scrolled
|
|||
let all_btns: Vec<gtk4::Button> = type_pills.iter().map(|(b, _)| b.clone()).collect();
|
||||
btn.connect_clicked(move |clicked| {
|
||||
*sel.borrow_mut() = name.to_string();
|
||||
for b in &all_btns { crate::theme_widgets::set_chip_active(b, false); }
|
||||
crate::theme_widgets::set_chip_active(clicked, true);
|
||||
for b in &all_btns { bread_theme::gtk::set_chip_active(b, false); }
|
||||
bread_theme::gtk::set_chip_active(clicked, true);
|
||||
apply_now();
|
||||
});
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue