Skip to content

Commit

Permalink
chore: more improved error messages
Browse files Browse the repository at this point in the history
  • Loading branch information
flxzt committed Dec 14, 2023
1 parent 2eb7601 commit cda23dc
Show file tree
Hide file tree
Showing 22 changed files with 123 additions and 114 deletions.
81 changes: 42 additions & 39 deletions crates/rnote-engine/src/audioplayer.rs
Original file line number Diff line number Diff line change
Expand Up @@ -130,7 +130,7 @@ impl AudioPlayer {
sink.detach();
}
Err(e) => {
log::error!("Failed to create sink in play_random_marker_sound(), Err {e:?}",)
log::error!("Failed to create sink when trying to play marker sound, Err {e:?}",)
}
}
}
Expand All @@ -145,7 +145,7 @@ impl AudioPlayer {
if let Some(handle) = self.brush_sound_task_handle.as_mut() {
if !handle.timeout_reached() {
if let Err(e) = handle.reset_timeout() {
log::error!("Resetting timeout on brush sound stop task failed, {e:?}");
log::error!("Resetting timeout on brush sound stop task failed, Err: {e:?}");
reinstall_task = true;
}
} else {
Expand All @@ -160,7 +160,7 @@ impl AudioPlayer {
Ok(sink) => sink,
Err(e) => {
log::error!(
"Failed to create sink in start_play_random_brush_sound(), Err {e:?}",
"Failed to create sink when trying to trigger random brush sound, Err {e:?}",
);
self.brush_sound_task_handle = None;
return;
Expand Down Expand Up @@ -188,41 +188,44 @@ impl AudioPlayer {

/// Play a typewriter sound that fits the given key type, or a generic sound when None.
pub fn play_typewriter_key_sound(&self, keyboard_key: Option<KeyboardKey>) {
match rodio::Sink::try_new(&self.typewriter_outputstream_handle) {
Ok(sink) => match keyboard_key {
Some(KeyboardKey::CarriageReturn) | Some(KeyboardKey::Linefeed) => {
sink.append(
self.sounds["typewriter_bell"].clone().mix(
self.sounds["typewriter_linefeed"]
.clone()
.delay(Duration::from_millis(200)),
),
);
sink.detach();
}
// control characters are already filtered out of unicode
Some(KeyboardKey::Unicode(_))
| Some(KeyboardKey::BackSpace)
| Some(KeyboardKey::Delete)
| Some(KeyboardKey::HorizontalTab)
| None => {
let mut rng = rand::thread_rng();
let typewriter_sound_index = rng.gen_range(0..Self::N_SOUND_FILES_TYPEWRITER);

sink.append(
self.sounds[&format!("typewriter_{typewriter_sound_index:02}")].clone(),
);
sink.detach();
}
_ => {
sink.append(self.sounds["typewriter_thump"].clone());
sink.detach();
}
},
Err(e) => log::error!(
"Failed to create sink while playing typewriter sound, Err {:?}",
e
),
let sink = match rodio::Sink::try_new(&self.typewriter_outputstream_handle) {
Ok(sink) => sink,
Err(e) => {
log::error!(
"Failed to create sink when trying to play typewriter sound, Err {e:?}"
);
return;
}
};
match keyboard_key {
Some(KeyboardKey::CarriageReturn) | Some(KeyboardKey::Linefeed) => {
sink.append(
self.sounds["typewriter_bell"].clone().mix(
self.sounds["typewriter_linefeed"]
.clone()
.delay(Duration::from_millis(200)),
),
);
sink.detach();
}
// control characters are already filtered out of Unicode variant
Some(KeyboardKey::Unicode(_))
| Some(KeyboardKey::BackSpace)
| Some(KeyboardKey::Delete)
| Some(KeyboardKey::HorizontalTab)
| None => {
let mut rng = rand::thread_rng();
let typewriter_sound_index = rng.gen_range(0..Self::N_SOUND_FILES_TYPEWRITER);

sink.append(
self.sounds[&format!("typewriter_{typewriter_sound_index:02}")].clone(),
);
sink.detach();
}
_ => {
sink.append(self.sounds["typewriter_thump"].clone());
sink.detach();
}
}
}
}
Expand All @@ -237,7 +240,7 @@ fn load_sound_from_path(
if resource_path.exists() {
let buffered =
rodio::Decoder::new(File::open(resource_path.clone()).with_context(|| {
anyhow::anyhow!("file open() for path {:?} failed", resource_path,)
anyhow::anyhow!("Open file for path {:?} failed", resource_path,)
})?)?
.buffered();

Expand Down
32 changes: 16 additions & 16 deletions crates/rnote-engine/src/engine/export.rs
Original file line number Diff line number Diff line change
Expand Up @@ -328,9 +328,9 @@ impl Engine {
};
rnote_file.save_as_bytes(&file_name)
};
if let Err(_data) = oneshot_sender.send(result()) {
if oneshot_sender.send(result()).is_err() {
log::error!(
"Sending result to receiver in while saving document as rnote bytes failed. Receiver already dropped."
"Sending result to receiver failed while saving document as rnote bytes. Receiver already dropped."
);
}
});
Expand Down Expand Up @@ -454,8 +454,8 @@ impl Engine {
.into_bytes())
};

if let Err(_data) = oneshot_sender.send(result()) {
log::error!("Sending result to receiver failed. Receiver already dropped.");
if oneshot_sender.send(result()).is_err() {
log::error!("Sending result to receiver failed while exporting document as Svg bytes. Receiver already dropped.");
}
});

Expand Down Expand Up @@ -528,8 +528,8 @@ impl Engine {
Ok(data)
};

if let Err(_data) = oneshot_sender.send(result()) {
log::error!("Sending result to receiver failed. Receiver already dropped.");
if oneshot_sender.send(result()).is_err() {
log::error!("Sending result to receiver failed while exporting document as Pdf bytes. Receiver already dropped.");
}
});

Expand Down Expand Up @@ -658,9 +658,9 @@ impl Engine {
xopp_file.save_as_bytes(&title)
};

if let Err(_data) = oneshot_sender.send(result()) {
if oneshot_sender.send(result()).is_err() {
log::error!(
"Sending result to receiver while exporting document as xopp bytes failed. Receiver already dropped."
"Sending result to receiver failed while exporting document as xopp bytes. Receiver already dropped."
);
}
});
Expand Down Expand Up @@ -726,9 +726,9 @@ impl Engine {
.collect()
};

if let Err(_data) = oneshot_sender.send(result()) {
if oneshot_sender.send(result()).is_err() {
log::error!(
"Sending result to receiver while exporting document pages as Svg bytes failed. Receiver already dropped."
"Sending result to receiver failed while exporting document pages as Svg bytes. Receiver already dropped."
);
}
});
Expand Down Expand Up @@ -776,8 +776,8 @@ impl Engine {
})
.collect()
};
if let Err(_data) = oneshot_sender.send(result()) {
log::error!("Sending result to receiver failed. Receiver already dropped.");
if oneshot_sender.send(result()).is_err() {
log::error!("Sending result to receiver failed while exporting document pages as bitmap bytes. Receiver already dropped.");
}
});

