[maemo-commits] [maemo-commits] r14177 - in projects/haf/trunk/hildon-fm: . debian hildon-fm

From: subversion at stage.maemo.org subversion at stage.maemo.org
Date: Fri Sep 28 15:33:56 EEST 2007
Author: marivoll
Date: 2007-09-28 15:33:53 +0300 (Fri, 28 Sep 2007)
New Revision: 14177

Modified:
   projects/haf/trunk/hildon-fm/ChangeLog
   projects/haf/trunk/hildon-fm/debian/changelog
   projects/haf/trunk/hildon-fm/hildon-fm/hildon-file-chooser-dialog.c
Log:
	* hildon-fm/hildon-file-chooser-dialog.c (build_ui): Put the
	location into a HildonCaption, make it focusable and popup the
	change folder dialog when GDK_Enter is pressed (N68746).


Modified: projects/haf/trunk/hildon-fm/ChangeLog
===================================================================
--- projects/haf/trunk/hildon-fm/ChangeLog	2007-09-28 12:20:14 UTC (rev 14176)
+++ projects/haf/trunk/hildon-fm/ChangeLog	2007-09-28 12:33:53 UTC (rev 14177)
@@ -1,5 +1,9 @@
 2007-09-28  Marius Vollmer  <marius.vollmer at nokia.com>
 
+	* hildon-fm/hildon-file-chooser-dialog.c (build_ui): Put the
+	location into a HildonCaption, make it focusable and popup the
+	change folder dialog when GDK_Enter is pressed (N68746).
+	
 	* hildon-fm/hildon-file-system-local-device.c
 	(hildon_file_system_local_device_get_display_name): Get device
 	name from $OSSO_PRODUCT_NAME if it can't get it from bluez, or set

Modified: projects/haf/trunk/hildon-fm/debian/changelog
===================================================================
--- projects/haf/trunk/hildon-fm/debian/changelog	2007-09-28 12:20:14 UTC (rev 14176)
+++ projects/haf/trunk/hildon-fm/debian/changelog	2007-09-28 12:33:53 UTC (rev 14177)
@@ -1,7 +1,7 @@
 libhildonfm (1:1.9.41~unreleased) unstable; urgency=low
 
   * Fixes: NB#71163, NB#71170, NB#71144, NB#71168, NB#69754.
-  * Fixes: NB#70816.
+  * Fixes: NB#70816, NB#68746.
 
  -- Marius Vollmer <marius.vollmer at nokia.com>  Tue, 25 Sep 2007 09:56:09 +0300
 

Modified: projects/haf/trunk/hildon-fm/hildon-fm/hildon-file-chooser-dialog.c
===================================================================
--- projects/haf/trunk/hildon-fm/hildon-fm/hildon-file-chooser-dialog.c	2007-09-28 12:20:14 UTC (rev 14176)
+++ projects/haf/trunk/hildon-fm/hildon-fm/hildon-file-chooser-dialog.c	2007-09-28 12:33:53 UTC (rev 14177)
@@ -126,7 +126,6 @@
     GtkSizeGroup *caption_size_group;
     GtkWidget *caption_control_name;
     GtkWidget *caption_control_location;
-    GtkWidget *label_location;
     GtkWidget *entry_name;
     GtkWidget *hbox_location, *image_location, *title_location;
     GtkWidget *extensions_combo;
@@ -1066,8 +1065,9 @@
                                    _("ckdg_fi_save_object_name"));
         }
 
