Skip to content

Commit 96dce63

Browse files
committed
improv: refactor unnecessary use of widget flags
1 parent 071ed42 commit 96dce63

File tree

7 files changed

+11
-17
lines changed

7 files changed

+11
-17
lines changed

crates/rnote-engine/src/engine/import.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -179,9 +179,9 @@ impl Engine {
179179
spellcheck: &mut self.spellcheck,
180180
});
181181
widget_flags |= self.doc_resize_to_fit_content();
182+
widget_flags |= self.refresh_spellcheck_language();
182183
widget_flags.redraw = true;
183184
widget_flags.refresh_ui = true;
184-
widget_flags.spellcheck_language_modified = true;
185185
widget_flags
186186
}
187187

crates/rnote-engine/src/engine/mod.rs

+9-1
Original file line numberDiff line numberDiff line change
@@ -350,7 +350,9 @@ impl Engine {
350350
}
351351
}
352352

353-
pub fn refresh_spellcheck_language(&mut self) {
353+
pub fn refresh_spellcheck_language(&mut self) -> WidgetFlags {
354+
let mut widget_flags = WidgetFlags::default();
355+
354356
self.spellcheck.dict = self
355357
.document
356358
.spellcheck_language
@@ -370,7 +372,11 @@ impl Engine {
370372
audioplayer: &mut self.audioplayer,
371373
spellcheck: &mut self.spellcheck,
372374
});
375+
376+
widget_flags.redraw = true;
373377
}
378+
379+
widget_flags
374380
}
375381

376382
pub fn optimize_epd(&self) -> bool {
@@ -446,6 +452,7 @@ impl Engine {
446452
| self.doc_resize_autoexpand()
447453
| self.current_pen_update_state()
448454
| self.update_rendering_current_viewport()
455+
| self.refresh_spellcheck_language()
449456
}
450457

451458
/// Redo the latest changes.
@@ -454,6 +461,7 @@ impl Engine {
454461
| self.doc_resize_autoexpand()
455462
| self.current_pen_update_state()
456463
| self.update_rendering_current_viewport()
464+
| self.refresh_spellcheck_language()
457465
}
458466

459467
pub fn can_undo(&self) -> bool {

crates/rnote-engine/src/store/mod.rs

-2
Original file line numberDiff line numberDiff line change
@@ -263,7 +263,6 @@ impl StrokeStore {
263263
widget_flags.hide_undo = Some(!self.can_undo());
264264
widget_flags.hide_redo = Some(!self.can_redo());
265265
widget_flags.store_modified = true;
266-
widget_flags.spellcheck_language_modified = true;
267266

268267
widget_flags
269268
}
@@ -285,7 +284,6 @@ impl StrokeStore {
285284
widget_flags.hide_undo = Some(!self.can_undo());
286285
widget_flags.hide_redo = Some(!self.can_redo());
287286
widget_flags.store_modified = true;
288-
widget_flags.spellcheck_language_modified = true;
289287

290288
widget_flags
291289
}

crates/rnote-engine/src/widgetflags.rs

-4
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,6 @@ pub struct WidgetFlags {
1010
pub refresh_ui: bool,
1111
/// Indicates that the store was modified, i.e. new strokes inserted, modified, etc. .
1212
pub store_modified: bool,
13-
/// Indicates that the spellcheck language was modified.
14-
pub spellcheck_language_modified: bool,
1513
/// Update the current view offsets and size.
1614
pub view_modified: bool,
1715
/// Indicates that the camera has changed it's temporary zoom.
@@ -37,7 +35,6 @@ impl Default for WidgetFlags {
3735
resize: false,
3836
refresh_ui: false,
3937
store_modified: false,
40-
spellcheck_language_modified: false,
4138
view_modified: false,
4239
zoomed_temporarily: false,
4340
zoomed: false,
@@ -64,7 +61,6 @@ impl std::ops::BitOrAssign for WidgetFlags {
6461
self.resize |= rhs.resize;
6562
self.refresh_ui |= rhs.refresh_ui;
6663
self.store_modified |= rhs.store_modified;
67-
self.spellcheck_language_modified |= rhs.spellcheck_language_modified;
6864
self.view_modified |= rhs.view_modified;
6965
self.zoomed_temporarily |= rhs.zoomed_temporarily;
7066
self.zoomed |= rhs.zoomed;

crates/rnote-ui/src/appwindow/mod.rs

-4
Original file line numberDiff line numberDiff line change
@@ -224,10 +224,6 @@ impl RnAppWindow {
224224
canvas.set_unsaved_changes(true);
225225
canvas.set_empty(false);
226226
}
227-
if widget_flags.spellcheck_language_modified {
228-
canvas.engine_mut().refresh_spellcheck_language();
229-
canvas.queue_draw();
230-
}
231227
if widget_flags.view_modified {
232228
let widget_size = canvas.widget_size();
233229
let offset_mins_maxs = canvas.engine_ref().camera_offset_mins_maxs();

crates/rnote-ui/src/main.rs

-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
#![warn(missing_debug_implementations)]
2-
#![allow(clippy::field_reassign_with_default)]
32
#![allow(clippy::single_match)]
43
// Turns off console window on Windows, but not when building with dev profile.
54
#![cfg_attr(

crates/rnote-ui/src/settingspanel/mod.rs

+1-4
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@ use rnote_engine::document::format::{self, Format, PredefinedFormat};
2222
use rnote_engine::document::Layout;
2323
use rnote_engine::engine::SPELLCHECK_AVAILABLE_LANGUAGES;
2424
use rnote_engine::ext::GdkRGBAExt;
25-
use rnote_engine::WidgetFlags;
2625
use std::cell::RefCell;
2726

2827
mod imp {
@@ -989,9 +988,7 @@ impl RnSettingsPanel {
989988
let language = settings_panel.spellcheck_language();
990989
canvas.engine_mut().document.spellcheck_language = language;
991990

992-
let mut widget_flags = WidgetFlags::default();
993-
widget_flags.spellcheck_language_modified = true;
994-
991+
let widget_flags = canvas.engine_mut().refresh_spellcheck_language();
995992
appwindow.handle_widget_flags(widget_flags, &canvas);
996993
}
997994
));

0 commit comments

Comments
 (0)