Commit Graph

236 Commits

Author SHA1 Message Date
Benjamin Otte
45d54fcba6 filechooserentry: Use inline completion
... from GtkEntryCompletion instead of implementing a poor copy
ourselves. This also makes the file chooser entry behave a lot closer to
normal entries.
2011-12-16 20:09:13 +01:00
Benjamin Otte
cdd236ddd4 filechooserentry: Merge function 2011-12-16 20:09:13 +01:00
Benjamin Otte
c585471baf filechooserentry: Set the text column of the entry completion
I want to use it in the next commits, but am doing this in a separate
commit so we can find side effects causing bugs easier when bisecting.
2011-12-16 20:09:12 +01:00
Benjamin Otte
e3ef8a568e filechooserentry: Simplify match_selected function 2011-12-16 20:09:12 +01:00
Benjamin Otte
cde8ae7b1e filechooserentry: Keep an extra column for the full path
This is identical to the display name when not having a path that
changes the folder. Otherwise it will have the full path that was
entered in the entry. Say when from your home dir, you type
"../../usr/li", the full path for "lib" and "lib64" will be
"../../usr/lib" and "../../usr/lib64" respectively. This value isn't
used yet, but will be soon.
2011-12-16 20:09:12 +01:00
Benjamin Otte
1ac6ace87d filechooserentry: Redo _gtk_file_chooser_entry_get_file_part()
The new version does not need to update any text, it just strips the
last part of the existing entry.
2011-12-16 20:09:12 +01:00
Benjamin Otte
e2105c2bef filechooserentry: Modify _gtk_file_chooser_entry_get_current_folder()
The new version does not need to muck with the entry, it just extracts
the required information. It returns a reference to the folder though,
as we extract the information now instead of returning something stored.
2011-12-16 20:09:12 +01:00
Benjamin Otte
5c42972735 filechooserentry: Split out function
I want to use that function elsewhere, so split it out.
2011-12-16 20:09:12 +01:00
Benjamin Otte
2186c28263 filechooserentry: Simplify code
Now that the base folder is always != NULL, we can remove the parts of
the code that check for NULL.
2011-12-16 20:09:12 +01:00
Benjamin Otte
35198e142d filechooserentry: Ensure the base folder is always valid
If the base folder is set to NULL, then we just assume the home dir.
FIXME: Should we disallow a NULL folder?
2011-12-16 20:09:12 +01:00
Benjamin Otte
e0859004f6 filechooserentry: Don't complain about incomplete hostnames
First of all, those hostnames may very well be complete, second of all,
smb:// is a valid uri to enter.
2011-12-16 20:09:12 +01:00
Benjamin Otte
242afcfeff filechooserentry: Start autocomplete immediately
Don't do idle handlers for this.
2011-12-16 20:09:12 +01:00
Benjamin Otte
9ee577d5ee filechooserentry: Remove file_system argument
It's not needed anymore.
2011-12-16 20:09:12 +01:00
Benjamin Otte
c3da748cb2 filechooserentry: Simplify code
Now that we've imported the function in the last commit, rename it and
omit useless arguments by instead passing in the entry directly.
2011-12-16 20:09:12 +01:00
Benjamin Otte
9d09028970 filechooserentry: Move _gtk_file_system_parse()
It's very specific to the file chooser entry, so it's better kept there.
It's also not used anywhere else in the code.
2011-12-16 20:09:12 +01:00
Benjamin Otte
a1e0c1e042 filechooserentry: Use a GtkFileSystemModel
Replace the usage of a list store and a GtkFolder with a
GtkFileSystemModel. This improves performance and reduces code size.
2011-12-16 20:09:11 +01:00
Benjamin Otte
06a64daefc filechooserentry: Store the liststore as a treemodel
Just changes the type of the member variable. This way we can avoid a
lot of casts.
2011-12-16 20:09:11 +01:00
Benjamin Otte
5ebc69066a filechooserentry: Make appending / to directories simpler 2011-12-16 20:09:11 +01:00
Benjamin Otte
2b9ecd9706 filechooserentry: Only append / to directory names once
Since 069d78ed31 the / is appended to
directories upon constructing the display name, so there is no need to
do it later.
2011-12-16 20:09:11 +01:00
Benjamin Otte
8389922de9 filechooserentry: Don't trim away the slash after directories
It's not necessary as the code appending the slashes checks for a slash
these days.
2011-12-16 20:09:11 +01:00
Benjamin Otte
2ead847f7d filechooserentry: Fold in start_loading_current_folder()
The function just did one thing, we can just fold it into the only
caller.
2011-12-16 20:09:11 +01:00
Benjamin Otte
a04b70e51f filechooserentry: The file system cannot be NULL
Remove code that checked this.
2011-12-16 20:09:11 +01:00
Benjamin Otte
05398b8f1a filechooserentry: Make the filesystem a construct-only argument
This allows simplifications in the code.
2011-12-16 20:09:11 +01:00
Benjamin Otte
5aeac0bccb filechooserentry: Keep finished_loading variable ourselves
This will be useful in the next commits when the GtkFolder code
previously keeping that variable gets repalced.
2011-12-16 20:09:11 +01:00
Benjamin Otte
b6f6e33801 filechooserentry: force_reload is never TRUE
.. so remove it.
2011-12-16 20:09:11 +01:00
Benjamin Otte
f0cf1117e1 filechooserentry: Fold function into other
There's no need to discard the current folder's file without also
discarding the folder object.
2011-12-16 20:09:11 +01:00
Benjamin Otte
d5e5ca3e2a filechooserentry: Reorganize function
Setter functions the way I code it look like this (in order):
1) Figure out if the value changed. If not, exit early.
2) Clear the old value (ie unref stuff, disconnect signals
3) Copy the new value
4) Set up things about the new value

