void initialize_app_menubar (GApplication *application) { GtkBuilder *builder; GSettings *settings; g_action_map_add_action_entries (G_ACTION_MAP (application), app_menu_entries, G_N_ELEMENTS (app_menu_entries), application); builder = _gtk_builder_new_from_resource ("app-menubar.ui"); gtk_application_set_menubar (GTK_APPLICATION (application), G_MENU_MODEL (gtk_builder_get_object (builder, "app-menubar"))); g_object_unref (builder); settings = fr_application_get_settings (FR_APPLICATION (application), FILE_ROLLER_SCHEMA_UI); g_simple_action_set_state (GET_ACTION (PREF_UI_VIEW_SIDEBAR), g_variant_new_boolean (g_settings_get_boolean (settings, PREF_UI_VIEW_SIDEBAR))); settings = fr_application_get_settings (FR_APPLICATION (application), FILE_ROLLER_SCHEMA_LISTING); g_simple_action_set_state (GET_ACTION (PREF_LISTING_LIST_MODE), g_variant_new_string (_g_enum_type_get_value (FR_TYPE_WINDOW_LIST_MODE, g_settings_get_enum (settings, PREF_LISTING_LIST_MODE))->value_nick)); g_signal_connect (fr_application_get_settings (FR_APPLICATION (application), FILE_ROLLER_SCHEMA_UI), "changed::" PREF_UI_VIEW_SIDEBAR, G_CALLBACK (pref_view_sidebar_changed), application); g_signal_connect (fr_application_get_settings (FR_APPLICATION (application), FILE_ROLLER_SCHEMA_LISTING), "changed::" PREF_LISTING_LIST_MODE, G_CALLBACK (pref_list_mode_changed), application); }
static void fr_file_selector_dialog_init (FrFileSelectorDialog *self) { self->priv = G_TYPE_INSTANCE_GET_PRIVATE (self, FR_TYPE_FILE_SELECTOR_DIALOG, FrFileSelectorDialogPrivate); self->priv->current_folder = NULL; self->priv->builder = _gtk_builder_new_from_resource ("file-selector.ui"); self->priv->icon_cache = NULL; self->priv->settings = g_settings_new ("org.gnome.FileRoller.FileSelector"); self->priv->show_hidden = g_settings_get_boolean (self->priv->settings, PREF_FILE_SELECTOR_SHOW_HIDDEN); gtk_container_set_border_width (GTK_CONTAINER (self), 5); gtk_box_pack_start (GTK_BOX (gtk_dialog_get_content_area (GTK_DIALOG (self))), GET_WIDGET ("content"), TRUE, TRUE, 0); gtk_tree_sortable_set_sort_func (GTK_TREE_SORTABLE (GET_WIDGET ("files_liststore")), FILE_LIST_COLUMN_NAME, files_name_column_sort_func, self, NULL); gtk_tree_sortable_set_sort_func (GTK_TREE_SORTABLE (GET_WIDGET ("files_liststore")), FILE_LIST_COLUMN_SIZE, files_size_column_sort_func, self, NULL); gtk_tree_sortable_set_sort_func (GTK_TREE_SORTABLE (GET_WIDGET ("files_liststore")), FILE_LIST_COLUMN_MODIFIED, files_modified_column_sort_func, self, NULL); gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE (GET_WIDGET ("files_liststore")), FILE_LIST_COLUMN_NAME, GTK_SORT_ASCENDING); gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (GET_WIDGET ("show_hidden_files_menuitem")), self->priv->show_hidden); g_signal_connect (GET_WIDGET ("is_selected_cellrenderertoggle"), "toggled", G_CALLBACK (is_selected_cellrenderertoggle_toggled_cb), self); g_signal_connect (GET_WIDGET ("files_treeview"), "row-activated", G_CALLBACK (files_treeview_row_activated_cb), self); g_signal_connect (GET_WIDGET ("go_up_button"), "clicked", G_CALLBACK (go_up_button_clicked_cb), self); g_signal_connect (GET_WIDGET ("places_sidebar"), "open-location", G_CALLBACK (places_sidebar_open_location_cb), self); g_signal_connect (GET_WIDGET ("files_treeview"), "button-press-event", G_CALLBACK (files_treeview_button_press_event_cb), self); g_signal_connect (GET_WIDGET ("select_all_menuitem"), "activate", G_CALLBACK (select_all_menuitem_activate_cb), self); g_signal_connect (GET_WIDGET ("unselect_all_menuitem"), "activate", G_CALLBACK (unselect_all_menuitem_activate_cb), self); g_signal_connect (GET_WIDGET ("show_hidden_files_menuitem"), "toggled", G_CALLBACK (show_hidden_files_menuitem_toggled_cb), self); _fr_file_selector_dialog_update_size (self); gtk_widget_grab_focus (GET_WIDGET ("files_treeview")); }
static void initialize_app_menu (GApplication *application) { gboolean show_app_menu; GtkBuilder *builder; g_object_get (gtk_settings_get_default (), "gtk-shell-shows-app-menu", &show_app_menu, NULL); if (! show_app_menu) return; g_action_map_add_action_entries (G_ACTION_MAP (application), app_menu_entries, G_N_ELEMENTS (app_menu_entries), application); builder = _gtk_builder_new_from_resource ("app-menu.ui"); gtk_application_set_app_menu (GTK_APPLICATION (application), G_MENU_MODEL (gtk_builder_get_object (builder, "app-menu"))); g_object_unref (builder); }
static void initialize_app_menu (GApplication *application) { GooApplication *self = (GooApplication *) application; GtkBuilder *builder; g_action_map_add_action_entries (G_ACTION_MAP (application), goo_application_actions, G_N_ELEMENTS (goo_application_actions), application); builder = _gtk_builder_new_from_resource ("app-menu.ui"); gtk_application_set_app_menu (GTK_APPLICATION (application), G_MENU_MODEL (gtk_builder_get_object (builder, "app-menu"))); g_simple_action_set_state (G_SIMPLE_ACTION (g_action_map_lookup_action (G_ACTION_MAP (application), PREF_PLAYLIST_PLAYALL)), g_variant_new_boolean (g_settings_get_boolean (self->priv->settings, PREF_PLAYLIST_PLAYALL))); g_simple_action_set_state (G_SIMPLE_ACTION (g_action_map_lookup_action (G_ACTION_MAP (application), PREF_PLAYLIST_REPEAT)), g_variant_new_boolean (g_settings_get_boolean (self->priv->settings, PREF_PLAYLIST_REPEAT))); g_simple_action_set_state (G_SIMPLE_ACTION (g_action_map_lookup_action (G_ACTION_MAP (application), PREF_PLAYLIST_SHUFFLE)), g_variant_new_boolean (g_settings_get_boolean (self->priv->settings, PREF_PLAYLIST_SHUFFLE))); g_signal_connect (self->priv->settings, "changed::" PREF_PLAYLIST_PLAYALL, G_CALLBACK (pref_playlist_playall_changed), self); g_signal_connect (self->priv->settings, "changed::" PREF_PLAYLIST_SHUFFLE, G_CALLBACK (pref_playlist_shuffle_changed), self); g_signal_connect (self->priv->settings, "changed::" PREF_PLAYLIST_REPEAT, G_CALLBACK (pref_playlist_repeat_changed), self); g_object_unref (builder); }
void dlg_password (GtkWidget *widget, gpointer callback_data) { FrWindow *window = callback_data; DialogData *data; GtkWidget *content_area; char *basename; char *title; data = g_new0 (DialogData, 1); data->window = window; data->builder = _gtk_builder_new_from_resource ("password.ui"); if (data->builder == NULL) { g_free (data); return; } /* Set widgets data. */ data->dialog = g_object_new (GTK_TYPE_DIALOG, "transient-for", GTK_WINDOW (window), "modal", TRUE, "use-header-bar", _gtk_settings_get_dialogs_use_header (), NULL); content_area = gtk_dialog_get_content_area (GTK_DIALOG (data->dialog)); gtk_container_add (GTK_CONTAINER (content_area), GET_WIDGET ("password_vbox")); gtk_dialog_add_buttons (GTK_DIALOG (data->dialog), _GTK_LABEL_CANCEL, GTK_RESPONSE_CANCEL, _GTK_LABEL_SAVE, GTK_RESPONSE_OK, NULL); gtk_dialog_set_default_response (GTK_DIALOG (data->dialog), GTK_RESPONSE_OK); gtk_style_context_add_class (gtk_widget_get_style_context (gtk_dialog_get_widget_for_response (GTK_DIALOG (data->dialog), GTK_RESPONSE_OK)), GTK_STYLE_CLASS_SUGGESTED_ACTION); basename = _g_file_get_display_basename (fr_archive_get_file (window->archive)); title = g_strdup_printf (_("Enter a password for “%s”"), basename); gtk_label_set_text (GTK_LABEL (GET_WIDGET ("title_label")), title); g_free (title); g_free (basename); _gtk_entry_use_as_password_entry (GTK_ENTRY (GET_WIDGET ("password_entry"))); _gtk_entry_set_locale_text (GTK_ENTRY (GET_WIDGET ("password_entry")), fr_window_get_password (window)); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (GET_WIDGET ("encrypt_header_checkbutton")), fr_window_get_encrypt_header (window)); if (! fr_archive_is_capable_of (window->archive, FR_ARCHIVE_CAN_ENCRYPT_HEADER)) { gtk_toggle_button_set_inconsistent (GTK_TOGGLE_BUTTON (GET_WIDGET ("encrypt_header_checkbutton")), TRUE); gtk_widget_set_sensitive (GET_WIDGET ("encrypt_header_checkbutton"), FALSE); } /* Set the signals handlers. */ g_signal_connect ((data->dialog), "destroy", G_CALLBACK (destroy_cb), data); g_signal_connect ((data->dialog), "response", G_CALLBACK (response_cb), data); /* Run dialog. */ gtk_widget_grab_focus (GET_WIDGET ("password_entry")); gtk_widget_show (data->dialog); }
static void dlg_delete__common (FrWindow *window, GList *selected_files) { DialogData *data; GtkWidget *content_area; GtkWidget *delete_box; GtkWidget *ok_button; data = g_new (DialogData, 1); data->window = window; data->selected_files = selected_files; data->builder = _gtk_builder_new_from_resource ("delete.ui"); if (data->builder == NULL) { g_free (data); return; } /* Get the widgets. */ data->dialog = g_object_new (GTK_TYPE_DIALOG, "transient-for", GTK_WINDOW (window), "modal", TRUE, "use-header-bar", _gtk_settings_get_dialogs_use_header (), NULL); gtk_dialog_add_buttons (GTK_DIALOG (data->dialog), _GTK_LABEL_CANCEL, GTK_RESPONSE_CANCEL, _("_Delete"), GTK_RESPONSE_OK, NULL); ok_button = gtk_dialog_get_widget_for_response (GTK_DIALOG (data->dialog), GTK_RESPONSE_OK); gtk_style_context_add_class (gtk_widget_get_style_context (ok_button), GTK_STYLE_CLASS_DESTRUCTIVE_ACTION); delete_box = _gtk_builder_get_widget (data->builder, "delete_box"); data->d_all_files_radio = _gtk_builder_get_widget (data->builder, "d_all_files_radio"); data->d_selected_files_radio = _gtk_builder_get_widget (data->builder, "d_selected_files_radio"); data->d_files_radio = _gtk_builder_get_widget (data->builder, "d_files_radio"); data->d_files_entry = _gtk_builder_get_widget (data->builder, "d_files_entry"); content_area = gtk_dialog_get_content_area (GTK_DIALOG (data->dialog)); gtk_container_add (GTK_CONTAINER (content_area), delete_box); /* Set widgets data. */ if (data->selected_files != NULL) gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (data->d_selected_files_radio), TRUE); else { gtk_widget_set_sensitive (data->d_selected_files_radio, FALSE); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (data->d_all_files_radio), TRUE); } /* Set the signals handlers. */ g_signal_connect (G_OBJECT (data->dialog), "destroy", G_CALLBACK (destroy_cb), data); g_signal_connect (G_OBJECT (data->dialog), "response", G_CALLBACK (response_cb), data); // g_signal_connect_swapped (G_OBJECT (cancel_button), // "clicked", // G_CALLBACK (gtk_widget_destroy), // G_OBJECT (data->dialog)); // g_signal_connect (G_OBJECT (ok_button), // "clicked", // G_CALLBACK (ok_clicked_cb), // data); g_signal_connect (G_OBJECT (data->d_files_entry), "changed", G_CALLBACK (entry_changed_cb), data); /* Run dialog. */ gtk_widget_show (data->dialog); }
void dlg_cover_chooser (GooWindow *window, const char *album, const char *artist) { DialogData *data; GtkListStore *model; GtkCellRenderer *renderer; data = g_new0 (DialogData, 1); data->window = window; data->builder = _gtk_builder_new_from_resource ("cover-chooser.ui"); data->album = g_strdup (album); data->artist = g_strdup (artist); data->cancellable = g_cancellable_new (); /* Get the widgets. */ data->dialog = GET_WIDGET ("cover_chooser_dialog"); model = gtk_list_store_new (N_COLUMNS, G_TYPE_STRING, GDK_TYPE_PIXBUF); data->icon_view = gtk_icon_view_new_with_model (GTK_TREE_MODEL (model)); g_object_unref (model); renderer = gtk_cell_renderer_pixbuf_new (); g_object_set (renderer, "follow-state", TRUE, NULL); gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (data->icon_view), renderer, TRUE); gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (data->icon_view), renderer, "pixbuf", IMAGE_COLUMN, NULL); gtk_widget_show (data->icon_view); gtk_container_add (GTK_CONTAINER (GET_WIDGET ("icon_view_scrolledwindow")), data->icon_view); /* Set widgets data. */ backup_cover_image (data); gtk_widget_set_sensitive (GET_WIDGET ("ok_button"), FALSE); /* Set the signals handlers. */ g_signal_connect (G_OBJECT (data->dialog), "destroy", G_CALLBACK (destroy_cb), data); g_signal_connect_swapped (GET_WIDGET ("cancel_button"), "clicked", G_CALLBACK (gtk_widget_destroy), G_OBJECT (data->dialog)); g_signal_connect (GET_WIDGET ("ok_button"), "clicked", G_CALLBACK (ok_button_clicked_cb), data); g_signal_connect (GET_WIDGET ("revert_button"), "clicked", G_CALLBACK (revert_button_clicked_cb), data); g_signal_connect (G_OBJECT (data->icon_view), "selection-changed", G_CALLBACK (icon_view_selection_changed_cb), data); g_signal_connect (G_OBJECT (data->icon_view), "item-activated", G_CALLBACK (icon_view_item_activated_cb), data); g_signal_connect (GET_WIDGET ("cancel_search_button"), "clicked", G_CALLBACK (cancel_search_button_clicked_cb), data); /* run dialog. */ gtk_window_set_transient_for (GTK_WINDOW (data->dialog), GTK_WINDOW (window)); gtk_window_set_modal (GTK_WINDOW (data->dialog), FALSE); gtk_widget_show (data->dialog); start_searching (data); }
static void load_options_cb (GtkWidget *w, DialogData *data) { LoadOptionsDialogData *aod_data; GtkWidget *ok_button; GtkWidget *cancel_button; GtkWidget *remove_button; GtkCellRenderer *renderer; GtkTreeViewColumn *column; aod_data = g_new0 (LoadOptionsDialogData, 1); aod_data->data = data; aod_data->builder = _gtk_builder_new_from_resource ("add-options.ui"); if (aod_data->builder == NULL) { g_free (aod_data); return; } /* Get the widgets. */ aod_data->dialog = _gtk_builder_get_widget (aod_data->builder, "add_options_dialog"); aod_data->aod_treeview = _gtk_builder_get_widget (aod_data->builder, "aod_treeview"); ok_button = _gtk_builder_get_widget (aod_data->builder, "aod_okbutton"); cancel_button = _gtk_builder_get_widget (aod_data->builder, "aod_cancelbutton"); remove_button = _gtk_builder_get_widget (aod_data->builder, "aod_remove_button"); /* Set the signals handlers. */ g_signal_connect (G_OBJECT (aod_data->dialog), "destroy", G_CALLBACK (aod_destroy_cb), aod_data); g_signal_connect (G_OBJECT (aod_data->aod_treeview), "row_activated", G_CALLBACK (aod_activated_cb), aod_data); g_signal_connect_swapped (G_OBJECT (cancel_button), "clicked", G_CALLBACK (gtk_widget_destroy), G_OBJECT (aod_data->dialog)); g_signal_connect (G_OBJECT (ok_button), "clicked", G_CALLBACK (aod_apply_cb), aod_data); g_signal_connect (G_OBJECT (remove_button), "clicked", G_CALLBACK (aod_remove_cb), aod_data); /* Set data. */ aod_data->aod_model = GTK_TREE_MODEL (gtk_list_store_new (2, G_TYPE_STRING, G_TYPE_STRING)); gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE (aod_data->aod_model), 0, GTK_SORT_ASCENDING); gtk_tree_view_set_model (GTK_TREE_VIEW (aod_data->aod_treeview), aod_data->aod_model); g_object_unref (aod_data->aod_model); /**/ renderer = gtk_cell_renderer_text_new (); column = gtk_tree_view_column_new_with_attributes (NULL, renderer, "text", 0, NULL); gtk_tree_view_column_set_sort_column_id (column, 0); gtk_tree_view_append_column (GTK_TREE_VIEW (aod_data->aod_treeview), column); aod_update_option_list (aod_data); /* Run */ gtk_window_set_transient_for (GTK_WINDOW (aod_data->dialog), GTK_WINDOW (data->dialog)); gtk_window_set_modal (GTK_WINDOW (aod_data->dialog), TRUE); gtk_widget_show (aod_data->dialog); }
static void dlg_extract__common (FrWindow *window, GList *selected_files, char *base_dir_for_selection) { DialogData *data; data = g_new0 (DialogData, 1); data->settings = g_settings_new (FILE_ROLLER_SCHEMA_EXTRACT); data->window = window; data->selected_files = selected_files; data->base_dir_for_selection = base_dir_for_selection; data->extract_clicked = FALSE; data->dialog = gtk_file_chooser_dialog_new (C_("Window title", "Extract"), GTK_WINDOW (data->window), GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER, _GTK_LABEL_CANCEL, GTK_RESPONSE_CANCEL, _GTK_LABEL_EXTRACT, GTK_RESPONSE_OK, NULL); gtk_window_set_default_size (GTK_WINDOW (data->dialog), 530, 510); gtk_file_chooser_set_select_multiple (GTK_FILE_CHOOSER (data->dialog), FALSE); gtk_file_chooser_set_local_only (GTK_FILE_CHOOSER (data->dialog), FALSE); gtk_file_chooser_set_create_folders (GTK_FILE_CHOOSER (data->dialog), TRUE); gtk_dialog_set_default_response (GTK_DIALOG (data->dialog), GTK_RESPONSE_OK); data->builder = _gtk_builder_new_from_resource ("extract-dialog-options.ui"); if (data->builder == NULL) return; gtk_file_chooser_set_extra_widget (GTK_FILE_CHOOSER (data->dialog), GET_WIDGET ("extra_widget")); /* Set widgets data. */ gtk_file_chooser_set_current_folder_file (GTK_FILE_CHOOSER (data->dialog), fr_window_get_extract_default_dir (window), NULL); if (data->selected_files != NULL) gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (GET_WIDGET ("selected_files_radiobutton")), TRUE); else { gtk_widget_set_sensitive (GET_WIDGET ("selected_files_radiobutton"), FALSE); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (GET_WIDGET ("all_files_radiobutton")), TRUE); } gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (GET_WIDGET ("keep_newer_checkbutton")), g_settings_get_boolean (data->settings, PREF_EXTRACT_SKIP_NEWER)); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (GET_WIDGET ("keep_structure_checkbutton")), g_settings_get_boolean (data->settings, PREF_EXTRACT_RECREATE_FOLDERS)); /* Set the signals handlers. */ g_signal_connect (G_OBJECT (data->dialog), "destroy", G_CALLBACK (file_selector_destroy_cb), data); g_signal_connect (G_OBJECT (data->dialog), "response", G_CALLBACK (file_selector_response_cb), data); g_signal_connect (G_OBJECT (GET_WIDGET ("file_pattern_entry")), "changed", G_CALLBACK (files_entry_changed_cb), data); /* Run dialog. */ gtk_window_set_modal (GTK_WINDOW (data->dialog),TRUE); gtk_widget_show (data->dialog); }
char * _gtk_request_dialog_run (GtkWindow *parent, GtkDialogFlags flags, const char *title, const char *message, const char *default_value, int max_length, const gchar *no_button_text, const gchar *yes_button_text) { GtkBuilder *builder; GtkWidget *dialog; GtkWidget *label; GtkWidget *entry; GtkWidget *content_area; GtkWidget *request_box; char *result; builder = _gtk_builder_new_from_resource ("request-dialog.ui"); request_box = _gtk_builder_get_widget (builder, "request_box"); dialog = g_object_new (GTK_TYPE_DIALOG, "transient-for", parent, "modal", flags & GTK_DIALOG_MODAL, "use-header-bar", _gtk_settings_get_dialogs_use_header (), NULL); gtk_dialog_set_default_response (GTK_DIALOG (dialog), GTK_RESPONSE_OK); gtk_window_set_destroy_with_parent (GTK_WINDOW (dialog), (flags & GTK_DIALOG_DESTROY_WITH_PARENT)); gtk_window_set_title (GTK_WINDOW (dialog), title); content_area = gtk_dialog_get_content_area (GTK_DIALOG (dialog)); gtk_container_add (GTK_CONTAINER (content_area), request_box); g_object_weak_ref (G_OBJECT (request_box), (GWeakNotify) g_object_unref, builder); if (flags & GTK_DIALOG_MODAL) _gtk_dialog_add_to_window_group (GTK_DIALOG (dialog)); label = _gtk_builder_get_widget (builder, "message_label"); gtk_label_set_text_with_mnemonic (GTK_LABEL (label), message); entry = _gtk_builder_get_widget (builder, "value_entry"); gtk_entry_set_max_length (GTK_ENTRY (entry), max_length); gtk_entry_set_text (GTK_ENTRY (entry), default_value); /* Add buttons */ gtk_dialog_add_action_widget (GTK_DIALOG (dialog), create_button (no_button_text), GTK_RESPONSE_CANCEL); gtk_dialog_add_action_widget (GTK_DIALOG (dialog), create_button (yes_button_text), GTK_RESPONSE_YES); gtk_dialog_set_default_response (GTK_DIALOG (dialog), GTK_RESPONSE_YES); /* Run dialog */ gtk_widget_grab_focus (entry); if (gtk_dialog_run (GTK_DIALOG (dialog)) == GTK_RESPONSE_YES) result = g_strdup (gtk_entry_get_text (GTK_ENTRY (entry))); else result = NULL; gtk_widget_destroy (dialog); return result; }
void dlg_prop (FrWindow *window) { DialogData *data; GtkWidget *ok_button; GtkWidget *label; GFile *parent; char *uri; char *markup; char *s; goffset size, uncompressed_size; char *utf8_name; char *title_txt; double ratio; data = g_new (DialogData, 1); data->builder = _gtk_builder_new_from_resource ("properties.ui"); if (data->builder == NULL) { g_free (data); return; } /* Get the widgets. */ data->dialog = _gtk_builder_get_widget (data->builder, "prop_dialog"); ok_button = _gtk_builder_get_widget (data->builder, "p_ok_button"); /* Set widgets data. */ label = _gtk_builder_get_widget (data->builder, "p_path_label"); parent = g_file_get_parent (fr_window_get_archive_file (window)); uri = g_file_get_uri (parent); utf8_name = g_file_get_parse_name (parent); markup = g_strdup_printf ("<a href=\"%s\">%s</a>", uri, utf8_name); gtk_label_set_markup (GTK_LABEL (label), markup); g_free (markup); g_free (utf8_name); g_free (uri); g_object_unref (parent); /**/ label = _gtk_builder_get_widget (data->builder, "p_name_label"); utf8_name = _g_file_get_display_basename (fr_window_get_archive_file (window)); gtk_label_set_text (GTK_LABEL (label), utf8_name); title_txt = g_strdup_printf (_("%s Properties"), utf8_name); gtk_window_set_title (GTK_WINDOW (data->dialog), title_txt); g_free (title_txt); g_free (utf8_name); /**/ label = _gtk_builder_get_widget (data->builder, "p_mime_type_label"); gtk_label_set_text (GTK_LABEL (label), window->archive->mime_type); /**/ label = _gtk_builder_get_widget (data->builder, "p_date_label"); s = _g_time_to_string (_g_file_get_file_mtime (fr_window_get_archive_file (window))); gtk_label_set_text (GTK_LABEL (label), s); g_free (s); /**/ label = _gtk_builder_get_widget (data->builder, "p_size_label"); size = _g_file_get_file_size (fr_window_get_archive_file (window)); s = g_format_size (size); gtk_label_set_text (GTK_LABEL (label), s); g_free (s); /**/ uncompressed_size = 0; if (fr_window_archive_is_present (window)) { int i; for (i = 0; i < window->archive->files->len; i++) { FileData *fd = g_ptr_array_index (window->archive->files, i); uncompressed_size += fd->size; } } label = _gtk_builder_get_widget (data->builder, "p_uncomp_size_label"); s = g_format_size (uncompressed_size); gtk_label_set_text (GTK_LABEL (label), s); g_free (s); /**/ label = _gtk_builder_get_widget (data->builder, "p_cratio_label"); if (uncompressed_size != 0) ratio = (double) uncompressed_size / size; else ratio = 0.0; s = g_strdup_printf ("%0.2f", ratio); gtk_label_set_text (GTK_LABEL (label), s); g_free (s); /**/ label = _gtk_builder_get_widget (data->builder, "p_files_label"); s = g_strdup_printf ("%d", window->archive->n_regular_files); gtk_label_set_text (GTK_LABEL (label), s); g_free (s); /* Set the signals handlers. */ g_signal_connect (G_OBJECT (data->dialog), "destroy", G_CALLBACK (destroy_cb), data); g_signal_connect_swapped (G_OBJECT (ok_button), "clicked", G_CALLBACK (gtk_widget_destroy), G_OBJECT (data->dialog)); /* Run dialog. */ gtk_window_set_transient_for (GTK_WINDOW (data->dialog), GTK_WINDOW (window)); gtk_window_set_modal (GTK_WINDOW (data->dialog), TRUE); gtk_widget_show (data->dialog); }