diff options
Diffstat (limited to 'mate-panel/panel-ditem-editor.c')
-rw-r--r-- | mate-panel/panel-ditem-editor.c | 409 |
1 files changed, 129 insertions, 280 deletions
diff --git a/mate-panel/panel-ditem-editor.c b/mate-panel/panel-ditem-editor.c index 80a0418b..f6f0c53a 100644 --- a/mate-panel/panel-ditem-editor.c +++ b/mate-panel/panel-ditem-editor.c @@ -2,6 +2,7 @@ * panel-ditem-editor.c: * * Copyright (C) 2004, 2006 Vincent Untz + * Copyright (C) 2012-2021 MATE Developers * * The Mate Library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public License as @@ -39,6 +40,7 @@ #include "panel-ditem-editor.h" #include "panel-icon-names.h" #include "panel-util.h" +#include "panel-schemas.h" #include "panel-marshal.h" struct _PanelDItemEditorPrivate @@ -63,7 +65,7 @@ struct _PanelDItemEditorPrivate PanelDitemSaveUri save_uri; gpointer save_uri_data; - GtkWidget *grid; + GtkWidget *icon_chooser_box; GtkWidget *type_label; GtkWidget *type_combo; GtkWidget *name_label; @@ -88,7 +90,7 @@ struct _PanelDItemEditorPrivate #define SAVE_FREQUENCY 2 enum { - REVERT_BUTTON + REVERT_BUTTON = 1 }; typedef enum { @@ -170,7 +172,8 @@ static guint ditem_edit_signals[LAST_SIGNAL] = { 0 }; G_DEFINE_TYPE_WITH_PRIVATE (PanelDItemEditor, panel_ditem_editor, GTK_TYPE_DIALOG) -static void panel_ditem_editor_setup_ui (PanelDItemEditor *dialog); +static void panel_ditem_editor_setup_ui (PanelDItemEditor *dialog); +static void panel_ditem_editor_connect_signals (PanelDItemEditor *dialog); static void type_combo_changed (PanelDItemEditor *dialog); @@ -196,7 +199,6 @@ static gboolean panel_ditem_editor_get_type_directory (PanelDItemEditor *dialog) static void panel_ditem_editor_set_type_directory (PanelDItemEditor *dialog, gboolean type_directory); - static PanelDItemEditorType map_type_from_desktop_item (const char *type, gboolean terminal) @@ -223,7 +225,6 @@ panel_ditem_editor_constructor (GType type, { GObject *obj; PanelDItemEditor *dialog; - GFile *file; gboolean loaded; char *desktop_type; @@ -233,6 +234,14 @@ panel_ditem_editor_constructor (GType type, dialog = PANEL_DITEM_EDITOR (obj); + /* Icon */ + dialog->priv->icon_chooser = panel_icon_chooser_new (NULL); + panel_icon_chooser_set_fallback_icon_name (PANEL_ICON_CHOOSER (dialog->priv->icon_chooser), + PANEL_ICON_LAUNCHER); + gtk_box_pack_start (GTK_BOX (dialog->priv->icon_chooser_box), dialog->priv->icon_chooser, FALSE, FALSE, 0); + gtk_widget_set_valign (dialog->priv->icon_chooser, GTK_ALIGN_START); + gtk_widget_show (dialog->priv->icon_chooser); + if (dialog->priv->key_file) { panel_ditem_editor_key_file_loaded (dialog); dialog->priv->new_file = FALSE; @@ -248,7 +257,7 @@ panel_ditem_editor_constructor (GType type, } if (!loaded && dialog->priv->uri) { - file = g_file_new_for_uri (dialog->priv->uri); + GFile *file = g_file_new_for_uri (dialog->priv->uri); if (g_file_query_exists (file, NULL)) { /* FIXME what if there's an error? */ panel_ditem_editor_load_uri (dialog, NULL); @@ -274,6 +283,8 @@ panel_ditem_editor_constructor (GType type, if (dialog->priv->new_file) setup_icon_chooser (dialog, NULL); + panel_ditem_editor_connect_signals (dialog); + return obj; } @@ -361,24 +372,26 @@ panel_ditem_editor_dispose (GObject *object) g_key_file_free (dialog->priv->revert_key_file); dialog->priv->revert_key_file = NULL; - if (dialog->priv->uri != NULL) - g_free (dialog->priv->uri); - dialog->priv->uri = NULL; + g_clear_pointer (&dialog->priv->uri, g_free); G_OBJECT_CLASS (panel_ditem_editor_parent_class)->dispose (object); } static void -panel_ditem_editor_class_init (PanelDItemEditorClass *class) +panel_ditem_editor_class_init (PanelDItemEditorClass *klass) { - GObjectClass *gobject_class = G_OBJECT_CLASS (class); + const gchar *resource = PANEL_RESOURCE_PATH "panel-ditem-editor-dialog.ui"; + GObjectClass *gobject_class = G_OBJECT_CLASS (klass); + GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass); + GtkDialogClass *dialog_class = GTK_DIALOG_CLASS (klass); gobject_class->constructor = panel_ditem_editor_constructor; gobject_class->get_property = panel_ditem_editor_get_property; - gobject_class->set_property = panel_ditem_editor_set_property; - + gobject_class->set_property = panel_ditem_editor_set_property; gobject_class->dispose = panel_ditem_editor_dispose; + dialog_class->response = response_cb; + ditem_edit_signals[SAVED] = g_signal_new ("saved", G_TYPE_FROM_CLASS (gobject_class), @@ -414,7 +427,7 @@ panel_ditem_editor_class_init (PanelDItemEditorClass *class) G_TYPE_STRING); ditem_edit_signals[COMMAND_CHANGED] = - g_signal_new ("command_changed", + g_signal_new ("command-changed", G_TYPE_FROM_CLASS (gobject_class), G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (PanelDItemEditorClass, @@ -450,7 +463,7 @@ panel_ditem_editor_class_init (PanelDItemEditorClass *class) G_TYPE_STRING); ditem_edit_signals[ERROR_REPORTED] = - g_signal_new ("error_reported", + g_signal_new ("error-reported", G_TYPE_FROM_CLASS (gobject_class), G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (PanelDItemEditorClass, @@ -486,38 +499,23 @@ panel_ditem_editor_class_init (PanelDItemEditorClass *class) "Whether the edited file is a .directory file or not", FALSE, G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY)); -} - -static GtkWidget * -label_new_with_mnemonic (const char *text) -{ - GtkWidget *label; - char *bold; - bold = g_strdup_printf ("<b>%s</b>", text); - label = gtk_label_new_with_mnemonic (bold); - g_free (bold); - - gtk_label_set_use_markup (GTK_LABEL (label), TRUE); - gtk_label_set_xalign (GTK_LABEL (label), 1.0); - gtk_label_set_yalign (GTK_LABEL (label), 0.5); - - gtk_widget_show (label); - - return label; -} - -static inline void -grid_attach_label (GtkGrid *grid, GtkWidget *label, int left, int top, int width, int height) -{ - gtk_grid_attach (grid, label, left, top, width, height); -} - -static inline void -grid_attach_entry (GtkGrid *grid, GtkWidget *entry, int left, int top, int width, int height) -{ - gtk_widget_set_hexpand (entry, TRUE); - gtk_grid_attach (grid, entry, left, top, width, height); + gtk_widget_class_set_template_from_resource (widget_class, resource); + gtk_widget_class_bind_template_child_private (widget_class, PanelDItemEditor, icon_chooser_box); + gtk_widget_class_bind_template_child_private (widget_class, PanelDItemEditor, type_label); + gtk_widget_class_bind_template_child_private (widget_class, PanelDItemEditor, type_combo); + gtk_widget_class_bind_template_child_private (widget_class, PanelDItemEditor, name_label); + gtk_widget_class_bind_template_child_private (widget_class, PanelDItemEditor, name_entry); + gtk_widget_class_bind_template_child_private (widget_class, PanelDItemEditor, comment_label); + gtk_widget_class_bind_template_child_private (widget_class, PanelDItemEditor, comment_entry); + gtk_widget_class_bind_template_child_private (widget_class, PanelDItemEditor, command_label); + gtk_widget_class_bind_template_child_private (widget_class, PanelDItemEditor, command_entry); + gtk_widget_class_bind_template_child_private (widget_class, PanelDItemEditor, command_browse_button); + gtk_widget_class_bind_template_child_private (widget_class, PanelDItemEditor, help_button); + gtk_widget_class_bind_template_child_private (widget_class, PanelDItemEditor, revert_button); + gtk_widget_class_bind_template_child_private (widget_class, PanelDItemEditor, close_button); + gtk_widget_class_bind_template_child_private (widget_class, PanelDItemEditor, cancel_button); + gtk_widget_class_bind_template_child_private (widget_class, PanelDItemEditor, ok_button); } static void @@ -568,8 +566,7 @@ panel_ditem_editor_get_item_type (PanelDItemEditor *dialog) if (dialog->priv->type_directory) return PANEL_DITEM_EDITOR_TYPE_DIRECTORY; - if (!gtk_combo_box_get_active_iter (GTK_COMBO_BOX (dialog->priv->type_combo), - &iter)) + if (!gtk_combo_box_get_active_iter (GTK_COMBO_BOX (dialog->priv->type_combo), &iter)) return PANEL_DITEM_EDITOR_TYPE_NULL; model = gtk_combo_box_get_model (GTK_COMBO_BOX (dialog->priv->type_combo)); @@ -579,105 +576,11 @@ panel_ditem_editor_get_item_type (PanelDItemEditor *dialog) } static void -panel_ditem_editor_make_ui (PanelDItemEditor *dialog) -{ - PanelDItemEditorPrivate *priv; - GtkWidget *dialog_vbox; - - priv = dialog->priv; - - gtk_container_set_border_width (GTK_CONTAINER (dialog), 5); - - dialog_vbox = gtk_dialog_get_content_area (GTK_DIALOG (dialog)); - gtk_box_set_spacing (GTK_BOX (dialog_vbox), 2); - - priv->grid = gtk_grid_new (); - gtk_container_set_border_width (GTK_CONTAINER (priv->grid), 5); - gtk_grid_set_row_spacing (GTK_GRID (priv->grid), 6); - gtk_grid_set_column_spacing (GTK_GRID (priv->grid), 12); - gtk_box_pack_start (GTK_BOX (dialog_vbox), priv->grid, TRUE, TRUE, 0); - gtk_widget_show (priv->grid); - - /* Type */ - priv->type_label = label_new_with_mnemonic (_("_Type:")); - priv->type_combo = gtk_combo_box_new (); - gtk_widget_show (priv->type_combo); - gtk_label_set_mnemonic_widget (GTK_LABEL (priv->type_label), - priv->type_combo); - - /* Name */ - priv->name_label = label_new_with_mnemonic (_("_Name:")); - priv->name_entry = gtk_entry_new (); - gtk_widget_show (priv->name_entry); - gtk_label_set_mnemonic_widget (GTK_LABEL (priv->name_label), - priv->name_entry); - - /* Icon */ - priv->icon_chooser = panel_icon_chooser_new (NULL); - panel_icon_chooser_set_fallback_icon_name (PANEL_ICON_CHOOSER (priv->icon_chooser), - PANEL_ICON_LAUNCHER); - gtk_grid_attach (GTK_GRID (priv->grid), priv->icon_chooser, 0, 0, 1, 2); - gtk_widget_show (priv->icon_chooser); - - /* Command */ - priv->command_label = label_new_with_mnemonic (""); - - priv->command_hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 12); - gtk_widget_show (priv->command_hbox); - - priv->command_entry = gtk_entry_new (); - gtk_box_pack_start (GTK_BOX (priv->command_hbox), - priv->command_entry, - TRUE, TRUE, 0); - gtk_widget_show (priv->command_entry); - - priv->command_browse_button = gtk_button_new_with_mnemonic (_("_Browse...")); - gtk_box_pack_start (GTK_BOX (priv->command_hbox), - priv->command_browse_button, - FALSE, FALSE, 0); - gtk_widget_show (priv->command_browse_button); - - /* Comment */ - priv->comment_label = label_new_with_mnemonic (_("Co_mment:")); - priv->comment_entry = gtk_entry_new (); - gtk_widget_show (priv->comment_entry); - gtk_label_set_mnemonic_widget (GTK_LABEL (priv->comment_label), - priv->comment_entry); - - priv->help_button = panel_dialog_add_button (GTK_DIALOG (dialog), - _("_Help"), "help-browser", - GTK_RESPONSE_HELP); - - priv->revert_button = panel_dialog_add_button (GTK_DIALOG (dialog), - _("_Revert"), "document-revert", - REVERT_BUTTON); - - gtk_dialog_set_response_sensitive (GTK_DIALOG (dialog), - REVERT_BUTTON, - FALSE); - - priv->close_button = panel_dialog_add_button (GTK_DIALOG (dialog), - _("_Close"), "window-close", - GTK_RESPONSE_CLOSE); - - priv->cancel_button = panel_dialog_add_button (GTK_DIALOG (dialog), - _("_Cancel"), "process-stop", - GTK_RESPONSE_CANCEL); - - priv->ok_button = panel_dialog_add_button (GTK_DIALOG (dialog), - _("_OK"), "gtk-ok", - GTK_RESPONSE_OK); - - /* FIXME: There needs to be a way to edit ALL keys/sections */ -} - -static void panel_ditem_editor_setup_ui (PanelDItemEditor *dialog) { PanelDItemEditorPrivate *priv; PanelDItemEditorType type; gboolean show_combo; - GList *focus_chain; priv = dialog->priv; type = panel_ditem_editor_get_item_type (dialog); @@ -692,8 +595,8 @@ panel_ditem_editor_setup_ui (PanelDItemEditor *dialog) if (!priv->combo_setuped) { setup_combo (priv->type_combo, - type_items, G_N_ELEMENTS (type_items), - NULL); + type_items, G_N_ELEMENTS (type_items), + NULL); priv->combo_setuped = TRUE; } @@ -718,18 +621,6 @@ panel_ditem_editor_setup_ui (PanelDItemEditor *dialog) GtkTreeModel *model; PanelDItemEditorType buf_type; - grid_attach_label (GTK_GRID (priv->grid), priv->type_label, 1, 0, 1, 1); - grid_attach_entry (GTK_GRID (priv->grid), priv->type_combo, 2, 0, 1, 1); - - grid_attach_label (GTK_GRID (priv->grid), priv->name_label, 1, 1, 1, 1); - grid_attach_entry (GTK_GRID (priv->grid), priv->name_entry, 2, 1, 1, 1); - - grid_attach_label (GTK_GRID (priv->grid), priv->command_label, 1, 2, 1, 1); - grid_attach_entry (GTK_GRID (priv->grid), priv->command_hbox, 2, 2, 1, 1); - - grid_attach_label (GTK_GRID (priv->grid), priv->comment_label, 1, 3, 1, 1); - grid_attach_entry (GTK_GRID (priv->grid), priv->comment_entry, 2, 3, 1, 1); - /* FIXME: hack hack hack */ model = gtk_combo_box_get_model (GTK_COMBO_BOX (priv->type_combo)); if (!gtk_tree_model_get_iter_first (model, &iter)) @@ -743,37 +634,17 @@ panel_ditem_editor_setup_ui (PanelDItemEditor *dialog) break; } } while (gtk_tree_model_iter_next (model, &iter)); - } else if (type == PANEL_DITEM_EDITOR_TYPE_DIRECTORY) { - grid_attach_label (GTK_GRID (priv->grid), priv->name_label, 1, 0, 1, 1); - grid_attach_entry (GTK_GRID (priv->grid), priv->name_entry, 2, 0, 1, 1); - - grid_attach_label (GTK_GRID (priv->grid), priv->comment_label, 1, 1, 1, 1); - grid_attach_entry (GTK_GRID (priv->grid), priv->comment_entry, 2, 1, 1, 1); } else { - grid_attach_label (GTK_GRID (priv->grid), priv->name_label, 1, 0, 1, 1); - grid_attach_entry (GTK_GRID (priv->grid), priv->name_entry, 2, 0, 1, 1); - - grid_attach_label (GTK_GRID (priv->grid), priv->command_label, 1, 1, 1, 1); - grid_attach_entry (GTK_GRID (priv->grid), priv->command_hbox, 2, 1, 1, 1); - - grid_attach_label (GTK_GRID (priv->grid), priv->comment_label, 1, 2, 1, 1); - grid_attach_entry (GTK_GRID (priv->grid), priv->comment_entry, 2, 2, 1, 1); + gtk_widget_hide (priv->type_combo); + gtk_widget_hide (priv->type_label); + if (type == PANEL_DITEM_EDITOR_TYPE_DIRECTORY) { + gtk_widget_hide (priv->command_label); + gtk_widget_hide (priv->command_entry); + gtk_widget_hide (priv->command_browse_button); + } } type_combo_changed (dialog); - - /* set a focus chain since GTK+ doesn't want to put the icon entry - * as the first widget in the chain */ - focus_chain = NULL; - focus_chain = g_list_prepend (focus_chain, priv->icon_chooser); - focus_chain = g_list_prepend (focus_chain, priv->type_combo); - focus_chain = g_list_prepend (focus_chain, priv->name_entry); - focus_chain = g_list_prepend (focus_chain, priv->command_hbox); - focus_chain = g_list_prepend (focus_chain, priv->comment_entry); - focus_chain = g_list_reverse (focus_chain); - gtk_container_set_focus_chain (GTK_CONTAINER (priv->grid), focus_chain); - g_list_free (focus_chain); - gtk_widget_grab_focus (priv->name_entry); } @@ -789,10 +660,10 @@ panel_ditem_editor_changed (PanelDItemEditor *dialog) if (dialog->priv->save_timeout != 0) g_source_remove (dialog->priv->save_timeout); - dialog->priv->save_timeout = g_timeout_add_seconds ( - SAVE_FREQUENCY, - panel_ditem_editor_save_timeout, - dialog); + dialog->priv->save_timeout + = g_timeout_add_seconds (SAVE_FREQUENCY, + panel_ditem_editor_save_timeout, + dialog); /* We can revert to the original state */ if (dialog->priv->revert_key_file != NULL) @@ -918,13 +789,13 @@ panel_ditem_editor_icon_changed (PanelDItemEditor *dialog, { if (icon) { panel_key_file_set_string (dialog->priv->key_file, - "Icon", icon); + "Icon", icon); panel_key_file_set_locale_string (dialog->priv->key_file, - "Icon", icon); + "Icon", icon); } else panel_key_file_remove_all_locale_key (dialog->priv->key_file, - "Icon"); + "Icon"); g_signal_emit (G_OBJECT (dialog), ditem_edit_signals[ICON_CHANGED], 0, icon); @@ -932,29 +803,27 @@ panel_ditem_editor_icon_changed (PanelDItemEditor *dialog, static void command_browse_chooser_response (GtkFileChooser *chooser, - gint response_id, - PanelDItemEditor *dialog) + gint response_id, + PanelDItemEditor *dialog) { - char *uri; - char *text; - if (response_id == GTK_RESPONSE_ACCEPT) { + char *uri; switch (panel_ditem_editor_get_item_type (dialog)) { - case PANEL_DITEM_EDITOR_TYPE_APPLICATION: - case PANEL_DITEM_EDITOR_TYPE_TERMINAL_APPLICATION: - text = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (chooser)); - uri = panel_util_make_exec_uri_for_desktop (text); - g_free (text); - break; - case PANEL_DITEM_EDITOR_TYPE_LINK: - uri = gtk_file_chooser_get_uri (GTK_FILE_CHOOSER (chooser)); - break; - default: - g_assert_not_reached (); + case PANEL_DITEM_EDITOR_TYPE_APPLICATION: + case PANEL_DITEM_EDITOR_TYPE_TERMINAL_APPLICATION: { + char *text = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (chooser)); + uri = panel_util_make_exec_uri_for_desktop (text); + g_free (text); + break; + } + case PANEL_DITEM_EDITOR_TYPE_LINK: + uri = gtk_file_chooser_get_uri (GTK_FILE_CHOOSER (chooser)); + break; + default: + g_assert_not_reached (); } - gtk_entry_set_text (GTK_ENTRY (dialog->priv->command_entry), - uri); + gtk_entry_set_text (GTK_ENTRY (dialog->priv->command_entry), uri); g_free (uri); } @@ -1031,10 +900,10 @@ panel_ditem_editor_connect_signals (PanelDItemEditor *dialog) priv = dialog->priv; #define CONNECT_CHANGED(widget, callback) \ - g_signal_connect_swapped (G_OBJECT (widget), "changed", \ + g_signal_connect_swapped (widget, "changed", \ G_CALLBACK (callback), \ dialog); \ - g_signal_connect_swapped (G_OBJECT (widget), "changed", \ + g_signal_connect_swapped (widget, "changed", \ G_CALLBACK (panel_ditem_editor_changed), \ dialog); @@ -1043,6 +912,7 @@ panel_ditem_editor_connect_signals (PanelDItemEditor *dialog) CONNECT_CHANGED (priv->command_entry, panel_ditem_editor_command_changed); CONNECT_CHANGED (priv->comment_entry, panel_ditem_editor_comment_changed); CONNECT_CHANGED (priv->icon_chooser, panel_ditem_editor_icon_changed); +#undef CONNECT_CHANGED g_signal_connect_swapped (priv->name_entry, "activate", G_CALLBACK (panel_ditem_editor_activated), @@ -1057,13 +927,6 @@ panel_ditem_editor_connect_signals (PanelDItemEditor *dialog) g_signal_connect_swapped (priv->command_browse_button, "clicked", G_CALLBACK (command_browse_button_clicked), dialog); - - /* We do a signal connection here rather than overriding the method in - * class_init because GtkDialog::response is a RUN_LAST signal. We - * want *our* handler to be run *first*, regardless of whether the user - * installs response handlers of his own. - */ - g_signal_connect (dialog, "response", G_CALLBACK (response_cb), NULL); } static void @@ -1085,6 +948,7 @@ panel_ditem_editor_block_signals (PanelDItemEditor *dialog) BLOCK_CHANGED (priv->command_entry, panel_ditem_editor_command_changed); BLOCK_CHANGED (priv->comment_entry, panel_ditem_editor_comment_changed); BLOCK_CHANGED (priv->icon_chooser, panel_ditem_editor_icon_changed); +#undef BLOCK_CHANGED } static void @@ -1106,86 +970,76 @@ panel_ditem_editor_unblock_signals (PanelDItemEditor *dialog) UNBLOCK_CHANGED (priv->command_entry, panel_ditem_editor_command_changed); UNBLOCK_CHANGED (priv->comment_entry, panel_ditem_editor_comment_changed); UNBLOCK_CHANGED (priv->icon_chooser, panel_ditem_editor_icon_changed); +#undef UNBLOCK_CHANGED } static void panel_ditem_editor_init (PanelDItemEditor *dialog) { - PanelDItemEditorPrivate *priv; - - priv = panel_ditem_editor_get_instance_private (dialog); - - dialog->priv = priv; - - priv->key_file = NULL; - priv->free_key_file = FALSE; - priv->revert_key_file = NULL; - priv->reverting = FALSE; - priv->dirty = FALSE; - priv->save_timeout = 0; - priv->uri = NULL; - priv->type_directory = FALSE; - priv->new_file = TRUE; - priv->save_uri = NULL; - priv->save_uri_data = NULL; - priv->combo_setuped = FALSE; - priv->command_browse_filechooser = NULL; - - panel_ditem_editor_make_ui (dialog); - panel_ditem_editor_connect_signals (dialog); + dialog->priv = panel_ditem_editor_get_instance_private (dialog); + dialog->priv->key_file = NULL; + dialog->priv->free_key_file = FALSE; + dialog->priv->revert_key_file = NULL; + dialog->priv->reverting = FALSE; + dialog->priv->dirty = FALSE; + dialog->priv->save_timeout = 0; + dialog->priv->uri = NULL; + dialog->priv->type_directory = FALSE; + dialog->priv->new_file = TRUE; + dialog->priv->save_uri = NULL; + dialog->priv->save_uri_data = NULL; + dialog->priv->combo_setuped = FALSE; + dialog->priv->command_browse_filechooser = NULL; + gtk_widget_init_template (GTK_WIDGET (dialog)); } static void type_combo_changed (PanelDItemEditor *dialog) { const char *text; - char *bold; switch (panel_ditem_editor_get_item_type (dialog)) { case PANEL_DITEM_EDITOR_TYPE_APPLICATION: text = _("Comm_and:"); if (dialog->priv->combo_setuped) { panel_key_file_set_string (dialog->priv->key_file, - "Type", "Application"); + "Type", "Application"); panel_key_file_set_boolean (dialog->priv->key_file, - "Terminal", FALSE); + "Terminal", FALSE); } break; case PANEL_DITEM_EDITOR_TYPE_TERMINAL_APPLICATION: text = _("Comm_and:"); if (dialog->priv->combo_setuped) { panel_key_file_set_string (dialog->priv->key_file, - "Type", "Application"); + "Type", "Application"); panel_key_file_set_boolean (dialog->priv->key_file, - "Terminal", TRUE); + "Terminal", TRUE); } break; case PANEL_DITEM_EDITOR_TYPE_LINK: text = _("_Location:"); if (dialog->priv->combo_setuped) { panel_key_file_set_string (dialog->priv->key_file, - "Type", "Link"); + "Type", "Link"); panel_key_file_remove_key (dialog->priv->key_file, - "Terminal"); + "Terminal"); } break; case PANEL_DITEM_EDITOR_TYPE_DIRECTORY: if (dialog->priv->combo_setuped) { panel_key_file_set_string (dialog->priv->key_file, - "Type", "Directory"); + "Type", "Directory"); } return; default: g_assert_not_reached (); } - bold = g_strdup_printf ("<b>%s</b>", text); - gtk_label_set_markup_with_mnemonic (GTK_LABEL (dialog->priv->command_label), - bold); - g_free (bold); + gtk_label_set_text_with_mnemonic (GTK_LABEL (dialog->priv->command_label), text); gtk_label_set_mnemonic_widget (GTK_LABEL (dialog->priv->command_label), - dialog->priv->command_entry); + dialog->priv->command_entry); update_chooser_for_type (dialog); } @@ -1194,22 +1048,20 @@ static void setup_icon_chooser (PanelDItemEditor *dialog, const char *icon_name) { - char *buffer; + const char *buffer; if (!icon_name || icon_name[0] == '\0') { if (dialog->priv->type_directory) { - buffer = g_strdup (PANEL_ICON_FOLDER); + buffer = PANEL_ICON_FOLDER; } else { - buffer = g_strdup (PANEL_ICON_LAUNCHER); + buffer = PANEL_ICON_LAUNCHER; } } else { - buffer = g_strdup (icon_name); + buffer = icon_name; } panel_icon_chooser_set_icon (PANEL_ICON_CHOOSER (dialog->priv->icon_chooser), buffer); - - g_free (buffer); } /* Conform display to ditem */ @@ -1241,8 +1093,8 @@ panel_ditem_editor_sync_display (PanelDItemEditor *dialog) type = panel_key_file_get_string (key_file, "Type"); if (!dialog->priv->combo_setuped) { setup_combo (dialog->priv->type_combo, - type_items, G_N_ELEMENTS (type_items), - type); + type_items, G_N_ELEMENTS (type_items), + type); dialog->priv->combo_setuped = TRUE; } @@ -1258,7 +1110,7 @@ panel_ditem_editor_sync_display (PanelDItemEditor *dialog) gtk_tree_model_get (model, &iter, COLUMN_TYPE, &buf_type, -1); if (editor_type == buf_type) { gtk_combo_box_set_active_iter (GTK_COMBO_BOX (dialog->priv->type_combo), - &iter); + &iter); break; } } while (gtk_tree_model_iter_next (model, &iter)); @@ -1276,16 +1128,15 @@ panel_ditem_editor_sync_display (PanelDItemEditor *dialog) buffer = NULL; gtk_entry_set_text (GTK_ENTRY (dialog->priv->command_entry), - buffer ? buffer : ""); + buffer ? buffer : ""); g_free (buffer); /* Comment */ buffer = panel_key_file_get_locale_string (key_file, "Comment"); gtk_entry_set_text (GTK_ENTRY (dialog->priv->comment_entry), - buffer ? buffer : ""); + buffer ? buffer : ""); g_free (buffer); - /* Icon */ buffer = panel_key_file_get_locale_string (key_file, "Icon"); setup_icon_chooser (dialog, buffer); @@ -1307,7 +1158,7 @@ panel_ditem_editor_save (PanelDItemEditor *dialog, g_return_val_if_fail (dialog != NULL, FALSE); g_return_val_if_fail (dialog->priv->save_uri != NULL || - dialog->priv->uri != NULL, FALSE); + dialog->priv->uri != NULL, FALSE); if (dialog->priv->save_timeout != 0) g_source_remove (dialog->priv->save_timeout); @@ -1370,8 +1221,7 @@ panel_ditem_editor_save (PanelDItemEditor *dialog, if (dialog->priv->save_uri) { char *uri; - uri = dialog->priv->save_uri (dialog, - dialog->priv->save_uri_data); + uri = dialog->priv->save_uri (dialog, dialog->priv->save_uri_data); if (uri) { panel_ditem_editor_set_uri (dialog, uri); @@ -1458,7 +1308,7 @@ response_cb (GtkDialog *dialog, static void panel_ditem_editor_revert (PanelDItemEditor *dialog) { - int i; + gsize i; char *string; gboolean boolean; GKeyFile *key_file; @@ -1522,10 +1372,10 @@ panel_ditem_editor_revert (PanelDItemEditor *dialog) if (dialog->priv->save_timeout != 0) g_source_remove (dialog->priv->save_timeout); - dialog->priv->save_timeout = g_timeout_add_seconds ( - SAVE_FREQUENCY, - panel_ditem_editor_save_timeout, - dialog); + dialog->priv->save_timeout = + g_timeout_add_seconds (SAVE_FREQUENCY, + panel_ditem_editor_save_timeout, + dialog); } dialog->priv->reverting = FALSE; @@ -1534,7 +1384,7 @@ panel_ditem_editor_revert (PanelDItemEditor *dialog) static void panel_ditem_editor_set_revert (PanelDItemEditor *dialog) { - int i; + gsize i; char *string; gboolean boolean; GKeyFile *key_file; @@ -1610,7 +1460,7 @@ panel_ditem_editor_load_uri (PanelDItemEditor *dialog, GKeyFile *key_file; g_return_val_if_fail (PANEL_IS_DITEM_EDITOR (dialog), FALSE); - g_return_val_if_fail (dialog->priv->uri != NULL, FALSE); + g_return_val_if_fail (dialog->priv->uri != NULL, FALSE); key_file = g_key_file_new (); @@ -1638,7 +1488,7 @@ panel_ditem_editor_new_full (GtkWindow *parent, const char *title, gboolean type_directory) { - GtkWidget *dialog; + PanelDItemEditor *dialog; dialog = g_object_new (PANEL_TYPE_DITEM_EDITOR, "title", title, @@ -1650,7 +1500,7 @@ panel_ditem_editor_new_full (GtkWindow *parent, if (parent) gtk_window_set_transient_for (GTK_WINDOW (dialog), parent); - return dialog; + return GTK_WIDGET (dialog); } GtkWidget * @@ -1702,12 +1552,11 @@ panel_ditem_editor_set_uri (PanelDItemEditor *dialog, !strcmp (dialog->priv->uri, uri)) return; - if (dialog->priv->uri) - g_free (dialog->priv->uri); - dialog->priv->uri = NULL; - + g_free (dialog->priv->uri); if (uri && uri [0]) dialog->priv->uri = g_strdup (uri); + else + dialog->priv->uri = NULL; g_object_notify (G_OBJECT (dialog), "uri"); } |