-        gtk_label_set_text(GTK_LABEL(priv->label_location),
-                                     _("sfil_fi_save_objects_location"));
+
+		hildon_caption_set_label (HILDON_CAPTION (priv->caption_control_location),
+				_("sfil_fi_save_objects_location"));
         gtk_widget_hide(GTK_WIDGET(priv->filetree));
 
         /* Content pane of the filetree widget needs to be realized.
@@ -1108,8 +1108,8 @@
     case GTK_FILE_CHOOSER_ACTION_CREATE_FOLDER:
         hildon_caption_set_label(HILDON_CAPTION(priv->caption_control_name),
                                  _("ckdg_fi_new_folder_name"));
-        gtk_label_set_text(GTK_LABEL(priv->label_location),
-                                     _("ckdg_fi_new_folder_location"));
+		hildon_caption_set_label (HILDON_CAPTION (priv->caption_control_location),
+						 _("ckdg_fi_new_folder_location"));
         gtk_widget_show_all(priv->caption_control_name);
         gtk_widget_hide(GTK_WIDGET(priv->filetree));
         _hildon_file_selection_realize_help(priv->filetree);
@@ -1338,6 +1338,22 @@
   g_free(uri);
 }
 
+static gboolean
+on_location_hw_enter_pressed (GtkWidget * widget, GdkEventKey * event,
+			      gpointer data)
+{
+  HildonFileChooserDialog *self = HILDON_FILE_CHOOSER_DIALOG(data);
+  switch (event->keyval) {
+  case GDK_Return:
+    if (self->priv->action == GTK_FILE_CHOOSER_ACTION_SAVE ||
+	self->priv->action == GTK_FILE_CHOOSER_ACTION_CREATE_FOLDER)
+      handle_folder_popup(self);
+    return TRUE;
+  default:
+    return FALSE;
+  }
+}
+
 static gboolean hildon_file_chooser_dialog_location_pressed(GtkWidget
   *widget, GdkEventButton *event, gpointer data)
 {
@@ -1973,17 +1989,19 @@
     gtk_event_box_set_visible_window(GTK_EVENT_BOX(eventbox), FALSE);
     gtk_container_add(GTK_CONTAINER(eventbox), priv->hbox_location);
     gtk_widget_add_events(eventbox, GDK_BUTTON_PRESS_MASK);
+    g_object_set (G_OBJECT (eventbox), "can-focus", TRUE, NULL);
+  
+    priv->caption_control_location =
+      hildon_caption_new(size_group, _("sfil_fi_save_objects_items"),
+			 eventbox, NULL,
+			 HILDON_CAPTION_OPTIONAL);
+    hildon_caption_set_separator(HILDON_CAPTION(priv->caption_control_location),
+                                 "");
 
-    priv->caption_control_location = gtk_hbox_new(FALSE, HILDON_MARGIN_DOUBLE);
-    priv->label_location = g_object_new(GTK_TYPE_LABEL, "label", _("sfil_fi_save_objects_location"), "xalign", 1.0f, NULL);
     label_items = g_object_new(GTK_TYPE_LABEL, "label",  _("sfil_fi_save_objects_items"), "xalign", 1.0f, NULL);
     priv->multiple_label = gtk_label_new(NULL);
     gtk_box_pack_start(GTK_BOX(priv->hbox_items), label_items, FALSE, TRUE, 0);
     gtk_box_pack_start(GTK_BOX(priv->hbox_items), priv->multiple_label, FALSE, TRUE, 0);
-    gtk_box_pack_start(GTK_BOX(priv->caption_control_location),
-                       priv->label_location, FALSE, TRUE, 0);
-    gtk_box_pack_start(GTK_BOX(priv->caption_control_location), eventbox, TRUE, TRUE, 0);
-    gtk_size_group_add_widget(size_group, priv->label_location);
     gtk_size_group_add_widget(size_group, label_items);
 
     priv->popup = gtk_menu_new();
@@ -2056,6 +2074,8 @@
     g_signal_connect(eventbox, "button-release-event",
                      G_CALLBACK(hildon_file_chooser_dialog_location_pressed),
                      self);
+    g_signal_connect (eventbox, "key-press-event", 
+		      G_CALLBACK (on_location_hw_enter_pressed), self);	
 
     gtk_dialog_set_default_response(GTK_DIALOG(self), GTK_RESPONSE_OK);
 }


More information about the maemo-commits mailing list