| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
| |
Hiding the location entry was causing criticals, because
the completion was updated after the widget has already
been disposed.
https://bugzilla.gnome.org/show_bug.cgi?id=720330
|
|
|
|
| |
Instead of Return value:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When the file chooser changes directories, it tells the GtkFileChooserEntry to
change its base folder (i.e. the folder from which relative pathnames are resolved).
GtkFileChooserEntry then starts loading a GtkFileSystemModel asynchronously.
In the finished_loading_cb(), however, it would always ask the GtkEntryCompletion
to insert the completion prefix, since that finished_loading_cb() is what is also used
while the user is typing *in the entry*.
But when the entry doesn't have the focus (e.g. the user changed directories by double-clicking
on the file list in the file chooser), there's no reason to insert completions at all.
https://bugzilla.gnome.org/show_bug.cgi?id=672271
Signed-off-by: Federico Mena Quintero <federico@gnome.org>
|
|
|
|
|
|
| |
Negatives in names of boolean functions are confusing.
Signed-off-by: Federico Mena Quintero <federico@gnome.org>
|
|
|
|
|
|
|
| |
Since FUSE locations can be handled safely by applications show these mounted locations regardless of whether gtk_file_chooser_set_local_only()
is set to TRUE
https://bugzilla.gnome.org/show_bug.cgi?id=586367
|
|
|
|
|
|
| |
Inserting the selected completion did not actually work. Oops.
https://bugzilla.gnome.org/show_bug.cgi?id=673090
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Instead of in the key_press handler, use a signal handler. The signal
handler runs before the default handler, and before other signal
handlers. In particular it runs before the signal handler installed via
gtk_entry_set_completion() which pops down the entry completion, and we
don't want that to happen.
The code does not change the code of the handler in any significant way,
it just refacotrs it to not call the parent anymore.
https://bugzilla.gnome.org/show_bug.cgi?id=663573
|
|
|
|
|
|
|
| |
When saving files, using <tab> is required. We don't want the UI
randomly changing filenames from below us.
https://bugzilla.gnome.org/show_bug.cgi?id=663573
|
| |
|
|
|
|
|
|
|
|
| |
This was removed previously, but is necessary to support the case where
no base folder is in use, which should cause an error. This can be
experienced in save mode in the recent files list.
https://bugzilla.gnome.org/show_bug.cgi?id=663573
|
|
|
|
|
| |
We don't want to complete on files when they're not supposed to be
selectable.
|
|
|
|
|
| |
There's only 2 places left where we potentially beep. We can call
gtk_widget_error_bell() directly there.
|
|
|
|
|
| |
Most importantly, consistently trigger a beep when we abort a pending
completion.
|
|
|
|
|
|
|
|
|
| |
That way, we can use the regular filtering features of the
filesystemmodel instead of having our own filtering function that
duplicates much of the matching code.
This also removes the broken-on-windows feature where files strting with
a dot were not autocompleted.
|
|
|
|
| |
It is not needed anymore.
|
|
|
|
|
|
|
|
| |
Use all the clever functions we invented in recent refactorings to
compute the file and dir part and the current folder.
This also fixes the bug where "./" was not taken as the current
directory but interpreted as a file named "./".
|
|
|
|
|
| |
Name the function set_completion_folder() and make it accept NULL, so it
behaves like a regular setter function.
|
|
|
|
| |
We want the empty chooser to show possible completions, too.
|
|
|
|
|
| |
The function can get the text it's refreshing from itself, as there is
only one possible value. And it doesn't need to return a value anymore.
|
|
|
|
| |
in_change isn't set anymore.
|
|
|
|
| |
gtk_entry_set_text() is fine.
|
|
|
|
|
| |
Reduce the amount of code even more by using the entry completion to
query the prefix.
|
|
|
|
|
|
| |
This returns the text that should be completed on. As this is somewhat
tricky to compute (and in fact one place did it wrong), let's make it a
function.
|
|
|
|
|
|
| |
The folder is always up to date, there's no need to update it. (If the
folder is not up to date, that is a bug and needs to be fixed
elsewhere.)
|
|
|
|
|
| |
The code is no longer necessary, because the relevant parts for inline
completion are now handled by GtkEntry.
|
|
|
|
|
|
|
| |
Now that we don't need to know anymore why insertion failed, we can
simplify the append function quite a lot.
A simple rule now: If we did not insert anything, beep.
|
|
|
|
|
|
|
|
|
|
| |
Too much special code for no gain.
I did a totally unscientific questionnaire on GNOME IRC (assuming
autocompletion is for advanced users) and nobody even knew what this is.
So I suspect it's useless. Also, it's positioned completely wrong anyway
and nobody noticed so far. Last but not least, I'm trying to imitate
bash here and bash doesn't show feedback.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Use dispatch_properties_changed() instead of GtkEditable to watch for
changes to the to-be-completed text. This is necessary because various
functions in GtkEntry don't use the interface vfuncs and one only
becomes aware of them via notifications. I'm not sure this is intended
behavior, but it's how it works today.
Also, use the same code for triggering in all situations.
What the code does is this: It looks at the part of the text in front of
the cursor (or selection) and completes for it. Once the directory has
been enumerated, inline completion is activated. Note that popping up of
the completion popup is completely handled by GtkEntry.
|
|
|
|
|
|
|
| |
Instead, pass the text to use to refresh_current_folder_and_file_part().
This also gets rid of the problem introduced earlier that the position
is not properly updated in do_insert_text() and therefor the completion
is wrong.
|
|
|
|
|
|
| |
... from GtkEntryCompletion instead of implementing a poor copy
ourselves. This also makes the file chooser entry behave a lot closer to
normal entries.
|
| |
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
The new version does not need to update any text, it just strips the
last part of the existing entry.
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
I want to use that function elsewhere, so split it out.
|
|
|
|
|
| |
Now that the base folder is always != NULL, we can remove the parts of
the code that check for NULL.
|
|
|
|
|
| |
If the base folder is set to NULL, then we just assume the home dir.
FIXME: Should we disallow a NULL folder?
|
|
|
|
|
| |
First of all, those hostnames may very well be complete, second of all,
smb:// is a valid uri to enter.
|
|
|
|
| |
Don't do idle handlers for this.
|
|
|
|
| |
It's not needed anymore.
|
|
|
|
|
| |
Now that we've imported the function in the last commit, rename it and
omit useless arguments by instead passing in the entry directly.
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
Replace the usage of a list store and a GtkFolder with a
GtkFileSystemModel. This improves performance and reduces code size.
|
|
|
|
|
| |
Just changes the type of the member variable. This way we can avoid a
lot of casts.
|
| |
|
|
|
|
|
|
| |
Since 069d78ed31fc1c0a9cb7621d27fe10d7b974315b the / is appended to
directories upon constructing the display name, so there is no need to
do it later.
|
|
|
|
|
| |
It's not necessary as the code appending the slashes checks for a slash
these days.
|