[maemo-commits] [maemo-commits] r16784 - projects/haf/branches/hildon-fm/fremantle/hildon-fm
From: subversion at stage.maemo.org subversion at stage.maemo.orgDate: Thu Nov 27 16:03:30 EET 2008
- Previous message: [maemo-commits] r16783 - projects/haf/branches/hildon-fm/fremantle/hildon-fm
- Next message: [maemo-commits] r16785 - projects/haf/branches/hildon-fm/fremantle
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
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);
- Previous message: [maemo-commits] r16783 - projects/haf/branches/hildon-fm/fremantle/hildon-fm
- Next message: [maemo-commits] r16785 - projects/haf/branches/hildon-fm/fremantle
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]