If no connection is available and bs embedded image is not fetched, show
[modest] / src / widgets / modest-wizard-dialog.c
index fd05755..e5eb272 100644 (file)
 #endif
 
 #ifndef MODEST_TOOLKIT_GTK
-#if MODEST_HILDON_API == 0
-#include <hildon-widgets/hildon-defines.h>
-#else
 #include <hildon/hildon-defines.h>
-#endif /*MODEST_HILDON_API == 0*/
 #endif /*!MODEST_TOOLKIT_GTK*/
 
 #include "modest-wizard-dialog.h"
@@ -97,7 +93,8 @@ static void make_buttons_sensitive  (ModestWizardDialog *wizard_dialog,
 
 static gboolean invoke_before_next_vfunc (ModestWizardDialog *wizard_dialog);
 static void invoke_enable_buttons_vfunc (ModestWizardDialog *wizard_dialog);
-static void invoke_save_settings_vfunc (ModestWizardDialog *wizard_dialog);
+static void invoke_update_model_vfunc (ModestWizardDialog *wizard_dialog);
+static gboolean invoke_save_vfunc (ModestWizardDialog *wizard_dialog);
 
 enum {
     PROP_ZERO,
@@ -161,7 +158,8 @@ class_init (ModestWizardDialogClass *wizard_dialog_class)
     object_class->finalize     = finalize;
 
     wizard_dialog_class->before_next = NULL;
-    wizard_dialog_class->save_settings = NULL;
+    wizard_dialog_class->update_model = NULL;
+    wizard_dialog_class->save = NULL;
     wizard_dialog_class->enable_buttons = NULL;
 
     /**
@@ -263,16 +261,11 @@ init (ModestWizardDialog *wizard_dialog)
 #ifdef MODEST_TOOLKIT_GTK
     priv->image = gtk_image_new_from_stock (GTK_STOCK_PREFERENCES, GTK_ICON_SIZE_DIALOG);
 #else /*MODEST_TOOLKIT_GTK*/
-#if MODEST_HILDON_API == 0
-    priv->image = gtk_image_new_from_icon_name ("qgn_widg_wizard",
-                                               HILDON_ICON_SIZE_WIDG_WIZARD);
-#else      
     static int icon_size = 0;
     if (!icon_size)
            icon_size = gtk_icon_size_register("modest_wizard", 50, 50);
     priv->image = gtk_image_new_from_icon_name ("qgn_widg_wizard",
                                                icon_size);
-#endif /*MODEST_HILDON_API == 0*/
 #endif /*!MODEST_TOOLKIT_GTK*/
 #endif /*MODEST_TOOLKIT_HILDON2 */
     /* Default values for user provided properties */
@@ -281,10 +274,14 @@ init (ModestWizardDialog *wizard_dialog)
     priv->autotitle = TRUE;
 
     /* Build wizard layout */
-    gtk_box_pack_start_defaults (GTK_BOX (dialog->vbox), GTK_WIDGET (priv->box));
-    gtk_box_pack_start_defaults (GTK_BOX (priv->box), GTK_WIDGET (vbox));
-    if (priv->image)
-      gtk_box_pack_start (GTK_BOX (vbox), GTK_WIDGET (priv->image), FALSE, FALSE, 0);
+    gtk_box_pack_start (GTK_BOX (dialog->vbox), GTK_WIDGET (priv->box), TRUE, TRUE, 0);
+    gtk_box_pack_start (GTK_BOX (priv->box), GTK_WIDGET (vbox), FALSE, FALSE, 0);
+    gtk_widget_show (vbox);
+    gtk_widget_show (GTK_WIDGET (priv->box));
+    if (priv->image) {
+           gtk_box_pack_start (GTK_BOX (vbox), GTK_WIDGET (priv->image), TRUE, TRUE, 0);
+           gtk_widget_show (priv->image);
+    }
 
     /* Add response buttons: finish, previous, next, cancel */
 #ifdef MODEST_TOOLKIT_HILDON1
@@ -308,8 +305,7 @@ init (ModestWizardDialog *wizard_dialog)
     /* Set initial button states: previous and finish buttons are disabled */
     make_buttons_sensitive (wizard_dialog, FALSE, FALSE, TRUE);
 
-    /* Show all the internal widgets */
-    gtk_widget_show_all (GTK_WIDGET (dialog->vbox));
+    gtk_widget_show (GTK_WIDGET (dialog->vbox));
 
     /* connect to dialog's response signal */
     g_signal_connect (G_OBJECT (dialog), "response",
@@ -430,7 +426,7 @@ set_property (GObject      *object,
              * and remove borders) to make it look like a nice wizard widget */
             gtk_notebook_set_show_tabs (priv->notebook, FALSE);
             gtk_notebook_set_show_border (priv->notebook, FALSE);
-            gtk_box_pack_start_defaults (GTK_BOX( priv->box), GTK_WIDGET (priv->notebook));
+            gtk_box_pack_start (GTK_BOX( priv->box), GTK_WIDGET (priv->notebook), TRUE, TRUE, 0);
 
             /* Show the notebook so that a gtk_widget_show on the dialog is
              * all that is required to display the dialog correctly */
@@ -485,48 +481,33 @@ create_title (ModestWizardDialog *wizard_dialog)
     gchar *str = NULL;
     ModestWizardDialogPrivate *priv = NULL;
     GtkNotebook *notebook = NULL;
+    gint pages, current;
+    const gchar *steps;
 
     g_return_if_fail (MODEST_IS_WIZARD_DIALOG(wizard_dialog));
     g_return_if_fail (wizard_dialog->priv != NULL);
 
-    priv = wizard_dialog->priv;    
+    priv = wizard_dialog->priv;
     notebook = priv->notebook;
 
     if (!notebook)
         return;
 
     /* Get page information, we'll need that when creating title */
-    gint pages = gtk_notebook_get_n_pages (notebook);
+    pages = gtk_notebook_get_n_pages (notebook);
     if (pages == 0)
-      return;
-       
-    gint current = gtk_notebook_get_current_page (priv->notebook);
+           return;
+
+    current = gtk_notebook_get_current_page (priv->notebook);
     if (current < 0)
-        current = 0;
-
-    /* the welcome title on the initial page */
-    /* This is the standard wizard title, with, e.g., 1/4 at the end,
-        * but the Modest UI spec does not want this. */
-       /*
-    if (current == 0) {
-        str = g_strdup_printf (_HL("ecdg_ti_wizard_welcome"), 
-                priv->wizard_name, pages);
-    } else {
-    */
-       const gchar *steps = gtk_notebook_get_tab_label_text (notebook,
-               gtk_notebook_get_nth_page (notebook, current));
-                
-               /* This is the standard wizard title, with, e.g., 1/4 at the end,
-                * but the Modest UI spec does not want this.
-                */
-               /*
-        str = g_strdup_printf (_HL("ecdg_ti_wizard_step"), 
-                priv->wizard_name, current + 1, pages, steps);
-        */
-
-        str = g_strdup_printf ((steps&&*steps)?_HL("%s: %s"):_HL("%s"), 
-                priv->wizard_name, steps);
-    /* } */
+           current = 0;
+
+    steps = gtk_notebook_get_tab_label_text (notebook,
+                                            gtk_notebook_get_nth_page (notebook, current));
+
+    str = g_strdup_printf ((steps&&*steps)?_HL("%s%s %s"):_HL("%s"),
+                          priv->wizard_name, _HL("ecdg_ti_caption_separator"),
+                          steps);
 
     /* Update the dialog to display the generated title */
     gtk_window_set_title (GTK_WINDOW (wizard_dialog), str);
@@ -725,13 +706,26 @@ invoke_enable_buttons_vfunc (ModestWizardDialog *wizard_dialog)
 }
 
 static void
-invoke_save_settings_vfunc (ModestWizardDialog *wizard_dialog)
+invoke_update_model_vfunc (ModestWizardDialog *wizard_dialog)
 {
        ModestWizardDialogClass *klass = MODEST_WIZARD_DIALOG_GET_CLASS (wizard_dialog);
        
        /* Call the vfunc, which may be overridden by derived classes: */
-       if (klass->save_settings) {
-               (*(klass->save_settings)) (wizard_dialog);
+       if (klass->update_model) {
+               (*(klass->update_model)) (wizard_dialog);
+       }
+}
+
+static gboolean
+invoke_save_vfunc (ModestWizardDialog *wizard_dialog)
+{
+       ModestWizardDialogClass *klass = MODEST_WIZARD_DIALOG_GET_CLASS (wizard_dialog);
+       
+       /* Call the vfunc, which may be overridden by derived classes: */
+       if (klass->save) {
+               return (*(klass->save)) (wizard_dialog);
+       } else {
+               return TRUE;
        }
 }
 
@@ -745,9 +739,17 @@ modest_wizard_dialog_set_response_override_handler (ModestWizardDialog *wizard_d
 }
 
 void
-modest_wizard_dialog_save_settings (ModestWizardDialog *wizard_dialog)
+modest_wizard_dialog_update_model (ModestWizardDialog *wizard_dialog)
 {
        g_return_if_fail (MODEST_IS_WIZARD_DIALOG (wizard_dialog));
 
-       invoke_save_settings_vfunc (wizard_dialog);
+       invoke_update_model_vfunc (wizard_dialog);
+}
+
+gboolean
+modest_wizard_dialog_save (ModestWizardDialog *wizard_dialog)
+{
+       g_return_val_if_fail (MODEST_IS_WIZARD_DIALOG (wizard_dialog), FALSE);
+
+       return invoke_save_vfunc (wizard_dialog);
 }