notedeck

One damus client to rule them all
git clone git://jb55.com/notedeck
Log | Files | Refs | README | LICENSE

commit 49745dec9287e383b28d52ae050366ebab865406
parent 83f2822a0add86719cb164735de84043c3f6a00b
Author: William Casarin <jb55@jb55.com>
Date:   Mon, 23 Feb 2026 12:05:57 -0800

clippy fixes

Signed-off-by: William Casarin <jb55@jb55.com>

Diffstat:
Mcrates/notedeck_nostrverse/src/convert.rs | 2+-
Mcrates/notedeck_nostrverse/src/lib.rs | 2+-
Mcrates/notedeck_nostrverse/src/room_view.rs | 168++++++++++++++++++++++++++++++++++++++++----------------------------------------
Mcrates/notedeck_nostrverse/src/subscriptions.rs | 1+
4 files changed, 87 insertions(+), 86 deletions(-)

diff --git a/crates/notedeck_nostrverse/src/convert.rs b/crates/notedeck_nostrverse/src/convert.rs @@ -71,7 +71,7 @@ fn collect_objects(space: &Space, id: CellId, objects: &mut Vec<RoomObject>) { let cell = space.cell(id); if let CellType::Object(ref obj_type) = cell.cell_type { - let obj_id = space.id_str(id).unwrap_or_else(|| "").to_string(); + let obj_id = space.id_str(id).unwrap_or("").to_string(); // Generate a fallback id if none specified let obj_id = if obj_id.is_empty() { diff --git a/crates/notedeck_nostrverse/src/lib.rs b/crates/notedeck_nostrverse/src/lib.rs @@ -257,7 +257,7 @@ impl NostrverseApp { /// Load 3D models for objects, then resolve any semantic locations /// (e.g. "top-of obj1") to concrete positions using AABB bounds. - fn load_object_models(&self, objects: &mut Vec<RoomObject>) { + fn load_object_models(&self, objects: &mut [RoomObject]) { let renderer = self.renderer.as_ref(); let model_bounds_fn = |m: Option<renderbud::Model>| -> Option<renderbud::Aabb> { let r = renderer?.renderer.lock().unwrap(); diff --git a/crates/notedeck_nostrverse/src/room_view.rs b/crates/notedeck_nostrverse/src/room_view.rs @@ -245,93 +245,93 @@ pub fn render_editing_panel(ui: &mut Ui, state: &mut NostrverseState) -> Option< ui.add_space(12.0); // --- Object Inspector --- - if let Some(selected_id) = state.selected_object.clone() { - if let Some(obj) = state.objects.iter_mut().find(|o| o.id == selected_id) { - ui.strong("Inspector"); - ui.separator(); + if let Some(selected_id) = state.selected_object.clone() + && let Some(obj) = state.objects.iter_mut().find(|o| o.id == selected_id) + { + ui.strong("Inspector"); + ui.separator(); + + ui.small(format!("ID: {}", obj.id)); + ui.add_space(4.0); + + // Editable name + let name_changed = ui + .horizontal(|ui| { + ui.label("Name:"); + ui.text_edit_singleline(&mut obj.name).changed() + }) + .inner; + + // Editable position + let mut px = obj.position.x; + let mut py = obj.position.y; + let mut pz = obj.position.z; + let pos_changed = ui + .horizontal(|ui| { + ui.label("Pos:"); + let x = ui + .add(egui::DragValue::new(&mut px).speed(0.1).prefix("x:")) + .changed(); + let y = ui + .add(egui::DragValue::new(&mut py).speed(0.1).prefix("y:")) + .changed(); + let z = ui + .add(egui::DragValue::new(&mut pz).speed(0.1).prefix("z:")) + .changed(); + x || y || z + }) + .inner; + obj.position = Vec3::new(px, py, pz); + + // Editable scale (uniform) + let mut sx = obj.scale.x; + let mut sy = obj.scale.y; + let mut sz = obj.scale.z; + let scale_changed = ui + .horizontal(|ui| { + ui.label("Scale:"); + let x = ui + .add( + egui::DragValue::new(&mut sx) + .speed(0.05) + .prefix("x:") + .range(0.01..=100.0), + ) + .changed(); + let y = ui + .add( + egui::DragValue::new(&mut sy) + .speed(0.05) + .prefix("y:") + .range(0.01..=100.0), + ) + .changed(); + let z = ui + .add( + egui::DragValue::new(&mut sz) + .speed(0.05) + .prefix("z:") + .range(0.01..=100.0), + ) + .changed(); + x || y || z + }) + .inner; + obj.scale = Vec3::new(sx, sy, sz); - ui.small(format!("ID: {}", obj.id)); + // Model URL (read-only for now) + if let Some(url) = &obj.model_url { ui.add_space(4.0); + ui.small(format!("Model: {}", url)); + } - // Editable name - let name_changed = ui - .horizontal(|ui| { - ui.label("Name:"); - ui.text_edit_singleline(&mut obj.name).changed() - }) - .inner; - - // Editable position - let mut px = obj.position.x; - let mut py = obj.position.y; - let mut pz = obj.position.z; - let pos_changed = ui - .horizontal(|ui| { - ui.label("Pos:"); - let x = ui - .add(egui::DragValue::new(&mut px).speed(0.1).prefix("x:")) - .changed(); - let y = ui - .add(egui::DragValue::new(&mut py).speed(0.1).prefix("y:")) - .changed(); - let z = ui - .add(egui::DragValue::new(&mut pz).speed(0.1).prefix("z:")) - .changed(); - x || y || z - }) - .inner; - obj.position = Vec3::new(px, py, pz); - - // Editable scale (uniform) - let mut sx = obj.scale.x; - let mut sy = obj.scale.y; - let mut sz = obj.scale.z; - let scale_changed = ui - .horizontal(|ui| { - ui.label("Scale:"); - let x = ui - .add( - egui::DragValue::new(&mut sx) - .speed(0.05) - .prefix("x:") - .range(0.01..=100.0), - ) - .changed(); - let y = ui - .add( - egui::DragValue::new(&mut sy) - .speed(0.05) - .prefix("y:") - .range(0.01..=100.0), - ) - .changed(); - let z = ui - .add( - egui::DragValue::new(&mut sz) - .speed(0.05) - .prefix("z:") - .range(0.01..=100.0), - ) - .changed(); - x || y || z - }) - .inner; - obj.scale = Vec3::new(sx, sy, sz); - - // Model URL (read-only for now) - if let Some(url) = &obj.model_url { - ui.add_space(4.0); - ui.small(format!("Model: {}", url)); - } - - if name_changed || pos_changed || scale_changed { - state.dirty = true; - } - - ui.add_space(8.0); - if ui.button("Delete Object").clicked() { - action = Some(NostrverseAction::RemoveObject(selected_id)); - } + if name_changed || pos_changed || scale_changed { + state.dirty = true; + } + + ui.add_space(8.0); + if ui.button("Delete Object").clicked() { + action = Some(NostrverseAction::RemoveObject(selected_id)); } } diff --git a/crates/notedeck_nostrverse/src/subscriptions.rs b/crates/notedeck_nostrverse/src/subscriptions.rs @@ -23,6 +23,7 @@ impl RoomSubscription { } /// Subscribe to room events from a specific author. + #[allow(dead_code)] pub fn for_author(ndb: &Ndb, author: &[u8; 32]) -> Self { let filter = Filter::new() .kinds([kinds::ROOM as u64])