Commit Graph

377 Commits

Author SHA1 Message Date
Federico Mena Quintero
ace5e30238 Stop the emission so that GtkTreeView's handler won't try to poke the
2004-03-09  Federico Mena Quintero  <federico@ximian.com>

	* gtk/gtkfilechooserdefault.c (shortcuts_drag_data_received_cb):
	Stop the emission so that GtkTreeView's handler won't try to poke
	the filter model.  Fixes #136127.
2004-03-09 19:10:20 +00:00
Federico Mena Quintero
caf66b3ddd Use gtk_tree_view_set_cursor().
2004-03-08  Federico Mena Quintero  <federico@ximian.com>

	* gtk/gtkfilechooserdefault.c
	(gtk_file_chooser_default_initial_focus): Use
	gtk_tree_view_set_cursor().
2004-03-08 23:16:03 +00:00
Federico Mena Quintero
8383c8f7fe Patch "1a" from #136185, by Morten Welinder.
2004-03-08  Federico Mena Quintero  <federico@ximian.com>

	Patch "1a" from #136185, by Morten Welinder.

	* gtk/gtkfilechooserdefault.c (get_file_info): Take in an argument
	that says whether the caller just wants the display name.
	(shortcuts_insert_path): We only want the name in the call to
	get_file_info().

	* gtk/gtkpathbar.c (_gtk_path_bar_set_path): Don't request more
	info than needed from the file_folder.
2004-03-08 22:53:35 +00:00
Federico Mena Quintero
2247fc6659 Fixes #136105.
2004-03-08  Federico Mena Quintero  <federico@ximian.com>

	Fixes #136105.

	* gtk/gtkfilechooserembed.h (struct _GtkFileChooserEmbedIface):
	Added an ::initial_focus() method.

	* gtk/gtkfilechooserembed.c
	(_gtk_file_chooser_embed_delegate_iface_init): Set the
	initial_focus method.
	(delegate_initial_focus): Implement.
	(_gtk_file_chooser_embed_initial_focus): New function.

	* gtk/gtkfilechooserdialog.c
	(gtk_file_chooser_dialog_constructor): Call
	_gtk_file_chooser_embed_initial_focus().

	* gtk/gtkfilechooserdefault.c (gtk_file_chooser_default_init):
	Install the ::initial_focus() handler.
	(gtk_file_chooser_default_initial_focus): Implement.
2004-03-08 22:21:47 +00:00
Federico Mena Quintero
4bab88cda4 Return a boolean success code. (location_popup_handler): Refocus the file
2004-03-08  Federico Mena Quintero  <federico@ximian.com>

	* gtk/gtkfilechooserdefault.c (update_from_entry): Return a
	boolean success code.
	(location_popup_handler): Refocus the file chooser if appropriate.
	Fixes #135905.
	(save_widgets_create): Don't set the text of the save_folder_label
	here.
	(update_appearance): Set the text here as appropriate for the save
	mode.  Also fixes #136387.
	(update_appearance): Don't show the Create Folder button in
	SELECT_FOLDER mode.
	(update_appearance): Show the extra widget in all Save modes
	correctly.
2004-03-08 20:06:50 +00:00
Jonathan Blandford
59938d927c new function to consolidate creating the path_bar.
Mon Mar  8 04:50:12 2004  Jonathan Blandford  <jrb@gnome.org>

        * gtk/gtkfilechooserdefault.c (create_path_bar): new function to
        consolidate creating the path_bar.
        (gtk_file_chooser_default_set_current_folder): no longer need to
        pass in the filesystem.

        * gtk/gtkpathbar.h: Removed unused set_pixbuf functions in favor
        of just setting the filesystem.

        * gtk/gtkpathbar.c (gtk_path_bar_finalize): Free root path and
        home_dir.
        (get_button_image): Add images to path_bar.
        (update_button_appearance): use images
        (make_directory_button): Clasify buttons based upon location.
        (_gtk_path_bar_set_path): no longer need a file-system.  Also, add
        rerooting, #135845, #135914

        * tests/testfilechooser.c: Fix reused error handling.
2004-03-08 09:56:34 +00:00
Jonathan Blandford
afec1da061 actually use gtk_button_add.
Sun Mar  7 17:38:03 2004  Jonathan Blandford  <jrb@gnome.org>

        * gtk/gtkbutton.c (gtk_button_class_init): actually use
        gtk_button_add.

        * gtk/gtkfilechooserdefault.c (error_building_filename_dialog):
        use the uri, not the path, #136317
        (renderer_edited_cb): ditto
        (shortcuts_add_bookmark_from_path): ditto
        (remove_bookmark_button_clicked_cb): ditto
        (gtk_file_chooser_default_remove_shortcut): ditto
        (update_from_entry): ditto
        (up_folder_handler): ditto
2004-03-07 22:49:44 +00:00
Jonathan Blandford
9e379cfd40 set redraw_on_allocate, #135902.
Sun Mar  7 16:07:08 2004  Jonathan Blandford  <jrb@gnome.org>

        * gtk/gtkfilechooserdefault.c (gtk_file_chooser_default_init): set
        redraw_on_allocate, #135902.

        * gtk/gtkfilesystemmodel.c (model_refilter_recurse): Patch from
        Damon Chaplin to set a node to be visible before emitting the
        inserted signal, #135555.
2004-03-07 21:26:32 +00:00
Jonathan Blandford
58db7b1f62 stop activate from unselecting rows when pressed in multiple-selection
Sun Mar  7 14:34:04 2004  Jonathan Blandford  <jrb@gnome.org>

        * gtk/gtkfilechooserdefault.c (trap_activate_cb): stop activate
        from unselecting rows when pressed in multiple-selection mode.
2004-03-07 19:38:49 +00:00
Jonathan Blandford
eb258fe24c if action is SELECT_FOLDER, then return the currentd folder if none is
Sun Mar  7 03:03:57 2004  Jonathan Blandford  <jrb@gnome.org>

        * gtk/gtkfilechooserdefault.c
        (gtk_file_chooser_default_get_paths): if action is
        SELECT_FOLDER, then return the currentd folder if none is
        selected.
        (gtk_file_chooser_default_should_respond): Allow 'Ok' to be hit if
        no directory is selected in SELECT_FOLDER mode.
2004-03-07 08:15:09 +00:00
Jonathan Blandford
0b231feb1c remove unneeded elements. (tree_selection_changed): removed
Sat Mar  6 23:31:18 2004  Jonathan Blandford  <jrb@gnome.org>

        * gtk/gtkfilechooserdefault.c (struct _GtkFileChooserDefault):
        remove unneeded elements.
        (tree_selection_changed): removed
        (tree_name_data_func): removed
        (gtk_file_chooser_default_finalize): don't unref dir model
        (create_folder_tree): removed
        (get_selection): no longer need to abstract away the selection
        function.
        (create_file_list): We now create a tree for all actions.
        (file_pane_create): Make one tree.
        (update_appearance) We really change the mode only, now.