This reorganization does that.

And by doing that, it even reduces the amount of code and the amount of
branches (and with it, nesting) needed.
2011-12-16 20:09:11 +01:00
Benjamin Otte
7b51ca9a47 filechooserentry: Use the actual discarding function to discard a folder 2011-12-16 20:09:11 +01:00
Benjamin Otte
edddb666a7 filechooserentry: Don't use a magic number
... when we have a proper enum value for a column.
2011-12-16 20:09:11 +01:00
Federico Mena Quintero
9eb324dbaf No need to highlight the file's basename when setting the base folder
None of the cases where _gtk_file_chooser_entry_set_base_folder() appear to require
the entry highlighting the file's basename.  Doing the highlighting actually makes
things look weird in Save/Recent mode if you

  1. type a filename
  2. click on a recent-folder,

as right after (2) your filename would get its basename highlighted for
no apparent reason.

Signed-off-by: Federico Mena Quintero <federico@gnome.org>
2011-07-01 19:07:12 -05:00
Federico Mena Quintero
ae42f286bb Allow resolving absolute paths even if there is no base_folder
This lets us do proper completion in GtkFileChooserEntry even when no base folder
has been set.  Completion for relative paths won't work, as usual, as expected.
2011-07-01 19:07:11 -05:00
Mike Gorse
4fa3cef795 bgo#653191 - fix uninitialized variable in gtk_file_chooser_entry.c 2011-06-27 12:36:11 -05:00
Matthias Clasen
15a4a41b72 GtkFileChooserEntry: don't use a GtkAlignment 2011-06-07 22:17:06 -04:00
Federico Mena Quintero
eb02dacb37 [filechooser] Free things which got duplicated or reffed by gtk_tree_model_get()
We had forgotten to do that in a few places; this is a systematic search for those.

https://bugzilla.gnome.org/show_bug.cgi?id=646461
2011-04-01 17:00:17 -06:00
Matthias Clasen
d9fcc4c630 Silence new gcc warnings
gcc 4.6.0 has started to warn about set-but-unused variables.
So don't do that, then.
2011-01-23 21:51:38 -05:00
Matthias Clasen
b5c6904c2f Drop explicit includes of gdkkeysyms.h
These are no longer needed. At the same time, port gtkimcontextsimpleseqs.h
to use the new GDK_KEY_ symbols.
2011-01-04 12:21:41 -05:00
Carlos Garnacho
18b333bfe7 Make GtkFileChooserEntry make GtkStyleContext 2010-12-28 19:25:48 +01:00
Benjamin Otte
8f1f743903 gtk: Use g_object_unref instead of gdk_cursor_unref 2010-12-21 12:07:05 -05:00
Javier Jardón
8dd7ae38f9 gtkfilechooserentry: Use accessor functions to access GtkEntry 2010-10-26 06:07:43 +02:00
Benjamin Otte
d9c9259861 Move GtkSizeRequest into GtkWidget
It doesn't make sense to keep them separate as GtkSizeRequest requires a
GtkWidget and GtkWidget implements GtkSizeRequest, so you can never have
one without the other.
It also makes the code a lot easier because no casts are required when
calling functions.

