static void gis_assistant_init (GisAssistant *assistant) { GisAssistantPrivate *priv = GET_PRIVATE (assistant); assistant->priv = priv; priv->main_layout = gtk_box_new (GTK_ORIENTATION_VERTICAL, 10); gtk_box_pack_start (GTK_BOX (assistant), priv->main_layout, TRUE, TRUE, 0); priv->frame = gtk_frame_new (""); gtk_frame_set_shadow_type (GTK_FRAME (priv->frame), GTK_SHADOW_NONE); gtk_box_pack_start (GTK_BOX (priv->main_layout), priv->frame, TRUE, TRUE, 0); construct_buttons (assistant, &priv->full_buttons); gtk_button_set_image (GTK_BUTTON (priv->full_buttons.forward), gtk_image_new_from_stock (GTK_STOCK_GO_FORWARD, GTK_ICON_SIZE_BUTTON)); gtk_button_set_image (GTK_BUTTON (priv->full_buttons.back), gtk_image_new_from_stock (GTK_STOCK_GO_BACK, GTK_ICON_SIZE_BUTTON)); gis_assistant_locale_changed (assistant); gtk_box_pack_start (GTK_BOX (priv->main_layout), priv->full_buttons.action_area, FALSE, TRUE, 0); construct_buttons (assistant, &priv->symbolic_buttons); gtk_button_set_image (GTK_BUTTON (priv->symbolic_buttons.forward), gtk_image_new_from_icon_name ("go-next-symbolic", GTK_ICON_SIZE_MENU)); gtk_button_set_image (GTK_BUTTON (priv->symbolic_buttons.back), gtk_image_new_from_icon_name ("go-previous-symbolic", GTK_ICON_SIZE_MENU)); gtk_box_pack_start (GTK_BOX (priv->main_layout), priv->symbolic_buttons.action_area, FALSE, TRUE, 0); gtk_widget_show_all (GTK_WIDGET (assistant)); gtk_widget_hide (priv->full_buttons.action_area); gtk_widget_hide (priv->symbolic_buttons.action_area); }
static void gis_finished_page_shown (GisPage *page) { GisFinishedPage *self = GIS_FINISHED_PAGE (page); GisFinishedPagePrivate *priv = gis_finished_page_get_instance_private (self); GError *error = gis_store_get_error(); gis_driver_save_data (GIS_PAGE (page)->driver); if (error != NULL) { GisAssistant *assistant = gis_driver_get_assistant (page->driver); const gchar *heading = NULL; const gchar *detail = error->message; g_warning ("%s: %s %d %s", G_STRFUNC, g_quark_to_string (error->domain), error->code, error->message); if (error->domain == GIS_UNATTENDED_ERROR) { heading = _("Oops, something is wrong with your unattended installation configuration."); } else if (error->domain == GIS_IMAGE_ERROR) { heading = _("Oops, something is wrong with your Endless OS file."); } else if (error->domain == GIS_DISK_ERROR) { heading = _("Oops, something went wrong while finding suitable disks to reformat."); } else if (error->domain == GIS_INSTALL_ERROR) { heading = _("Oops, something went wrong while reformatting."); } else if (g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED)) { heading = error->message; detail = NULL; gtk_widget_hide (GTK_WIDGET (priv->error_label)); gtk_widget_hide (GTK_WIDGET (priv->diagnostics_label)); gtk_widget_hide (GTK_WIDGET (priv->support_label)); } else { heading = _("Oops, something went wrong."); } if (heading != NULL) gtk_label_set_text (priv->error_heading_label, heading); if (detail != NULL) gtk_label_set_text (priv->error_label, detail); gtk_widget_show (priv->error_box); gtk_widget_hide (priv->success_box); gis_assistant_locale_changed (assistant); if (!g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED)) { /* Running eos-diagnostics can be slow enough that we can't do it * synchronously on the UI thread. */ GFile *image_dir = G_FILE (gis_store_get_object (GIS_STORE_IMAGE_DIR)); /* See implementation of gis_write_diagnostics_async for rationale. */ const gchar *home_dir = priv->gedit != NULL ? g_get_home_dir () : NULL; g_application_hold (G_APPLICATION (page->driver)); gis_write_diagnostics_async (NULL, image_dir, home_dir, NULL, write_diagnostics_cb, g_object_ref (self)); } if (gis_store_is_unattended()) { g_timeout_add_seconds (1, (GSourceFunc)toggle_leds, page); } /* If running within a live session, hide the "Turn off" button on error, * since we have a perfectly good [X] button on the titlebar and we want * to encourage the user to notice the link to the diagnostics file. */ GisDriverMode mode = gis_driver_get_mode (GIS_PAGE (self)->driver); gtk_widget_set_visible (GTK_WIDGET (priv->restart_button), mode == GIS_DRIVER_MODE_NEW_USER); } else { gboolean optical = is_eosdvd (); gtk_widget_set_visible (priv->removelabel_usb, !optical); gtk_widget_set_visible (priv->removelabel_dvd, optical); } }