From 0c63b14b680d0385f4b2a75de3c0a366c970b250 Mon Sep 17 00:00:00 2001 From: Bilal Elmoussaoui Date: Tue, 23 Jul 2019 17:33:01 +0000 Subject: [PATCH] minor cleaning --- src/widgets/export.rs | 12 +++++++++--- src/widgets/icons.rs | 32 ++++++++++++++++---------------- 2 files changed, 25 insertions(+), 19 deletions(-) diff --git a/src/widgets/export.rs b/src/widgets/export.rs index 5c49433..7ab622e 100644 --- a/src/widgets/export.rs +++ b/src/widgets/export.rs @@ -1,6 +1,6 @@ use crate::icon::Icon; - use gdk; +use gettextrs::gettext; use gio::prelude::*; use gtk; use gtk::prelude::*; @@ -16,7 +16,7 @@ pub struct ExportDialog { } impl ExportDialog { - pub fn new(icon: Icon) -> ExportDialog { + pub fn new(icon: &Icon) -> ExportDialog { let builder = gtk::Builder::new_from_resource("/org/gnome/design/IconLibrary/export_dialog.ui"); let widget: libhandy::Dialog = builder.get_object("export_dialog").unwrap(); @@ -68,7 +68,13 @@ impl ExportDialog { let save_as = gio::SimpleAction::new("save-as", None); let window = self.widget.clone(); save_as.connect_activate(move |_, _| { - let export_dialog = gtk::FileChooserNative::new(Some("Export a symbolic icon"), Some(&window), gtk::FileChooserAction::Save, Some("Export"), Some("Cancel")); + let export_dialog = gtk::FileChooserNative::new( + Some(gettext("Export a symbolic icon").as_str()), + Some(&window), + gtk::FileChooserAction::Save, + Some(gettext("Export").as_str()), + Some(gettext("Cancel").as_str()), + ); let file_name = format!("{}.svg", icon_name.clone()); export_dialog.set_current_name(Path::new(&file_name)); let icon_name = icon_name.clone(); diff --git a/src/widgets/icons.rs b/src/widgets/icons.rs index 392dc4f..a88d232 100644 --- a/src/widgets/icons.rs +++ b/src/widgets/icons.rs @@ -175,14 +175,10 @@ impl IconsViewContext { } fn init(&self) { - self.widget.set_valign(gtk::Align::Fill); - self.widget.set_halign(gtk::Align::Fill); - - self.icons_container.set_valign(gtk::Align::Fill); - self.icons_container.set_halign(gtk::Align::Fill); self.icons_container.set_row_spacing(12); self.icons_container.set_column_spacing(12); self.icons_container.set_max_children_per_line(14); + self.icons_container.set_min_children_per_line(6); self.icons_container.set_selection_mode(gtk::SelectionMode::None); let context_label = gtk::Label::new(Some(self.context.as_str())); @@ -203,13 +199,15 @@ impl IconsViewContext { fn connect_signals(&self, parent: >k::ApplicationWindow) { let parent_window = parent.clone(); let icons_views = self.icons_views.clone(); - self.icons_container.connect_child_activated(move |_, child| match icons_views.get(child) { - Some(icon) => { - let export_dialog = ExportDialog::new(icon.clone()); - export_dialog.widget.set_transient_for(Some(&parent_window)); - export_dialog.widget.show_all(); - } - None => println!("Couldn't find the icon"), + self.icons_container.connect_child_activated(move |_, child| { + match icons_views.get(child) { + Some(icon) => { + let export_dialog = ExportDialog::new(icon); + export_dialog.widget.set_transient_for(Some(&parent_window)); + export_dialog.widget.show_all(); + } + None => error!("Export Dialog: Couldn't find the icon"), + }; }); } @@ -219,7 +217,10 @@ impl IconsViewContext { let filter_closure = move |child: >k::FlowBoxChild| -> bool { match icons_views.get(child) { Some(icon) => icon.should_display(&search_str), - None => false, + None => { + error!("Search: couldn't find the icon"); + false + } } }; self.icons_container.set_filter_func(Some(Box::new(filter_closure))); @@ -231,10 +232,9 @@ impl IconsViewContext { self.widget.set_visible(self.n_last_search_results != 0); } } -#[derive(Clone)] + struct IconView { pub widget: gtk::FlowBoxChild, - icon: Icon, } impl IconView { @@ -247,7 +247,7 @@ impl IconView { widget.set_tooltip_text(Some(icon_name)); widget.add(&icon_img); - let icon_view = IconView { widget, icon }; + let icon_view = IconView { widget }; icon_view } } -- GitLab