[maemo-commits] [maemo-commits] r15891 - projects/haf/branches/hildon-fm/fremantle/hildon-fm

From: subversion at stage.maemo.org subversion at stage.maemo.org
Date: Tue Aug 26 14:49:13 EEST 2008
Author: rabinovich
Date: 2008-08-26 14:49:12 +0300 (Tue, 26 Aug 2008)
New Revision: 15891

Modified:
   projects/haf/branches/hildon-fm/fremantle/hildon-fm/hildon-file-chooser-dialog.c
Log:
ported "select file type" dialog to fremantle UI


Modified: projects/haf/branches/hildon-fm/fremantle/hildon-fm/hildon-file-chooser-dialog.c
===================================================================
--- projects/haf/branches/hildon-fm/fremantle/hildon-fm/hildon-file-chooser-dialog.c	2008-08-26 11:47:23 UTC (rev 15890)
+++ projects/haf/branches/hildon-fm/fremantle/hildon-fm/hildon-file-chooser-dialog.c	2008-08-26 11:49:12 UTC (rev 15891)
@@ -2513,17 +2513,18 @@
       GtkTreeModel *model;
       GtkTreeIter iter;
       gboolean valid;
-      int i;
+      HildonTouchSelector *selector;
 
-      model = gtk_combo_box_get_model (GTK_COMBO_BOX (priv->extensions_combo));
+      selector = hildon_picker_button_get_selector(HILDON_PICKER_BUTTON(priv->extensions_combo));
+      model = hildon_touch_selector_get_model(selector, 0);
 
       /* if there is a valid extension selected, just leave it */
-      if (gtk_combo_box_get_active_iter (GTK_COMBO_BOX (priv->extensions_combo), &iter))
+      if (hildon_touch_selector_get_active_iter (selector, 0, &iter))
         {
 	  gboolean matches;
 	  gchar *ext;
 
-	  gtk_tree_model_get (model, &iter, 1, &ext, -1);
+	  gtk_tree_model_get (model, &iter, 0, &ext, -1);
 	  matches = (strcmp (ext, priv->ext_name + 1) == 0);
 	  g_free (ext);
 
@@ -2531,22 +2532,21 @@
 	    return;
 	}
 
-      i = 0;
       valid = gtk_tree_model_get_iter_first (model, &iter);
       while (valid)
 	{
 	  gchar *ext;
-	  gtk_tree_model_get (model, &iter, 1, &ext, -1);
+	  gtk_tree_model_get (model, &iter, 0, &ext, -1);
 	  if (strcmp (ext, priv->ext_name + 1) == 0)
 	    {
-	      gtk_combo_box_set_active (GTK_COMBO_BOX (priv->extensions_combo),
-					i);
+              hildon_touch_selector_set_active_iter (selector, 0, &iter, TRUE);
+              hildon_button_set_value(HILDON_BUTTON(priv->extensions_combo), ext);
+
 	      g_free (ext);
 	      break;
 	    }
 
 	  g_free (ext);
-	  i++;
 	  valid = gtk_tree_model_iter_next (model, &iter); 
 	}
     }
@@ -2555,22 +2555,12 @@
 static void
 extension_changed (GtkComboBox *widget, gpointer data)
 {
-  gchar *ext;
-  GtkTreeModel *model;
-  GtkTreeIter iter;
-
   HildonFileChooserDialogPrivate *priv = 
     HILDON_FILE_CHOOSER_DIALOG (data)->priv;
 
-  model = gtk_combo_box_get_model (GTK_COMBO_BOX (widget));
-  gtk_combo_box_get_active_iter (GTK_COMBO_BOX (widget), &iter);
-  gtk_tree_model_get (model, &iter, 1, &ext, -1);
-  
   g_free (priv->ext_name);
-  priv->ext_name = g_strconcat (".", ext, NULL);
+  priv->ext_name = g_strconcat (".", hildon_button_get_value (HILDON_BUTTON (widget)), NULL);
   hildon_file_chooser_dialog_do_autonaming (priv);
-
-  g_free (ext);
 }
 
 /**
@@ -2597,54 +2587,42 @@
 						 char **extensions,
 						 char **ext_names)
 {
-  GtkTreeIter      iter;
-  GtkListStore    *model;
-  GtkCellRenderer *renderer;
+  GtkWidget       *button;
+  GtkWidget       *selector;
   GtkWidget       *caption;
-  GtkWidget       *combo;
   gint            i = 0;
 
   g_return_val_if_fail (self->priv->extensions_combo == NULL, NULL);
     
-  model = GTK_LIST_STORE (gtk_list_store_new (2,
-					      G_TYPE_STRING,
-					      G_TYPE_STRING));
-  combo = gtk_combo_box_new_with_model (GTK_TREE_MODEL (model));
-  self->priv->extensions_combo = combo;
+  button = hildon_picker_button_new(HILDON_SIZE_AUTO, HILDON_BUTTON_ARRANGEMENT_HORIZONTAL);
+  selector = hildon_touch_selector_new_text();
 
+  self->priv->extensions_combo = button;
+
   for (i = 0; extensions[i]; i++)
     {
-      gtk_list_store_append (model, &iter);
-      gtk_list_store_set (model, &iter,
-			  0, ext_names? ext_names[i] : extensions[i],
-			  1, extensions[i],
-			  -1);
+        hildon_touch_selector_append_text (HILDON_TOUCH_SELECTOR (selector), extensions[i]);
     }
 
-  renderer = gtk_cell_renderer_text_new ();
-  gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (combo),
-			      renderer, TRUE);
-  gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (combo),
-				  renderer, "text", 0, NULL);
+  hildon_picker_button_set_selector (HILDON_PICKER_BUTTON (button), HILDON_TOUCH_SELECTOR (selector));
+  gtk_button_set_alignment(GTK_BUTTON(button), 0, 0.5);
+  hildon_button_set_title(HILDON_BUTTON(button), _("sfil_fi_save_object_dialog_type"));
+  hildon_button_set_title(HILDON_BUTTON(button), NULL);
 
-  g_object_unref(model);
-
-  g_signal_connect (G_OBJECT (combo), "changed",
+  g_signal_connect (G_OBJECT (button), "value-changed",
 		    G_CALLBACK (extension_changed), self);
 
-  caption = hildon_caption_new (NULL,
-				_("sfil_fi_save_object_dialog_type"),
-				combo, NULL,
-				HILDON_CAPTION_OPTIONAL);
+  caption = hildon_caption_new (NULL, _("sfil_fi_save_object_dialog_type"), button, NULL, HILDON_CAPTION_OPTIONAL);
+  hildon_caption_set_separator(HILDON_CAPTION(caption), "");
 
   hildon_file_chooser_dialog_add_extra (self, caption);
   
-  gtk_widget_show (combo);
+  gtk_widget_show (button);
   gtk_widget_show (caption);
   
   sync_extensions_combo (self->priv);
 
-  return combo;
+  return button;
 }
 
 /**


More information about the maemo-commits mailing list