aboutsummaryrefslogtreecommitdiff
path: root/src/preferences/pages
diff options
context:
space:
mode:
authorRubén Beltrán del Río <jj@r.bdr.sh>2026-01-17 11:22:22 +0100
committerRubén Beltrán del Río <jj@r.bdr.sh>2026-01-17 12:24:45 +0100
commit88d6bf80f5cdbbb90ead197bd41a67eb8c44e50e (patch)
tree401549b24fe8a747ef6739389b1b38f33ef016bb /src/preferences/pages
parent17898fbabde35ab346c133114e78614e707c0eca (diff)
Make clippy stricter and fix
Diffstat (limited to 'src/preferences/pages')
-rw-r--r--src/preferences/pages/editor.rs24
-rw-r--r--src/preferences/pages/general.rs2
-rw-r--r--src/preferences/pages/map.rs65
-rw-r--r--src/preferences/pages/stages.rs72
-rw-r--r--src/preferences/pages/templates.rs16
5 files changed, 112 insertions, 67 deletions
diff --git a/src/preferences/pages/editor.rs b/src/preferences/pages/editor.rs
index d4acb94..336a488 100644
--- a/src/preferences/pages/editor.rs
+++ b/src/preferences/pages/editor.rs
@@ -33,7 +33,7 @@ pub struct EditorPage {
}
impl EditorPage {
- pub fn new(preferences: &UserPreferences, sender: Sender<PreferencesInput>) -> Self {
+ pub fn new(preferences: &UserPreferences, sender: &Sender<PreferencesInput>) -> Self {
let container = gtk::Box::new(gtk::Orientation::Vertical, 20);
container.set_margin_top(20);
container.set_margin_bottom(20);
@@ -57,7 +57,9 @@ impl EditorPage {
});
}
font_size_box.append(&font_size_spin);
- font_size_box.append(&gtk::Label::new(Some(&tr!("preferences.editor.font_size.unit"))));
+ font_size_box.append(&gtk::Label::new(Some(&tr!(
+ "preferences.editor.font_size.unit"
+ ))));
container.append(&font_size_box);
// Editor Style section
@@ -68,7 +70,10 @@ impl EditorPage {
container.append(&style_label);
// Soft Wrap Lines
- let soft_wrap_row = create_switch_row(&tr!("preferences.editor.editor_style.soft_wrap_lines"), preferences.soft_wrap_lines);
+ let soft_wrap_row = create_switch_row(
+ &tr!("preferences.editor.editor_style.soft_wrap_lines"),
+ preferences.soft_wrap_lines,
+ );
let soft_wrap_switch = soft_wrap_row.1.clone();
{
let sender = sender.clone();
@@ -80,8 +85,10 @@ impl EditorPage {
container.append(&soft_wrap_row.0);
// Use Custom Font
- let custom_font_row =
- create_switch_row(&tr!("preferences.editor.editor_style.use_custom_font"), preferences.use_custom_editor_font);
+ let custom_font_row = create_switch_row(
+ &tr!("preferences.editor.editor_style.use_custom_font"),
+ preferences.use_custom_editor_font,
+ );
let custom_font_switch = custom_font_row.1.clone();
container.append(&custom_font_row.0);
@@ -90,6 +97,8 @@ impl EditorPage {
font_row.append(&gtk::Label::new(Some(&tr!("preferences.editor.font"))));
let font_button = gtk::FontButton::new();
+
+ #[allow(clippy::cast_possible_truncation)]
font_button.set_font(&format!(
"{} {}",
preferences.custom_editor_font_name, preferences.editor_font_size as i32
@@ -140,15 +149,16 @@ impl EditorPage {
pub fn sync_from(&self, preferences: &UserPreferences) {
self.font_size_spin.set_value(preferences.editor_font_size);
- self.soft_wrap_switch.set_active(preferences.soft_wrap_lines);
+ self.soft_wrap_switch
+ .set_active(preferences.soft_wrap_lines);
self.custom_font_switch
.set_active(preferences.use_custom_editor_font);
self.font_button
.set_sensitive(preferences.use_custom_editor_font);
+ #[allow(clippy::cast_possible_truncation)] // Font size is always a small positive number
self.font_button.set_font(&format!(
"{} {}",
preferences.custom_editor_font_name, preferences.editor_font_size as i32
));
}
}
-
diff --git a/src/preferences/pages/general.rs b/src/preferences/pages/general.rs
index d70e9e6..ad15c82 100644
--- a/src/preferences/pages/general.rs
+++ b/src/preferences/pages/general.rs
@@ -28,7 +28,7 @@ pub struct GeneralPage {
}
impl GeneralPage {
- pub fn new(sender: Sender<PreferencesInput>) -> Self {
+ pub fn new(sender: &Sender<PreferencesInput>) -> Self {
let container = gtk::Box::new(gtk::Orientation::Vertical, 20);
container.set_margin_top(20);
container.set_margin_bottom(20);
diff --git a/src/preferences/pages/map.rs b/src/preferences/pages/map.rs
index 5ffd04a..4355c6f 100644
--- a/src/preferences/pages/map.rs
+++ b/src/preferences/pages/map.rs
@@ -34,7 +34,7 @@ pub struct MapPage {
}
impl MapPage {
- pub fn new(preferences: &UserPreferences, sender: Sender<PreferencesInput>) -> Self {
+ pub fn new(preferences: &UserPreferences, sender: &Sender<PreferencesInput>) -> Self {
let container = gtk::Box::new(gtk::Orientation::Vertical, 20);
container.set_margin_top(20);
container.set_margin_bottom(20);
@@ -42,15 +42,36 @@ impl MapPage {
container.set_margin_end(20);
container.set_valign(gtk::Align::Start);
- // Map Style section
+ let (show_background_switch, smart_positioning_switch, custom_font_switch, font_button) =
+ Self::init_style_section(&container, preferences, sender);
+
+ let export_format_dropdown = Self::init_export_section(&container, preferences, sender);
+
+ Self {
+ container,
+ show_background_switch,
+ smart_positioning_switch,
+ custom_font_switch,
+ font_button,
+ export_format_dropdown,
+ }
+ }
+
+ fn init_style_section(
+ container: &gtk::Box,
+ preferences: &UserPreferences,
+ sender: &Sender<PreferencesInput>,
+ ) -> (gtk::Switch, gtk::Switch, gtk::Switch, gtk::FontButton) {
let style_label = gtk::Label::new(Some(&tr!("preferences.map.map_style.title")));
style_label.add_css_class("heading");
style_label.set_halign(gtk::Align::Start);
container.append(&style_label);
// Show Background
- let background_row =
- create_switch_row(&tr!("preferences.map.map_style.show_background"), preferences.show_map_background);
+ let background_row = create_switch_row(
+ &tr!("preferences.map.map_style.show_background"),
+ preferences.show_map_background,
+ );
let show_background_switch = background_row.1.clone();
{
let sender = sender.clone();
@@ -77,7 +98,10 @@ impl MapPage {
container.append(&smart_row.0);
// Use Custom Font
- let custom_font_row = create_switch_row(&tr!("preferences.map.map_style.use_custom_font"), preferences.use_custom_font);
+ let custom_font_row = create_switch_row(
+ &tr!("preferences.map.map_style.use_custom_font"),
+ preferences.use_custom_font,
+ );
let custom_font_switch = custom_font_row.1.clone();
container.append(&custom_font_row.0);
@@ -115,7 +139,19 @@ impl MapPage {
});
}
- // Export section
+ (
+ show_background_switch,
+ smart_positioning_switch,
+ custom_font_switch,
+ font_button,
+ )
+ }
+
+ fn init_export_section(
+ container: &gtk::Box,
+ preferences: &UserPreferences,
+ sender: &Sender<PreferencesInput>,
+ ) -> gtk::DropDown {
let export_label = gtk::Label::new(Some(&tr!("preferences.map.export.title")));
export_label.add_css_class("heading");
export_label.set_halign(gtk::Align::Start);
@@ -123,9 +159,12 @@ impl MapPage {
container.append(&export_label);
let export_row = gtk::Box::new(gtk::Orientation::Horizontal, 10);
- export_row.append(&gtk::Label::new(Some(&tr!("preferences.map.export.default_format"))));
+ export_row.append(&gtk::Label::new(Some(&tr!(
+ "preferences.map.export.default_format"
+ ))));
- let formats = gtk::StringList::new(&[&tr!("export_formats.png"), &tr!("export_formats.svg")]);
+ let formats =
+ gtk::StringList::new(&[&tr!("export_formats.png"), &tr!("export_formats.svg")]);
let export_format_dropdown = gtk::DropDown::new(Some(formats), None::<gtk::Expression>);
let selected = match preferences.default_export_format.as_str() {
"svg" => 1,
@@ -145,14 +184,7 @@ impl MapPage {
export_row.append(&export_format_dropdown);
container.append(&export_row);
- Self {
- container,
- show_background_switch,
- smart_positioning_switch,
- custom_font_switch,
- font_button,
- export_format_dropdown,
- }
+ export_format_dropdown
}
pub fn widget(&self) -> gtk::Box {
@@ -176,4 +208,3 @@ impl MapPage {
self.export_format_dropdown.set_selected(selected);
}
}
-
diff --git a/src/preferences/pages/stages.rs b/src/preferences/pages/stages.rs
index 9f0685d..4bd24e1 100644
--- a/src/preferences/pages/stages.rs
+++ b/src/preferences/pages/stages.rs
@@ -60,25 +60,25 @@ impl StagesPage {
name_header.set_xalign(0.0);
header_row.append(&name_header);
- let i_header = gtk::Label::new(Some(&tr!("preferences.stages.column.stage_i")));
- i_header.set_width_chars(12);
- i_header.set_xalign(0.0);
- header_row.append(&i_header);
+ let first_header = gtk::Label::new(Some(&tr!("preferences.stages.column.stage_i")));
+ first_header.set_width_chars(12);
+ first_header.set_xalign(0.0);
+ header_row.append(&first_header);
- let ii_header = gtk::Label::new(Some(&tr!("preferences.stages.column.stage_ii")));
- ii_header.set_width_chars(12);
- ii_header.set_xalign(0.0);
- header_row.append(&ii_header);
+ let second_header = gtk::Label::new(Some(&tr!("preferences.stages.column.stage_ii")));
+ second_header.set_width_chars(12);
+ second_header.set_xalign(0.0);
+ header_row.append(&second_header);
- let iii_header = gtk::Label::new(Some(&tr!("preferences.stages.column.stage_iii")));
- iii_header.set_width_chars(12);
- iii_header.set_xalign(0.0);
- header_row.append(&iii_header);
+ let third_header = gtk::Label::new(Some(&tr!("preferences.stages.column.stage_iii")));
+ third_header.set_width_chars(12);
+ third_header.set_xalign(0.0);
+ header_row.append(&third_header);
- let iv_header = gtk::Label::new(Some(&tr!("preferences.stages.column.stage_iv")));
- iv_header.set_width_chars(12);
- iv_header.set_xalign(0.0);
- header_row.append(&iv_header);
+ let fourth_header = gtk::Label::new(Some(&tr!("preferences.stages.column.stage_iv")));
+ fourth_header.set_width_chars(12);
+ fourth_header.set_xalign(0.0);
+ header_row.append(&fourth_header);
// Spacer for delete button column
let spacer = gtk::Box::new(gtk::Orientation::Horizontal, 0);
@@ -172,12 +172,12 @@ impl StagesPage {
hbox.append(&name_entry);
// Stage I entry
- let i_entry = gtk::Entry::new();
- i_entry.set_text(&stage.i);
- i_entry.set_width_chars(12);
+ let first_entry = gtk::Entry::new();
+ first_entry.set_text(&stage.i);
+ first_entry.set_width_chars(12);
{
let sender = self.sender.clone();
- i_entry.connect_changed(move |entry| {
+ first_entry.connect_changed(move |entry| {
sender.emit(PreferencesInput::SetCustomStageLabel(
id,
StageLabel::I,
@@ -185,15 +185,15 @@ impl StagesPage {
));
});
}
- hbox.append(&i_entry);
+ hbox.append(&first_entry);
// Stage II entry
- let ii_entry = gtk::Entry::new();
- ii_entry.set_text(&stage.ii);
- ii_entry.set_width_chars(12);
+ let second_entry = gtk::Entry::new();
+ second_entry.set_text(&stage.ii);
+ second_entry.set_width_chars(12);
{
let sender = self.sender.clone();
- ii_entry.connect_changed(move |entry| {
+ second_entry.connect_changed(move |entry| {
sender.emit(PreferencesInput::SetCustomStageLabel(
id,
StageLabel::Ii,
@@ -201,15 +201,15 @@ impl StagesPage {
));
});
}
- hbox.append(&ii_entry);
+ hbox.append(&second_entry);
// Stage III entry
- let iii_entry = gtk::Entry::new();
- iii_entry.set_text(&stage.iii);
- iii_entry.set_width_chars(12);
+ let third_entry = gtk::Entry::new();
+ third_entry.set_text(&stage.iii);
+ third_entry.set_width_chars(12);
{
let sender = self.sender.clone();
- iii_entry.connect_changed(move |entry| {
+ third_entry.connect_changed(move |entry| {
sender.emit(PreferencesInput::SetCustomStageLabel(
id,
StageLabel::Iii,
@@ -217,15 +217,15 @@ impl StagesPage {
));
});
}
- hbox.append(&iii_entry);
+ hbox.append(&third_entry);
// Stage IV entry
- let iv_entry = gtk::Entry::new();
- iv_entry.set_text(&stage.iv);
- iv_entry.set_width_chars(12);
+ let fourth_entry = gtk::Entry::new();
+ fourth_entry.set_text(&stage.iv);
+ fourth_entry.set_width_chars(12);
{
let sender = self.sender.clone();
- iv_entry.connect_changed(move |entry| {
+ fourth_entry.connect_changed(move |entry| {
sender.emit(PreferencesInput::SetCustomStageLabel(
id,
StageLabel::Iv,
@@ -233,7 +233,7 @@ impl StagesPage {
));
});
}
- hbox.append(&iv_entry);
+ hbox.append(&fourth_entry);
// Delete button
let delete_button = gtk::Button::from_icon_name("list-remove-symbolic");
diff --git a/src/preferences/pages/templates.rs b/src/preferences/pages/templates.rs
index acc679f..1760085 100644
--- a/src/preferences/pages/templates.rs
+++ b/src/preferences/pages/templates.rs
@@ -78,9 +78,9 @@ impl TemplatesPage {
{
let sender = sender.clone();
add_button.connect_clicked(move |_| {
- sender.emit(PreferencesInput::AddTemplate(
- tr!("dialog.template.default_label"),
- ));
+ sender.emit(PreferencesInput::AddTemplate(tr!(
+ "dialog.template.default_label"
+ )));
});
}
button_box.append(&add_button);
@@ -226,7 +226,7 @@ impl TemplatesPage {
self.list_box.connect_row_selected(move |_, row| {
if let Some(row) = row {
- let index = row.index() as usize;
+ let index: usize = row.index().try_into().unwrap_or(0);
if let Some(template) = templates.get(index) {
*selected_id.borrow_mut() = Some(template.id);
editor_buffer.set_text(&template.content);
@@ -251,7 +251,8 @@ impl TemplatesPage {
default_button.set_tooltip_text(Some(&tr!("preferences.templates.help.default")));
} else {
default_button.set_icon_name("radio-symbolic");
- default_button.set_tooltip_text(Some(&tr!("preferences.templates.help.set_as_default")));
+ default_button
+ .set_tooltip_text(Some(&tr!("preferences.templates.help.set_as_default")));
}
default_button.add_css_class("flat");
{
@@ -271,7 +272,10 @@ impl TemplatesPage {
let sender = self.sender.clone();
let id = template.id;
name_entry.connect_changed(move |entry| {
- sender.emit(PreferencesInput::SetTemplateName(id, entry.text().to_string()));
+ sender.emit(PreferencesInput::SetTemplateName(
+ id,
+ entry.text().to_string(),
+ ));
});
}
hbox.append(&name_entry);