2004-03-07 04:41:36 +00:00
Federico Mena Quintero
80581c3011 Fixes #136082 and #135265, patch by Morten Welinder.
2004-03-05  Federico Mena Quintero  <federico@ximian.com>

	Fixes #136082 and #135265, patch by Morten Welinder.

	* configure.in: Use AC_SYS_LARGEFILE.

	* */*.c: #include <config.h>
2004-03-06 03:38:59 +00:00
Jonathan Blandford
48bfdd5174 scroll to the new path.
Fri Mar  5 18:00:36 2004  Jonathan Blandford  <jrb@redhat.com>

        * gtk/gtkfilechooserdefault.c (new_folder_button_clicked): scroll
        to the new path.

        * gtk/gtktreeview.c (gtk_tree_view_adjustment_changed): Update the
        allocation when scrolling instead of cancelling editing.
2004-03-05 23:02:01 +00:00
Federico Mena Quintero
385bd6a54e Add gboolean return values and GError arguments to ::set_current_folder()
2004-03-05  Federico Mena Quintero  <federico@ximian.com>

	* gtk/gtkfilechooserprivate.h (struct _GtkFileChooserIface): Add
	gboolean return values and GError arguments to
	::set_current_folder() and ::select_path().

	* gtk/gtkfilechooser.c (gtk_file_chooser_set_current_folder):
	Return a boolean value for success/failure.
	(gtk_file_chooser_set_current_folder_uri): Likewise.
	(gtk_file_chooser_select_filename): Likewise.
	(gtk_file_chooser_select_uri): Likewise.
	(gtk_file_chooser_set_filename): Likewise.
	(gtk_file_chooser_set_uri): Likewise.
	(_gtk_file_chooser_set_current_folder_path): Likewise, plus take
	in a GError.
	(_gtk_file_chooser_select_path): Likewise.

	* gtk/gtkfilechooserutils.c (delegate_set_current_folder):
	Likewise.
	(delegate_select_path): Likewise.

	* gtk/gtkfilechooserdefault.c
	(gtk_file_chooser_default_select_path): Likewise.
	(gtk_file_chooser_default_set_current_folder): Likewise.
	(error_changing_folder_dialog): New helper function.
	(change_folder_and_display_error): New helper function.
	(switch_to_selected_folder): Use change_folder_and_display_error().
	(tree_selection_changed): Likewise.
	(shortcuts_activate_volume): Likewise.
	(shortcuts_activate_item): Likewise.
	(list_row_activated): Likewise.
	(path_bar_clicked): Likewise.
	(update_from_entry): Likewise.
	(up_folder_handler): Likewise.
	(home_folder_handler): Get the home path from the shortcuts model,
	and use change_folder_and_display_error().

	* tests/testfilechooser.c (set_current_folder): New helper
	function; pops up a simple error dialog if necessary.
	(set_filename): Likewise.
	(set_folder_nonexistent_cb): Use set_current_folder().
	(set_folder_existing_nonexistent_cb): Likewise.
	(set_filename_nonexistent_cb): Use set_filename().
	(set_filename_existing_nonexistent_cb): Likewise.
2004-03-05 20:47:05 +00:00
Michael Natterer
800f0e6197 s/object/widget/. Makes it compile again.
2004-03-05  Michael Natterer  <mitch@gimp.org>

	* gtk/gtkfilechooserdefault.c (gtk_file_chooser_default_show_all):
	s/object/widget/. Makes it compile again.
2004-03-05 09:49:00 +00:00
Jonathan Blandford
5d50d3d16f chain to the extra_widget.
Fri Mar  5 03:37:14 2004  Jonathan Blandford  <jrb@gnome.org>

        * gtk/gtkfilechooserdefault.c (gtk_file_chooser_default_show_all):
        chain to the extra_widget.
2004-03-05 08:37:11 +00:00
Jonathan Blandford
233b7b8be6 Patch from Damon Chaplin to free models when we're finalized, #134053
Fri Mar  5 02:53:41 2004  Jonathan Blandford  <jrb@gnome.org>

        * gtk/gtkfilechooserdefault.c (gtk_file_chooser_default_finalize):
        Patch from Damon Chaplin to free models when we're finalized,
        #134053
2004-03-05 07:58:36 +00:00
Alexander Larsson
8a8798bdbc Document the fact that there might not be a volume for all paths.
2004-03-05  Alexander Larsson  <alexl@redhat.com>

	* gtk/gtkfilesystem.c (gtk_file_system_get_volume_for_path):
	Document the fact that there might not be a volume for all
	paths.

	* gtk/gtkfilechooserdefault.c (shortcuts_add_current_folder):
	Don't assume there is a volume for all paths.
2004-03-05 07:46:06 +00:00
Jonathan Blandford
8bb74888d6 insert in the correct place instead of naïvely appending.
Fri Mar  5 01:45:04 2004  Jonathan Blandford  <jrb@gnome.org>

        * gtk/gtkfilechooserdefault.c (shortcuts_append_paths): insert in
        the correct place instead of naïvely appending.
        (shortcuts_add_volumes): refilter the model
        (shortcuts_add_bookmarks): refilter the model
        (gtk_file_chooser_default_add_shortcut_folder): refilter the model
2004-03-05 06:51:22 +00:00
Federico Mena Quintero
d64c7c08a8 New handler. Ask the GtkFileChooser widget if it wants to do something
2004-03-04  Federico Mena Quintero  <federico@ximian.com>

	* gtk/gtkfilechooserdialog.c (response_cb):  New handler.  Ask the
	GtkFileChooser widget if it wants to do something special rather
	than letting us terminate the dialog.
	(gtk_file_chooser_dialog_init): Connect to "response"; see the
	comment in the sources to see why we don't override the method in
	class_init.

	* gtk/gtkfilechooserembed.h (struct _GtkFileChooserEmbedIface):
	Added a ::should_respond() method.

	* gtk/gtkfilechooserembed.c
	(_gtk_file_chooser_embed_delegate_iface_init): Add a delegate for ::should_respond().
	(delegate_should_respond): New delegate.
	(_gtk_file_chooser_embed_should_respond): New function.

	* gtk/gtkfilechooserdefault.c (set_list_model, create_file_list):
	Use dashes in signal names rather than underscores.
	(gtk_file_chooser_default_init): Hook up our ::should_respond() implementation.
	(gtk_file_chooser_default_should_respond): Implement.  go into a
	folder rather than responding if we are in File mode and the
	selected file is a folder.
	(get_selection): New helper function.
	(add_bookmark_button_clicked_cb): Use get_selection().
	(bookmarks_check_add_sensitivity): Likewise.
	(gtk_file_chooser_default_get_paths): Likewise.
	(check_save_entry): New helper function.
	(gtk_file_chooser_default_get_paths): Use check_save_entry().
	(selection_check): Renamed from selection_is_folders().  Now
	checks whether the selection is empty, all files, all folders.
	(bookmarks_check_add_sensitivity): Use selection_check().
2004-03-05 00:10:59 +00:00
Jonathan Blandford
b1ac4367f5 show the 'New Folder' button in SAVE mode again.
Thu Mar  4 15:20:55 2004  Jonathan Blandford  <jrb@gnome.org>

        * gtk/gtkfilechooserdefault.c (update_appearance): show the 'New
        Folder' button in SAVE mode again.
2004-03-04 21:29:51 +00:00
Jonathan Blandford
778d6904c4 Modified patch from muppet <scott@asofyet.org> to keep child directories
Thu Mar  4 01:32:19 2004  Jonathan Blandford  <jrb@gnome.org>

        * gtk/gtkpathbar.c (gtk_path_bar_set_path): Modified patch from
        muppet <scott@asofyet.org> to keep child directories around if we
        change to a child.

        * gtk/gtkpathbar.c (_gtk_path_bar_set_home_icon): Start of
        icon-setting functions.  Not used yet.
        (_gtk_path_bar_set_root_icon): Ditto.
2004-03-04 06:47:54 +00:00
Jonathan Blandford
e47f7d5827 Don't activate the combo if we're in the midst of changing folders.
Wed Mar  3 16:06:03 2004  Jonathan Blandford  <jrb@gnome.org>

        * gtk/gtkfilechooserdefault.c (save_folder_combo_changed_cb):
        Don't activate the combo if we're in the midst of changing
        folders.
2004-03-03 21:09:46 +00:00
Jonathan Blandford
bb5a499944 Split function into realized and unrealized variants, and consolidate the
Tue Mar  2 23:39:55 2004  Jonathan Blandford  <jrb@gnome.org>

        * gtk/gtkfilechooserdialog.c
        (file_chooser_widget_default_realized_size_changed): Split
        function into realized and unrealized variants, and consolidate
        the handling fo size-changing and default changing.

        * gtk/gtkfilechooserembed.[ch] (gtk_file_chooser_embed_class_init):
        remove resizable-hints-changed, as it just complicated things.

        * gtk/gtkfilechooserdefault.c (update_appearance): Don't emit
        resizable-hints-changed.
2004-03-03 04:52:01 +00:00
Federico Mena Quintero
e50fb68763 Handle errors in setting the path bar's path. Fixes #136000, based on a
2004-03-02  Federico Mena Quintero  <federico@ximian.com>

	* gtk/gtkfilechooserdefault.c
	(gtk_file_chooser_default_set_current_folder): Handle errors in
	setting the path bar's path.  Fixes #136000, based on a patch by
	Morten Welinder.

	* gtk/gtkfilesystemunix.c (gtk_file_system_unix_insert_bookmark):
	Don't free our own propagated error.

	* gtk/gtkpathbar.c (gtk_path_bar_set_path): Likewise, and free the
	parent_path upon error.  Fixes #136006, patch by Morten Welinder.
	(gtk_path_bar_set_path): Unref the file_folder upon error.
	(gtk_path_bar_set_path): Return a boolean success code.
2004-03-03 00:38:19 +00:00
Jonathan Blandford
e8c5b64836 set the default value, spotted by Morten Welinder.
Tue Mar  2 15:19:52 2004  Jonathan Blandford  <jrb@redhat.com>

        * gtk/gtkfilechooserdefault.c
        (gtk_file_chooser_default_get_resizable_hints): set the default
        value, spotted by Morten Welinder.
2004-03-02 20:24:27 +00:00
Jonathan Blandford
87a6680f33 get the logic correct. This will fix sizing on save dialogs.
Tue Mar  2 15:03:15 2004  Jonathan Blandford  <jrb@redhat.com>

        * gtk/gtkfilechooserdefault.c
        (gtk_file_chooser_default_get_resizable_hints): get the logic
        correct.  This will fix sizing on save dialogs.

        (save_widgets_create): set_mnemonic_widget.
2004-03-02 20:09:20 +00:00
Federico Mena Quintero
9133c58b8d Don't update the save folder combo if we are already switching folders;
2004-03-02  Federico Mena Quintero  <federico@ximian.com>

	* gtk/gtkfilechooserdefault.c
	(gtk_file_chooser_default_set_current_folder): Don't update the
	save folder combo if we are already switching folders; based on a
	patch by Jonathan Blandford.

	* gtk/gtkfilechooserdefault.c (shortcuts_add_current_folder):
	Handle failure to insert the path.  Based on a patch by Morten
	Welinder attached to bug #135380.

	* tests/testfilechooser.c (extra_widget_create): Add a bunch of
	buttons to test various things.
2004-03-02 20:05:08 +00:00
Morten Welinder
c0b55fe0d8 Major thinko, trivial patch. /me chances a commit.
2004-03-02  Morten Welinder  <terra@gnome.org>

	* gtk/gtkfilechooserdefault.c
	(gtk_file_chooser_default_get_resizable_hints): Test the
	resize_horizontally pointer, not the deferenced pointer.
2004-03-02 16:14:53 +00:00
Federico Mena Quintero
af409998b8 New flag shortcuts_current_folder_is_volume.
2004-03-01  Federico Mena Quintero  <federico@ximian.com>

	* gtk/gtkfilechooserdefault.c (struct _GtkFileChooserDefault): New
	flag shortcuts_current_folder_is_volume.
	(shortcuts_add_current_folder): Set
	impl->shortcuts_current_folder_is_volume as appropriate.
	(remove_current_folder_cb): Handle the flag.
	(shortcuts_activate_item): Likewise.
	(shortcuts_update_current_folder): Handle the
	impl->shortcuts_current_folder_active flag; only add the folder if
	it doesn't already exist in the list.
	(shortcuts_model_create): Don't insert the current folder
	separator here.
	(shortcuts_add_current_folder): Insert the separator here.
	(shortcut_find_position): Renamed from shortcut_exists(); now
	returns an index.
	(shortcuts_add_current_folder): Set the active item in the combo.
2004-03-02 05:27:51 +00:00
Federico Mena Quintero
4e08da819d Eep, use gtk_tree_model_filter_convert_iter_to_child_iter(), not the
2004-03-01  Federico Mena Quintero  <federico@ximian.com>

	* gtk/gtkfilechooserdefault.c (shortcuts_row_activated_cb): Eep,
	use gtk_tree_model_filter_convert_iter_to_child_iter(), not the reverse.
2004-03-02 03:06:07 +00:00
Federico Mena Quintero
7233e912e2 Don't unref an old model; there isn't one. This was a leftover from when
2004-03-01  Federico Mena Quintero  <federico@ximian.com>

	* gtk/gtkfilechooserdefault.c (shortcuts_model_create): Don't
	unref an old model; there isn't one.  This was a leftover from
	when we recreated the model on every change.
	(save_widgets_create): Create the save folder combo.
	(shortcuts_model_create): Don't set the model on the tree view
	here.
	(gtk_file_chooser_default_constructor): Create the shortcuts model
	here, before the rest of the widgets.
	(shortcuts_list_create): Don't call shortcuts_model_create() here;
	just set the model on the tree.
	(save_folder_combo_create): New function, provided by Jonathan
	Blandford.
	(update_appearance): Set the sensitivity of the folder combo.
	(shortcuts_activate_iter): New helper function; code moved from
	shortcuts_row_activated_cb().
	(shortcuts_activate_item): New helper function.
	(shortcuts_row_activated_cb): Use shortcuts_activate_iter().
	(ShortcutsIndex): Renamed SHORTCUTS_SEPARATOR to
	SHORTCUTS_BOOKMARKS_SEPARATOR.
	(struct _GtkFileChooserDefault): New field shortcuts_current_folder_active.
	(shortcuts_insert_separator): Add a position argument.
	(shortcuts_get_index): Handle the SHORTCUTS_CURRENT_FOLDER_SEPARATOR
	and SHORTCUTS_CURRENT_FOLDER positions.
	(shortcut_exists): Ignore the current folder row.
	(struct _GtkFileChooserDefault): New field shortcuts_filter_model.
	(shortcuts_model_create): Create a filter model for the shortcuts list.
	(shortcuts_list_create): Set the model to the shortcuts_filter_model.
	(remove_bookmark_button_clicked_cb): Use the shortcuts_filter_model.
	(bookmarks_check_remove_sensitivity): Likewise.
	(shortcuts_row_activated_cb): Likewise.
	(gtk_file_chooser_default_set_current_folder): New function.
	(gtk_file_chooser_default_set_current_folder): Update the current
	folder row in the shortcuts list.

	* gtk/gtkfilechooserwidget.c
	(gtk_file_chooser_widget_constructor): Cast correctly for
	_gtk_file_chooser_embed_set_delegate().
2004-03-02 02:59:02 +00:00
Jonathan Blandford
a11c1bd6f3 only store the size if we can resize in that direction.
Mon Mar  1 16:51:21 2004  Jonathan Blandford  <jrb@redhat.com>

        * gtk/gtkfilechooserdialog.c
        (file_chooser_widget_default_size_changed): only store the size if
        we can resize in that direction.
2004-03-01 21:52:04 +00:00
Owen Taylor
945e6c4ecb Based on patch by Alex Larsson
Mon Mar  1 14:16:52 2004  Owen Taylor  <otaylor@redhat.com>

        Based on patch by Alex Larsson

        * gtk/gtkfilechooserdefault.c: Use gtk-file-chooser-backend
        GtkSetting to set the backend if the app doesn't specify one.

        * gdk/x11/gdkevents-x11.c gtk/gtksettings.c:
        Add Gtk/FileChooserBackend.
2004-03-01 19:40:47 +00:00
Federico Mena Quintero
0775cd28a3 Test for filter_info.uri correctly. Fixes #135379, pointed out by Damon
2004-03-01  Federico Mena Quintero  <federico@ximian.com>

	* gtk/gtkfilechooserdefault.c (list_model_filter_func): Test for
	filter_info.uri correctly.  Fixes #135379, pointed out by Damon
	Chaplin.
	(shortcuts_get_index): Compute the bookmarks index correctly.
	Fixes #135714, pointed out by Damon Chaplin.
	(gtk_file_chooser_default_list_shortcut_folders): Handle the case
	with no shortcuts, and don't run off the end of the list if there
	are no bookmarks and their separator.  Fixes #135572, patch by
	Damon Chaplin.
2004-03-01 18:24:06 +00:00
Jonathan Blandford
8f190fbf2f Handle shrinking/growing.
Mon Mar  1 12:05:54 2004  Jonathan Blandford  <jrb@redhat.com>

        * gtk/gtkfilechooserdialog.c
        (file_chooser_widget_resizable_hints_changed): Handle
        shrinking/growing.
2004-03-01 17:08:19 +00:00
Jonathan Blandford
7359903ef0 Add g_return_if_fail() (_gtk_file_chooser_embed_get_resizable_hints): Add
Sun Feb 29 01:51:27 2004  Jonathan Blandford  <jrb@gnome.org>

        * gtk/gtkfilechooserembed.c
        (_gtk_file_chooser_embed_get_default_size):  Add g_return_if_fail()
        (_gtk_file_chooser_embed_get_resizable_hints): Add g_return_if_fail()

        * gtk/gtkfilechooserdialog.c
        (file_chooser_widget_default_size_changed): Get the correct
        initial size for the dialog.  Also, don't bother with
        gtk_window_set_default_size().  It's not really meaningful.

        * gtk/gtkfilechooserdefault.c
        (gtk_file_chooser_default_get_default_size): Get the correct
        spacing for the preview_widget
        (update_preview_widget_visibility): Clear widget field after we
        destroy it.
2004-02-29 07:55:24 +00:00
Federico Mena Quintero
17e840f79c Handle GTK_FILE_CHOOSER_PROP_USE_PREVIEW_LABEL.
2004-02-29  Federico Mena Quintero  <federico@ximian.com>

	* gtk/gtkfilechooserdefault.c
	(gtk_file_chooser_default_set_property): Handle
	GTK_FILE_CHOOSER_PROP_USE_PREVIEW_LABEL.
	(gtk_file_chooser_default_get_property): Likewise.
	(struct _GtkFileChooserDefault): Added fields for preview_label,
	use_preview_label, preview_display_name, preview_box.  Removed
	preview_frame.
	(set_preview_widget): Reorder the widget in relation to the label.
	(update_preview_widget_visibility): Create or destroy the preview
	label.
	(check_preview_change): Update impl->preview_display_name and the
	label.
	(find_good_size_from_style): Use the preview_box.
	(gtk_file_chooser_default_finalize): Free
	impl->preview_display_name.
	(gtk_file_chooser_default_init): Initialize
	impl->use_preview_label.

	* gtk/gtkfilechooser.c (gtk_file_chooser_class_init): Add a
	"use-preview-label" property.
	(gtk_file_chooser_set_use_preview_label): New function.  This sets
	whether one wants the file chooser to display a stock label with
	the previewed filename.  Apps that do really fancy previews can
	turn this off and draw the name themselves.
	(gtk_file_chooser_get_use_preview_label): New function.
	(gtk_file_chooser_get_preview_widget_active): Documentation fix.

	* gtk/gtkfilechooserutils.h (GtkFileChooserProp): Add a
	GTK_FILE_CHOOSER_PROP_USE_PREVIEW_LABEL value.

	* gtk/gtkfilechooserutils.c
	(_gtk_file_chooser_install_properties): Override the
	"use-preview-label" property.
2004-02-29 06:35:15 +00:00
Federico Mena Quintero
e403f769d5 Use "Name" for the title of the filename column. (create_file_list):
2004-02-28  Federico Mena Quintero  <federico@ximian.com>

	* gtk/gtkfilechooserdefault.c (create_folder_tree): Use "Name" for
	the title of the filename column.
	(create_file_list): Likewise.
2004-02-29 02:59:05 +00:00
Federico Mena Quintero
8a7f716aa4 Removed. (list_name_data_func): Don't call the function above.
2004-02-28  Federico Mena Quintero  <federico@ximian.com>

	* gtk/gtkfilechooserdefault.c (set_cell_text_bold_if_folder):
	Removed.
	(list_name_data_func): Don't call the function above.
	(list_mtime_data_func): Likewise.
2004-02-29 02:16:58 +00:00
Jonathan Blandford
0cfdc7fb2b New private interface to help negotiate the default size of the widget.
Fri Feb 27 18:46:27 2004  Jonathan Blandford  <jrb@redhat.com>

        * gtk/gtkfilechooserembed.h: New private interface to help
        negotiate the default size of the widget.  Still a bit buggy, but
        better than the old behavior.

        * gtk/gtkfilechooserdefault.c: Implement the embed interface.

        * gtk/gtkfilechooserwidget.c: Proxy the embed interface.

        * gtk/gtkfilechooserdialog.c: Use the embed interface.
2004-02-27 23:51:16 +00:00
Federico Mena Quintero
c9e88e4e67 Added a "position" argument.
2004-02-27  Federico Mena Quintero  <federico@ximian.com>

	* gtk/gtkfilesystem.c (gtk_file_system_insert_bookmark): Added a
	"position" argument.

	* gtk/gtkfilesystem.h (GtkFileSystemError): Added value for
	GTK_FILE_SYSTEM_ERROR_ALREADY_EXISTS.
	(struct _GtkFileSystemIface): Added a "position" argument to the
	::insert_bookmark() method.

	* gtk/gtkfilesystemunix.c (gtk_file_system_unix_insert_bookmark):
	Updated; renamed from gtk_file_system_unix_add_bookmark().  Return
	an error if the path already exists in the bookmarks list.
	(gtk_file_system_unix_remove_bookmark): Return an error if the
	path does not exist in the bookmarks list.

	* gtk/gtkfilechooserdefault.c (shortcuts_add_bookmark_from_path):
	For now, use gtk_file_system_insert_bookmark() with -1 for the
	position.  DnD will come next.
2004-02-27 20:48:22 +00:00
Jonathan Blandford
d40eda7e87 Add two more folder modes to the enum.
Thu Feb 26 18:25:57 2004  Jonathan Blandford  <jrb@gnome.org>

        * gtk/gtkfilechooser.h (GtkFileChooserAction): Add two more folder
        modes to the enum.

        * gtk/gtkfilechooser.c (gtk_file_chooser_set_folder_mode): Remove.
        (gtk_file_chooser_get_folder_mode): Remove
2004-02-26 23:35:05 +00:00
Jonathan Blandford
4d5baf9f63 move the expander code.
Wed Feb 25 16:00:40 2004  Jonathan Blandford  <jrb@gnome.org>

        * gtk/gtkfilechooserdefault.c (update_appearance): move the
        expander code.
2004-02-25 21:05:30 +00:00
Jonathan Blandford
2ef8bbc976 use gtk_widget_push/pop_composite_child around internal buttons.
Wed Feb 25 03:52:58 2004  Jonathan Blandford  <jrb@gnome.org>

        * gtk/gtkpathbar.c: use gtk_widget_push/pop_composite_child around
        internal buttons.

        * gtk/gtkfilechooserdefault.c (struct _GtkFileChooserDefault):
        rename some widgets to make it clear where they are packed.
        (update_appearance): New function to handle all the 'logic' of
        layout in one place.  We aren't trying to keep all our properties
        in sync.
        (gtk_file_chooser_default_set_property): use update_appearance()
2004-02-25 08:55:48 +00:00
Federico Mena Quintero
903e2de0c3 Renamed from create_shortcuts_model(). (struct _GtkFileChooserDefault):
2004-02-24  Federico Mena Quintero  <federico@ximian.com>

	* gtk/gtkfilechooserdefault.c (shortcuts_model_create): Renamed
	from create_shortcuts_model().
	(struct _GtkFileChooserDefault): Renamed the shortcuts_tree field
	to shortcuts_list.
	(shortcuts_list_create): Renamed from shortcuts_tree_create().
	(create_file_list): Enable the tree view as a model drag source.
	(create_folder_tree): Likewise.

	* gtk/gtkfilesystemmodel.c (_gtk_file_system_model_get_type):
	Register the drag source interface.
	(drag_source_iface_init): New function.
	(drag_source_row_draggable): New function.
	(drag_source_drag_data_get): New function.
2004-02-25 03:03:11 +00:00
Federico Mena Quintero
359748bd27 Use a plain GtkEntry for the filename, not a GtkFileChooserEntry.
2004-02-24  Federico Mena Quintero  <federico@ximian.com>

	* gtk/gtkfilechooserdefault.c (save_widgets_create): Use a plain
	GtkEntry for the filename, not a GtkFileChooserEntry.
	(update_chooser_entry): Use gtk_entry_set_text() rather than
	_gtk_file_chooser_entry_set_file_part().
	(gtk_file_chooser_default_set_current_name): Likewise.
	(gtk_file_chooser_default_set_current_folder): Don't set the base
	folder of the entry, and don't call update_chooser_entry().
	(gtk_file_chooser_default_get_paths): Use the plain entry.
	(save_widgets_create): Store the "Save in Folder" label in the
	impl structure.
	(expander_activate_cb): Set the sensitivity of the label and
	combo.
	(save_widgets_create): Connect to "notify::expanded" rather than
	"activate" on the expander.
	(expander_changed_cb): Renamed from expander_activate_cb().  Flip
	the conditions again...
2004-02-24 20:30:54 +00:00
Anders Carlsson
0cc7bb4f20 Fix compilation (#135278, Padraig O'Briain).
2004-02-24  Anders Carlsson  <andersca@gnome.org>

	* gtk/gtkfilechooserdefault.c: (shortcuts_insert_separator):
	Fix compilation (#135278, Padraig O'Briain).
2004-02-24 11:48:13 +00:00
Anders Carlsson
4ce7278ecf Translate the desktop label.
2004-02-24  Anders Carlsson  <andersca@gnome.org>

	* gtk/gtkfilechooserdefault.c: (shortcuts_append_desktop):
	Translate the desktop label.

	(shortcuts_get_index), (shortcuts_add_bookmarks),
	(shortcuts_insert_separator), (create_shortcuts_model):
	Don't show the bookmark separator if there are no bookmarks.
2004-02-24 10:11:47 +00:00
Jonathan Blandford
6f75d838e8 Make the dialog look like the nautilus dialog. (expander_activate_cb): get
Tue Feb 24 01:41:30 2004  Jonathan Blandford  <jrb@gnome.org>

        * gtk/gtkfilechooserdefault.c (location_popup_handler): Make the
        dialog look like the nautilus dialog.
        (expander_activate_cb): get the order correct.
2004-02-24 06:47:51 +00:00
Federico Mena Quintero
e4e9e08caf Call bookmarks_check_add_sensitivity(). (shortcut_exists): New helper
2004-02-23  Federico Mena Quintero  <federico@ximian.com>

	* gtk/gtkfilechooserdefault.c (list_selection_changed): Call
	bookmarks_check_add_sensitivity().
	(shortcut_exists): New helper function; moved the testing code
	over from bookmarks_check_add_sensitivity().
	(bookmarks_check_add_sensitivity): Check the contents of the
	selection in the file/folder list.  Use shortcut_exists().
	(shortcuts_add_bookmark_from_path): Don't insert the bookmark if
	the path is already in the shortcuts list.
	(add_bookmark_button_clicked_cb): Add the bookmarks from the list
	selection or from the current folder, as appropriate.
2004-02-24 03:37:32 +00:00
Jonathan Blandford
93732fb225 Add mnemonics. Sorry translators.
Mon Feb 23 21:09:06 2004  Jonathan Blandford  <jrb@gnome.org>

        * gtk/gtkfilechooserdefault.c (shortcuts_pane_create): Add
        mnemonics.  Sorry translators.
2004-02-24 02:09:20 +00:00
Anders Carlsson
d6286bc3c4 Improve bookmark list rendering by controlling the visibility of the
2004-02-24  Anders Carlsson  <andersca@gnome.org>

	* gtk/gtkfilechooserdefault.c: (shortcuts_insert_path),
	(shortcuts_remove_rows), (shortcuts_append_bookmarks),
	(create_shortcuts_model), (shortcuts_tree_create),
	(gtk_file_chooser_default_remove_shortcut_folder):
	Improve bookmark list rendering by controlling the visibility
	of the pixbuf cell so that it will be invisible for the separator
	row, also use a list store instead of a tree store for the model
	so we won't get unnecessary space for an expander.
2004-02-24 00:15:23 +00:00
Jonathan Blandford
95e7d61e6b use a size group when allocating space for the buttons at the bottom just
Mon Feb 23 17:52:43 2004  Jonathan Blandford  <jrb@gnome.org>

        * gtk/gtkfilechooserdefault.c (main_paned_create): use a size
        group when allocating space for the buttons at the bottom just in
        case.  Also, move the filter to below the file list.
2004-02-23 22:56:55 +00:00
Jonathan Blandford
6b5ba8d25d Seth was confused by keybindings. They should be Alt, not Ctl. Also,
Mon Feb 23 16:52:12 2004  Jonathan Blandford  <jrb@gnome.org>

        * gtk/gtkfilechooserdefault.c
        (gtk_file_chooser_default_class_init): Seth was confused by
        keybindings.  They should be Alt, not Ctl.  Also, A-Home should go
        home, not up.
2004-02-23 22:07:55 +00:00
Jonathan Blandford
4b041f8241 Display the root a bit more cleanly.
Mon Feb 23 15:23:23 2004  Jonathan Blandford  <jrb@gnome.org>

        * gtk/gtkpathbar.c (gtk_path_bar_set_path): Display the root a bit
        more cleanly.

        * gtk/gtkpathbar.h (struct _GtkPathBarClass): fix the signal.
2004-02-23 20:24:01 +00:00
Federico Mena Quintero
fa72f157ac Rework the user interface of the file chooser, as per Seth Nickell's
2004-02-23  Federico Mena Quintero  <federico@ximian.com>

	Rework the user interface of the file chooser, as per
	Seth Nickell's design.

	* gtk/gtkfilechooserdefault.c
	(gtk_file_chooser_default_class_init): Add binding signals and bindings:
		"location-popup" - C-l
		"up-folder"      - C-Up
		"home-folder"    - C-Home
	(up_folder_handler): New function; moved the code from up_button_clicked().
	(up_button_clicked_cb): Call up_folder_handler().
	(home_folder_handler): New function.
	(location_popup_handler): New function.
	(struct _GtkFileChooserDefault): Add an hpaned field.
	(gtk_file_chooser_default_set_current_name): Check that we are in
	Save mode.
	(save_widgets_create): New function, create the widgets specific
	to Save mode.
	(main_paned_create): New function, create the hpaned's widgets here.
	(gtk_file_chooser_default_constructor): Create the open and save
	widgets, and show only one set.
	(gtk_file_chooser_default_set_property): Show/hide the save widgets.
	(gtk_file_chooser_default_get_paths): Only pay attention to the
	entry in Save mode.
	(update_chooser_entry): Update the entry only in Save mode.
	(entry_activate): Removed.
2004-02-23 19:55:49 +00:00
Jonathan Blandford
decffc9d95 Use the GtkPathBar by default now.
Mon Feb 23 02:08:42 2004  Jonathan Blandford  <jrb@gnome.org>

        * gtk/gtkfilechooserdefault.c (file_pane_create): Use the
        GtkPathBar by default now.

        * gtk/gtkpathbar.c (gtk_path_bar_set_path): Correctly set the
        current path from the path.
        (gtk_path_bar_class_init): new signal
        (button_clicked_cb): emit the signal when we're selected.
        (gtk_path_bar_clear_buttons): Fix a crasher when we weren't
        clearing thr first_scrolled_button.
2004-02-23 07:11:31 +00:00
Jonathan Blandford
b379bc580e conditional compile for GtkPathBar
Fri Feb 20 18:20:22 2004  Jonathan Blandford  <jrb@gnome.org>

        * gtk/gtkfilechooserdefault.c: conditional compile for GtkPathBar

        * gtk/gtkpathbar.c (gtk_path_bar_size_allocate): Clean up
        allocation code.  Works fully in RTL languages, I think.
        (gtk_path_bar_scroll_up): Scroll up.
        (gtk_path_bar_scroll_down): Scroll down.
2004-02-20 23:21:01 +00:00
Alexander Larsson
0300bfdc32 Desktop directory is not translated. (set_tree_model): There might not be
2004-02-20  Alexander Larsson  <alexl@redhat.com>

	* gtk/gtkfilechooserdefault.c: (shortcuts_append_desktop):
	Desktop directory is not translated.
	(set_tree_model):
	There might not be volumes for all paths.
	* gtk/gtkfilechooserwidget.c:
	(gtk_file_chooser_widget_constructor):
	Use gtk_file_chooser_set_current_folder to set cwd.
2004-02-20 07:52:56 +00:00
Alexander Larsson
824548f1e4 Remove old file-system property. Add new file-system-backend string
2004-02-19  Alexander Larsson  <alexl@redhat.com>

	* gtk/gtkfilechooser.c: (gtk_file_chooser_class_init):
	* gtk/gtkfilechooserutils.c:
	* gtk/gtkfilechooserutils.h:
	* gtk/gtkfilechooserwidget.c:
	Remove old file-system property.
	Add new file-system-backend string property

	* gtk/gtkfilechooserdefault.[ch]:
	Handle the file-system-backend property

	* gtk/gtkfilechooserdialog.[ch]:
	(gtk_file_chooser_dialog_new_with_backend):
	Remove old file-system property.
	Add new file-system-backend string property
	Add new function gtk_file_chooser_dialog_new_with_backend

	* gtk/gtkfilesystem.c:
	* gtk/gtkfilesystem.h:
	Add filesystem module support.
2004-02-19 07:43:39 +00:00
Federico Mena Quintero
4c35b74301 Renamed from create_shortcuts_tree(). (shortcuts_pane_create): New
2004-02-18  Federico Mena Quintero  <federico@ximian.com>

	* gtk/gtkfilechooserdefault.c (shortcuts_tree_create): Renamed
	from create_shortcuts_tree().
	(shortcuts_pane_create): New function.
	(button_new): Renamed from toolbar_button_new().
	(shortcuts_pane_create): New function, create the whole shortcuts
	pane here.
	(current_folder_create): Renamed from toolbar_create().  Don't
	create the bookmarks buttons here.
	(file_pane_create): New function.
	(gtk_file_chooser_default_constructor): Use the new helper
	functions, and don't use an extra vbox as GtkFileChooserDefault is
	already a vbox.
2004-02-19 03:22:22 +00:00
Federico Mena Quintero
e27a88458f Free the filters. Fixes #133547, patch by Morten Welinder
2004-02-10  Federico Mena Quintero  <federico@ximian.com>

	* gtk/gtkfilechooserdefault.c (gtk_file_chooser_default_finalize):
	Free the filters.  Fixes #133547, patch by Morten Welinder
	<mortenw@gnome.org>.
2004-02-10 19:48:38 +00:00
Federico Mena Quintero
87c45c73b1 Fixes the entry-related part of #133852.
2004-02-10  Federico Mena Quintero  <federico@ximian.com>

	Fixes the entry-related part of #133852.

	* gtk/gtkfilechooserdefault.c (update_chooser_entry): Don't change
	the file part of the entry if the selected item is a folder.
2004-02-10 18:29:11 +00:00
Federico Mena Quintero
76108bc3da Request GTK_FILE_INFO_ALL from the file system model, so that arbitrary
2004-02-09  Federico Mena Quintero  <federico@ximian.com>

	* gtk/gtkfilechooserdefault.c (set_list_model): Request
	GTK_FILE_INFO_ALL from the file system model, so that arbitrary
	filtering will work.  Perhaps we should have a way of aggregating
	info types to the model as filters get installed.
2004-02-09 21:58:26 +00:00
Federico Mena Quintero
11ad0f9d65 Fix #132256.
2004-02-09  Federico Mena Quintero  <federico@ximian.com>

	Fix #132256.

	* gtk/gtkfilechooserdefault.c
	(gtk_file_chooser_default_get_paths): Read the contents of the
	filename entry in both OPEN and SAVE mode.  In multiple-selection
	mode, add this to the selection from the file/folder list.
	(struct get_paths_closure): Add a path_from_entry field.
	(get_paths_foreach): Only add the iterated path if it is not the
	same as the path from the entry.
2004-02-09 20:31:38 +00:00
Jonathan Blandford
0180cce7f9 clean up the packing of the file selector.
Fri Feb  6 23:40:24 2004  Jonathan Blandford  <jrb@gnome.org>

        * gtk/gtkfilechooserdefault.c (create_file_list): clean up the
        packing of the file selector.
2004-02-07 17:28:36 +00:00
Federico Mena Quintero
fd05813a0f Free the list. Fixes #133546.
2004-02-06  Federico Mena Quintero  <federico@ximian.com>

	* gtk/gtkfilechooserdefault.c (shortcuts_add_volumes): Free the
	list.  Fixes #133546.
2004-02-06 16:21:39 +00:00
Federico Mena Quintero
07de591757 Fix #132247.
2004-01-23  Federico Mena Quintero  <federico@ximian.com>

	Fix #132247.

	* gtk/gtkfilechooserdefault.c (set_select_multiple): Handle folder
	mode.
	(set_select_multiple): Optionally notify about changes to the
	select-multiple property.
	(list_selection_changed): Change the condition for the editable row to
	test for save mode; this is more clear than testing for not being
	in multiple selection mode.
	(gtk_file_chooser_default_get_paths): Get impl->action directly
	rather than calling gtk_file_chooser_get_action().
	(entry_activate): Likewise.
	(set_select_multiple): Annotate about #133255.
	(update_chooser_entry): Likewise.
	(check_preview_change): Likewise.
	(tree_selection_changed): Likewise.
2004-01-23 20:15:05 +00:00
Federico Mena Quintero
56913b4b3b Free the path fields.
2004-01-21  Federico Mena Quintero  <federico@ximian.com>

	* gtk/gtkfilechooserdefault.c (gtk_file_chooser_default_finalize):
	Free the path fields.

	* gtk/gtkfilesystemmodel.c (gtk_file_system_model_finalize): Free
	the root_path, reported by <scott@asofyet.org>
	(gtk_file_system_model_finalize): Unref the file system.

	* gtk/gtkfilefilter.c (filter_rule_free): default:
	g_assert_not_reached().
	(gtk_file_filter_finalize): Free the filter->name, reported by
	<scott@asofyet.org>
	(gtk_file_filter_finalize): Free the rules list.
2004-01-22 02:39:31 +00:00
Federico Mena Quintero
45e6ab2d84 Fix #131418.
2004-01-19  Federico Mena Quintero  <federico@ximian.com>

	Fix #131418.

	* gtk/gtkfilechooserdefault.c (set_select_multiple): New helper
	function.
	(gtk_file_chooser_default_set_property): Use
	set_select_multiple().  Also, re-set this mode to single if the
	file chooser is set to Save mode.
	(entry_activate): Handle the case where the entry is completely
	empty *and* its current folder does exist.  Also, there is need to
	test for select_multiple here now that we ensure that it won't
	happen during Save mode.
2004-01-20 02:44:58 +00:00
Federico Mena Quintero
02cb455471 Added a has_editable field. (_gtk_file_system_model_add_editable): New
2004-01-16  Federico Mena Quintero  <federico@ximian.com>

	* gtk/gtkfilesystemmodel.c (struct _GtkFileSystemModel): Added a
	has_editable field.
	(_gtk_file_system_model_add_editable): New function.
	(_gtk_file_system_model_remove_editable): New function.
	(gtk_file_system_model_get_value): Return appropriate values for
	the temporary editable row.
	(_gtk_file_system_model_get_info): Handle the editable row.
	(_gtk_file_system_model_get_path): Likewise.

	* gtk/gtkfilechooserdefault.c (shortcuts_append_bookmarks):
	Removed an unused variable.
	(toolbar_button_new): Optionally show the button.
	(up_button_clicked_cb): Renamed from up_button_cb(), fixed prototype.
	(toolbar_create): Add a "New Folder" button for Save mode.
	(error_building_filename_dialog): New helper function.
	(gtk_file_chooser_default_get_paths): Use error_building_filename_dialog().
	(create_file_list): Connect to the "edited" signal of the text
	cell renderer.  Store the name column and text renderer in the
	impl structure.
	(renderer_edited_cb): New callback.
	(gtk_file_chooser_default_set_property): Show/hide the "New
	folder" button when the save action changes.
	(COMPARE_DIRECTORIES): Allow the info values to be NULL.
	(COMPARE_DIRECTORIES): Duh, use the list_model, not the
	tree_model.
	(get_list_file_info): Likewise!
	(list_icon_data_func): Handle the path being NULL.
	(new_folder_button_clicked): New callback.
	(list_name_data_func): If we are on the editable row, set the text
	to "Type name of new folder".
	(list_selection_changed): Handle the editable row.
	(list_mtime_data_func): Likewise.

	* gtk/gtkfilesystemunix.c (gtk_file_system_unix_make_path): Return
	NULL, not FALSE.
	(gtk_file_system_unix_create_folder): Test the result of mkdir() correctly.
2004-01-17 04:34:49 +00:00
Federico Mena Quintero
c6860c111b Do not allow setting select_multiple when in Save mode. (set_list_model):
2004-01-16  Federico Mena Quintero  <federico@ximian.com>

	* gtk/gtkfilechooserdefault.c
	(gtk_file_chooser_default_set_property): Do not allow setting
	select_multiple when in Save mode.
	(set_list_model): No need to nullify the list_model and
	sort_model.
	(gtk_file_chooser_default_get_paths): Handle folder mode as well.
	(get_paths_foreach): Likewise.

	* gtk/gtkfilechooser.c (gtk_file_chooser_get_filename): Clarify
	documentation about folder mode.
	(gtk_file_chooser_get_uri): Likewise.
2004-01-16 05:12:21 +00:00
Federico Mena Quintero
f2f12b9aae New get_volume_for_path() method. (struct _GtkFileSystemIface): Finally
2004-01-16  Federico Mena Quintero  <federico@ximian.com>

	* gtk/gtkfilesystem.h (struct _GtkFileSystemIface): New
	get_volume_for_path() method.
	(struct _GtkFileSystemIface): Finally removed the list_roots() and
	get_root_info() methods, and the "roots-changed" signal.

	* gtk/gtkfilesystem.c (gtk_file_system_get_volume_for_path): New
	function.
	(gtk_file_system_list_roots): Removed.
	(gtk_file_system_get_root_info): Removed.

	* gtk/gtkfilesystemunix.c
	(gtk_file_system_unix_get_volume_for_path): Implement.
	(get_root_volume): New helper function.
	(gtk_file_system_unix_list_volumes): Use get_root_volume().
	(gtk_file_system_unix_list_roots): Removed.
	(gtk_file_system_unix_get_root_info): Removed.

	* gtk/gtkfilesystemmodel.c (_gtk_file_system_model_new): Don't
	accept a NULL root_path.
	(struct _GtkFileSystemModel): Add a field to remember the
	root_path.
	(_gtk_file_system_model_new): Store the root_path in the model
	structure.
	(find_and_ref_path): Stop going up the hierarchy at the root_path
	of the model.  Also, don't return prematurely when walking up the
	hierarchy.

	* gtk/gtkfilechooserdefault.c (create_file_list): Sigh, restore
	the rules_hint.
	(struct _GtkFileChooserDefault): Added a current_volume_path field.
	(set_tree_model): New function; create the folder tree model here.
	(create_folder_tree): Don't create the model here.
	(set_list_model): Set the show_hidden flag on the list model.
2004-01-16 03:35:33 +00:00
Jan Arne Petersen
77cbf47adf add REMOVABLE column to the shortcuts_model.
2004-01-07  Jan Arne Petersen  <jpetersen@uni-bonn.de>

        * gtk/gtkfilechooserdefault.c: (shortcuts_insert_path),
        (shortcuts_append_home), (shortcuts_append_desktop),
        (shortcuts_append_paths), (shortcuts_add_volumes),
        (shortcuts_append_bookmarks), (create_shortcuts_model),
        (gtk_file_chooser_default_add_shortcut_folder): add REMOVABLE column
        to the shortcuts_model.

        (remove_bookmark_button_clicked_cb),
        (bookmarks_check_remove_sensitivity): use REMOVABLE column to check if
        bookmarks can be removed. Fixes #129873
2004-01-07 17:07:18 +00:00
Federico Mena Quintero
96b8f1c176 Oops, call shortcuts_add_bookmarks() here.
2004-01-05  Federico Mena Quintero  <federico@ximian.com>

	* gtk/gtkfilechooserdefault.c (shortcuts_append_bookmarks): Oops,
	call shortcuts_add_bookmarks() here.
	(remove_bookmark_button_clicked_cb): Ahem, fetch the selected
	iter.
	(shortcuts_append_paths): Don't display error dialogs here.
	(create_file_list): Remove the @#$% rules hint.
2004-01-06 05:13:31 +00:00
Federico Mena Quintero
50e38e513a New helper function. (toolbar_create): Do not use a toolbar widget, just
2004-01-05  Federico Mena Quintero  <federico@ximian.com>

	* gtk/gtkfilechooserdefault.c (toolbar_button_new): New helper
	function.
	(toolbar_create): Do not use a toolbar widget, just an hbox
	instead.  Add the bookmarks buttons and the current folder label
	here.
	(create_filename_entry_and_filter_combo): Create the filter combo
	here.
	(filter_create): Don't show the filter combo initially.
	(up_button_cb): Renamed from toolbar_up_cb().
	(create_shortcuts_buttons): Removed.
2004-01-06 04:18:42 +00:00
Christian Neumair
0e08ebc7d4 Use ngettext for plurals (#123847). 2003-12-31 16:02:22 +00:00
Federico Mena Quintero
700335123a Make show_all() work for the extra and preview widgets; reported by Paolo
2003-12-29  Federico Mena Quintero  <federico@ximian.com>

	Make show_all() work for the extra and preview widgets; reported
	by Paolo Maggi.

	* gtk/gtkfilechooserdefault.c (set_preview_widget): show_all() the
	preview widget.
	(set_extra_widget): show_all() the extra widget.
2003-12-29 20:55:01 +00:00
Federico Mena Quintero
f615072cde Use g_date_strftime() for UTF-8 correctness; use Julian dates to simplify
2003-12-19  Federico Mena Quintero  <federico@ximian.com>

	* gtk/gtkfilechooserdefault.c (list_mtime_data_func): Use
	g_date_strftime() for UTF-8 correctness; use Julian dates to
	simplify the function.
2003-12-19 17:38:54 +00:00
Federico Mena Quintero
8baf8571b5 Added a "volumes-changed" signal. Added the following methods:
2003-12-16  Federico Mena Quintero  <federico@ximian.com>

	* gtk/gtkfilesystem.h (struct _GtkFileSystemIface): Added a
	"volumes-changed" signal.  Added the following methods:
		list_volumes
		volume_free
		volume_get_base_path
		volume_get_is_mounted
		volume_mount
		volume_get_display_name
		volume_render_icon

	* gtk/gtkfilesystem.c (gtk_file_system_base_init): Create the
	"volumes-changed" signal.
	(gtk_file_system_list_volumes): New function.
	(gtk_file_system_volume_free): New function.
	(gtk_file_system_volume_get_base_path): New function.
	(gtk_file_system_volume_get_is_mounted): New function.
	(gtk_file_system_volume_mount): New function.
	(gtk_file_system_volume_get_display_name): New function.
	(gtk_file_system_volume_render_icon): New function.

	* gtk/gtkfilesystemunix.c (gtk_file_system_unix_volume_free): Implement.
	(gtk_file_system_unix_volume_get_base_path): Implement.
	(gtk_file_system_unix_volume_get_is_mounted): Implement.
	(gtk_file_system_unix_volume_mount): Implement.
	(gtk_file_system_unix_volume_get_display_name): Implement.
	(gtk_file_system_unix_volume_render_icon): Implement.

	* gtk/gtkfilechooserdefault.c (struct _GtkFileChooserDefault):
	Added a field for the "volumes-changed" signal connection.
	(gtk_file_chooser_default_set_property): Connect to
	"volumes-changed" on the file system.
	(gtk_file_chooser_default_finalize): Disconnect from
	"volumes-changed".

	* gtk/gtkfilechooserdefault.c (shortcuts_remove_rows): New helper
	function.
	(shortcuts_get_index): New helper function.
	(shortcuts_insert_path): Can now insert volumes as well as paths.
	(shortcuts_append_paths): Don't take is_file_system_root.
	(shortcuts_add_volumes): New function.
	(shortcuts_append_file_system_roots): Removed.
	(create_shortcuts_model): Use shortcuts_add_volumes().
	(remove_bookmark_button_clicked_cb): Check that the index is
	within range.
	(bookmarks_check_add_sensitivity): Take volumes into account.
	(shortcuts_get_selected_index): New helper function.
	(remove_bookmark_button_clicked_cb): Use
	shortcuts_get_selected_index().
	(bookmarks_check_remove_sensitivity): Likewise.
	(shortcuts_select_func): Likewise.
	(shortcuts_row_activated_cb): Handle volumes as well as normal
	paths.
	(shortcuts_activate_volume): New function.
	(struct _GtkFileChooserDefault): Removed the bookmarks_set and
	bookmarks_iter fields.
	(shortcuts_append_bookmarks): Use shortcuts_remove_rows().
	(bookmarks_changed_cb): Use shortcuts_add_bookmarks().
	(remove_bookmark_rows): Removed.
	(shortcuts_add_bookmarks): New function; moved most of the code
	over from shortcuts_append_bookmarks().
	(shortcuts_append_bookmarks): Add the separator node here, and
	then call shortcuts_add_bookmarks().
2003-12-17 05:55:16 +00:00
Federico Mena Quintero
c9c99b3f1b Added toolbar items for the filter separator and the filter item.
2003-12-10  Federico Mena Quintero  <federico@ximian.com>

	* gtk/gtkfilechooserdefault.c (struct _GtkFileChooserDefault):
	Added toolbar items for the filter separator and the filter item.
	(toolbar_create): Add the filter widgets here.
	(filter_create): Renamed from create_filter().  Don't store the
	alignment in the impl structure, just return it.
	(toolbar_show_filters): New function.
	(gtk_file_chooser_default_add_filter): Use toolbar_show_filters().
	(gtk_file_chooser_default_remove_filter): Likewise.
	(gtk_file_chooser_default_constructor): Don't create the filter
	widget here.
	(struct _GtkFileChooserDefault): Added a field for a current
	folder label.
	(gtk_file_chooser_default_constructor): Create the folder label.
	(gtk_file_chooser_default_set_current_folder): Set the current
	folder label.

	* tests/testfilechooser.c (main): Dramatically improved the
	usability of the extra widget through careful word choice.
2003-12-10 20:49:44 +00:00
Federico Mena Quintero
6a97a16921 Use "Home" rather than "Username's Home" (#125964).
2003-12-09  Federico Mena Quintero  <federico@ximian.com>

	* gtk/gtkfilechooserdefault.c (shortcuts_append_home): Use "Home"
	rather than "Username's Home" (#125964).
	(shortcuts_selection_changed_cb): New callback, check the
	sensitivity of the Remove Bookmark button at the right time.
	(shortcuts_row_activated_cb): It is not necessary to check the
	sensitivity here.
2003-12-10 03:46:30 +00:00
Jan Arne Petersen
dd03351616 Use the behavior of the GtkFileSelection to determine selected paths in
2003-12-08  Jan Arne Petersen  <jpetersen@uni-bonn.de>

	* gtk/gtkfilechooserdefault.c:
	(gtk_file_chooser_default_get_paths), (entry_activate): Use the
	behavior of the GtkFileSelection to determine selected paths in
	single selected, GTK_FILE_CHOOSER_ACTION_SAVE mode.

2003-12-08  Federico Mena Quintero  <federico@ximian.com>

	* gtk/gtkfilechooserdefault.c
	(gtk_file_chooser_default_get_paths): Don't declare the closure
	struct twice.
	(get_paths_foreach): Likewise.
2003-12-08 23:38:57 +00:00
Federico Mena Quintero
bfa64d0cde Decouple impl->current_folder from the selection in the folder tree. This
2003-12-01  Federico Mena Quintero  <federico@ximian.com>

	Decouple impl->current_folder from the selection in the folder
	tree.  This is so that going to /home/federico/.foo (e.g. from a
	bookmark) will work even if show_hidden == FALSE.  The folder tree
	needs to be fixed in this case to show such folders explicitly.

	* gtk/gtkfilechooserdefault.c
	(gtk_file_chooser_default_set_current_folder): When changing
	folders, do the entry and list model work here, instead of
	tree_selection_changed().
	(struct _GtkFileChooserDefault): Added a changing_folder flag
	again, dum de dum.
	(tree_selection_changed): Use _gtk_file_chooser_set_current_folder_path().
2003-12-02 04:23:06 +00:00
Federico Mena Quintero
c5dc8cf660 Patch from Hans-Petter Jansson <hpj@ximian.com> to align the bookmarks
2003-12-01  Federico Mena Quintero  <federico@ximian.com>

	Patch from Hans-Petter Jansson <hpj@ximian.com> to align the
	bookmarks buttons with the location entry.

	* gtk/gtkfilechooserdefault.c
	(gtk_file_chooser_default_constructor): Use a GtkSizeGroup for the
	bookmarks buttons and the location entry.
2003-12-01 18:57:17 +00:00
Federico Mena Quintero
3efec0d69e Set the shortcuts tree as a drag destination.
2003-12-01  Federico Mena Quintero  <federico@ximian.com>

	* gtk/gtkfilechooserdefault.c (create_shortcuts_tree): Set the
	shortcuts tree as a drag destination.
	(shortcuts_drag_data_received_cb): New callback.
	(get_file_info): Also fetch information on whether the file is a folder.
	(add_bookmark_button_clicked_cb): Use error_could_not_add_bookmark_dialog().
	(error_could_not_add_bookmark_dialog): New function.
	(shortcuts_add_bookmark_from_path): New helper function.
	(add_bookmark_button_clicked_cb): Use shortcuts_add_bookmark_from_path().
	(shortcuts_row_activated): We no longer need the changing_folder flag.
	(struct _GtkFileChooserDefault): Likewise.
2003-12-01 15:33:37 +00:00
Federico Mena Quintero
e2240850e8 Fixes to problems reported by Iain Holmes:
2003-11-19  Federico Mena Quintero  <federico@ximian.com>

	Fixes to problems reported by Iain Holmes:

	* gtk/gtkfilechooserdefault.c (shortcuts_append_desktop): Do not
	throw up an error dialog if the desktop doesn't exist.
	(error_message): Handle the case where there is no real toplevel
	yet.
	(list_model_filter_func): Always let folders pass through (patch
	by Dave Malcolm).
2003-11-19 22:38:31 +00:00
Federico Mena Quintero
a4cc4cd1da Turn off the dialog's separator (thanks to Iain Holmes).
2003-11-19  Federico Mena Quintero  <federico@ximian.com>

	* gtk/gtkfilechooserdialog.c (gtk_file_chooser_dialog_init): Turn
	off the dialog's separator (thanks to Iain Holmes).
2003-11-19 20:45:17 +00:00
Federico Mena Quintero
a3976b68b6 Added a render_icon virtual method.
2003-11-19  Federico Mena Quintero  <federico@ximian.com>

	* gtk/gtkfilesystem.h (struct _GtkFileSystemIface): Added a
	render_icon virtual method.

	* gtk/gtkfilesystem.c (gtk_file_system_render_icon): New function.

	* gtk/gtkfilesystemunix.c (gtk_file_system_unix_render_icon):
	Implement as a stub for now.

	* gtk/gtkfilechooserdefault.c (shortcuts_insert_path): Use
	gtk_file_system_render_icon().
	(list_icon_data_func): Likewise.
	(toolbar_create): Set the toolbar style to icons only.

	* gtk/gtkfilechooser.c (gtk_file_chooser_add_shortcut_folder_uri):
	Fix doc comments.
2003-11-19 17:03:32 +00:00
Federico Mena Quintero
b550a979d0 Take in a path as well. Use a helper function. (shortcuts_append_home):
2003-11-03  Federico Mena Quintero  <federico@ximian.com>

	* gtk/gtkfilechooserdefault.c (error_dialog): Take in a path as
	well.  Use a helper function.
	(shortcuts_append_home): Display an error box if necessary.
	(shortcuts_append_desktop): Likewise.
	(add_bookmark_button_clicked_cb): Likewise.
	(gtk_file_chooser_default_select_path): Likewise.
	(entry_activate): Likewise.
	(shortcuts_append_paths): New helper function.
	(shortcuts_append_file_system_roots): Use
	shortcuts_append_paths().
	(shortcuts_append_bookmarks): Likewise.
2003-11-04 01:56:56 +00:00
Federico Mena Quintero
3dbad630ac Add a stock icon to the "Add bookmark" button.
2003-11-03  Federico Mena Quintero  <federico@ximian.com>

	* gtk/gtkfilechooserdefault.c (create_shortcuts_tree): Add a stock
	icon to the "Add bookmark" button.

	* gtk/gtkfilesystemunix.c: Mark missing strings for translation.
	* gtk/gtkfilesystemmodel.c: Likewise.
	* gtk/gtkfilechooser.c: Likewise.
	* gtk/gtkfilechooserdefault.c: Likewise.

Mon Nov  3 20:56:28 2003  Matthias Clasen  <maclas@gmx.de>
2003-11-03 20:24:04 +00:00
Federico Mena Quintero
f8e51f984b Removed. (create_shortcuts_tree): Don't call the above.
2003-11-03  Federico Mena Quintero  <federico@ximian.com>

	* gtk/gtkfilechooserdefault.c (shortcuts_select_folder): Removed.
	(create_shortcuts_tree): Don't call the above.
	(bookmarks_changed_cb): Likewise.
	(tree_selection_changed): Unselect everything from the shortcuts
	list.  This is the behavior that Mac OS has.
	(toolbar_add_item): Return the item.
	(toolbar_create): Store the up_button in the impl structure.
	(toolbar_check_sensitivity): New function to set the sensitivity
	of the "Up" button in the toolbar.
	(tree_selection_changed): Call toolbar_check_sensitivity().
2003-11-03 18:46:18 +00:00
Federico Mena Quintero
a92ff3fa5f Do not set a border width for the toplevel container. (toolbar_create):
2003-11-02  Federico Mena Quintero  <federico@ximian.com>

	* gtk/gtkfilechooserdefault.c (gtk_file_chooser_default_init): Do
	not set a border width for the toplevel container.
	(toolbar_create): New function; create a simple toolbar for the
	file chooser.
	(gtk_file_chooser_default_constructor): Use a spacing of 12 for
	the table, as per the HIG.
	(gtk_file_chooser_default_init): Likewise, for the default
	implementation's vbox.

	* gtk/gtkfilesystem.c (gtk_file_system_get_parent): Added docs to
	note that NULL is a valid return value for the parent path.
2003-11-03 00:50:33 +00:00
Owen Taylor
afa521b98e Change on activation, not selection change (temporary workaround for
Sat Nov  1 14:59:27 2003  Owen Taylor  <otaylor@redhat.com>

        * gtk/gtkfilechooserdefault.c (shortcuts_row_activated):
        Change on activation, not selection change (temporary
        workaround for #125955, needed for keynav, likely
        the right UI anyways.)

        * gtk/gtkfilechooserdefault.c (shortcuts_select_func):
        Don't allow the separator node to be selected.

        * gtk/gtkfilechooserdefault.c (gtk_file_chooser_default_constructor):
        Set the focus chain so that the entry gets focused first.
        (Not really right after initial focusing, maybe we
        should just have a gtk_file_chooser_focus_entry() that
        we call from gtk_file_chooser_dialog on creation.)
2003-11-01 20:17:37 +00:00
Padraig O'Briain
dbd3b079ff Changew index to filter_index to fix compilation error.
2003-10-28  Padraig O'Briain  <padraig.obriain@sun.com>

	* gtk/gtkfilechooserdefault.c (gtk_file_chooser_default_remove_filter):
	Changew index to filter_index to fix compilation error.

	* gtk/gtkfilesystem.h: Correct definition of gtk_file_path_get_string.
2003-10-28 14:13:01 +00:00
Owen Taylor
9e35725237 Convert GtkOptionMenu to GtkComboBox.
Thu Oct 23 01:09:04 2003  Owen Taylor  <otaylor@redhat.com>

        * gtk/gtkfilechooserdefault.c: Convert GtkOptionMenu to
        GtkComboBox.
2003-10-23 05:10:47 +00:00
Owen Taylor
b3bae3b40a gtk/gtkfilechooserutils.c gtk/gtkfilechooserprivate.[ch]: Basic framework
Wed Oct 22 23:20:04 2003  Owen Taylor  <otaylor@redhat.com>

        * gtk/gtkfilechooser.[ch] gtk/gtkfilefilter.[ch]
        gtk/gtkfilechooserwidget.[ch] gtk/gtkfilechooserdialog.[ch]:
        gtk/gtkfilechooserutils.c gtk/gtkfilechooserprivate.[ch]:
        Basic framework for the new file selector widget.

        * gtk/gtkfilechooserdefault.[ch] gtk/gtkcellrenderersep.[ch]
        gtk/gtkfilechooserentry.[ch] gtk/gtkfilesystemmodel.[ch]:
        Initial implementation of the GtkFileChooser user interface.

        * gtk/gtkfilesystemunix.[ch]: GtkFileSystem implementation
        for Unix files.

        * configure.in gtk/Makefile.am gtk/xdgmime: Build code
        for freedesktop.org MIME system on Unix.

        * tests/testfilechooser.c: Test program for GtkFileChooser

        * tests/prop-editor.c: Add support for properties on interfaces.
2003-10-23 04:22:32 +00:00
Federico Mena Quintero
d7c1842b55 Renamed from GtkFileChooserImplDefault to GtkFileChooserDefault.
2003-10-22  Federico Mena Quintero  <federico@ximian.com>

	* gtkfilechooserdefault.[ch]: Renamed from
	GtkFileChooserImplDefault to GtkFileChooserDefault.
2003-10-23 00:26:15 +00:00
Federico Mena Quintero
806d18a4ae Free the info itself.
2003-10-20  Federico Mena Quintero  <federico@ximian.com>

	* gtkfilesystem.c (gtk_file_info_free): Free the info itself.

	* gtkfilechooserimpldefault.c (shortcuts_insert_path): Free the
	GtkFileInfo.
2003-10-21 01:06:30 +00:00
Federico Mena Quintero
b49a5ec5b4 Removed. (gtk_file_system_gnome_vfs_set_bookmarks): Removed.
2003-10-17  Federico Mena Quintero  <federico@ximian.com>

	* gtkfilesystemgnomevfs.c
	(gtk_file_system_gnome_vfs_get_supports_bookmarks): Removed.
	(gtk_file_system_gnome_vfs_set_bookmarks): Removed.
	(gtk_file_system_gnome_vfs_add_bookmark): Implement.
	(gtk_file_system_gnome_vfs_remove_bookmark): Implement.

	* gtkfilechooserprivate.h (struct _GtkFileChooserIface): Replaced
	the ::set_shortcut_folders() method with :;add_shortcut_folder()
	and ::remove_shortcut_folder().

	* gtkfilechooserutils.c (delegate_add_shortcut_folder): New function.
	(delegate_remove_shortcut_folder): New function.
	(delegate_list_shortcut_folders): New function.

	* gtkfilechooserimpldefault.c (create_shortcuts_model): Insert the
	Desktop directory as well.
	(shortcuts_insert_path): Renamed from shortcuts_append_path; now
	takes a position index instead of a parent node iter.  Also takes
	a GError argument.
	(struct _GtkFileChooserImplDefault): Removed the shortcuts_folder
	list.  It is all kept in the model now.
	(shortcuts_append_home): Save whether adding a shortcut for the
	home directory was successful.
	(shortcuts_append_desktop): Likewise for the desktop.
	(shortcuts_append_file_system_roots): Count and save the number of
	roots added.
	(shortcuts_append_shortcut_folders): Removed.
	(gtk_file_chooser_impl_default_add_shortcut_folder): Implement.
	(shortcuts_append_bookmarks): Now that we don't have a bookmarks
	parent node, don't expand the tree.
	(add_bookmark_button_clicked_cb): Use gtk_file_system_add_bookmark().
	(remove_bookmark_button_clicked_cb): Use gtk_file_system_remove_bookmark().
	(gtk_file_chooser_impl_default_list_shortcut_folders): Get the
	folders from the shortcuts model; we no longer keep a separate list.

	* gtkfilesystem.h (struct _GtkFileSystemIface): Oops, there
	shouldn't be shortcuts-related virtual methods here.

	* gtkfilechooser.c (file_paths_to_strings): New helper function.
	(gtk_file_chooser_get_filenames): Use file_paths_to_strings().
	(gtk_file_chooser_get_uris): Likewise.
	(gtk_file_chooser_set_shortcut_folders): Removed.
	(gtk_file_chooser_list_shortcut_folders): Return a list of
	strings, not of GtkFilePath*.
	(gtk_file_chooser_list_shortcut_folder_uris): New function.
	(gtk_file_chooser_add_shortcut_folder): New function.
	(gtk_file_chooser_remove_shortcut_folder): New function.
	(gtk_file_chooser_add_shortcut_folder_uri): New function.
	(gtk_file_chooser_remove_shortcut_folder_uri): New function.
	(_gtk_file_chooser_add_shortcut_folder): New function.
	(_gtk_file_chooser_remove_shortcut_folder): New function.

	* gtkfilechooser.h: New enum.

	* gtkfilechooser.c (gtk_file_chooser_error_quark): New function.

	* gtkfilesystem.c (gtk_file_system_get_supports_bookmarks): Removed.
	(gtk_file_system_set_bookmarks): Removed.
	(gtk_file_system_add_bookmark): New function.
	(gtk_file_system_remove_bookmark): New function.

	* gtkfilesystemunix.c
	(gtk_file_system_unix_get_supports_bookmarks): Removed.
	(gtk_file_system_unix_set_bookmarks): Removed.
	(gtk_file_system_unix_add_bookmark): Just a stub for now.
	(gtk_file_system_unix_remove_bookmark): Likewise.

	* testfilechooser.c (main): Add a shortcut for testing purposes.
2003-10-18 04:29:40 +00:00
Federico Mena Quintero
5a51188b8b Added a button to remove a bookmark. (remove_bookmark_button_clicked_cb):
2003-10-14  Federico Mena Quintero  <federico@ximian.com>

	* gtkfilechooserimpldefault.c (create_shortcuts_tree): Added a
	button to remove a bookmark.
	(remove_bookmark_button_clicked_cb): New callback.
	(shortcuts_append_bookmarks): Show/hide the bookmarks buttons
	here, rather than in create_shortcuts_tree().
	(shortcuts_append_path): Return whether the operation succeeded.
	(shortcuts_selection_changed): Set the sensitivity of the button
	used to remove a bookmark.
	(shortcuts_append_bookmarks): Do not select the shortcuts folder
	here; let the caller do it if needed.
	(create_shortcuts_tree): Select the shortcuts folder here.
	(bookmarks_changed_cb): Likewise.
	(create_shortcuts_tree): Also set the sensitivity of the bookmarks
	buttons.
	(bookmarks_check_add_sensitivity): Renamed from
	check_bookmarks_sensitivity().
	(shortcuts_select_folder): Renamed from select_shortcuts_folder().
	(bookmarks_check_add_sensitivity): The current_path may not be set
	yet.
	(shortcuts_append_bookmarks): Oops, remove all the bookmark rows,
	not just the separator node.
	(bookmarks_changed_cb): Set the sensitivity of the bookmarks
	buttons.
2003-10-15 03:06:55 +00:00
Federico Mena Quintero
36eccd816f Walk the whole shortcuts model, not just the bookmarks part --- there is
2003-10-13  Federico Mena Quintero  <federico@ximian.com>

	* gtkfilechooserimpldefault.c (check_bookmarks_sensitivity): Walk
	the whole shortcuts model, not just the bookmarks part --- there
	is no need to add bookmarks for "stock" volume items.
	(gtk_file_chooser_impl_default_set_property): Oops, hide/show the
	tree/list as appropriate for the folder_mode property.
2003-10-13 19:59:37 +00:00
Federico Mena Quintero
1d8d7be3c5 Read the file's information from gnome-vfs if we haven't finished loading
2003-10-12  Federico Mena Quintero  <federico@ximian.com>

	* gtkfilesystemgnomevfs.c (gtk_file_folder_gnome_vfs_get_info):
	Read the file's information from gnome-vfs if we haven't finished
	loading the directory yet.

	* gtkfilechooserimpldefault.c (tree_selection_changed): Set the
	sensitivity of the bookmarks button depending on whether the
	current folder already exists in the bookmarks list.
	(shortcuts_selection_changed): Re-select the appropriate shortcuts
	folder if the user clicks on the separator row.
	(set_list_model): New function; moved the code from
	tree_selection_changed().
	(tree_selection_changed): Use set_list_model().
	(create_folder_tree): Show the tree model only if we are in folder
	mode.
	(create_file_list): Show the list model only if we are not in
	folder mode.
2003-10-13 02:31:09 +00:00
Federico Mena Quintero
3415416b1b Autosize the columns after the model is set. (shortcuts_append_path): Add
2003-10-08  Federico Mena Quintero  <federico@ximian.com>

	* gtkfilechooserimpldefault.c (tree_selection_changed): Autosize
	the columns after the model is set.
	(shortcuts_append_path): Add optional indentation to items.
	(shortcuts_append_bookmarks): Indent bookmark items.
	(create_shortcuts_tree): Set the "xpad" attribute of the name
	renderer to be fetched from the indent column.
	(shortcuts_append_bookmarks): Use NULL for the name of the
	bookmarks node, so that a separator gets drawn.
	(create_shortcuts_tree): Create a GtkCellRendererSepText.

	* gtkcellrendererseptext.[ch]: New files with a cell renderer that
	can display text or a separator line.

	* Makefile.am (libgtkfilechooser_la_SOURCES): Added
	gtkcellrendererseptext.[ch].
2003-10-09 01:12:24 +00:00
Federico Mena Quintero
462aab4a64 Added methods for ::get_supports_bookmarks(), ::set_bookmarks(),
2003-10-07  Federico Mena Quintero  <federico@ximian.com>

	* gtkfilesystem.h (struct _GtkFileSystemIface): Added methods for
	::get_supports_bookmarks(), ::set_bookmarks(), ::list_bookmarks().
	Added a ::bookmarks_changed() signal.

	* gtkfilesystem.c (gtk_file_system_get_supports_bookmarks): New function.
	(gtk_file_system_set_bookmarks): New function.
	(gtk_file_system_list_bookmarks): New function.
	(gtk_file_system_base_init): Create the "bookmarks-changed" signal.
	(gtk_file_paths_copy): New function.

	* gtkfilesystemunix.c (gtk_file_system_unix_get_supports_bookmarks): Implement.
	(gtk_file_system_unix_set_bookmarks): Implement.
	(gtk_file_system_unix_get_bookmarks): Implement.

	* gtkfilesystemgnomevfs.c (struct _GtkFileSystemGnomeVFS): Added
	fields for the bookmarks and the GConfClient.
	(gtk_file_system_gnome_vfs_set_bookmarks): Implement.
	(gtk_file_system_gnome_vfs_list_bookmarks): Implement.

	* gtkfilechooserprivate.h (struct _GtkFileChooserIface): Added
	methods for ::set_shortcut_folders(), ::list_shortcut_folders().

	* gtkfilechooser.c (gtk_file_chooser_set_shortcut_folders): New
	function.
	(gtk_file_chooser_list_shortcut_folders): New function.

	* gtkfilechooserimpldefault.c (create_shortcuts_model): Unref the
	old shortcuts model if it exists.  Create the nodes for the
	app-specific shortcut folders.
	(struct _GtkFileChooserImplDefault): Added a field for the
	shortcut_folders.
	(gtk_file_chooser_impl_default_set_shortcut_folders): Implement.
	(select_shortcuts_folder): New helper function.
	(gtk_file_chooser_impl_default_set_current_folder): Use
	select_shortcuts_folder().
	(shortcuts_append_path): Get the file info here, instead of the
	caller.
	(shortcuts_append_home): Use shortcuts_append_path().
	(shortcuts_append_file_system_roots): Likewise.
	(create_shortcuts_model): Add the app-specific shortcut folders
	and the bookmarks.
	(gtk_file_chooser_impl_default_list_shortcut_folders): Implement.
	(create_shortcuts_tree): Added a button to let the user add the
	current folder to the bookmarks.
	(gtk_file_chooser_impl_default_set_property): Connect to
	"bookmarks-changed" on the file system.
	(shortcuts_append_bookmarks): New function.

	* configure.ac: Depend on GConf.
2003-10-08 04:14:55 +00:00
Federico Mena Quintero
feb412c194 Simplify with a macro. This bloats the compiled code, but at least it
2003-10-01  Federico Mena Quintero  <federico@ximian.com>

	* gtkfilechooserimpldefault.c (name_sort_func): Simplify with a
	macro.  This bloats the compiled code, but at least it makes the
	human-readable code not egregiously ugly.
	(size_sort_func): Likewise.
	(mtime_sort_func): Likewise.
2003-10-01 21:40:17 +00:00
Federico Mena Quintero
da29352587 Use enum values instead of plain numbers for the file lists's sort
2003-10-01  Federico Mena Quintero  <federico@ximian.com>

	* gtkfilechooserimpldefault.c (tree_selection_changed): Use enum
	values instead of plain numbers for the file lists's sort columns.
	(create_file_list): Likewise.
	(tree_selection_changed): Make the file list start up sorted by
	name, and don't specify a default sorting function, so that there
	is no unsorted order.  This is for consistency with Nautilus.
	(list_sort_column_changed_cb): Callback; we cache whether the sort
	order for the file list's name column is ascending or not.
	(compare_with_folders_first): New helper function to sort
	directories before files.
	(name_sort_func): Use compare_with_folders_first().
	(size_sort_func): Likewise.
	(mtime_sort_func): Likewise.

	Of course this callback mess would be easy in a real language:

	  (set-sort-func sortable NAME_COLUMN
	    (make-comparer impl (lambda (a b) (strcmp (get-name a) (get-name b)))))
	  (set-sort-func sortable SIZE_COLUMN
	    (make-comparer impl (lambda (a b) (compare (get-size a) (get-size b)))))
	  ... etc ...

	  (define (make-comparer impl f)
	    (lambda (a b)
	      (if (eq (is-dir? a) (is-dir? b))
	          (f a b)
		  (if (sort-ascending? impl)
		      (if (is-dir? a) -1 1)
		      (if (is-dir? a) 1 -1)))))
2003-10-01 19:42:50 +00:00
Federico Mena Quintero
39e208d865 Added fields for the shortcuts tree and its model. (create_file_list):
2003-09-30  Federico Mena Quintero  <federico@ximian.com>

	* gtkfilechooserimpldefault.c (struct _GtkFileChooserImplDefault):
	Added fields for the shortcuts tree and its model.
	(create_file_list): Don't call
	gtk_tree_view_column_set_sort_column_id() twice.
	(create_shortcuts_model): New function.
	(list_icon_data_func): Use an ICON_SIZE macro instead of a
	hardcoded value.
	(list_row_activated): Use _gtk_file_chooser_set_current_folder_path()
	to avoid converting the GtkFilePath to a URI string.
	(gtk_file_chooser_impl_default_set_current_folder): Select the
	appropriate item from the shortcuts list when the current folder
	changes, to let the user know where he is.
	(tree_selection_changed): Likewise.

	* gtkfilesystem.h (struct _GtkFileSystemIface): Added methods for
	::supports_shortcuts(), ::list_shortcuts(), ::set_shortcuts().
2003-10-01 00:53:59 +00:00
Federico Mena Quintero
aa22566e6c Connect to "row_activated" on the file list. (list_row_activated): New
2003-09-10  Federico Mena Quintero  <federico@ximian.com>

	* gtkfilechooserimpldefault.c (create_file_list): Connect to
	"row_activated" on the file list.
	(list_row_activated): New function.  Changes to folders or emits
	the "file-activated" signal depending on what type of row was
	activated.
	(create_folder_tree): Renamed from create_directory_tree(), since
	"folder" is the new politically-correct name.

	* gtkfilechooserprivate.h (struct _GtkFileChooserIface): Added a
	file-activated signal.

	* gtkfilechooser.c (gtk_file_chooser_class_init): Register the
	signal.

	* gtkfilechooserutils.c (_gtk_file_chooser_set_delegate): Connect
	to "file-activated" on the delegate.
	(delegate_file_activated): New function.

	* TODO: Added an API item about Clipart-like folders provided by
	applications.
2003-09-11 00:33:28 +00:00
Federico Mena Quintero
3a28082114 Use the cell renderer's "text" and "weight" properties rather than
2003-09-09  Federico Mena Quintero  <federico@ximian.com>

	* gtkfilechooserimpldefault.c (set_cell_text_bold_if_folder): Use
	the cell renderer's "text" and "weight" properties rather than
	"markup".
2003-09-10 01:26:13 +00:00
Federico Mena Quintero
4b3e2d69a5 Make the list model read in directory information as well.
2003-09-09  Federico Mena Quintero  <federico@ximian.com>

	* gtkfilechooserimpldefault.c (tree_selection_changed): Make the
	list model read in directory information as well.
	(set_cell_text_bold_if_folder): New utility function.  Sets a
	cell's text, making it bold if the file info is a folder.
	(list_name_data_func): Use set_cell_text_bold_if_folder().
	(list_mtime_data_func): Use set_cell_text_bold_if_folder().
	(list_size_data_func): Don't set anything if the file info is a
	folder.
2003-09-09 17:50:23 +00:00
Federico Mena Quintero
613b441b5b Free the display_key.
2003-09-08  Federico Mena Quintero  <federico@ximian.com>

	* gtkfilesystem.c (gtk_file_info_free): Free the display_key.

	* gtkfilechooserimpldefault.c (list_mtime_data_func): New
	function.
	(create_file_list): Add a modification time column; remove the
	size column.
	(mtime_sort_func): New callback.
	(tree_selection_changed): Add a sorting function for the mtime
	column.  Have the model fetch the modification time as well.
	(tree_selection_changed): Do allow the file list model to show
	directories.

	* testfilechooser.c (my_new_from_file_at_size): Do not try to read
	non-regular files.
2003-09-09 15:18:29 +00:00
Federico Mena Quintero
a9eaa49d88 New function. (create_directory_tree): New function. (create_file_list):
2003-09-05  Federico Mena Quintero  <federico@ximian.com>

	* gtkfilechooserimpldefault.c (create_filter): New function.
	(create_directory_tree): New function.
	(create_file_list): New function.
	(create_filename_entry): New function.
	(gtk_file_chooser_impl_default_constructor): Use the functions
	above rather than creating the whole file chooser megawidget here,
	for readability.  This will also let us rearrange the user
	interface more easily.
2003-09-06 00:50:33 +00:00
Federico Mena Quintero
36dfea8ece Removed the "extra widget" bit, implemented with the following:
2003-09-03  Federico Mena Quintero  <federico@ximian.com>

	* TODO: Removed the "extra widget" bit, implemented with the
	following:

	* gtkfilechooser.h: Added gtk_file_chooser_{set,get}_extra_widget().

	* gtkfilechooser.c (gtk_file_chooser_base_init): Install an
	"extra-widget" interface property.
	(gtk_file_chooser_set_extra_widget): Implemented.
	(gtk_file_chooser_get_extra_widget): Implemented.

	* gtkfilechooserutils.h (GtkFileChooserProp): Added
	GTK_FILE_CHOOSER_PROP_EXTRA_WIDGET.

	* gtkfilechooserutils.c (_gtk_file_chooser_install_properties):
	Added the "extra-widget" property.

	* gtkfilechooserimpldefault.c (struct _GtkFileChooserImplDefault):
	Added an extra_widget field.
	(gtk_file_chooser_impl_default_set_property): Handle the
	"extra-widget" property.
	(gtk_file_chooser_impl_default_get_property): Likewise.
	(set_preview_widget): Fix the call gtk_container_remove().  Also,
	we don't need to ref/sink/unref the preview widget, as that gets
	already done by container_add/remove.
	(set_extra_widget): New utility function.

	* testfilechooser.c (main): Add an extra widget.
2003-09-03 05:52:35 +00:00
Owen Taylor
d97d7df947 Add over-big test case for preview (much of size from a modified copy of
Wed Jul 23 17:52:01 2003  Owen Taylor  <otaylor@redhat.com>

        * testfilechooser.c: Add over-big test case for preview
        (much of size from a modified copy of
        gdk_pixbuf_new_from_file_at_size())

        * gtkfilechooserutils.[ch] gtkfilechooser.c
        gtkfilechooserprivate.h gtkfilechooserimpldefault.c:
        Add get_preview_path() as a virtual function; implement
        update-preview signal that was in the header file.

        * gtkfilechooserimpldefault.c: Finish a simple preview
        widget implementation.
2003-07-23 22:30:32 +00:00
Owen Taylor
733f4489ad File filter objects.
Wed Jul 23 11:23:43 2003  Owen Taylor  <otaylor@redhat.com>

        * gtkfilefilter.[ch]: File filter objects.

        * gtkfilechooser.[ch] gtkfilechooserutils.[ch]: Add
        file filtering to API.

        * gtkfilechooserimpldefault.c: Implement file filters.

        * testfilechooser.c: Try out the filter functionality.

        * gtkfilesystemmodel.c: Add
        _gtk_file_system_model_set_filter() to set a callback
        function for filtering.

        * gtkfilechooserutils.c: Propagate property notification
        to the receiver.

        * fnmatch.c: Copy this from GTK+ temporarily to get
        UTF-8 pattern matching functionality.
2003-07-23 15:31:10 +00:00
Owen Taylor
7e54248bc3 auto-ize.
Wed Jul 16 16:50:31 2003  Owen Taylor  <otaylor@redhat.com>

        * configure.ac Makefile.am: auto-ize.

        * xdgmime/: Add freedesktop.org MIME spec implementatin
        by Jonathan Blandford.

        * gtkfilesystem.[ch]: Add gtk_file_info_render_icon()
        gtk_file_info_set/get_icon_type to do icon handling
        based on MIME type. Add a simple icon caching system.

        * gtkfilesystemgnomevfs.c: Implement ensure_types()
        so that extending the set of types for a loaded
        directory works. Set the MIME type to get the default
        icon handling.

        * gtkfilesystemunix.c: Look up the MIME type using
        xdgmime.

        * gtkfilechooserimpldefault.c: Display icons in the list.
2003-07-16 21:07:38 +00:00
Owen Taylor
7f8ae32c1d Add gtk_file_chooser_set_current_name() to set the current entry contents.
Fri Jul 11 14:37:07 2003  Owen Taylor  <otaylor@redhat.com>

        * gtkfilechooser.[ch] gtkfilechooserprivate.h
        gtkfilechooserimpldefault.c: Add
        gtk_file_chooser_set_current_name() to set the current
        entry contents.

        * *.c: Consistently use '-' not '_' in property names and
        signal names.

        * gtkfilechooser.c: Document all exported functions.
2003-07-11 19:18:36 +00:00
Owen Taylor
bc3fb55c1b Move interface definition into a private header so it can refer to
Fri Apr  4 17:30:27 2003  Owen Taylor  <otaylor@redhat.com>

        * gtkfilechooserprivate.h gtkfilechooser.h: Move
        interface definition into a private header so it
        can refer to GtkFileSystem.

        * *.[ch]: Switch over from using gchar *uri internally
        to using GtkFilePath * internally, and add
        conversion routines to GtkFileSystem.

        * TODO README: Updates.
2003-04-04 22:43:12 +00:00
Owen Taylor
79491c1d25 Add a construct-only 'file_system' property, split test case into testfilechooser, testfilechooser-vfs 2003-03-26 17:09:26 +00:00
Owen Taylor
5ef90224aa - Add GnomeVFS backend
- Add gtk_file_info_get_display_key()
- Start switching from file_added => files_added
- Switch over to Nautilus-like Loading.../Empty
2003-03-26 16:24:35 +00:00
Owen Taylor
bb320fcb5b Add GtkFileSystem::parse, and a chooser entry with completion 2003-03-25 00:11:06 +00:00
Owen Taylor
74cb697ef3 Make incrememtal searching work, some bug fixes 2003-03-24 15:41:40 +00:00
Owen Taylor
fe1c0a8bfd Add sorting, a size column.
Try making the tree view on the left auto-expand/collapse when
  the selection changes.
Some bug fixes.
2003-03-21 23:59:22 +00:00
Owen Taylor
d9748614f1 Add some documentation comments, fix some missing statics 2003-03-21 21:26:38 +00:00
Owen Taylor
e3849905a9 Initial revision 2003-03-21 20:34:02 +00:00