Expand Down Expand Up @@ -841,8 +841,8 @@ impl Engine {
.into_bytes(),
))
};
if let Err(_data) = oneshot_sender.send(result()) {
log::error!("Sending result to receiver failed. Receiver already dropped.");
if oneshot_sender.send(result()).is_err() {
log::error!("Sending result to receiver failed while exporting selection as Svg bytes. Receiver already dropped.");
}
});

Expand Down Expand Up @@ -890,8 +890,8 @@ impl Engine {
.into_encoded_bytes(bitmapimage_format)?,
))
};
if let Err(_data) = oneshot_sender.send(result()) {
log::error!("Sending result to receiver failed. Receiver already dropped");
if oneshot_sender.send(result()).is_err() {
log::error!("Sending result to receiver failed while exporting selection as bitmap image bytes. Receiver already dropped");
}
});

Expand Down
6 changes: 3 additions & 3 deletions crates/rnote-engine/src/engine/import.rs
Original file line number Diff line number Diff line change
Expand Up @@ -196,7 +196,7 @@ impl Engine {
VectorImage::from_svg_str(&svg_str, pos, None)
};

if let Err(_data) = oneshot_sender.send(result()) {
if oneshot_sender.send(result()).is_err() {
log::error!(
"Sending result to receiver while generating VectorImage from bytes failed. Receiver already dropped."
);
Expand All @@ -221,7 +221,7 @@ impl Engine {
BitmapImage::from_image_bytes(&bytes, pos, None)
};

if let Err(_data) = oneshot_sender.send(result()) {
if oneshot_sender.send(result()).is_err() {
log::error!(
"Sending result to receiver while generating BitmapImage from bytes failed. Receiver already dropped."
);
Expand Down Expand Up @@ -278,7 +278,7 @@ impl Engine {
}
};

if let Err(_data) = oneshot_sender.send(result()) {
if oneshot_sender.send(result()).is_err() {
log::error!("Sending result to receiver while importing Pdf bytes failed. Receiver already dropped");
}
});
Expand Down
2 changes: 1 addition & 1 deletion crates/rnote-engine/src/engine/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -265,7 +265,7 @@ impl Engine {
self.audioplayer = match AudioPlayer::new_init(pkg_data_dir) {
Ok(audioplayer) => Some(audioplayer),
Err(e) => {
log::error!("Creating a new audioplayer failed, Err: {e:?}");
log::error!("Creating a new audioplayer failed while enabling pen sounds, Err: {e:?}");
None
}
}
Expand Down
2 changes: 1 addition & 1 deletion crates/rnote-engine/src/engine/snapshot.rs
Original file line number Diff line number Diff line change
Expand Up @@ -186,7 +186,7 @@ impl EngineSnapshot {
Ok(engine.take_snapshot())
};

if let Err(_data) = snapshot_sender.send(result()) {
if snapshot_sender.send(result()).is_err() {
log::error!("Sending result to receiver while loading Xopp bytes failed. Receiver already dropped");
}
});
Expand Down
2 changes: 1 addition & 1 deletion crates/rnote-engine/src/fileformats/xoppformat.rs
Original file line number Diff line number Diff line change
Expand Up @@ -370,7 +370,7 @@ impl XmlLoadable for XoppBackground {
})?) {
Ok(s) => s,
Err(e) => {
log::error!("Failed to retrieve the XoppBackgroundSolidStyle from `style` attribute, {e:?}");
log::error!("Failed to retrieve the XoppBackgroundSolidStyle from `style` attribute, Err: {e:?}");
XoppBackgroundSolidStyle::Plain
}
};
Expand Down
8 changes: 4 additions & 4 deletions crates/rnote-engine/src/pens/penbehaviour.rs
Original file line number Diff line number Diff line change
Expand Up @@ -43,8 +43,8 @@ pub trait PenBehaviour: DrawableOnDoc {
let (sender, receiver) =
oneshot::channel::<anyhow::Result<(Vec<(Vec<u8>, String)>, WidgetFlags)>>();
rayon::spawn(move || {
if let Err(e) = sender.send(Ok((vec![], WidgetFlags::default()))) {
log::error!("Sending (empty) clipboard content in `fetch_clipboard_content()` default impl failed, Err: {e:?}")
if sender.send(Ok((vec![], WidgetFlags::default()))).is_err() {
log::error!("Sending (empty) clipboard content in `fetch_clipboard_content()` default impl failed, receiver already dropped.")
}
});
receiver
Expand All @@ -62,8 +62,8 @@ pub trait PenBehaviour: DrawableOnDoc {
let (sender, receiver) =
oneshot::channel::<anyhow::Result<(Vec<(Vec<u8>, String)>, WidgetFlags)>>();
rayon::spawn(move || {
if let Err(e) = sender.send(Ok((vec![], WidgetFlags::default()))) {
log::error!("Sending (empty) clipboard content in `cut_clipboard_content()` default impl failed, Err: {e:?}")
if sender.send(Ok((vec![], WidgetFlags::default()))).is_err() {
log::error!("Sending (empty) clipboard content in `cut_clipboard_content()` default impl failed, receiver already dropped")
}
});
receiver
Expand Down
12 changes: 8 additions & 4 deletions crates/rnote-engine/src/pens/selector/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -199,8 +199,10 @@ impl PenBehaviour for Selector {
}
Ok((clipboard_content, widget_flags))
};
if let Err(e) = sender.send(result()) {
log::error!("Sending fetched selector clipboard content failed, Err: {e:?}");
if sender.send(result()).is_err() {
log::error!(
"Sending fetched selector clipboard content failed, receiver already dropped."
);
}
});

Expand Down Expand Up @@ -258,8 +260,10 @@ impl PenBehaviour for Selector {
}
Ok((clipboard_content, widget_flags))
};
if let Err(e) = sender.send(result()) {
log::error!("Sending cut selector clipboard content failed, Err: {e:?}");
if sender.send(result()).is_err() {
log::error!(
"Sending cut selector clipboard content failed, receiver already dropped."
);
}
});

