print-preview: add a print button to the preview toolbar, to immediately
print the previewed document.
This commit is contained in:
parent
9d3d2acfd9
commit
8763fbf5df
|
@ -979,6 +979,17 @@ load_print_settings (XedApp *app)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
setup_actions (XedApp *app)
|
||||||
|
{
|
||||||
|
GSimpleAction *action;
|
||||||
|
|
||||||
|
action = g_simple_action_new ("print-now", NULL);
|
||||||
|
|
||||||
|
g_action_map_add_action (G_ACTION_MAP (app), G_ACTION (action));
|
||||||
|
g_object_unref (action);
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
xed_app_init (XedApp *app)
|
xed_app_init (XedApp *app)
|
||||||
{
|
{
|
||||||
|
@ -994,6 +1005,8 @@ xed_app_init (XedApp *app)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
load_accels ();
|
load_accels ();
|
||||||
|
|
||||||
|
setup_actions (app);
|
||||||
}
|
}
|
||||||
|
|
||||||
static gboolean
|
static gboolean
|
||||||
|
|
|
@ -66,6 +66,6 @@ _xed_cmd_file_print (GtkAction *action,
|
||||||
if (tab == NULL)
|
if (tab == NULL)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
_xed_tab_print (tab);
|
_xed_tab_print (tab, TRUE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -57,6 +57,7 @@ struct _XedPrintPreviewPrivate
|
||||||
GtkWidget *zoom_fit;
|
GtkWidget *zoom_fit;
|
||||||
GtkWidget *zoom_in;
|
GtkWidget *zoom_in;
|
||||||
GtkWidget *zoom_out;
|
GtkWidget *zoom_out;
|
||||||
|
GtkWidget *print_now;
|
||||||
|
|
||||||
/* real size of the page in inches */
|
/* real size of the page in inches */
|
||||||
double paper_w;
|
double paper_w;
|
||||||
|
@ -534,6 +535,16 @@ zoom_out_button_clicked (GtkWidget *button,
|
||||||
zoom_out (preview);
|
zoom_out (preview);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
print_now_button_clicked (GtkWidget *button,
|
||||||
|
XedPrintPreview *preview)
|
||||||
|
{
|
||||||
|
GAction *action = g_action_map_lookup_action (G_ACTION_MAP (g_application_get_default ()),
|
||||||
|
"print-now");
|
||||||
|
|
||||||
|
g_action_activate (action, NULL);
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
close_button_clicked (GtkWidget *button,
|
close_button_clicked (GtkWidget *button,
|
||||||
XedPrintPreview *preview)
|
XedPrintPreview *preview)
|
||||||
|
@ -679,6 +690,23 @@ create_bar (XedPrintPreview *preview)
|
||||||
box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
|
box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
|
||||||
gtk_container_add (GTK_CONTAINER (i), box);
|
gtk_container_add (GTK_CONTAINER (i), box);
|
||||||
|
|
||||||
|
priv->print_now = gtk_button_new_from_icon_name ("document-print-symbolic", GTK_ICON_SIZE_MENU);
|
||||||
|
gtk_box_pack_start (GTK_BOX (box), priv->print_now, FALSE, FALSE, 0);
|
||||||
|
gtk_widget_set_tooltip_text (priv->print_now, _("Print this document"));
|
||||||
|
g_signal_connect (priv->print_now, "clicked",
|
||||||
|
G_CALLBACK (print_now_button_clicked), preview);
|
||||||
|
|
||||||
|
gtk_widget_show_all (GTK_WIDGET (i));
|
||||||
|
|
||||||
|
i = gtk_separator_tool_item_new ();
|
||||||
|
gtk_widget_show (GTK_WIDGET (i));
|
||||||
|
gtk_toolbar_insert (GTK_TOOLBAR (toolbar), i, -1);
|
||||||
|
|
||||||
|
i = gtk_tool_item_new ();
|
||||||
|
gtk_toolbar_insert (GTK_TOOLBAR (toolbar), i, -1);
|
||||||
|
box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
|
||||||
|
gtk_container_add (GTK_CONTAINER (i), box);
|
||||||
|
|
||||||
close_button = gtk_button_new_with_mnemonic (_("_Close preview"));
|
close_button = gtk_button_new_with_mnemonic (_("_Close preview"));
|
||||||
gtk_box_pack_start (GTK_BOX (box), close_button, FALSE, FALSE, 0);
|
gtk_box_pack_start (GTK_BOX (box), close_button, FALSE, FALSE, 0);
|
||||||
gtk_widget_set_tooltip_text (close_button, _("Close print preview"));
|
gtk_widget_set_tooltip_text (close_button, _("Close print preview"));
|
||||||
|
|
|
@ -273,6 +273,11 @@ xed_tab_dispose (GObject *object)
|
||||||
|
|
||||||
clear_loading (tab);
|
clear_loading (tab);
|
||||||
|
|
||||||
|
GAction *action = g_action_map_lookup_action (G_ACTION_MAP (g_application_get_default ()),
|
||||||
|
"print-now");
|
||||||
|
|
||||||
|
g_signal_handlers_disconnect_by_data (action, tab);
|
||||||
|
|
||||||
G_OBJECT_CLASS (xed_tab_parent_class)->dispose (object);
|
G_OBJECT_CLASS (xed_tab_parent_class)->dispose (object);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1147,6 +1152,14 @@ view_focused_in (GtkWidget *widget,
|
||||||
return GDK_EVENT_PROPAGATE;
|
return GDK_EVENT_PROPAGATE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
print_now_action_cb (XedTab *tab)
|
||||||
|
{
|
||||||
|
g_return_if_fail (XED_IS_TAB (tab));
|
||||||
|
|
||||||
|
_xed_tab_print (tab, FALSE);
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
xed_tab_init (XedTab *tab)
|
xed_tab_init (XedTab *tab)
|
||||||
{
|
{
|
||||||
|
@ -1198,6 +1211,12 @@ xed_tab_init (XedTab *tab)
|
||||||
G_CALLBACK (view_focused_in), tab);
|
G_CALLBACK (view_focused_in), tab);
|
||||||
g_signal_connect_after (view, "realize",
|
g_signal_connect_after (view, "realize",
|
||||||
G_CALLBACK (view_realized), tab);
|
G_CALLBACK (view_realized), tab);
|
||||||
|
|
||||||
|
GAction *action = g_action_map_lookup_action (G_ACTION_MAP (g_application_get_default ()),
|
||||||
|
"print-now");
|
||||||
|
|
||||||
|
g_signal_connect_swapped (action, "activate",
|
||||||
|
G_CALLBACK (print_now_action_cb), tab);
|
||||||
}
|
}
|
||||||
|
|
||||||
GtkWidget *
|
GtkWidget *
|
||||||
|
@ -2811,7 +2830,8 @@ xed_tab_print_or_print_preview (XedTab *tab,
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
_xed_tab_print (XedTab *tab)
|
_xed_tab_print (XedTab *tab,
|
||||||
|
gboolean with_dialog)
|
||||||
{
|
{
|
||||||
g_return_if_fail (XED_IS_TAB (tab));
|
g_return_if_fail (XED_IS_TAB (tab));
|
||||||
|
|
||||||
|
@ -2823,7 +2843,14 @@ _xed_tab_print (XedTab *tab)
|
||||||
gtk_widget_destroy (tab->priv->print_preview);
|
gtk_widget_destroy (tab->priv->print_preview);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (with_dialog)
|
||||||
|
{
|
||||||
xed_tab_print_or_print_preview (tab, GTK_PRINT_OPERATION_ACTION_PRINT_DIALOG);
|
xed_tab_print_or_print_preview (tab, GTK_PRINT_OPERATION_ACTION_PRINT_DIALOG);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
xed_tab_print_or_print_preview (tab, GTK_PRINT_OPERATION_ACTION_PRINT);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
|
|
@ -153,7 +153,7 @@ void _xed_tab_save_as_async (XedTab *tab,
|
||||||
GAsyncReadyCallback callback,
|
GAsyncReadyCallback callback,
|
||||||
gpointer user_data);
|
gpointer user_data);
|
||||||
|
|
||||||
void _xed_tab_print (XedTab *tab);
|
void _xed_tab_print (XedTab *tab, gboolean show_dialog);
|
||||||
void _xed_tab_print_preview (XedTab *tab);
|
void _xed_tab_print_preview (XedTab *tab);
|
||||||
void _xed_tab_mark_for_closing (XedTab *tab);
|
void _xed_tab_mark_for_closing (XedTab *tab);
|
||||||
gboolean _xed_tab_get_can_close (XedTab *tab);
|
gboolean _xed_tab_get_can_close (XedTab *tab);
|
||||||
|
|
Loading…
Reference in New Issue