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

From: subversion at stage.maemo.org subversion at stage.maemo.org
Date: Thu Nov 27 16:03:30 EET 2008
Author: yangli
Date: 2008-11-27 16:03:29 +0200 (Thu, 27 Nov 2008)
New Revision: 16784

Modified:
   projects/haf/branches/hildon-fm/fremantle/hildon-fm/hildon-file-details-dialog.c
Log:
port the file details dialog

Modified: projects/haf/branches/hildon-fm/fremantle/hildon-fm/hildon-file-details-dialog.c
===================================================================
--- projects/haf/branches/hildon-fm/fremantle/hildon-fm/hildon-file-details-dialog.c	2008-11-27 14:02:52 UTC (rev 16783)
+++ projects/haf/branches/hildon-fm/fremantle/hildon-fm/hildon-file-details-dialog.c	2008-11-27 14:03:29 UTC (rev 16784)
@@ -42,6 +42,7 @@
 #include <hildon/hildon-banner.h>
 #include <hildon/hildon-caption.h>
 #include <hildon/hildon-defines.h>
+#include <hildon/hildon.h>
 
 #include "hildon-file-details-dialog.h"
 #include "hildon-file-system-model.h"
@@ -50,6 +51,8 @@
 
 #include "hildon-file-common-private.h"
 
+#define HILDON_FREMANTLE_FM_UI
+
 enum
 {
   PROP_SHOW_TABS = 1,
@@ -62,7 +65,6 @@
 
 struct _HildonFileDetailsDialogPrivate {
     GtkNotebook *notebook;
-
     GtkWidget *file_location, *file_name;
     GtkWidget *file_type, *file_size;
     GtkWidget *file_date, *file_time;
@@ -76,7 +78,9 @@
 
     GtkTreeRowReference *active_file;
     gboolean checkbox_original_state;
+    #ifndef HILDON_FREMANTLE_FM_UI
     gulong toggle_handler;
+    #endif
     gulong delete_handler;
 
     /* Properties */
@@ -332,7 +336,6 @@
                                    "Additional tab label",
                                    "Label to the additional tab",
                                    NULL, G_PARAM_READWRITE));
