[maemo-commits] [maemo-commits] r11793 - projects/haf/trunk/hildon-fm/hildon-fm

From: subversion at stage.maemo.org subversion at stage.maemo.org
Date: Wed May 23 20:29:37 EEST 2007
Author: marivoll
Date: 2007-05-23 20:29:37 +0300 (Wed, 23 May 2007)
New Revision: 11793

Modified:
   projects/haf/trunk/hildon-fm/hildon-fm/hildon-file-selection.c
Log:
	* hildon-fm/hildon-file-selection.c (HildonFileSelectionPrivate):
	Added fourth view for the "Repair" button.
	(get_view_to_be_displayed): Select the "Repair" view for drives.
	(repair_button_clicked): New (does nothing interesting for now).
	(hildon_file_selection_init): Construct "Repair" view.


Modified: projects/haf/trunk/hildon-fm/hildon-fm/hildon-file-selection.c
===================================================================
--- projects/haf/trunk/hildon-fm/hildon-fm/hildon-file-selection.c	2007-05-23 17:13:42 UTC (rev 11792)
+++ projects/haf/trunk/hildon-fm/hildon-fm/hildon-file-selection.c	2007-05-23 17:29:37 UTC (rev 11793)
@@ -145,7 +145,7 @@
     GtkWidget *scroll_list;
     GtkWidget *scroll_thumb;
     GtkWidget *dir_tree;
-    GtkWidget *view[3]; /* List, thumbnail, empty */
+    GtkWidget *view[4]; /* List, thumbnail, empty, repair */
 #ifndef HILDON_FM_HPANED
     GtkWidget *separator;
 #else
@@ -312,15 +312,28 @@
   if (gtk_tree_model_get_iter_first(model, &iter))
     return priv->mode;
 
-  /* We have currently nothing, check if we are loading */
-  g_object_get(model, "child-model", &child_model, "virtual-root", &path, NULL);
+  /* We have currently nothing, check if we are loading or if we
+     should offer the repair button. */
 
+  g_object_get(model, "child-model", &child_model,
+	       "virtual-root", &path, NULL);
+
   if (gtk_tree_model_get_iter(child_model, &iter, path))
-  {
-    gboolean ready;
-    gtk_tree_model_get(child_model, &iter, HILDON_FILE_SYSTEM_MODEL_COLUMN_LOAD_READY, &ready, -1);
-    result = ready ? 2 : gtk_notebook_get_current_page(priv->view_selector);
-  }
+    {
+      gboolean ready, is_drive;
+
+      gtk_tree_model_get (child_model, &iter,
+			  HILDON_FILE_SYSTEM_MODEL_COLUMN_LOAD_READY, &ready,
+			  HILDON_FILE_SYSTEM_MODEL_COLUMN_IS_DRIVE, &is_drive,
+			  -1);
+
+      if (is_drive)
+	result = 3;
+      else if (!ready)
+	result = gtk_notebook_get_current_page(priv->view_selector);
+      else
+	result = 2;
+    }
   else /* Virtual root is almost certainly found, EXCEPT when
           that node is destroyed and row_reference is invalidated... */
     result = 2;
@@ -2904,6 +2917,29 @@
        G_CALLBACK(drag_data_delete), self); */
 }
 
+static void
+repair_button_clicked (GtkWidget *button, HildonFileSelection *self)
+{
+  HildonFileSelectionPrivate *priv = self->priv;
+  GtkTreeSelection *selection =
+    gtk_tree_view_get_selection (GTK_TREE_VIEW (priv->dir_tree));
+  GtkTreeModel *model;
+  GtkTreeIter iter;
+
+  if (gtk_tree_selection_get_selected (selection, &model, &iter))
+    {
+      char *uri;
+
+      gtk_tree_model_get (model, &iter,
+			  HILDON_FILE_SYSTEM_MODEL_COLUMN_URI, &uri,
+			  -1);
+
+      fprintf (stderr, "REPAIR %s\n", uri);
+
+      g_free (uri);
+    }
+}
+
 static void hildon_file_selection_init(HildonFileSelection * self)
 {
     self->priv =
@@ -2973,6 +3009,27 @@
     gtk_misc_set_alignment(GTK_MISC(self->priv->view[2]), 0.5f, 0.0f);
     gtk_notebook_append_page(self->priv->view_selector, self->priv->view[2], NULL);
 
+    {
+      GtkWidget *vbox, *label, *button;
+
+      label = gtk_label_new (_("hfil_li_memory_card_corrupted"));
+      gtk_widget_show (label);
+
+      button = gtk_button_new_with_label (_("sfil_bd_repair_memory_card"));
+      g_signal_connect_object (button, "clicked",
+			       G_CALLBACK (repair_button_clicked), self,
+			       0);
+      gtk_widget_show (button);
+
+      vbox = gtk_vbox_new (FALSE, 10);
+      gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, FALSE, 10);
+      gtk_box_pack_start (GTK_BOX (vbox), button, FALSE, FALSE, 10);
+      
+      self->priv->view[3] = vbox;
+      gtk_notebook_append_page(self->priv->view_selector,
+			       self->priv->view[3], NULL);
+    }
+
     g_signal_connect(self, "grab-notify",
       G_CALLBACK(hildon_file_selection_check_scroll), NULL);
 }


More information about the maemo-commits mailing list