Also, the names would translate to gtk_widget_get_width() and people
agreed that this would be a too generic name, so a "preferred" was added
to the names.

So this patch moves the functions:
gtk_size_request_get_request_mode() => gtk_widget_get_request_mode()
gtk_size_request_get_width() => gtk_widget_get_preferred_width()
gtk_size_request_get_height() => gtk_widget_get_preferred_height()
gtk_size_request_get_size() => gtk_widget_get_preferred_size()
gtk_size_request_get_width_for_height() =>
  gtk_widget_get_preferred_width_for_height()
gtk_size_request_get_height_for_width() =>
  gtk_widget_get_preferred_height_for_width()
... and moves the corresponding vfuncs to the GtkWidgetClass.

The patch also renames the implementations of the vfuncs in widgets to
include the word "preferrred".
2010-09-26 15:11:45 +02:00
Benjamin Otte
1d3f6b30b0 API: Rename gtk_cairo_paint_*() to gtk_paint_*()
Large patch, but just renaming.
Indentation should still mostly be correct because I took care of
keeping the indentation for this function name.
2010-09-26 15:11:42 +02:00
Benjamin Otte
b717f1b265 filechooserentry: Connect to draw event 2010-09-26 15:11:40 +02:00
Benjamin Otte
2ee8fdb79b gtk: gdk_drawable_get_display() => gdk_window_get_display() 2010-09-26 15:11:33 +02:00
Javier Jardón
efbf04236e Change GtkEditable typedef from GtkEditableClass to GtkEditabeInterface
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=323904
2010-09-17 19:57:09 +02:00
Javier Jardón
b140884fec Use gtk_size_request_get_size() instead deprecated gtk_widget_size_request()
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=629598

Signed-off-by: Javier Jardón <jjardon@gnome.org>
Signed-off-by: Tristan Van Berkom <tristanvb@openismus.com>
2010-09-15 03:02:58 +02:00
Colin Walters
913cdf3be7 GDK: Prefix key names with KEY_
The keysyms create a lot of potential namespace conflicts for
C, and are especially problematic for introspection, where we take
constants into the namespace, so GDK_Display conflicts with GdkDisplay.

For C application compatiblity, add gdkkeysyms-compat.h which uses
the old names.

Just one user in GTK+ continues to use gdkkeysyms-compat.h, which is
the gtkimcontextsimple.c, since porting that requires porting more
custom Perl code.
2010-09-08 18:51:44 -04:00
Tor Lillqvist
87bf99dcc5 Fix Win32 build 2010-08-29 12:40:56 +03:00
Javier Jardón
7f8aaf04da gtk/gtkfilechooserentry.c: use accessor functions to access GtkWidget 2010-08-22 22:56:11 +02:00
Stefan Kost
0e1eee26b9 [filechooserentry] don't show misplaced completion popup
Override the key-press-event instead of overriding the focus method.
Fixes #627139
2010-08-19 09:37:53 +03:00
Javier Jardón
0a07e9733b gtk/: fully remove gtkalias hacks
https://bugzilla.gnome.org/show_bug.cgi?id=623845
2010-07-10 02:51:26 +02:00
Javier Jardón
4232115e22 Deprecate widget flag: GTK_WIDGET_HAS_FOCUS
Use gtk_widget_has_focus() instead

https://bugzilla.gnome.org/show_bug.cgi?id=69872
2010-03-01 06:11:01 +01:00
Javier Jardón
1919f55647 Fix compilation warning: initialize variable to NO_MATCH 2009-11-09 09:41:51 +01:00
Stefan Walter
de60fd8cfd Use gtk_entry_xxx functions rather than using GtkEntry structure directly.
See bug #576801

svn path=/trunk/; revision=22589
2009-03-27 05:22:23 +00:00
Federico Mena Quintero
ba54644c38 GtkFileChooserEntry: handle slow folders by not autocompleting when the cursor is not at the end of the text
2009-01-22  Federico Mena Quintero  <federico@novell.com>

	* gtk/gtkfilechooserentry.c (autocomplete): Relax the assertion;
	just do nothing if the folder is not loaded or if the cursor position
	is not at the end of the text.  A very slow-to-load folder can get
	us into the latter state if the user starts typing first.

Signed-off-by: Federico Mena Quintero <federico@novell.com>