-
   g_object_class_install_property(gobject_class, PROP_MODEL,
                  g_param_spec_object("model", "Model",
                  "HildonFileSystemModel to use when fetching information",
@@ -368,7 +371,10 @@
 {
     GtkWidget *caption_location, *caption_name, *caption_type;
     GtkWidget *caption_date, *caption_size, *caption_time;
+    #ifndef HILDON_FREMANTLE_FM_UI
     GtkWidget *caption_read, *caption_device;
+    #endif
+    GtkWidget *caption_device;
     GtkWidget *hbox_location, *hbox_device, *hbox_type;
     GtkWidget *vbox;
     GtkSizeGroup *group;
@@ -380,17 +386,19 @@
     self->priv = priv = G_TYPE_INSTANCE_GET_PRIVATE(self,
                                 HILDON_TYPE_FILE_DETAILS_DIALOG,
                                 HildonFileDetailsDialogPrivate);
-
     priv->notebook = GTK_NOTEBOOK(gtk_notebook_new());
-    priv->scroll = gtk_scrolled_window_new(NULL, NULL);
-    vbox = gtk_vbox_new(FALSE, 0);
-    group = gtk_size_group_new(GTK_SIZE_GROUP_BOTH);
-
+    #ifndef HILDON_FREMANTLE_FM_UI
+        priv->scroll = gtk_scrolled_window_new(NULL, NULL);
+    #endif
     priv->tab_label = gtk_label_new(_("sfil_ti_notebook_file"));
     g_object_ref(priv->tab_label);
     g_object_ref_sink (GTK_OBJECT(priv->tab_label));
     gtk_widget_show(priv->tab_label);
+  
+    priv->scroll = hildon_pannable_area_new();
 
+    vbox = gtk_vbox_new(FALSE, 0);
+    group = gtk_size_group_new(GTK_SIZE_GROUP_BOTH);
     priv->file_device = g_object_new(GTK_TYPE_LABEL, "xalign", 0.0f, NULL);
     priv->file_location = g_object_new(GTK_TYPE_LABEL, "xalign", 0.0f, NULL);
     gtk_label_set_ellipsize(GTK_LABEL(priv->file_location), 
@@ -401,9 +409,14 @@
     priv->file_size = g_object_new(GTK_TYPE_LABEL, "xalign", 0.0f, NULL);
     priv->file_date = g_object_new(GTK_TYPE_LABEL,"xalign", 0.0f, NULL);
     priv->file_time = g_object_new(GTK_TYPE_LABEL, "xalign", 0.0f, NULL);
-    priv->file_readonly = gtk_check_button_new();
-    g_signal_connect (priv->file_readonly, "insensitive-press",
-		      G_CALLBACK (permissions_insensitive_press), self);
+    /* in FREMANTLE, check button for setting the read only property 
+       of the files is removed, use text instead */
+    #ifndef HILDON_FREMANTLE_FM_UI
+        priv->file_readonly = gtk_check_button_new();
+	g_signal_connect (priv->file_readonly, "insensitive-press",
+			  G_CALLBACK (permissions_insensitive_press), self);
+    #endif
+    priv->file_readonly = g_object_new(GTK_TYPE_LABEL, "xalign", 0.0f, NULL);
 
     hbox_type = gtk_hbox_new (FALSE, HILDON_MARGIN_DEFAULT);
     hbox_location = gtk_hbox_new(FALSE, HILDON_MARGIN_DEFAULT);
@@ -448,9 +461,10 @@
       priv->file_time, NULL, HILDON_CAPTION_OPTIONAL);
     caption_size = hildon_caption_new(group, _("ckdg_fi_properties_size_prompt"),
       priv->file_size, NULL, HILDON_CAPTION_OPTIONAL);
+    #ifndef HILDON_FREMANTLE_FM_UI
     caption_read = hildon_caption_new(group, _("ckdg_fi_properties_read_only"),
       priv->file_readonly, NULL, HILDON_CAPTION_OPTIONAL);
-
+    #endif
     hildon_caption_set_separator(HILDON_CAPTION(caption_name), "");
     hildon_caption_set_separator(HILDON_CAPTION(caption_type), "");
     hildon_caption_set_separator(HILDON_CAPTION(caption_location), "");
@@ -458,8 +472,9 @@
     hildon_caption_set_separator(HILDON_CAPTION(caption_date), "");
     hildon_caption_set_separator(HILDON_CAPTION(caption_time), "");
     hildon_caption_set_separator(HILDON_CAPTION(caption_size), "");
+    #ifndef HILDON_FREMANTLE_FM_UI
     hildon_caption_set_separator(HILDON_CAPTION(caption_read), "");
-
+    #endif
     g_object_unref(group);
 
     /* Pack captions to the dialog */
@@ -470,8 +485,10 @@
     gtk_box_pack_start(GTK_BOX(vbox), caption_date, FALSE, TRUE, 0);
     gtk_box_pack_start(GTK_BOX(vbox), caption_time, FALSE, TRUE, 0);
     gtk_box_pack_start(GTK_BOX(vbox), caption_size, FALSE, TRUE, 0);
+    gtk_box_pack_start(GTK_BOX(vbox), priv->file_readonly, FALSE, TRUE, 0);
+
+    #ifndef HILDON_FREMANTLE_FM_UI
     gtk_box_pack_start(GTK_BOX(vbox), caption_read, FALSE, TRUE, 0);
-
     gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(priv->scroll), vbox);
     gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(priv->scroll),
         GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC);
@@ -483,17 +500,30 @@
     gtk_viewport_set_shadow_type(
         GTK_VIEWPORT(gtk_bin_get_child(GTK_BIN(priv->scroll))),
         GTK_SHADOW_NONE);
-
-    gtk_container_set_focus_vadjustment(GTK_CONTAINER(vbox),
-      gtk_scrolled_window_get_vadjustment(GTK_SCROLLED_WINDOW(priv->scroll)));
-
     /* Populate dialog */
     gtk_notebook_append_page(priv->notebook, priv->scroll,
                              gtk_label_new(_("sfil_ti_notebook_common")));
-
     gtk_box_pack_start(GTK_BOX(GTK_DIALOG(self)->vbox),
                        GTK_WIDGET(priv->notebook), TRUE, TRUE, 0);
+    gtk_container_set_focus_vadjustment(GTK_CONTAINER(vbox),
+      gtk_scrolled_window_get_vadjustment(GTK_SCROLLED_WINDOW(priv->scroll)));
 
+    #endif
+    hildon_pannable_area_add_with_viewport (HILDON_PANNABLE_AREA (priv->scroll), 
+					    GTK_WIDGET (GTK_BOX(vbox)));
+
+    gtk_container_add (GTK_CONTAINER (priv->scroll), vbox);
+    gtk_box_pack_start(GTK_BOX(GTK_DIALOG(self)->vbox),
+    GTK_WIDGET(priv->scroll), TRUE, TRUE, 0);
+
+    gtk_widget_show_all(GTK_WIDGET(GTK_BOX(GTK_DIALOG(self)->vbox)));
+
+    gtk_window_set_title (GTK_WINDOW (self), _("sfil_ti_file_details"));
+
+    priv->ok_button = gtk_dialog_add_button(GTK_DIALOG(self),
+                          _("sfil_bd_filetype_details_dialog_ok"),
+                          GTK_RESPONSE_OK);
+
     /* From widget specs, generic dialog size */
     geometry.min_width = 133;
     geometry.max_width = 602;
@@ -505,21 +535,15 @@
     gtk_window_set_geometry_hints(GTK_WINDOW(self),
                                   GTK_WIDGET(priv->notebook), &geometry,
                                   GDK_HINT_MIN_SIZE | GDK_HINT_MAX_SIZE);
-
-    gtk_window_set_title (GTK_WINDOW (self), _("sfil_ti_file_details"));
-
     gtk_widget_show_all(GTK_WIDGET(priv->notebook));
-
-    priv->ok_button = gtk_dialog_add_button(GTK_DIALOG(self),
-                          _("sfil_bd_filetype_details_dialog_ok"),
-                          GTK_RESPONSE_OK);
+    #ifndef HILDON_FREMANTLE_FM_UI
     gtk_dialog_add_button(GTK_DIALOG(self),
                           _("sfil_bd_filetype_details_dialog_cancel"),
                           GTK_RESPONSE_CANCEL);
-    
+    #endif 
     gtk_widget_set_size_request (GTK_WIDGET (self), 400, -1);
-	g_signal_connect (G_OBJECT (self), "show",
-			  G_CALLBACK (do_line_wrapping), priv);
+    g_signal_connect (G_OBJECT (self), "show",
+		      G_CALLBACK (do_line_wrapping), priv);
 }
 
 static void
