Commit Graph

80 Commits

Author SHA1 Message Date
Matthias Clasen
96741a1b05 Apply a patch by Padraig O'Briain to avoid a deadlock.
2006-09-29  Matthias Clasen  <mclasen@redhat.com>
        * gtk/gtkfilesystemunix.c: Apply a patch by Padraig O'Briain
        to avoid a deadlock.
2006-09-29 14:18:22 +00:00
Kristian Rietveld
254b684e4c First part of file chooser fixes.
2006-09-02  Kristian Rietveld  <kris@imendio.com>

	First part of file chooser fixes.

	* gtk/gtkfilechooserbutton.c (model_add_special): also set the
	handle in the model for the desktopdir case.

	* gtk/gtkfilechooserdefault.c (shortcuts_add_current_folder): free
	volume in case we retrieved it but don't pass it on to insert_path,
	(shortcuts_model_create): change the column type for the handles
	to pointer instead of GObject so our handle ref counting is not
	disturbed,
	(show_and_select_paths_finished_loading): don't forget to unref
	the dialog.

	* gtk/gtkfilesystemunix.c (gtk_file_system_unix_class_init),
	(gtk_file_system_unix_init), (gtk_file_system_unix_dispose):
	remove pending execute_callbacks_idle during dispose, also
	execute all callbacks waiting to be run in the next idle,
	(queue_*callback), (execute_callbacks_idle): refactor to maintain
	a list of callbacks to call per file system instead of globally,
	guard the file system during callback invocation,
	(gtk_file_system_unix_get_folder): only add load folder idle if
	none has been added yet.
2006-09-02 14:26:12 +00:00
Matthias Clasen
5db8d5874d Maintain a hash table of live handles and check that we have no
2006-08-23  Matthias Clasen  <mclasen@redhat.com>

	* gtk/gtkfilesystemunix.c: Maintain a hash table
	of live handles and check that we have no outstanding
	handles at finalization time. (Copying what
	Federico did for gtkfilesystemgnomevfs.c)
2006-08-23 06:07:10 +00:00
Matthias Clasen
f8794cccca Improve consistency of signal and property names 2006-07-06 05:14:03 +00:00
Matthias Clasen
113f364a37 More of the same 2006-05-14 04:25:34 +00:00
Matthias Clasen
89b5cb6480 Make symbol list mstch reality.
2006-05-04  Matthias Clasen  <mclasen@redhat.com>

	* gtk/gtk.symbols:
	* gtk/gtkfilesystem.c:
	* gtk/gtkfilesystemunix.c:
	* gtk/gtkprintbackend.h:
	* gtk/gtkrecentchooserdefault.c:
	* gtk/gtkrecentchooserdefault.h:
	* gtk/paper_names_offsets.c: Make symbol list mstch reality.

	* gtk/Makefile.am: Fix a typo.

	* gdk/x11/Makefile.am (EXTRA_DIST): Add gdksettings.c
2006-05-04 13:36:30 +00:00
Matthias Clasen
f26aad1916 Boilerplate reduction 2006-05-02 23:56:43 +00:00
Kristian Rietveld
2c97a8f6e8 Merge of the GTK+ asynchronous file chooser branch. Please see the
2006-05-01  Kristian Rietveld  <kris@imendio.com>

	Merge of the GTK+ asynchronous file chooser branch.  Please see
	the kris-asynch-branch for more detailed ChangeLog entries.

	* configure.in: increase binary version to 2.9.0.

	* gtk.symbols:
	* gtkfilechooser.c:
	* gtkfilechooserbutton.c:
	* gtkfilechooserdefault.c:
	* gtkfilechooserdialog.c:
	* gtkfilechooserembed.c:
	* gtkfilechooserembed.h:
	* gtkfilechooserentry.c:
	* gtkfilechooserentry.h:
	* gtkfilechooserprivate.h:
	* gtkfilesystem.c:
	* gtkfilesystem.h:
	* gtkfilesystemmodel.c:
	* gtkfilesystemmodel.h:
	* gtkfilesystemunix.c:
	* gtkpathbar.c:
	* gtkpathbar.h:
	Merge from kris-async-branch.