svn path=/trunk/; revision=22186
2009-01-23 01:52:36 +00:00
Federico Mena Quintero
7fde4a8542 GtkFileChooserEntry: fix the computation of 'complete but not unique' and appending a '/' to unique directory names
2009-01-22  Federico Mena Quintero  <federico@novell.com>

	Fix the computation of "complete but unique" in
	GtkFileChooserEntry.  Fix the case where "/" was not appended to a
	unique directory name during explicit Tab completion.

	* gtk/gtkfilechooserentry.c (maybe_append_separator_to_file):
	Return whether anything was appended as well as the new string
	itself.
	(find_common_prefix): Oops, only turn on
	is_complete_not_unique_ret if we had a unique match!
	(append_common_prefix): If we appended a directory separator, we
	*did* expand the common prefix, so we are not in the "nothing
	inserted" case.

Signed-off-by: Federico Mena Quintero <federico@novell.com>

svn path=/trunk/; revision=22184
2009-01-23 00:55:07 +00:00
Federico Mena Quintero
a8b06ad561 Comments for translators on the file chooser entry's completion feedback
(start_explicit_completion): Add comments for translators, to
	explain the purpose of the various feedback messages used during
	completion.

Signed-off-by: Federico Mena Quintero <federico@novell.com>

svn path=/trunk/; revision=22183
2009-01-23 00:54:52 +00:00
Federico Mena Quintero
cabc9f7f5c Pass refresh errors from the very bottom of the loading sequence up to the top
(start_loading_current_folder): Check if the folder to be loaded
	is non-native for the local_only=TRUE case; if so, return an error
	as we are configured to load only local folders.
	(reload_current_folder): Pass on errors from
	start_loading_current_folder().  Tighten the preconditions, as we
	are sure that we can only receive non-NULL folder-files to load.
	(refresh_current_folder_and_file_part): Pass on errors from
	reload_current_folder().  At the very end, assert the invariant
	described above.

Signed-off-by: Federico Mena Quintero <federico@novell.com>

svn path=/trunk/; revision=22182
2009-01-23 00:54:37 +00:00
Federico Mena Quintero
7ba4268d6b Factor out function to discard the loading process and the current folder file
(discard_loading_and_current_folder_file): Factor out function to
	cancel the cancellable and discard the current_folder_file,
	i.e. to reset the invariant to the "nothing valid is loaded" case.
	(gtk_file_chooser_entry_dispose): Use
	discard_loading_and_current_folder_file().
	(reload_current_folder): Likewise.
	(refresh_current_folder_and_file_part): Likewise, and ensure that
	the error cases result in the invariant being held.

Signed-off-by: Federico Mena Quintero <federico@novell.com>

svn path=/trunk/; revision=22181
2009-01-23 00:54:22 +00:00
Federico Mena Quintero
fe636e4be2 Process the result of refreshing the folder during autocompletion
(start_autocompletion): Process the result from refresh...().  We
	only do completion in the REFRESH_OK case.  For the error cases,
	we don't do anything, as this is autocompletion and must not
	result in non-asked-for errors popping up.

Signed-off-by: Federico Mena Quintero <federico@novell.com>

svn path=/trunk/; revision=22180
2009-01-23 00:54:08 +00:00
Federico Mena Quintero
c1205bbbb9 Don't handle errors when committing the completion
(commit_completion_and_refresh): Don't do anything with the result
	of refresh...(), since this function doesn't get called during
	completion-related interaction.

Signed-off-by: Federico Mena Quintero <federico@novell.com>

svn path=/trunk/; revision=22179
2009-01-23 00:53:53 +00:00
Federico Mena Quintero
65cd4f8df4 Process the result of refreshing the folder during explicit completion
(start_explicit_completion): Process the result from
	refresh...().  Here we present the actual feedback about only
	being able to display local folders for local_only=TRUE.

Signed-off-by: Federico Mena Quintero <federico@novell.com>