@@ -770,6 +794,7 @@
           gtk_tree_path_free(path_old);
           return;
   }
+
   gtk_tree_row_reference_free(self->priv->active_file);
   self->priv->active_file = gtk_tree_row_reference_new(model, path);
   gtk_tree_path_free(path);
@@ -911,23 +936,27 @@
       gtk_label_set_text(GTK_LABEL(self->priv->file_device), "");
       gtk_image_set_from_pixbuf(GTK_IMAGE(self->priv->file_device_image), NULL);
   }
-
   /* We do not want initial setting to cause any action */
+  #ifndef HILDON_FREMANTLE_FM_UI
   g_signal_handler_block(self->priv->file_readonly, self->priv->toggle_handler);
 
   gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(self->priv->file_readonly),
 			       location_readonly || !write_access(uri));
-
-  self->priv->change_permissions_result =
-    guess_change_permissions_result (uri);
   gtk_widget_set_sensitive(self->priv->file_readonly,
 			   (self->priv->change_permissions_result
 			    == GNOME_VFS_OK));
   self->priv->checkbox_original_state = gtk_toggle_button_get_active(
         GTK_TOGGLE_BUTTON(self->priv->file_readonly));
-
   g_signal_handler_unblock(self->priv->file_readonly, self->priv->toggle_handler);
+  #endif
 
+  if (location_readonly || !write_access(uri)) {
+    /* to be replaced by a localization string */
+    gtk_label_set_text(GTK_LABEL(self->priv->file_readonly), 
+		       "This file is read only");
+  }
+  self->priv->change_permissions_result =
+    guess_change_permissions_result (uri);
   g_free(uri);
   g_free(name);
   g_free(mime);
@@ -990,10 +1019,10 @@
      the label widths according to it 
   */
   ideal_width = (window_allocation.width) - (label_allocation.x);
-
+  #ifndef HILDON_FREMANTLE_FM_UI
   if (gtk_scrolled_window_get_vscrollbar (GTK_SCROLLED_WINDOW(priv->scroll)))
     ideal_width -= 40; //Scroll bar width 
-
+  #endif
   gtk_label_set_line_wrap (GTK_LABEL (priv->file_name), TRUE);
   gtk_label_set_line_wrap_mode (GTK_LABEL (priv->file_name), PANGO_WRAP_CHAR);
   


More information about the maemo-commits mailing list