2006-05-01 21:41:12 +00:00
Matthias Clasen
04eceaf621 Use the slice allocator for many small allocations.
2006-01-04  Matthias Clasen  <mclasen@redhat.com>

	* gtk/gtkaccelmap.c:
	* gtk/gtkactiongroup.c:
	* gtk/gtkdialog.c:
	* gtk/gtkfilesystemunix.c:
	* gtk/gtkgc.c:
	* gtk/gtkkeyhash.c:
	* gtk/gtkplug.c:
	* gtk/gtktextiter.c:
	* gtk/gtktextlayout.c:
	* gtk/gtkuimanager.c:
	* gtk/gtkwidget.c:
	* gtk/gtkwindow.c:
	* gtk/gtkxembed.c: Use the slice allocator for many small
	allocations.

	* gtk/gtkcolorsel.c:
	* gtk/gtktreeview.c: Use IPN.

	* gtk/gtkwidget.c: Remove an unused field from the AccelPath
	struct.
2006-01-04 07:06:12 +00:00
Rodney Dawes
c5cc9b7162 Default to "drive-harddisk" and then fall back to gnome-dev-harddisk
2005-12-14  Rodney Dawes  <dobey@novell.com>

	* gtk/gtkfilesystemunix.c (gtk_file_system_unix_volume_render_icon):
	Default to "drive-harddisk" and then fall back to gnome-dev-harddisk
	(get_icon_for_mime_type): Look up the mime type icons according to the
	Icon Naming Specification and then fall back to the gnome-mime- prefix
	for the mime type icons

	Fixes 
2005-12-14 19:29:50 +00:00
Matthias Clasen
3f4cc9b6c8 Fix a C99ism, spotted by Crispin Flowerday.
2005-12-07  Matthias Clasen  <mclasen@redhat.com>

	* gtk/gtkfilesystemunix.c (cb_fill_in_mime_type): Fix a C99ism,
	spotted by Crispin Flowerday.
2005-12-07 14:00:26 +00:00
Matthias Clasen
0b1fa236fd Don't crash if mime_type is NULL. (, Sadrul Habib Chowdhury)
2005-12-02  Matthias Clasen  <mclasen@redhat.com>

	* gtk/gtkfilesystemunix.c (get_icon_for_mime_type): Don't crash
	if mime_type is NULL.  (, Sadrul Habib Chowdhury)
2005-12-02 19:57:36 +00:00
Matthias Clasen
6224a37708 Pass statbufs down to xdg_mime_get_mime_type_for_file() where possible, to
2005-09-01  Matthias Clasen  <mclasen@redhat.com>

	* gtk/gtkfilesystemunix.c: Pass statbufs down to
	xdg_mime_get_mime_type_for_file() where possible, to avoid
	useless re-stating.
