[gthumb] keep the zoom buttons on the headerbar if the tool allow to zoom the image
- From: Paolo Bacchilega <paobac src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gthumb] keep the zoom buttons on the headerbar if the tool allow to zoom the image
- Date: Sun, 26 Feb 2017 10:37:39 +0000 (UTC)
commit 35e2aba417bef1efcfc3ecf744207c6ff13322c3
Author: Paolo Bacchilega <paobac src gnome org>
Date: Sun Feb 26 11:26:40 2017 +0100
keep the zoom buttons on the headerbar if the tool allow to zoom the image
extensions/file_tools/gth-file-tool-resize.c | 1 +
extensions/file_tools/gth-file-tool-sharpen.c | 1 +
extensions/image_viewer/gth-image-viewer-page.c | 6 +++---
gthumb/gth-browser.c | 19 ++++++++++++++++++-
gthumb/gth-browser.h | 1 +
gthumb/gth-file-tool.c | 17 +++++++++++++++++
gthumb/gth-file-tool.h | 3 +++
7 files changed, 44 insertions(+), 4 deletions(-)
---
diff --git a/extensions/file_tools/gth-file-tool-resize.c b/extensions/file_tools/gth-file-tool-resize.c
index a4473db..bfd6371 100644
--- a/extensions/file_tools/gth-file-tool-resize.c
+++ b/extensions/file_tools/gth-file-tool-resize.c
@@ -832,4 +832,5 @@ gth_file_tool_resize_init (GthFileToolResize *self)
self->priv->preview = NULL;
self->priv->new_image = NULL;
gth_file_tool_construct (GTH_FILE_TOOL (self), "image-resize-symbolic", _("Resize"),
GTH_TOOLBOX_SECTION_FORMAT);
+ gth_file_tool_set_zoomable (GTH_FILE_TOOL (self), TRUE);
}
diff --git a/extensions/file_tools/gth-file-tool-sharpen.c b/extensions/file_tools/gth-file-tool-sharpen.c
index cbd6938..71e9f03 100644
--- a/extensions/file_tools/gth-file-tool-sharpen.c
+++ b/extensions/file_tools/gth-file-tool-sharpen.c
@@ -435,4 +435,5 @@ gth_file_tool_sharpen_init (GthFileToolSharpen *self)
"image-sharpen-symbolic",
_("Enhance Focus"),
GTH_TOOLBOX_SECTION_COLORS);
+ gth_file_tool_set_zoomable (GTH_FILE_TOOL (self), TRUE);
}
diff --git a/extensions/image_viewer/gth-image-viewer-page.c b/extensions/image_viewer/gth-image-viewer-page.c
index 1a2353b..732876c 100644
--- a/extensions/image_viewer/gth-image-viewer-page.c
+++ b/extensions/image_viewer/gth-image-viewer-page.c
@@ -921,14 +921,14 @@ gth_image_viewer_page_real_activate (GthViewerPage *base,
self->priv->buttons[0] =
gth_browser_add_header_bar_button (browser,
- GTH_BROWSER_HEADER_SECTION_VIEWER_VIEW,
+ GTH_BROWSER_HEADER_SECTION_VIEWER_ZOOM,
"view-zoom-original-symbolic",
_("Set to actual size"),
"win.image-zoom-100",
NULL);
self->priv->buttons[1] =
gth_browser_add_header_bar_button (browser,
- GTH_BROWSER_HEADER_SECTION_VIEWER_VIEW,
+ GTH_BROWSER_HEADER_SECTION_VIEWER_ZOOM,
"view-zoom-fit-symbolic",
_("Fit to window if larger"),
"win.image-zoom-fit-if-larger",
@@ -937,7 +937,7 @@ gth_image_viewer_page_real_activate (GthViewerPage *base,
self->priv->builder = gtk_builder_new_from_resource
("/org/gnome/gThumb/image_viewer/data/ui/toolbar-zoom-menu.ui");
self->priv->buttons[ZOOM_BUTTON] =
gth_browser_add_header_bar_menu_button (browser,
- GTH_BROWSER_HEADER_SECTION_VIEWER_VIEW,
+ GTH_BROWSER_HEADER_SECTION_VIEWER_ZOOM,
"view-zoom-in-symbolic",
NULL,
_gtk_builder_get_widget (self->priv->builder,
"zoom_popover"));
diff --git a/gthumb/gth-browser.c b/gthumb/gth-browser.c
index e9a24e6..54993fc 100644
--- a/gthumb/gth-browser.c
+++ b/gthumb/gth-browser.c
@@ -2409,6 +2409,16 @@ _gth_browser_update_header_bar_content (GthBrowser *browser)
_gth_browser_update_header_section_visibility (browser, GTH_BROWSER_HEADER_SECTION_EDITOR_COMMANDS,
section_visible);
_gth_browser_update_header_section_visibility (browser, GTH_BROWSER_HEADER_SECTION_EDITOR_APPLY,
section_visible);
+ section_visible = (page == GTH_BROWSER_PAGE_VIEWER);
+ if (active_tool) {
+ GtkWidget *toolbox;
+ GtkWidget *file_tool;
+
+ toolbox = gth_sidebar_get_toolbox (GTH_SIDEBAR (browser->priv->file_properties));
+ file_tool = gth_toolbox_get_active_tool (GTH_TOOLBOX (toolbox));
+ section_visible = gth_file_tool_get_zoomable (GTH_FILE_TOOL (file_tool));
+ }
+ _gth_browser_update_header_section_visibility (browser, GTH_BROWSER_HEADER_SECTION_VIEWER_ZOOM,
section_visible);
gtk_widget_set_visible (browser->priv->menu_button, ! ((page == GTH_BROWSER_PAGE_VIEWER) &&
active_tool));
gth_browser_update_title (browser);
@@ -4458,11 +4468,13 @@ gth_browser_init (GthBrowser *browser)
gtk_widget_set_margin_right
(browser->priv->header_sections[GTH_BROWSER_HEADER_SECTION_BROWSER_VIEW], GTH_BROWSER_HEADER_BAR_BIG_MARGIN);
gtk_widget_set_margin_left
(browser->priv->header_sections[GTH_BROWSER_HEADER_SECTION_VIEWER_EDIT], GTH_BROWSER_HEADER_BAR_BIG_MARGIN);
gtk_widget_set_margin_right
(browser->priv->header_sections[GTH_BROWSER_HEADER_SECTION_VIEWER_EDIT], GTH_BROWSER_HEADER_BAR_BIG_MARGIN);
- gtk_widget_set_margin_left
(browser->priv->header_sections[GTH_BROWSER_HEADER_SECTION_VIEWER_VIEW], GTH_BROWSER_HEADER_BAR_BIG_MARGIN);
gtk_widget_set_margin_left
(browser->priv->header_sections[GTH_BROWSER_HEADER_SECTION_VIEWER_OTHER_VIEW],
GTH_BROWSER_HEADER_BAR_BIG_MARGIN);
+ gtk_widget_set_margin_right
(browser->priv->header_sections[GTH_BROWSER_HEADER_SECTION_VIEWER_OTHER_VIEW],
GTH_BROWSER_HEADER_BAR_BIG_MARGIN);
+ gtk_widget_set_margin_right
(browser->priv->header_sections[GTH_BROWSER_HEADER_SECTION_VIEWER_ZOOM], GTH_BROWSER_HEADER_BAR_BIG_MARGIN);
gtk_widget_set_margin_left
(browser->priv->header_sections[GTH_BROWSER_HEADER_SECTION_VIEWER_COMMANDS],
GTH_BROWSER_HEADER_BAR_BIG_MARGIN);
gtk_widget_set_margin_left
(browser->priv->header_sections[GTH_BROWSER_HEADER_SECTION_VIEWER_OTHER_COMMANDS],
GTH_BROWSER_HEADER_BAR_BIG_MARGIN);
gtk_widget_set_margin_left
(browser->priv->header_sections[GTH_BROWSER_HEADER_SECTION_EDITOR_VIEW], GTH_BROWSER_HEADER_BAR_BIG_MARGIN);
+ gtk_widget_set_margin_right
(browser->priv->header_sections[GTH_BROWSER_HEADER_SECTION_EDITOR_VIEW], GTH_BROWSER_HEADER_BAR_BIG_MARGIN);
gtk_widget_set_margin_right
(browser->priv->header_sections[GTH_BROWSER_HEADER_SECTION_EDITOR_COMMANDS],
GTH_BROWSER_HEADER_BAR_BIG_MARGIN);
gtk_header_bar_pack_start (GTK_HEADER_BAR (header_bar),
browser->priv->header_sections[GTH_BROWSER_HEADER_SECTION_BROWSER_NAVIGATION]);
@@ -4475,6 +4487,11 @@ gth_browser_init (GthBrowser *browser)
gtk_header_bar_pack_start (GTK_HEADER_BAR (header_bar),
browser->priv->header_sections[GTH_BROWSER_HEADER_SECTION_EDITOR_NAVIGATION]);
gtk_header_bar_pack_start (GTK_HEADER_BAR (header_bar),
browser->priv->header_sections[GTH_BROWSER_HEADER_SECTION_EDITOR_VIEW]);
+ /* GTH_BROWSER_HEADER_SECTION_VIEWER_ZOOM is shared by the viewer and the editor */
+ gtk_header_bar_pack_start (GTK_HEADER_BAR (header_bar),
browser->priv->header_sections[GTH_BROWSER_HEADER_SECTION_VIEWER_ZOOM]);
+ gtk_header_bar_pack_start (GTK_HEADER_BAR (header_bar),
browser->priv->header_sections[GTH_BROWSER_HEADER_SECTION_VIEWER_VIEW]);
+ gtk_header_bar_pack_start (GTK_HEADER_BAR (header_bar),
browser->priv->header_sections[GTH_BROWSER_HEADER_SECTION_VIEWER_COMMANDS]);
+ gtk_header_bar_pack_start (GTK_HEADER_BAR (header_bar),
browser->priv->header_sections[GTH_BROWSER_HEADER_SECTION_VIEWER_OTHER_COMMANDS]);
/* gears menu button */
diff --git a/gthumb/gth-browser.h b/gthumb/gth-browser.h
index 2c4c06e..9f76b1a 100644
--- a/gthumb/gth-browser.h
+++ b/gthumb/gth-browser.h
@@ -89,6 +89,7 @@ typedef enum { /*< skip >*/
GTH_BROWSER_HEADER_SECTION_VIEWER_NAVIGATION,
GTH_BROWSER_HEADER_SECTION_VIEWER_OTHER_VIEW,
GTH_BROWSER_HEADER_SECTION_VIEWER_VIEW,
+ GTH_BROWSER_HEADER_SECTION_VIEWER_ZOOM, /* section shared by viewer and editor */
GTH_BROWSER_HEADER_SECTION_VIEWER_COMMANDS,
GTH_BROWSER_HEADER_SECTION_VIEWER_OTHER_COMMANDS,
GTH_BROWSER_HEADER_SECTION_VIEWER_SIDEBAR,
diff --git a/gthumb/gth-file-tool.c b/gthumb/gth-file-tool.c
index d6b1017..d92a99b 100644
--- a/gthumb/gth-file-tool.c
+++ b/gthumb/gth-file-tool.c
@@ -39,6 +39,7 @@ struct _GthFileToolPrivate {
const char *options_title;
GthToolboxSection section;
gboolean cancelled;
+ gboolean zoomable;
};
@@ -152,6 +153,7 @@ gth_file_tool_init (GthFileTool *self)
self->priv->icon_name = NULL;
self->priv->options_title = NULL;
self->priv->cancelled = FALSE;
+ self->priv->zoomable = FALSE;
self->priv->section = GTH_TOOLBOX_SECTION_COLORS;
/*gtk_button_set_relief (GTK_BUTTON (self), GTK_RELIEF_NONE);*/
@@ -231,6 +233,21 @@ gth_file_tool_is_cancelled (GthFileTool *self)
void
+gth_file_tool_set_zoomable (GthFileTool *self,
+ gboolean zoomable)
+{
+ self->priv->zoomable = zoomable;
+}
+
+
+gboolean
+gth_file_tool_get_zoomable (GthFileTool *self)
+{
+ return self->priv->zoomable;
+}
+
+
+void
gth_file_tool_update_sensitivity (GthFileTool *self)
{
GTH_FILE_TOOL_GET_CLASS (self)->update_sensitivity (self);
diff --git a/gthumb/gth-file-tool.h b/gthumb/gth-file-tool.h
index e7276e1..a4af3ba 100644
--- a/gthumb/gth-file-tool.h
+++ b/gthumb/gth-file-tool.h
@@ -74,6 +74,9 @@ const char * gth_file_tool_get_icon_name (GthFileTool
*self);
void gth_file_tool_activate (GthFileTool *self);
void gth_file_tool_cancel (GthFileTool *self);
gboolean gth_file_tool_is_cancelled (GthFileTool *self);
+void gth_file_tool_set_zoomable (GthFileTool *self,
+ gboolean zoomable);
+gboolean gth_file_tool_get_zoomable (GthFileTool *self);
void gth_file_tool_update_sensitivity (GthFileTool *self);
GtkWidget * gth_file_tool_get_options (GthFileTool *self);
const char * gth_file_tool_get_options_title (GthFileTool *self);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]