static void photos_export_dialog_constructed (GObject *object) { PhotosExportDialog *self = PHOTOS_EXPORT_DIALOG (object); G_OBJECT_CLASS (photos_export_dialog_parent_class)->constructed (object); if (photos_base_item_is_collection (self->item)) { const gchar *name; name = photos_base_item_get_name_with_fallback (self->item); gtk_entry_set_text (GTK_ENTRY (self->dir_entry), name); } else { GDateTime *now; GeglRectangle bbox; gboolean got_bbox_edited; gchar *now_str; gint max_dimension; guint i; got_bbox_edited = photos_base_item_get_bbox_edited (self->item, &bbox); g_return_if_fail (got_bbox_edited); max_dimension = MAX (bbox.height, bbox.width); for (i = 0; i < G_N_ELEMENTS (PIXEL_SIZES); i++) { if (max_dimension > PIXEL_SIZES[i]) { self->reduced_zoom = (gdouble) PIXEL_SIZES[i] / (gdouble) max_dimension; photos_export_dialog_show_size_options (self); photos_base_item_save_guess_sizes_async (self->item, self->cancellable, photos_export_dialog_guess_sizes, self); break; } } now = g_date_time_new_now_local (); /* Translators: this is the default sub-directory where photos * will be exported. */ now_str = g_date_time_format (now, _("%e %B %Y")); gtk_entry_set_text (GTK_ENTRY (self->dir_entry), now_str); g_free (now_str); g_date_time_unref (now); } }
static void photos_delete_notification_constructed (GObject *object) { PhotosDeleteNotification *self = PHOTOS_DELETE_NOTIFICATION (object); gchar *msg; GtkWidget *close; GtkWidget *image; GtkWidget *label; GtkWidget *undo; guint length; G_OBJECT_CLASS (photos_delete_notification_parent_class)->constructed (object); length = g_list_length (self->items); if (length == 1) { const gchar *name; name = photos_base_item_get_name_with_fallback (PHOTOS_BASE_ITEM (self->items->data)); msg = g_strdup_printf (_("“%s” deleted"), name); } else msg = g_strdup_printf (ngettext ("%d item deleted", "%d items deleted", length), length); label = gtk_label_new (msg); gtk_widget_set_halign (label, GTK_ALIGN_START); gtk_widget_set_hexpand (label, TRUE); gtk_container_add (GTK_CONTAINER (self), label); g_free (msg); undo = gtk_button_new_with_label (_("Undo")); gtk_widget_set_valign (undo, GTK_ALIGN_CENTER); gtk_container_add (GTK_CONTAINER (self), undo); g_signal_connect_swapped (undo, "clicked", G_CALLBACK (photos_delete_notification_undo_clicked), self); image = gtk_image_new_from_icon_name (PHOTOS_ICON_WINDOW_CLOSE_SYMBOLIC, GTK_ICON_SIZE_INVALID); gtk_widget_set_margin_bottom (image, 2); gtk_widget_set_margin_top (image, 2); gtk_image_set_pixel_size (GTK_IMAGE (image), 16); close = gtk_button_new (); gtk_widget_set_valign (close, GTK_ALIGN_CENTER); gtk_button_set_focus_on_click (GTK_BUTTON (close), FALSE); gtk_button_set_relief (GTK_BUTTON (close), GTK_RELIEF_NONE); gtk_button_set_image (GTK_BUTTON (close), image); gtk_container_add (GTK_CONTAINER (self), close); g_signal_connect_swapped (close, "clicked", G_CALLBACK (photos_delete_notification_delete_items), self); photos_notification_manager_add_notification (PHOTOS_NOTIFICATION_MANAGER (self->ntfctn_mngr), GTK_WIDGET (self)); self->timeout_id = g_timeout_add_seconds (DELETE_TIMEOUT, photos_delete_notification_timeout, self); }
static void photos_export_dialog_constructed (GObject *object) { PhotosExportDialog *self = PHOTOS_EXPORT_DIALOG (object); G_OBJECT_CLASS (photos_export_dialog_parent_class)->constructed (object); if (photos_base_item_is_collection (self->item)) { const gchar *name; name = photos_base_item_get_name_with_fallback (self->item); gtk_entry_set_text (GTK_ENTRY (self->dir_entry), name); } else { g_autoptr (GDateTime) now = NULL; g_autofree gchar *now_str = NULL; now = g_date_time_new_now_local (); /* Translators: this is the default sub-directory where photos * will be exported. */ now_str = g_date_time_format (now, _("%-d %B %Y")); gtk_entry_set_text (GTK_ENTRY (self->dir_entry), now_str); photos_export_dialog_show_size_options (self, FALSE, TRUE); photos_base_item_guess_save_sizes_async (self->item, self->cancellable, photos_export_dialog_guess_sizes, self); } gtk_widget_grab_focus (self->dir_entry); }