Expand Down
12 changes: 8 additions & 4 deletions crates/rnote-engine/src/pens/typewriter/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -422,8 +422,10 @@ impl PenBehaviour for Typewriter {
}
}

if let Err(e) = sender.send(Ok((clipboard_content, widget_flags))) {
log::error!("Sending fetched typewriter clipboard content failed, Err: {e:?}");
if sender.send(Ok((clipboard_content, widget_flags))).is_err() {
log::error!(
"Sending fetched typewriter clipboard content failed, receiver already dropped."
);
}
receiver
}
Expand Down Expand Up @@ -504,8 +506,10 @@ impl PenBehaviour for Typewriter {

self.reset_blink();

if let Err(e) = sender.send(Ok((clipboard_content, widget_flags))) {
log::error!("Sending cut typewriter clipboard content failed, Err: {e:?}");
if sender.send(Ok((clipboard_content, widget_flags))).is_err() {
log::error!(
"Sending cut typewriter clipboard content failed, receiver already dropped."
);
}
receiver
}
Expand Down
2 changes: 1 addition & 1 deletion crates/rnote-engine/src/store/render_comp.rs
Original file line number Diff line number Diff line change
Expand Up @@ -369,7 +369,7 @@ impl StrokeStore {
Err(e) => {
render_comp.state = RenderCompState::Dirty;
log::error!(
"Failed to generate image whiel appending last segments rendering, Err: {e:?}"
"Failed to generate image while appending last segments rendering, Err: {e:?}"
);
}
}
Expand Down
Loading

0 comments on commit cda23dc

Please sign in to comment.