2005-09-01 14:42:02 +00:00
Matthias Clasen
94eec04267 Intern some more strings.
2005-09-01  Matthias Clasen  <mclasen@redhat.com>

        * gdk/*.c: Intern some more strings.
        * gtk/gtkintl.h:
        * gtk/*.c: Define an I_() macro and use it instead of the
        bulky g_intern_static_string().
2005-09-01 05:11:46 +00:00
Matthias Clasen
f4bbe8f0de Also intern static strings passed to g_object_set_data() 2005-08-31 17:58:55 +00:00
Matthias Clasen
c09cc89317 Intern type names in code generated by glib-mkenums, too.
2005-08-31  Matthias Clasen  <mclasen@redhat.com>

	* gdk/Makefile.am:
	* gtk/Makefile.am: Intern type names in code generated by
	glib-mkenums, too.

	* gtk/*.c:
	* gdk/x11/*.c:
	* gdk/*.c: Intern type names before registering the type to avoid
	unnecessary copies.
2005-08-31 16:53:43 +00:00
Matthias Clasen
1255e7fabd 2.8.2 2005-08-24 18:22:23 +00:00
Matthias Clasen
5eb87a0d3e Follow the Nautilus change and rename "Filesystem" to "File System",
2005-07-12  Matthias Clasen  <mclasen@redhat.com>

	* gtk/gtkfilesystemunix.c
	(gtk_file_system_unix_volume_get_display_name): Follow
	the Nautilus change and rename "Filesystem" to "File System",
	string change.  (, Vincent Noel)
2005-07-12 16:28:06 +00:00
Matthias Clasen
31bc1dec02 Fix an error in the cache timeout logic. (, Morten Welinder)
2005-06-23  Matthias Clasen  <mclasen@redhat.com>

	* gtk/gtkfilesystemunix.c (gtk_file_system_unix_get_folder):
	Fix an error in the cache timeout logic.  (, Morten
	Welinder)
2005-06-23 20:44:27 +00:00
Matthias Clasen
af1c6bb05e Use g_file_set_contents(). (, Morten Welinder)
2005-06-23  Matthias Clasen  <mclasen@redhat.com>

	* gtk/gtkfilesystemunix.c (bookmark_list_write): Use
	g_file_set_contents().  (, Morten Welinder)
2005-06-23 04:14:17 +00:00
Matthias Clasen
a3acf689ea Remove gratitious differences between the stable branch and HEAD, which
* gtk/gtkfilesystemunix.c: Remove gratitious differences
	between the stable branch and HEAD, which sneaked in with
	the bookmark renaming.
2005-06-22 15:09:35 +00:00
Matthias Clasen
7c631d5cb0 Support .hidden files. (, Sayamindu Dasgupta, patch by Jan Arne
2005-06-12  Matthias Clasen  <mclasen@redhat.com>

	* gtk/gtkfilesystemunix.c: Support .hidden files.  (,
	Sayamindu Dasgupta, patch by Jan Arne Petersen)
2005-06-12 04:48:16 +00:00
Matthias Clasen
9d274e0e56 Treat backup files the same way as hidden files, to be closer to what
2005-06-11  Matthias Clasen  <mclasen@redhat.com>

	* gtk/gtkfilesystemunix.c (create_file_info): Treat backup
	files the same way as hidden files, to be closer to what
	Nautilus does.  (, Sean Middleditch)
2005-06-11 04:38:43 +00:00
Federico Mena Quintero
778b99a403 Merged from gtk-2-6:
2005-05-06  Federico Mena Quintero  <federico@ximian.com>

	Merged from gtk-2-6:

	* gtk/gtkfilesystemunix.c (fill_in_mime_type): Don't fill the mime
	types if this is an AFS directory.
	(fill_in_names): If we are in an AFS directory, set the MIME type
	blindly to "x-directory/normal".
2005-05-06 21:00:01 +00:00
Federico Mena Quintero
093b389f6a Merged from gtk-2-6:
2005-05-02  Federico Mena Quintero  <federico@ximian.com>

	Merged from gtk-2-6:

	Fixes :

	* gtk/gtkfilesystemunix.c (struct _GtkFileSystemUnix): Add fields
	to store struct stat for /afs and /net, and boolean fields to say
	whether these are valid.
	(struct _GtkFileFolderUnix): Added a boolean is_network_dir field.
	(gtk_file_system_unix_get_folder): Fill in the is_network_dir
	field of the folder structure.
	(fill_in_names): If the folder is a network directory, create a
	fake struct stat for its entries.
	(fill_in_stats): Don't stat() the children of network directories.

	* gtk/gtkfilechooserdefault.c (list_mtime_data_func): If the mtime
	is 0, use "Unknown" for the cell's displayed text.
2005-05-03 01:55:33 +00:00
Matthias Clasen
dce8bffc7d Implement bookmark renaming (, Sean Middleditch)
2005-03-22  Matthias Clasen  <mclasen@redhat.com>

	Implement bookmark renaming  (, Sean Middleditch)

	* gtk/gtkfilesystem.h (struct _GtkFileSystemIface): Add
	get_bookmark_label and set_bookmark_label vfuncs.

	* gtk/gtkfilesystem.h:
	* gtk/gtkfilesystem.c (gtk_file_system_set_bookmark_label):
	(gtk_file_system_get_bookmark_label): Wrappers for the
	vfuncs.

	* gtk/gtk.symbols: Add new exported symbols.

	* gtk/gtkfilesystemunix.c (gtk_file_system_unix_set_bookmark_label):
	(gtk_file_system_unix_get_bookmark_label): Implementations
	for the Unix backend.

	* gtk/gtkfilechooserdefault.c: Add a context menu to
	the bookmarks pane, and allow to rename bookmarks.
2005-03-22 20:23:19 +00:00
Matthias Clasen
cca8dd6347 Make PLT-reduction work with gcc4, and don't include everything in
2005-03-20  Matthias Clasen  <mclasen@redhat.com>

	Make PLT-reduction work with gcc4, and don't include
	everything in gdkalias.h:

	* gtk/grk.symbols: Group symbols by header and source file.
	* gtk/makegtkalias.pl: Protect definitions by the same
	preprocessor symbols used to guard the headers. Move
	the alias declarations to a separate file which is
	produced when calling makegtkalias.pl -def
	* gdk/Makefile.am (gtkaliasdef.c): Add a rule to generate
	this file.
	* gtk/*.c: Include gtkalias.h after the other headers,
	include gtkaliasdef.c at the bottom.
	* gtk/*.h: Small cleanups.
2005-03-20 07:01:23 +00:00
Federico Mena Quintero
8511033169 Fix .
2005-01-10  Federico Mena Quintero  <federico@ximian.com>

	Fix .

	* gtk/gtkfilesystemunix.c (STAT_NEEDED_MASK): Take out
	GTK_FILE_INFO_IS_HIDDEN; we don't need to stat() to know this.
	(gtk_file_system_unix_get_folder): Make error reporting more
	accurate.  Don't bail out if we can't read the directory.
	(fill_in_stats): Don't return an error; just assume we don't have
	stat info for this folder's files.
	(fill_in_names): Don't create the hash table for the names if we
	can't open the directory.
	(gtk_file_folder_unix_list_children): Don't emit the
	"finished-loading" signal --- we don't do asynchronous loads, so
	we are always finished loading.
	(gtk_file_folder_unix_get_info): Use helper functions; handle the
	case where we can't stat '/'.
	(get_icon_type_from_path): Don't call fill_in_stats() here; only
	use the info we have.
	(fill_in_mime_type): Don't return an error.  Don't do anything if
	we don't have the stat info.
2005-01-10 18:37:09 +00:00
Matthias Clasen
be48fff80b Clean up some cases of errno handling (, noted by Tor Lillqvist),
2004-12-30  Matthias Clasen  <mclasen@redhat.com>

	* gtk/gtkfilesystemunix.c: Clean up some cases of errno handling
	(, noted by Tor Lillqvist), and use g_filename_display_name()
	for error messages. Also mark some error messages for translation,
	fix capitalization of error messages.
2004-12-30 07:39:45 +00:00
Matthias Clasen
8927a48bf3 Clean up some cases of errno handling (, noted by Tor Lillqvist),
2004-12-30  Matthias Clasen  <mclasen@redhat.com>

	* gtk/gtkfilesystemunix.c: Clean up some cases of errno handling
	(, noted by Tor Lillqvist), and use g_filename_display_name()
	for error messages.
2004-12-30 05:40:05 +00:00
Alexander Larsson
408142e32e Use g_filename_display_basename to calculate display name.
2004-12-15  Alexander Larsson  <alexl@redhat.com>

	* gtk/gtkfilesystemunix.c (gtk_file_folder_unix_get_info):
	Use g_filename_display_basename to calculate display name.
2004-12-15 16:57:46 +00:00
Matthias Clasen
e8522b9c47 Emit ::finished-loading.
2004-09-27  Matthias Clasen  <mclasen@redhat.com>

	* gtk/gtkfilesystemunix.c (gtk_file_folder_unix_list_children):
	Emit ::finished-loading.
2004-09-27 16:51:18 +00:00
Matthias Clasen
951e6a1eb9 Protect the unistd.h include by HAVE_UNISTD_H.
2004-09-01  Matthias Clasen  <mclasen@redhat.com>

	* gtk/gtkfilesystemunix.c:
	* gtk/gtkfilechooserbutton.c: Protect the unistd.h include
	by HAVE_UNISTD_H.
2004-09-01 16:42:09 +00:00
Matthias Clasen
daf36bda93 Make the use of S_ISFIFO and S_ISSOCK conditional. (, Gustavo
Sun Aug 15 02:31:55 2004  Matthias Clasen  <maclas@gmx.de>

	* gtk/gtkfilesystemunix.c (get_icon_type_from_stat): Make
	the use of S_ISFIFO and S_ISSOCK conditional.  (,
	Gustavo Carneiro)
2004-08-15 06:36:23 +00:00
Matthias Clasen
3612aee585 Add hidden aliases for exported symbols which are used internally in order
Mon Aug  9 12:48:04 2004  Matthias Clasen  <maclas@gmx.de>

	Add hidden aliases for exported symbols which are
	used internally in order to get rid of many PLT
	entries.  (, Arjan van de Ven)

	* gtk/Makefile.am: Add rules to generate gtk.def and
	from gtk.symbols, and make make check check the abi
	with abicheck.sh.
	(gtk_private_h_sources): Add gtkinternals.h
	(gtk_built_private_headers): Add gtkalias.h
	(gtk_extra_sources): Add gtk.symbols
	(EXTRA_DIST): Add makegtkalias.pl and abicheck.sh

	* gtk/gtk.symbols: New file. Definition of the GTK+ ABI.
	The file can be processed by cpp to filter out certain
	subsets of symbols.

	* gtk/abicheck.sh: New file. Script to check the actually
	symbols exported from libgtk-x11.2.0.so against the symbols
	found in gtk.symbols.

	* gtk/makegtkalias.pl: New file. Perl script to generate the
	header containing the alias definitions for internally used
	exported symbols from a list of symbols.

	* gtk/gtkinternals.h: New file. An uninstalled header listing
	symbols which must be exported for some reason and do not appear
	in any other header.

	* gtk/*.c: Include gtkalias.h
2004-08-09 16:59:53 +00:00
Federico Mena Quintero
42067dfbab Fixes :
2004-07-09  Federico Mena Quintero  <federico@ximian.com>

	Fixes :

	* gtk/gtkfilesystemunix.c (get_fallback_icon): New helper
	function, fetches a stock icon as a fallback.
	(gtk_file_system_unix_volume_render_icon): Fall back to a stock
	icon.
	(gtk_file_system_unix_render_icon): Fall back to a stock icon.
	Use helper functions rather than being a mega-function.
	(get_icon_name_for_directory): Renamed from
	get_icon_for_directory().
	(get_icon_type_from_path): New helper function; code pulled out
	from gtk_file_system_unix_render_icon().
	(get_special_icon): Likewise.
	(get_icon_for_mime_type): Likewise.
2004-07-09 21:13:20 +00:00
Federico Mena Quintero
b3fbcef831 Fix :
2004-07-08  Federico Mena Quintero  <federico@ximian.com>

	Fix :

	* gtk/gtkfilesystemmodel.c (_gtk_file_system_model_new): Add a
	GError argument.  Do check for errors when getting the
	GtkFileFolder:  get the folder and read the children before
	actually creating the model.  Removed obsolete code that handled
	roots-changed on the file system.
	(file_model_node_get_info): Assert that we don't reach the old
	case to display file system roots.
	(roots_changed_callback): Removed.

	* gtk/gtkfilechooserdefault.c (set_list_model): Add a GError
	argument, and a boolean return value.  Return an error if we
	cannot create the file system model.  On error, set a NULL model
	on the tree.
	(gtk_file_chooser_default_set_current_folder): Use the error value
	from set_list_model().
	(gtk_file_chooser_default_set_property): Set the show_hidden
	property only if the browse_files_model exists.
	(gtk_file_chooser_default_unselect_path): Only operate if the
	browse_files_model exists.
	(check_preview_change): Check whether we have the sort_model.
	(change_folder_and_display_error): Copy the path we get passed
	before using it.  There's a comment in there that explains why we
	need to copy it; basically, if the passed path belongs to the
	model, the model may go away in the middle of this function and
	we'll be left with a dangling pointer.
	(install_list_model_filter): Assert that the model is not NULL.
	(set_current_filter): Check whether the model exists.

	* gtk/gtktreeselection.c (gtk_tree_selection_get_selected): Don't
	g_return_if_fail if the model is NULL.
	(gtk_tree_selection_get_selected_rows): Likewise.
	(gtk_tree_selection_count_selected_rows): Likewise.
	(gtk_tree_selection_selected_foreach): Likewise.
	(gtk_tree_selection_path_is_selected): Likewise; rather just
	return FALSE.
	(gtk_tree_selection_select_all): Likewise.
	(gtk_tree_selection_unselect_all): Likewise.
	(gtk_tree_selection_select_range): Do g_return_if_fail() if the
	model is NULL.
	(gtk_tree_selection_unselect_range): Likewise.

	* gtk/gtkfilesystemunix.c (fill_in_names): Return immediately if
	g_dir_open() fails:  there is no need to set the error ourselves,
	as g_dir_open() already does it.
2004-07-09 00:53:48 +00:00
Federico Mena Quintero
a2e95582ca Fixes the GTK+ part of :
2004-06-22  Federico Mena Quintero  <federico@ximian.com>

	Fixes the GTK+ part of :

	* gtk/gtkfilesystemunix.c (gtk_file_system_unix_filename_to_path):
	Use filename_to_path().
	(gtk_file_system_unix_uri_to_path): Likewise.
	(filename_to_path): Use remove_trailing_slash().
2004-06-22 20:08:36 +00:00
Federico Mena Quintero
d903e89ece Fix .
2004-04-07  Federico Mena Quintero  <federico@ximian.com>

	Fix .

	* gtk/gtkfilesystem.c (gtk_file_system_parse): Ensure that the
	passed-in 'str' is not NULL.

	* gtk/gtkfilesystemunix.c (expand_tilde): New helper function;
	expands "~/" or "~foo/" at the beginning of a filename.
	(gtk_file_system_unix_parse): Use expand_tilde() before doing
	anything else.

	* gtk/gtkfilechooserentry.c
	(gtk_file_chooser_entry_maybe_update_directory): Take in a
	force_reload argument.
	(gtk_file_chooser_entry_changed): If gtk_file_system_parse()
	returns an error, set the file_part_pos to -1.
	(load_directory_callback): Only populate the model if the
	file_part_pos is not -1.
2004-04-07 17:52:03 +00:00
Federico Mena Quintero
e88aef82d6 Look for G_DIR_SEPARATOR in the display_name, and err out if it is
2004-04-05  Federico Mena Quintero  <federico@ximian.com>

	* gtk/gtkfilesystemunix.c (gtk_file_system_unix_make_path): Look
	for G_DIR_SEPARATOR in the display_name, and err out if it is
	present; use the same error message as Nautilus.  Fixes .
2004-04-06 03:07:49 +00:00
Federico Mena Quintero
7f62edf379 Fix .
2004-03-29  Federico Mena Quintero  <federico@ximian.com>

	Fix .

	* gtk/gtkfilesystem.h (struct _GtkFileFolderIface): Added slots
	for an ::is_finished_loading() method and a ::finished_loading()
	signal at the end of the struct.

	* gtk/gtkfilesystem.c (gtk_file_folder_base_init): Create the
	"finished-loading" signal.
	(gtk_file_folder_is_finished_loading): New function.

	* gtk/gtkfilesystemunix.c
	(gtk_file_folder_unix_is_finished_loading): Implement.

	* gtk/gtkfilesystemmodel.c (struct _GtkFileSystemModelClass): New
	slot for a "finished-loading" signal.
	(gtk_file_system_model_class_init): Create the "finished-loading"
	signal.
	(struct _GtkFileSystemModel): New field
	idle_finished_loading_source.  We emit the "finished-loading"
	signal in an idle if the root folder was done loading right in
	_gtk_file_system_model_new(), so that the caller has a chance to
	connect to the signal.
	(_gtk_file_system_model_new): Connect to the normal signals of the
	folder even if the initial _list_children() fails.  Also, see if
	the folder is finished loading; connect to the "finished-loading"
	signal otherwise.
	(gtk_file_system_model_finalize): Remove the idle handler.

	* gtk/gtkfilechooserdefault.c (set_list_model): Set a busy cursor
	and connect to the model's "finished-loading" signal.
	(get_toplevel): New helper function.
	(error_message): Use get_toplevel().
	(trap_activate_cb): Likewise.
	(location_popup_handler): Likewise.
	(set_busy_cursor): New function.
	(browse_files_model_finished_loading_cb): New callback.
2004-03-29 19:52:16 +00:00
Federico Mena Quintero
da83c1cbf3 Revert the patch to , as 2.4.1 is for conservative bug fixes only.
2004-03-19  Federico Mena Quintero  <federico@ximian.com>

	* Revert the patch to , as 2.4.1 is for conservative bug
	fixes only.  The patch is attached to the bug report, for
	reference.

2004-03-19  Morten Welinder  <terra@gnome.org>

	* gtk/gtkfilechooserdefault.c
2004-03-19 21:16:24 +00:00
Federico Mena Quintero
68030a7ee7 Fix .
2004-03-19  Federico Mena Quintero  <federico@ximian.com>

	Fix .

	* gtk/gtkfilesystem.h (struct _GtkFileFolderIface): Added slots
	for an ::is_finished_loading() method and a ::finished_loading()
	signal at the end of the struct.

	* gtk/gtkfilesystem.c (gtk_file_folder_base_init): Create the
	"finished-loading" signal.
	(gtk_file_folder_is_finished_loading): New function.

	* gtk/gtkfilesystemunix.c
	(gtk_file_folder_unix_is_finished_loading): Implement.

	* gtk/gtkfilesystemmodel.c (struct _GtkFileSystemModelClass): New
	slot for a "finished-loading" signal.
	(gtk_file_system_model_class_init): Create the "finished-loading"
	signal.
	(struct _GtkFileSystemModel): New field
	idle_finished_loading_source.  We emit the "finished-loading"
	signal in an idle if the root folder was done loading right in
	_gtk_file_system_model_new(), so that the caller has a chance to
	connect to the signal.
	(_gtk_file_system_model_new): Connect to the normal signals of the
	folder even if the initial _list_children() fails.  Also, see if
	the folder is finished loading; connect to the "finished-loading"
	signal otherwise.
	(gtk_file_system_model_finalize): Remove the idle handler.

	* gtk/gtkfilechooserdefault.c (set_list_model): Set a busy cursor
	and connect to the model's "finished-loading" signal.
	(get_toplevel): New helper function.
	(error_message): Use get_toplevel().
	(trap_activate_cb): Likewise.
	(location_popup_handler): Likewise.
	(set_busy_cursor): New function.
	(browse_files_model_finished_loading_cb): New callback.
2004-03-19 19:41:06 +00:00
Federico Mena Quintero
7cd0c2686d Only hide the "create folder" button in OPEN mode; all the others should
2004-03-15  Federico Mena Quintero  <federico@ximian.com>

	* gtk/gtkfilechooserdefault.c (update_appearance): Only hide the
	"create folder" button in OPEN mode; all the others should show it
	it.
	(get_paths_foreach): Handle the editable row.

	* gtk/gtkfilesystemunix.c (gtk_file_system_unix_create_folder):
	Force a re-get of the folder so that the new directory gets added
	to its hash table of file info.
2004-03-15 23:15:31 +00:00
Federico Mena Quintero
084bb2fe39 Allow the path to be NULL, so that people can ask for information about a
2004-03-14  Federico Mena Quintero  <federico@ximian.com>

	* gtk/gtkfilesystem.c (gtk_file_folder_get_info): Allow the path
	to be NULL, so that people can ask for information about a
	parent-less file system root (e.g. get_info (get_folder ("/"), NULL)).

	* gtk/gtkfilesystemunix.c (gtk_file_folder_unix_get_info): Allow
	the condition describe above.

	* gtk/gtkfilechooserdefault.c (get_file_info): Allow getting
	information of root paths.

	* gtk/gtkpathbar.c (_gtk_path_bar_set_path): Handle root paths correctly.
2004-03-15 05:42:51 +00:00
Morten Welinder
538ca81c01 Kill g_prints. 2004-03-15 02:26:51 +00:00
Federico Mena Quintero
dfa36bb4e4 Fixes , patch by Morten Welinder, with some changes.
2004-03-14  Federico Mena Quintero  <federico@ximian.com>

	Fixes , patch by Morten Welinder, with some changes.

	* gtk/gtkfilechooserdefault.c (check_is_folder): New helper function.
	(shortcuts_insert_path): Check the path first with check_is_folder().
	(gtk_file_chooser_default_set_current_folder): Likewise.
	(gtk_file_chooser_default_add_shortcut_folder): Likewise.
	(browse_widgets_create): Unref the size group.

	* gtk/gtkfilesystemunix.c (gtk_file_system_unix_get_folder):
	Handle the case where the file exists but it is not a directory.
	(IconType): Add value for ICON_UNDECIDED.
	(struct stat_info_entry): New structure to hold a file's struct
	stat, its MIME type and its icon type.
	(struct _GtkFileFolderUnix): Added a hash of struct
	stat_info_entry, and flags to remember which info types we've read
	so far.
	(get_icon_type): Use a helper function for the icons-from-stat
	types.
	(gtk_file_system_unix_render_icon): Use the cached file info.
	(gtk_file_folder_unix_get_info): Put the info in the cache.
	(gtk_file_system_unix_get_folder): Create the cache of file info
	structures.

	* gtk/gtkfilesystem.c (gtk_file_info_set_display_name): Handle the
	case where display_name is the same as the existing
	info->display_name.
2004-03-15 02:09:22 +00:00
Morten Welinder
75b842b71f Don't turn "/" into "". (gtk_file_system_unix_get_folder): Use the same
2004-03-14  Morten Welinder  <terra@gnome.org>

	* gtk/gtkfilesystemunix.c (get_parent_dir): Don't turn "/" into
	"".
	(gtk_file_system_unix_get_folder): Use the same value for lookup
	as for insertion.  Make sure we have a directory.
2004-03-14 20:20:03 +00:00
Anders Carlsson
72804ba43e Remove trailing slashes in path names.
2004-03-13  Anders Carlsson  <andersca@gnome.org>

	* gtk/gtkfilesystemunix.c: (remove_trailing_slash),
	(gtk_file_system_unix_get_folder),
	(gtk_file_system_unix_create_folder), (get_parent_dir),
	(gtk_file_system_unix_get_parent), (gtk_file_folder_unix_get_info):
	Remove trailing slashes in path names.
2004-03-13 19:15:21 +00:00
Federico Mena Quintero
57cbeff08e Fixes .
2004-03-08  Federico Mena Quintero  <federico@ximian.com>

	Fixes .

	* gtk/gtkfilesystemunix.c: Only lstat() if stat() failed due to
	ENOENT.
	(filename_get_info): Likewise.
2004-03-09 00:34:17 +00:00