From c6b67831e8029d7c53a4c5b4057b19251cba6bb1 Mon Sep 17 00:00:00 2001 From: Matthew Barnes Date: Fri, 1 Apr 2011 20:43:32 -0400 Subject: Adapt widgets/misc to the new ESource API. --- widgets/misc/e-signature-manager.c | 758 ------------------------------------- 1 file changed, 758 deletions(-) delete mode 100644 widgets/misc/e-signature-manager.c (limited to 'widgets/misc/e-signature-manager.c') diff --git a/widgets/misc/e-signature-manager.c b/widgets/misc/e-signature-manager.c deleted file mode 100644 index eb68dd251d..0000000000 --- a/widgets/misc/e-signature-manager.c +++ /dev/null @@ -1,758 +0,0 @@ -/* - * e-signature-manager.c - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) version 3. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with the program; if not, see - * - * - * Copyright (C) 1999-2008 Novell, Inc. (www.novell.com) - * - */ - -#ifdef HAVE_CONFIG_H -#include -#endif - -#include "e-signature-manager.h" - -#include -#include -#include -#include "e-signature-tree-view.h" -#include "e-signature-script-dialog.h" - -#define E_SIGNATURE_MANAGER_GET_PRIVATE(obj) \ - (G_TYPE_INSTANCE_GET_PRIVATE \ - ((obj), E_TYPE_SIGNATURE_MANAGER, ESignatureManagerPrivate)) - -struct _ESignatureManagerPrivate { - ESignatureList *signature_list; - - GtkWidget *tree_view; - GtkWidget *add_button; - GtkWidget *add_script_button; - GtkWidget *edit_button; - GtkWidget *remove_button; - - guint disable_command_line : 1; - guint prefer_html : 1; -}; - -enum { - PROP_0, - PROP_DISABLE_COMMAND_LINE, - PROP_PREFER_HTML, - PROP_SIGNATURE_LIST -}; - -enum { - ADD_SIGNATURE, - ADD_SIGNATURE_SCRIPT, - EDITOR_CREATED, - EDIT_SIGNATURE, - REMOVE_SIGNATURE, - LAST_SIGNAL -}; - -static guint signals[LAST_SIGNAL]; - -G_DEFINE_TYPE ( - ESignatureManager, - e_signature_manager, - GTK_TYPE_TABLE) - -static void -signature_manager_emit_editor_created (ESignatureManager *manager, - GtkWidget *editor) -{ - g_return_if_fail (E_IS_SIGNATURE_EDITOR (editor)); - - g_signal_emit (manager, signals[EDITOR_CREATED], 0, editor); -} - -static gboolean -signature_manager_key_press_event_cb (ESignatureManager *manager, - GdkEventKey *event) -{ - if (event->keyval == GDK_KEY_Delete) { - e_signature_manager_remove_signature (manager); - return TRUE; - } - - return FALSE; -} - -static gboolean -signature_manager_run_script_dialog (ESignatureManager *manager, - ESignature *signature, - const gchar *title) -{ - GtkWidget *dialog; - GFile *script_file; - const gchar *name; - const gchar *filename; - const gchar *script_name; - gboolean success = FALSE; - gpointer parent; - gchar *path; - - parent = gtk_widget_get_toplevel (GTK_WIDGET (manager)); - parent = gtk_widget_is_toplevel (parent) ? parent : NULL; - - dialog = e_signature_script_dialog_new (parent); - gtk_window_set_title (GTK_WINDOW (dialog), title); - - name = e_signature_get_name (signature); - filename = e_signature_get_filename (signature); - - if (filename != NULL && name != NULL) { - - script_file = g_file_new_for_path (filename); - script_name = name; - - e_signature_script_dialog_set_script_file ( - E_SIGNATURE_SCRIPT_DIALOG (dialog), script_file); - e_signature_script_dialog_set_script_name ( - E_SIGNATURE_SCRIPT_DIALOG (dialog), script_name); - - g_object_unref (script_file); - } - - if (gtk_dialog_run (GTK_DIALOG (dialog)) != GTK_RESPONSE_OK) - goto exit; - - script_file = e_signature_script_dialog_get_script_file ( - E_SIGNATURE_SCRIPT_DIALOG (dialog)); - script_name = e_signature_script_dialog_get_script_name ( - E_SIGNATURE_SCRIPT_DIALOG (dialog)); - - path = g_file_get_path (script_file); - e_signature_set_name (signature, script_name); - e_signature_set_filename (signature, path); - g_free (path); - - g_object_unref (script_file); - - success = TRUE; - -exit: - gtk_widget_destroy (dialog); - - return success; -} - -static void -signature_manager_selection_changed_cb (ESignatureManager *manager, - GtkTreeSelection *selection) -{ - ESignatureTreeView *tree_view; - ESignature *signature; - GtkWidget *edit_button; - GtkWidget *remove_button; - gboolean sensitive; - - edit_button = manager->priv->edit_button; - remove_button = manager->priv->remove_button; - - tree_view = e_signature_manager_get_tree_view (manager); - signature = e_signature_tree_view_get_selected (tree_view); - sensitive = (signature != NULL); - - gtk_widget_set_sensitive (edit_button, sensitive); - gtk_widget_set_sensitive (remove_button, sensitive); -} - -static void -signature_manager_set_property (GObject *object, - guint property_id, - const GValue *value, - GParamSpec *pspec) -{ - switch (property_id) { - case PROP_DISABLE_COMMAND_LINE: - e_signature_manager_set_disable_command_line ( - E_SIGNATURE_MANAGER (object), - g_value_get_boolean (value)); - return; - - case PROP_PREFER_HTML: - e_signature_manager_set_prefer_html ( - E_SIGNATURE_MANAGER (object), - g_value_get_boolean (value)); - return; - - case PROP_SIGNATURE_LIST: - e_signature_manager_set_signature_list ( - E_SIGNATURE_MANAGER (object), - g_value_get_object (value)); - return; - } - - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); -} - -static void -signature_manager_get_property (GObject *object, - guint property_id, - GValue *value, - GParamSpec *pspec) -{ - switch (property_id) { - case PROP_DISABLE_COMMAND_LINE: - g_value_set_boolean ( - value, - e_signature_manager_get_disable_command_line ( - E_SIGNATURE_MANAGER (object))); - return; - - case PROP_PREFER_HTML: - g_value_set_boolean ( - value, - e_signature_manager_get_prefer_html ( - E_SIGNATURE_MANAGER (object))); - return; - - case PROP_SIGNATURE_LIST: - g_value_set_object ( - value, - e_signature_manager_get_signature_list ( - E_SIGNATURE_MANAGER (object))); - return; - } - - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); -} - -static void -signature_manager_dispose (GObject *object) -{ - ESignatureManagerPrivate *priv; - - priv = E_SIGNATURE_MANAGER_GET_PRIVATE (object); - - if (priv->signature_list != NULL) { - g_object_unref (priv->signature_list); - priv->signature_list = NULL; - } - - if (priv->tree_view != NULL) { - g_object_unref (priv->tree_view); - priv->tree_view = NULL; - } - - if (priv->add_button != NULL) { - g_object_unref (priv->add_button); - priv->add_button = NULL; - } - - if (priv->add_script_button != NULL) { - g_object_unref (priv->add_script_button); - priv->add_script_button = NULL; - } - - if (priv->edit_button != NULL) { - g_object_unref (priv->edit_button); - priv->edit_button = NULL; - } - - if (priv->remove_button != NULL) { - g_object_unref (priv->remove_button); - priv->remove_button = NULL; - } - - /* Chain up to parent's dispose() method. */ - G_OBJECT_CLASS (e_signature_manager_parent_class)->dispose (object); -} - -static void -signature_manager_constructed (GObject *object) -{ -#ifndef G_OS_WIN32 - GSettings *settings; - - settings = g_settings_new ("org.gnome.desktop.lockdown"); - - g_settings_bind ( - settings, "disable-command-line", - object, "disable-command-line", - G_SETTINGS_BIND_GET); - - g_object_unref (settings); -#endif - - /* Chain up to parent's constructed() method. */ - G_OBJECT_CLASS (e_signature_manager_parent_class)->constructed (object); -} - -static void -signature_manager_add_signature (ESignatureManager *manager) -{ - ESignatureTreeView *tree_view; - GtkWidget *editor; - - tree_view = e_signature_manager_get_tree_view (manager); - - editor = e_signature_editor_new (); - gtkhtml_editor_set_html_mode ( - GTKHTML_EDITOR (editor), manager->priv->prefer_html); - signature_manager_emit_editor_created (manager, editor); - - gtk_widget_grab_focus (GTK_WIDGET (tree_view)); -} - -static void -signature_manager_add_signature_script (ESignatureManager *manager) -{ - ESignatureTreeView *tree_view; - ESignatureList *signature_list; - ESignature *signature; - const gchar *title; - - title = _("Add Signature Script"); - tree_view = e_signature_manager_get_tree_view (manager); - signature_list = e_signature_manager_get_signature_list (manager); - - signature = e_signature_new (); - e_signature_set_is_script (signature, TRUE); - e_signature_set_is_html (signature, TRUE); - - if (signature_manager_run_script_dialog (manager, signature, title)) - e_signature_list_add (signature_list, signature); - - e_signature_list_save (signature_list); - g_object_unref (signature); - - gtk_widget_grab_focus (GTK_WIDGET (tree_view)); -} - -static void -signature_manager_editor_created (ESignatureManager *manager, - ESignatureEditor *editor) -{ - GtkWindowPosition position; - gpointer parent; - - position = GTK_WIN_POS_CENTER_ON_PARENT; - parent = gtk_widget_get_toplevel (GTK_WIDGET (manager)); - parent = gtk_widget_is_toplevel (parent) ? parent : NULL; - - gtk_window_set_transient_for (GTK_WINDOW (editor), parent); - gtk_window_set_position (GTK_WINDOW (editor), position); - gtk_widget_show (GTK_WIDGET (editor)); -} - -static void -signature_manager_edit_signature (ESignatureManager *manager) -{ - ESignatureTreeView *tree_view; - ESignatureList *signature_list; - ESignature *signature; - GtkWidget *editor; - const gchar *title; - const gchar *filename; - - tree_view = e_signature_manager_get_tree_view (manager); - signature = e_signature_tree_view_get_selected (tree_view); - signature_list = e_signature_manager_get_signature_list (manager); - - if (signature == NULL) - return; - - if (e_signature_get_is_script (signature)) - goto script; - - filename = e_signature_get_filename (signature); - if (filename == NULL || *filename == '\0') - e_signature_set_filename (signature, _("Unnamed")); - - editor = e_signature_editor_new (); - e_signature_editor_set_signature ( - E_SIGNATURE_EDITOR (editor), signature); - signature_manager_emit_editor_created (manager, editor); - - goto exit; - -script: - title = _("Edit Signature Script"); - - if (signature_manager_run_script_dialog (manager, signature, title)) - e_signature_list_change (signature_list, signature); - - e_signature_list_save (signature_list); - -exit: - gtk_widget_grab_focus (GTK_WIDGET (tree_view)); - - g_object_unref (signature); -} - -static void -signature_manager_remove_signature (ESignatureManager *manager) -{ - ESignatureTreeView *tree_view; - ESignatureList *signature_list; - ESignature *signature; - const gchar *filename; - gboolean is_script; - - tree_view = e_signature_manager_get_tree_view (manager); - signature = e_signature_tree_view_get_selected (tree_view); - signature_list = e_signature_tree_view_get_signature_list (tree_view); - - if (signature == NULL) - return; - - filename = e_signature_get_filename (signature); - is_script = e_signature_get_is_script (signature); - - if (filename != NULL && !is_script) - g_unlink (filename); - - e_signature_list_remove (signature_list, signature); - e_signature_list_save (signature_list); - - gtk_widget_grab_focus (GTK_WIDGET (tree_view)); -} - -static void -e_signature_manager_class_init (ESignatureManagerClass *class) -{ - GObjectClass *object_class; - - g_type_class_add_private (class, sizeof (ESignatureManagerPrivate)); - - object_class = G_OBJECT_CLASS (class); - object_class->set_property = signature_manager_set_property; - object_class->get_property = signature_manager_get_property; - object_class->dispose = signature_manager_dispose; - object_class->constructed = signature_manager_constructed; - - class->add_signature = signature_manager_add_signature; - class->add_signature_script = signature_manager_add_signature_script; - class->editor_created = signature_manager_editor_created; - class->edit_signature = signature_manager_edit_signature; - class->remove_signature = signature_manager_remove_signature; - - g_object_class_install_property ( - object_class, - PROP_DISABLE_COMMAND_LINE, - g_param_spec_boolean ( - "disable-command-line", - "Disable Command Line", - NULL, - FALSE, - G_PARAM_READWRITE | - G_PARAM_CONSTRUCT)); - - g_object_class_install_property ( - object_class, - PROP_PREFER_HTML, - g_param_spec_boolean ( - "prefer-html", - "Prefer HTML", - NULL, - TRUE, - G_PARAM_READWRITE | - G_PARAM_CONSTRUCT)); - - g_object_class_install_property ( - object_class, - PROP_SIGNATURE_LIST, - g_param_spec_object ( - "signature-list", - "Signature List", - NULL, - E_TYPE_SIGNATURE_LIST, - G_PARAM_READWRITE | - G_PARAM_CONSTRUCT)); - - signals[ADD_SIGNATURE] = g_signal_new ( - "add-signature", - G_OBJECT_CLASS_TYPE (class), - G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION, - G_STRUCT_OFFSET (ESignatureManagerClass, add_signature), - NULL, NULL, - g_cclosure_marshal_VOID__VOID, - G_TYPE_NONE, 0); - - signals[ADD_SIGNATURE_SCRIPT] = g_signal_new ( - "add-signature-script", - G_OBJECT_CLASS_TYPE (class), - G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION, - G_STRUCT_OFFSET (ESignatureManagerClass, add_signature_script), - NULL, NULL, - g_cclosure_marshal_VOID__VOID, - G_TYPE_NONE, 0); - - signals[EDITOR_CREATED] = g_signal_new ( - "editor-created", - G_OBJECT_CLASS_TYPE (class), - G_SIGNAL_RUN_LAST, - G_STRUCT_OFFSET (ESignatureManagerClass, editor_created), - NULL, NULL, - g_cclosure_marshal_VOID__OBJECT, - G_TYPE_NONE, 1, - E_TYPE_SIGNATURE_EDITOR); - - signals[EDIT_SIGNATURE] = g_signal_new ( - "edit-signature", - G_OBJECT_CLASS_TYPE (class), - G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION, - G_STRUCT_OFFSET (ESignatureManagerClass, edit_signature), - NULL, NULL, - g_cclosure_marshal_VOID__VOID, - G_TYPE_NONE, 0); - - signals[REMOVE_SIGNATURE] = g_signal_new ( - "remove-signature", - G_OBJECT_CLASS_TYPE (class), - G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION, - G_STRUCT_OFFSET (ESignatureManagerClass, remove_signature), - NULL, NULL, - g_cclosure_marshal_VOID__VOID, - G_TYPE_NONE, 0); -} - -static void -e_signature_manager_init (ESignatureManager *manager) -{ - GtkTreeSelection *selection; - GtkWidget *container; - GtkWidget *widget; - - manager->priv = E_SIGNATURE_MANAGER_GET_PRIVATE (manager); - - gtk_table_resize (GTK_TABLE (manager), 1, 2); - gtk_table_set_col_spacings (GTK_TABLE (manager), 6); - gtk_table_set_row_spacings (GTK_TABLE (manager), 12); - - container = GTK_WIDGET (manager); - - widget = gtk_scrolled_window_new (NULL, NULL); - gtk_scrolled_window_set_policy ( - GTK_SCROLLED_WINDOW (widget), - GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); - gtk_scrolled_window_set_shadow_type ( - GTK_SCROLLED_WINDOW (widget), GTK_SHADOW_IN); - gtk_table_attach ( - GTK_TABLE (container), widget, 0, 1, 0, 1, - GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 0); - gtk_widget_show (widget); - - container = widget; - - widget = e_signature_tree_view_new (); - gtk_container_add (GTK_CONTAINER (container), widget); - manager->priv->tree_view = g_object_ref (widget); - gtk_widget_show (widget); - - g_object_bind_property ( - manager, "signature-list", - widget, "signature-list", - G_BINDING_BIDIRECTIONAL | - G_BINDING_SYNC_CREATE); - - g_signal_connect_swapped ( - widget, "key-press-event", - G_CALLBACK (signature_manager_key_press_event_cb), - manager); - - g_signal_connect_swapped ( - widget, "row-activated", - G_CALLBACK (e_signature_manager_edit_signature), - manager); - - selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (widget)); - - g_signal_connect_swapped ( - selection, "changed", - G_CALLBACK (signature_manager_selection_changed_cb), - manager); - - container = GTK_WIDGET (manager); - - widget = gtk_vbutton_box_new (); - gtk_button_box_set_layout ( - GTK_BUTTON_BOX (widget), GTK_BUTTONBOX_START); - gtk_box_set_spacing (GTK_BOX (widget), 6); - gtk_table_attach ( - GTK_TABLE (container), widget, - 1, 2, 0, 2, 0, GTK_FILL, 0, 0); - gtk_widget_show (widget); - - container = widget; - - widget = gtk_button_new_from_stock (GTK_STOCK_ADD); - gtk_box_pack_start (GTK_BOX (container), widget, TRUE, TRUE, 0); - manager->priv->add_button = g_object_ref (widget); - gtk_widget_show (widget); - - g_signal_connect_swapped ( - widget, "clicked", - G_CALLBACK (e_signature_manager_add_signature), - manager); - - widget = gtk_button_new_with_mnemonic (_("Add _Script")); - gtk_button_set_image ( - GTK_BUTTON (widget), gtk_image_new_from_stock ( - GTK_STOCK_EXECUTE, GTK_ICON_SIZE_BUTTON)); - gtk_box_pack_start (GTK_BOX (container), widget, TRUE, TRUE, 0); - manager->priv->add_script_button = g_object_ref (widget); - gtk_widget_show (widget); - - g_object_bind_property ( - manager, "disable-command-line", - widget, "visible", - G_BINDING_SYNC_CREATE | - G_BINDING_INVERT_BOOLEAN); - - g_signal_connect_swapped ( - widget, "clicked", - G_CALLBACK (e_signature_manager_add_signature_script), - manager); - - widget = gtk_button_new_from_stock (GTK_STOCK_EDIT); - gtk_box_pack_start (GTK_BOX (container), widget, TRUE, TRUE, 0); - manager->priv->edit_button = g_object_ref (widget); - gtk_widget_show (widget); - - g_signal_connect_swapped ( - widget, "clicked", - G_CALLBACK (e_signature_manager_edit_signature), - manager); - - widget = gtk_button_new_from_stock (GTK_STOCK_REMOVE); - gtk_box_pack_start (GTK_BOX (container), widget, TRUE, TRUE, 0); - manager->priv->remove_button = g_object_ref (widget); - gtk_widget_show (widget); - - g_signal_connect_swapped ( - widget, "clicked", - G_CALLBACK (e_signature_manager_remove_signature), - manager); -} - -GtkWidget * -e_signature_manager_new (ESignatureList *signature_list) -{ - g_return_val_if_fail (E_IS_SIGNATURE_LIST (signature_list), NULL); - - return g_object_new ( - E_TYPE_SIGNATURE_MANAGER, - "signature-list", signature_list, NULL); -} - -void -e_signature_manager_add_signature (ESignatureManager *manager) -{ - g_return_if_fail (E_IS_SIGNATURE_MANAGER (manager)); - - g_signal_emit (manager, signals[ADD_SIGNATURE], 0); -} - -void -e_signature_manager_add_signature_script (ESignatureManager *manager) -{ - g_return_if_fail (E_IS_SIGNATURE_MANAGER (manager)); - - g_signal_emit (manager, signals[ADD_SIGNATURE_SCRIPT], 0); -} - -void -e_signature_manager_edit_signature (ESignatureManager *manager) -{ - g_return_if_fail (E_IS_SIGNATURE_MANAGER (manager)); - - g_signal_emit (manager, signals[EDIT_SIGNATURE], 0); -} - -void -e_signature_manager_remove_signature (ESignatureManager *manager) -{ - g_return_if_fail (E_IS_SIGNATURE_MANAGER (manager)); - - g_signal_emit (manager, signals[REMOVE_SIGNATURE], 0); -} - -gboolean -e_signature_manager_get_disable_command_line (ESignatureManager *manager) -{ - g_return_val_if_fail (E_IS_SIGNATURE_MANAGER (manager), FALSE); - - return manager->priv->disable_command_line; -} - -void -e_signature_manager_set_disable_command_line (ESignatureManager *manager, - gboolean disable_command_line) -{ - g_return_if_fail (E_IS_SIGNATURE_MANAGER (manager)); - - manager->priv->disable_command_line = disable_command_line; - - g_object_notify (G_OBJECT (manager), "disable-command-line"); -} - -gboolean -e_signature_manager_get_prefer_html (ESignatureManager *manager) -{ - g_return_val_if_fail (E_IS_SIGNATURE_MANAGER (manager), FALSE); - - return manager->priv->prefer_html; -} - -void -e_signature_manager_set_prefer_html (ESignatureManager *manager, - gboolean prefer_html) -{ - g_return_if_fail (E_IS_SIGNATURE_MANAGER (manager)); - - manager->priv->prefer_html = prefer_html; - - g_object_notify (G_OBJECT (manager), "prefer-html"); -} - -ESignatureList * -e_signature_manager_get_signature_list (ESignatureManager *manager) -{ - g_return_val_if_fail (E_IS_SIGNATURE_MANAGER (manager), NULL); - - return manager->priv->signature_list; -} - -void -e_signature_manager_set_signature_list (ESignatureManager *manager, - ESignatureList *signature_list) -{ - g_return_if_fail (E_IS_SIGNATURE_MANAGER (manager)); - - if (signature_list != NULL) { - g_return_if_fail (E_IS_SIGNATURE_LIST (signature_list)); - g_object_ref (signature_list); - } - - if (manager->priv->signature_list != NULL) - g_object_unref (manager->priv->signature_list); - - manager->priv->signature_list = signature_list; - - g_object_notify (G_OBJECT (manager), "signature-list"); -} - -ESignatureTreeView * -e_signature_manager_get_tree_view (ESignatureManager *manager) -{ - g_return_val_if_fail (E_IS_SIGNATURE_MANAGER (manager), NULL); - - return E_SIGNATURE_TREE_VIEW (manager->priv->tree_view); -} -- cgit v1.2.3