svn path=/trunk/; revision=22178
2009-01-23 00:53:38 +00:00
Federico Mena Quintero
2dd7cf4926 Return an error code when refreshing the entry from the user's input
2009-01-22  Federico Mena Quintero  <federico@novell.com>

	Return an error code when refreshing the entry from the user's
	input.  We use this in the completion code to know when completion
	can't happen due to (for example) having a non-local URI in a file
	chooser that is local_only=TRUE.

	Also, we start maintaining an invariant that
	chooser_entry->current_folder_file != NULL implies that:

		* what the user entered is valid

		* we are loading that folder (chooser_entry->load_folder_cancellable != NULL)

		* or we are done loading that folder, or we have a handle
		to it at least (chooser_entry->current_folder != NULL)

	The invariant also says that all of the above are NULL (and
	chooser_entry->current_folder_file == NULL) implies that the user
	typed something invalid.  This makes
	_gtk_file_chooser_entry_get_current_folder() not able to return
	an invalid folder.

	* gtk/gtkfilechooserentry.c (RefreshStatus): New enum.
	(refresh_current_folder_and_file_part): Return a RefreshStatus.
	We filter out incomplete hostnames here (typing
	"sftp://incompl[tab]" will error out), as well as completely
	unparsable input.

Signed-off-by: Federico Mena Quintero <federico@novell.com>

svn path=/trunk/; revision=22177
2009-01-23 00:53:23 +00:00
Federico Mena Quintero
e4bc68ba04 Don't do completion in the middle of an incomplete hostname
Fix completion so it doesn't pop up for every character in a URI
	hostname:

	* gtk/gtkfilechooser.h (GtkFileChooserError): Add a
	GTK_FILE_CHOOSER_ERROR_INCOMPLETE_HOSTNAME.

	* gtk/gtkfilesystem.c (_gtk_file_system_parse): Return an
	"incomplete hostname" error if the user has not typed a full
	hostname yet in an URI.

	* gtk/gtkfilechooserentry.c (append_common_prefix): If we get an
	incomplete hostname, just don't pop up an error, since that is a
	transient state and the user doesn't need to be notified about it.
	(refresh_current_folder_and_file_part): Don't revert to showing
	the base folder if we have an incomplete hostname.
	(reload_current_folder): Handle the passed folder being NULL, even
	if we must force a reload.  Also, reload the folder if we didn't
	have a cancellable for it (i.e. we hadn't started to load it
	before).

Signed-off-by: Federico Mena Quintero <federico@novell.com>

svn path=/trunk/; revision=22157
2009-01-21 03:17:01 +00:00
Federico Mena Quintero
2c07a59e54 Add a local_only property to GtkFileChooserEntry
Patch by Carlos Garnacho <carlos@imendio.com> - add a local_only
	property to GtkFileChooserEntry:

	* gtk/gtkfilechooserentry.c (struct _GtkFileChooserEntry): Add a
	local_only field.
	(_gtk_file_chooser_entry_init): Default to local_only being true.
	(start_explicit_completion): Don't allow completion of non-native
	files if local_only is turned on.
	(start_loading_current_folder): Don't start loading non-native
	folders if local_only is turned on.
	(_gtk_file_chooser_entry_set_local_only): New function.
	(_gtk_file_chooser_entry_get_local_only): New function.

	* gtk/gtkfilechooserentry.h (_gtk_file_chooser_entry_set_local_only,
	_gtk_file_chooser_entry_get_local_only): New prototypes.

	* gtk/gtkfilechooserdefault.c (set_local_only): Set the local_only
	property on the entry.

Signed-off-by: Federico Mena Quintero <federico@novell.com>

svn path=/trunk/; revision=22156
2009-01-21 03:16:46 +00:00
Federico Mena Quintero
92ec0276fc Factor out code to discard the current_folder
Patch by Carlos Garnacho <carlos@imendio.com>:

* gtk/gtkfilechooserentry.c (discard_current_folder): New
function, factored out for when we need to get rid of the
current_folder.
(gtk_file_chooser_entry_dispose): Use discard_current_folder().
(finished_loading_cb): Fix prototype.
(load_directory_get_folder_callback): Discard the completion
store, as well as clearing the completion feedback, if we find an
error while loading the folder.  Also, use
discard_current_folder().
(reload_current_folder): Use discard_current_folder().

Signed-off-by: Federico Mena Quintero <federico@novell.com>

svn path=/trunk/; revision=22155
2009-01-21 03:16:28 +00:00
Matthias Clasen
b6b5237663 Replace several implementation of blank cursor setting by
* gtk/gtkentry.c:
        * gtk/gtkfilechooserentry.c:
        * gtk/gtktextview.c: Replace several implementation of
        blank cursor setting by GDK_BLANK_CURSOR.


