Skip to content

Commit b04d9b3

Browse files
committed
Don't setup actions every time zoom level changes
1 parent aa8bdda commit b04d9b3

File tree

1 file changed

+29
-20
lines changed

1 file changed

+29
-20
lines changed

src/View/Widgets/AppMenu.vala

Lines changed: 29 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -27,22 +27,10 @@ public class Files.AppMenu : Gtk.Popover {
2727
var app_instance = (Gtk.Application)(GLib.Application.get_default ());
2828

2929
zoom_out_button = new Gtk.Button.from_icon_name ("zoom-out-symbolic", Gtk.IconSize.MENU);
30-
zoom_out_button.tooltip_markup = Granite.markup_accel_tooltip (
31-
app_instance.get_accels_for_action ("win.zoom::ZOOM_OUT"),
32-
_("Zoom Out")
33-
);
3430

3531
zoom_default_button = new Gtk.Button.with_label ("100%");
36-
zoom_default_button.tooltip_markup = Granite.markup_accel_tooltip (
37-
app_instance.get_accels_for_action ("win.zoom::ZOOM_NORMAL"),
38-
_("Zoom 1:1")
39-
);
4032

4133
zoom_in_button = new Gtk.Button.from_icon_name ("zoom-in-symbolic", Gtk.IconSize.MENU);
42-
zoom_in_button.tooltip_markup = Granite.markup_accel_tooltip (
43-
app_instance.get_accels_for_action ("win.zoom::ZOOM_IN"),
44-
_("Zoom In")
45-
);
4634

4735
var icon_size_box = new Gtk.Box (Gtk.Orientation.HORIZONTAL, 0) {
4836
homogeneous = true,
@@ -167,9 +155,9 @@ public class Files.AppMenu : Gtk.Popover {
167155
column_view_settings.changed["zoom-level"].connect (on_zoom_setting_changed);
168156

169157
var app_settings = new Settings ("io.elementary.files.preferences");
170-
app_settings.changed["default-viewmode"].connect (on_zoom_setting_changed);
158+
app_settings.changed["default-viewmode"].connect (on_viewmode_changed);
171159

172-
on_zoom_setting_changed ();
160+
on_viewmode_changed ();
173161

174162
// Initialize and connect dateformat buttons
175163
switch (app_settings.get_enum ("date-format")) {
@@ -230,9 +218,10 @@ public class Files.AppMenu : Gtk.Popover {
230218
);
231219
}
232220

233-
private void on_zoom_setting_changed () {
221+
private void on_viewmode_changed () {
222+
var default_viewmode = app_settings.get_string ("default-viewmode");
234223
Settings settings = null;
235-
switch (app_settings.get_string ("default-viewmode")) {
224+
switch (default_viewmode) {
236225
case "icon":
237226
settings = icon_view_settings;
238227
break;
@@ -244,18 +233,38 @@ public class Files.AppMenu : Gtk.Popover {
244233
break;
245234
}
246235

247-
zoom_in_button.action_name = "%s-view.zoom-in".printf (app_settings.get_string ("default-viewmode"));
248-
zoom_out_button.action_name = "%s-view.zoom-out".printf (app_settings.get_string ("default-viewmode"));
249-
zoom_default_button.action_name = "%s-view.zoom-default".printf (app_settings.get_string ("default-viewmode"));
236+
var app_instance = (Gtk.Application)(GLib.Application.get_default ());
237+
238+
zoom_in_button.action_name = "%s-view.zoom-in".printf (default_viewmode);
239+
zoom_in_button.tooltip_markup = Granite.markup_accel_tooltip (
240+
app_instance.get_accels_for_action (zoom_in_button.action_name),
241+
_("Zoom In")
242+
);
243+
244+
zoom_out_button.action_name = "%s-view.zoom-out".printf (default_viewmode);
245+
zoom_out_button.tooltip_markup = Granite.markup_accel_tooltip (
246+
app_instance.get_accels_for_action (zoom_out_button.action_name),
247+
_("Zoom Out")
248+
);
249+
250+
zoom_default_button.action_name = "%s-view.zoom-default".printf (default_viewmode);
251+
zoom_default_button.tooltip_markup = Granite.markup_accel_tooltip (
252+
app_instance.get_accels_for_action (zoom_default_button.action_name),
253+
_("Zoom 1:1")
254+
);
250255

251256
if (settings == null) {
252257
critical ("Zoom string from settinggs: Null settings");
253258
zoom_default_button.label = "";
254259
return;
255260
}
256261

262+
on_zoom_setting_changed (settings, "zoom-level");
263+
}
264+
265+
private void on_zoom_setting_changed (Settings settings, string key) {
257266
var default_zoom = (Files.ZoomLevel)(settings.get_enum ("default-zoom-level"));
258-
var zoom_level = (Files.ZoomLevel)(settings.get_enum ("zoom-level"));
267+
var zoom_level = (Files.ZoomLevel)(settings.get_enum (key));
259268
zoom_default_button.label = ("%.0f%%").printf ((double)(zoom_level.to_icon_size ()) / (double)(default_zoom.to_icon_size ()) * 100);
260269
}
261270
}

0 commit comments

Comments
 (0)