svn path=/trunk/; revision=22148
2009-01-20 02:45:19 +00:00
Matthias Clasen
50329fa7c0 Privately export this method. It classifies directories and mountables the
* gtk/gtkfilesystem.[hc] (_gtk_file_info_consider_as_directory):
        Privately export this method. It classifies directories and mountables
        the same.

        * gtk/gtkfilesystem.c (enclosing_volume_mount_cb): Silently drop
        G_IO_ERROR_ALREADY_MOUNTED error for gvfs backends without visible
        mounts.

        * gtk/gtkfilesystemmodel.c:
        * gtk/gtkfilechooserbutton.c:
        * gtk/gtkfilechooserentry.c:
        * gtk/gtkfilechooserdefault.c: Use the new function instead of
        direct checks for G_FILE_TYPE_DIRECTORY throughout.


svn path=/trunk/; revision=21898
2008-12-14 02:14:19 +00:00
Paolo Borelli
5e667ea561 use gdk_threads_add_idle so that the handler acquires the lock since it
2008-09-08  Paolo Borelli  <pborelli@katamail.com>

	* gtk/gtkfilechooserentry.c (install_start_autocompletion_idle):
	use gdk_threads_add_idle so that the handler acquires the lock
	since it calls gtk functions.


svn path=/trunk/; revision=21321
2008-09-08 14:29:26 +00:00
Sven Neumann
2a95978506 gtk/gtkaboutdialog.c gtk/gtkcellrendereraccel.c gtk/gtkcellrenderercombo.c
2008-08-11  Sven Neumann  <sven@gimp.org>

	* gtk/gtkaboutdialog.c
	* gtk/gtkcellrendereraccel.c
	* gtk/gtkcellrenderercombo.c
	* gtk/gtkcellrendererspin.c
	* gtk/gtkcellrenderertext.c
	* gtk/gtkclipboard.c
	* gtk/gtkcolorsel.c
	* gtk/gtkcombo.c
	* gtk/gtkcombobox.c
	* gtk/gtkdnd-quartz.c
	* gtk/gtkdnd.c
	* gtk/gtkentry.c
	* gtk/gtkentrycompletion.c
	* gtk/gtkfilechooserbutton.c
	* gtk/gtkfilechooserdefault.c
	* gtk/gtkfilechooserentry.c
	* gtk/gtkfontsel.c
	* gtk/gtkinputdialog.c
	* gtk/gtkmenutoolbutton.c
	* gtk/gtkpathbar.c
	* gtk/gtktooltip.c: use canonical signal names in 
g_signal_connect().


svn path=/trunk/; revision=21060
2008-08-11 09:17:49 +00:00
Matthias Clasen
7e39f9285a Add translator hints
svn path=/trunk/; revision=20902
2008-07-24 04:02:37 +00:00
Cody Russell
57223c9a05 Revert name change
svn path=/trunk/; revision=20724
2008-07-01 22:57:50 +00:00
Cody Russell
fce9c8b7d4 Practically everything changed.
2008-06-30  Cody Russell  <bratsche@gnome.org>

        * Practically everything changed.

        Change	all references	of GIMP	Toolkit	(and variations	of it)
        to GTK+	Toolkit, showing no mercy at all to our	beloved
	ancestry. (#540529)


svn path=/trunk/; revision=20709
2008-06-30 23:01:56 +00:00
Johan Dahlin
d97cdbdf53 Include "config.h" instead of <config.h> Command used: find -name
2008-06-21  Johan Dahlin  <jdahlin@async.com.br>

    * *.[ch]: Include "config.h" instead of <config.h>
    Command used:
    find -name \*.[ch]|xargs perl -p -i -e 's/^#include <config.h>/#include "config.h"/g'
    Rubberstamped by Mitch and Tim


svn path=/trunk/; revision=20669
2008-06-22 14:28:52 +00:00
Matthias Clasen
f9c7a4bbd0 Really make GtkFileSystem private by _-prefixing all functions.
* gtk/gtkfilechooserbutton.c:
        * gtk/gtkfilechooserdefault.c:
        * gtk/gtkfilechooserentry.c:
        * gtk/gtkfilesystem.c:
        * gtk/gtkfilesystem.h:
        * gtk/gtkfilesystemmodel.c:
        * gtk/gtkpathbar.c: Really make GtkFileSystem private
        by _-prefixing all functions.


svn path=/trunk/; revision=20378
2008-06-13 16:47:41 +00:00
Carlos Garnacho
640d68778a Bug 520874 - Should use gio directly.
2008-06-10  Carlos Garnacho  <carlos@imendio.com>

        Bug 520874 - Should use gio directly.

        * gtk/gtkfilesystem.[ch]: Turn into a private object, which mostly
        provides helper functions for asynchronous calls, folder abstraction
        and uniform handling of volumes/drives/mounts.

        * gtk/gtkfilesystemwin32.[ch]:
        * gtk/gtkfilesystemunix.[ch]: Removed, these are no longer required.

        * gtk/gtkfilechooser.c:
        * gtk/gtkfilechooserbutton.c:
        * gtk/gtkfilechooserdefault.c:
        * gtk/gtkfilechooserentry.[ch]:
        * gtk/gtkfilechooserprivate.h:
        * gtk/gtkfilechooserutils.c:
        * gtk/gtkfilesystemmodel.[ch]:
        * gtk/gtkpathbar.[ch]: Use GIO internally. Adapt to GtkFileSystem API.
        Do not load filesystem implementation modules.

        * gtk/Makefile.am:
        * gtk/gtk.symbols: the gtkfilesystem.h private header isn't installed
        anymore, nor the unix/win32 implementations.

        * README.in: Add blurb about these changes.

svn path=/trunk/; revision=20342
2008-06-10 00:39:35 +00:00
Federico Mena Quintero
cf62c83b0e bnc355225 - File chooser crash in Tab completion
2008-06-03  Federico Mena Quintero  <federico@novell.com>

	* gtk/gtkfilechooserentry.c (install_completion_feedback_timer):
	If the user presses Tab while the completion feedback window is
	active, then we'll assert.  Remove the assertion and just re-set
	the timer.  Fixes https://bugzilla.novell.com/show_bug.cgi?id=355225

Signed-off-by: Federico Mena Quintero <federico@novell.com>

svn path=/trunk/; revision=20305
2008-06-03 18:08:48 +00:00
Federico Mena Quintero
dec88cb285 Ahem, fix compilation
Signed-off-by: Federico Mena Quintero <federico@gnu.org>

svn path=/trunk/; revision=19938
2008-03-26 20:34:22 +00:00
Federico Mena Quintero
00b34c0b3d Make 'Ok' work for the file chooser entry
2008-03-26  Federico Mena Quintero  <federico@novell.com>

	* gtk/gtkfilechooserentry.c (commit_completion_and_refresh): New
	helper function; factored out from the functions that commit the
	current suggested autocompletion and that refresh the entry's paths.
	(gtk_file_chooser_entry_activate): Use commit_completion_and_refresh().
	(_gtk_file_chooser_entry_get_file_part): Likewise.
	(_gtk_file_chooser_entry_get_current_folder): Likewise.  This
	makes the entry have the correct paths when *not* using any form
	of completion (and makes the file chooser work when clicking the
	OK button).

Signed-off-by: Federico Mena Quintero <federico@gnu.org>

svn path=/trunk/; revision=19937
2008-03-26 20:22:50 +00:00
Federico Mena Quintero
5ed9d8099c Hide the mouse cursor in the completion feedback window
2008-03-13  Federico Mena Quintero  <federico@novell.com>

	* gtk/gtkfilechooserentry.c (create_completion_feedback_window):
	Set the mouse cursor of the feedback window to invisible, so that
	we respect GtkEntry's invisible cursor while typing.

Signed-off-by: Federico Mena Quintero <federico@gnu.org>

svn path=/trunk/; revision=19870
2008-03-14 02:45:44 +00:00
Federico Mena Quintero
d31b7a0dd8 Use rough font-based spacing for the completion entry's suggestion window
2008-03-13  Federico Mena Quintero  <federico@novell.com>

	* gtk/gtkfilechooserentry.c (show_completion_feedback_window): Put
	the feedback window at entry_height/2 pixels to the right of the
	cursor, for a cheap "M-width / 2" spacing.

Signed-off-by: Federico Mena Quintero <federico@gnu.org>

svn path=/trunk/; revision=19869
2008-03-14 02:13:54 +00:00
Federico Mena Quintero
c2d5bcb7f7 Beep with gtk_widget_error_bell()
Signed-off-by: Federico Mena Quintero <federico@gnu.org>

svn path=/trunk/; revision=19859
2008-03-13 00:48:10 +00:00
Federico Mena Quintero
cec81cbfdf Better feedback for sole completions
Signed-off-by: Federico Mena Quintero <federico@gnu.org>

svn path=/trunk/; revision=19858
2008-03-13 00:47:54 +00:00
Federico Mena Quintero
1e60639143 Don't complete the directory separator if it would result in double separators
Signed-off-by: Federico Mena Quintero <federico@gnu.org>

svn path=/trunk/; revision=19857
2008-03-13 00:47:38 +00:00
Federico Mena Quintero
b7e32c8dcb Remove obsolete FIXMEs
Signed-off-by: Federico Mena Quintero <federico@gnu.org>

svn path=/trunk/; revision=19856
2008-03-13 00:47:21 +00:00
Federico Mena Quintero
74f3d16c26 Remove debug printfs
Signed-off-by: Federico Mena Quintero <federico@gnu.org>

svn path=/trunk/; revision=19855
2008-03-13 00:47:05 +00:00
Federico Mena Quintero
bb4c73e81b Add some FIXMEs
Signed-off-by: Federico Mena Quintero <federico@gnu.org>

svn path=/trunk/; revision=19854
2008-03-13 00:46:48 +00:00
Federico Mena Quintero
b0e2c417cb On error when loading a folder, use the raw error message instead of commenting it up
Signed-off-by: Federico Mena Quintero <federico@gnu.org>

svn path=/trunk/; revision=19853
2008-03-13 00:46:31 +00:00
Federico Mena Quintero
c406ebcc44 Clear the current_folder_path if loading yields an error
Signed-off-by: Federico Mena Quintero <federico@gnu.org>

svn path=/trunk/; revision=19852
2008-03-13 00:46:14 +00:00
Federico Mena Quintero
7efced5687 Present an error if we can't load the folder during explicit completion
Signed-off-by: Federico Mena Quintero <federico@gnu.org>

svn path=/trunk/; revision=19851
2008-03-13 00:45:58 +00:00
Federico Mena Quintero
d5df63cc1c Detect when Tab would generate no new completions
Signed-off-by: Federico Mena Quintero <federico@gnu.org>

svn path=/trunk/; revision=19850
2008-03-13 00:45:41 +00:00
Federico Mena Quintero
801553bee6 Debug printfs for deleting/inserting the completion
Signed-off-by: Federico Mena Quintero <federico@gnu.org>

svn path=/trunk/; revision=19849
2008-03-13 00:45:23 +00:00
Federico Mena Quintero
857c561ffe If explicitly completing and we have a completion, just unselect it
Signed-off-by: Federico Mena Quintero <federico@gnu.org>

svn path=/trunk/; revision=19848
2008-03-13 00:45:05 +00:00
Federico Mena Quintero
bcb36780ed Another FIXME
Signed-off-by: Federico Mena Quintero <federico@gnu.org>

svn path=/trunk/; revision=19847
2008-03-13 00:44:48 +00:00
Federico Mena Quintero
e33260acf3 Add completion feedback in other places
Signed-off-by: Federico Mena Quintero <federico@gnu.org>

svn path=/trunk/; revision=19846
2008-03-13 00:44:30 +00:00
Federico Mena Quintero
932e20e9df Find the cursor position from GtkEntry for the completion feedback
Signed-off-by: Federico Mena Quintero <federico@gnu.org>

svn path=/trunk/; revision=19845
2008-03-13 00:44:12 +00:00
Federico Mena Quintero
197ab5dee8 Use a timer for the completion feedback window
Signed-off-by: Federico Mena Quintero <federico@gnu.org>

svn path=/trunk/; revision=19844
2008-03-13 00:43:54 +00:00
Federico Mena Quintero
2465beb901 Destroy the completion feedback window
Signed-off-by: Federico Mena Quintero <federico@gnu.org>

svn path=/trunk/; revision=19843
2008-03-13 00:43:36 +00:00
Federico Mena Quintero
53b09108df Use an alignment for the label like in GtkTooltip
Signed-off-by: Federico Mena Quintero <federico@gnu.org>

svn path=/trunk/; revision=19842
2008-03-13 00:43:18 +00:00
Federico Mena Quintero
547069a38e Show the label as well as the feedback window
Signed-off-by: Federico Mena Quintero <federico@gnu.org>

svn path=/trunk/; revision=19841
2008-03-13 00:42:58 +00:00
Federico Mena Quintero
b17ffff0ff Debug printfs for the completion feedback position
Signed-off-by: Federico Mena Quintero <federico@gnu.org>

svn path=/trunk/; revision=19840
2008-03-13 00:42:38 +00:00