This doesn't give us anything currently, but it's the direction that
GtkColumnView is going in, so let's use it. Some minor modifications
are necessary to list-base where GridView and ColumnView share code.
When moving multiple files to trash, the toast currently
says: "%d files deleted". However, "deleted" implies permanent
loss of data. But, in this case, we are just moving files to the trash.
This commit corrects the string to show the actual action:
"%d files moved to trash".
Also correct Translators comments to make it consistent with the action.
Fixes: https://gitlab.gnome.org/GNOME/nautilus/-/issues/2830
Using the same icon as for closing windows and dialogs can lead to user
confusion and thus accidental cancellation of operations.
This adds and uses a new icon, inspired by Builder's use of it to stop
ongoing operations.
Fixes#985
The callback function in delete_files_recursively() uses the results
from its GError to determine if it should call
nautilus_file_changes_queue_file_removed() (which ultimately calls the
list-base remove_file() function).
This normally, works as expected, except when one of the child
files fails to delete. We check for recursive deletion failures, but
we never get the error that caused that failure. This means that the
callback function will believe that the parent folder was deleted
(when it really wasn't), and the item will disappear from the view in
Nautilus because of the call to nautilus_file_changes_queue_file_removed().
If we weren't successful at deleting, but there's no error, that means
that a recursive call to delete failed. In that case let's generate
our own error.
Fixes: #517
It includes the GTK bugfix mentioned in 2e10ed11d9
As we have removed the workaround, we cannot accept a GTK
version without that bugfix, because that would cause a
regression.
And we can't restore the workaround either, because it
misbehaves when using the fixed GTK version.
This leaves us with no other choice than requiring the
fixed GTK version.
This reverts commit 9ecd422cc7.
Its commit message is misleading. Maybe it had such a side effect,
but the issue it fixed was actually a GTK bug which got fixed in the
meantime: https://gitlab.gnome.org/GNOME/gtk/-/commit/8455b9ac74d5337429a1a14eb>
Also, reverting it fixes a new bug: the first item is selected when
the item which was selected has been deleted. Next item should be
selected instead.
In 098f6a43d7 the style was changed from
dim-label to caption. For consistency with list-view columns and to have
less visual noise, add the dim-label style class back.
Fixes#2876
At some point, the flatpak command line interface changed so it is not
possible to add multiple values to a same key with a single --add-policy
call. Doing this now results in a single value added, with the ';'
escaped, this breaks Tracker portal access and results in Nautilus resorting
to the built-in miner instance.
It is however possible to call --add-policy multiple times to make
a multi-valued key, this restores the intended behavior and provides
access to the two tracker:FileSystem and tracker:Documents graphs.
Adapt the flatpak manifest to do this.
Closes: https://gitlab.gnome.org/GNOME/nautilus/-/issues/2838
We present a new toast every time the undo action changed which
is confusing because you might have several undo toasts appearing
over each other. To complicate matters, the previous undo toasts
lie (undo'ing would actually undo a different action).
There was a proposal in #2350 to batch undo toasts, but that's problematic
because our undo manager is designed to undo exactly 1 action,
we do not have an undo stack.
The more straightforward solution seems to be simply dismissing the
old undo toasts, when we popup a new undo toast.
Fixes: https://gitlab.gnome.org/GNOME/nautilus/-/issues/2350
Whenever g_time_zone_new_local() is called it has to check the file
system for changes, because the system's time zone might have changed
since the last call. This function was called multiple times for each
file when generating the date string, which was causing some unnecessary
overhead.
This changes the code to re-use the local time zone from the first call.
Nautilus crashes under d45b820d when we open a second window and
in both windows navigate to a common new location.
This is caused by incorrect reference management in action_clone_window,
where neither nautilus_window_slot_get_location nor
nautilus_window_slot_get_pending_location increases the ref count of
the GFile location. g_autoptr would cause location to be prematurely
freed.
Take the reference of location to allow g_autoptr to work correctly for
all branches of action_clone_window.
Fixes https://gitlab.gnome.org/GNOME/nautilus/-/issues/2858
Grid view selections feature a border for increased visibility.
Our list view lacks that because it adds custom padding, so we need
to add it as a custom style.
Fixes: https://gitlab.gnome.org/GNOME/nautilus/-/issues/2909
We've added them because the colors assigned by the default stylesheet
were not adequate as per design review: d7b0365621
Libadwaita 1.3 updated the stylesheet to use the design-choosen colors
by default in views. [0]
So, we should drop our overrides which are now unnecessary and even
harmful (they may be out of sync). Also, require the stable release of
the dependency, because 1.3.alpha didn't include [0].
[0] fd83834f83
This reverts commit 5f1680f9df.
It avoids a warning from g_date_time_new_from_iso8601() by pushing
the code flow into another warning. A different solution is to follow.
Correctly handle the cancellation of a clipboard update by checking
the return value of gdk_clipboard_read_value_finish() and returning
early on cancellation.
Fixes: #2868
Under certain circumstances (i.e. moving a file), we end up adding
a non-existent file. This causes selection problems because the
non-existent file is selected and then removed (causing another file
to be selected). I'm not sure where the root cause is (between
directory-async, directory notify, etc), but lets simply not add
a file that we know shouldn't be added.
Fixes: https://gitlab.gnome.org/GNOME/nautilus/-/issues/2828
Similar to the last commit, we are using fedora:latest which doesn't
know about a new dependency for libadwait (appstream). Install it
manually after the dnf builddep.
The pages job currently fails as the gnome-autoar dependency has been
bumped without updating the image. However, the image is based on
fedora:latest, which is still Fedora 37. So it doesn't include the latest
gnome-autoar release anyways. Let's build the gnome-autoar master to
fix the pipeline.
When using tree expanders, we have special cases for the backing uri.
In GridView or ColumnView (without expanders), the backing uri is
always the current view directory. With tree expanders, the backing
uri is either the parent of the currently selected item, or the
currently selected item (if it is an expanded directory). The same
rules apply for multiple selection if there is a common parent.
This was the case in 42, and the code was dropped in
6708861ed1, and as an oversight wasn't added
back in when tree expanders were reintroduced.
Fixes: https://gitlab.gnome.org/GNOME/nautilus/-/issues/2888
Currently, it isn't possible to use Nautilus for the extraction of the
".zstd" and ".tar.zst" archives. However, it seems that this compression
is supported by the libarchive library nowadays. Let's add the
`application/zstd` and `application/x-zstd-compressed-tar` mime-types
to the list of supported. This will allow Nautilus to show the "Extract"
and "Extract to..." actions. Also, bump the gnome-autoar dependency to
the version with a corresponding change.
Related: https://gitlab.gnome.org/GNOME/gnome-autoar/-/merge_requests/38
Fixes: https://gitlab.gnome.org/GNOME/nautilus/-/issues/2860
Dead keys insert a provisional visual indication, which looks like a
text insertion, but is actually signaled as `::delete-text`. Unlike
regular emissions of `::delete-text`, here the start and end positions
are exactly the same (so you know nothing is actually deleted).
Nautilus deletes the neighbouring tag
When a dead key is entered into the batch rename entry, it deletes
the neighbouring tag. This occurs for just before, inside and just
after the tag.
This happens because our logic for knowing when to delete special
text tags is assuming end_position > start_position, which is not
the case with dead keys.
Add conditions to ensure intersecting selections cannot be zero-length.
Fixes https://gitlab.gnome.org/GNOME/nautilus/-/issues/2821
nautilus-dropbox and probably other such extensions use emblems to
indicate sync status.
If these icons are installed as unthemed icons, then we don't
display them at all. This is because the way we are checking that
an icon exists ignores the unthemed icons completely, which is
arguably a GTK bug (https://gitlab.gnome.org/GNOME/gtk/-/issues/5709)
While the GTK inconsistency is not addressed, let's use a workaround
to check more effectively whether an icon exits.
Fixes https://gitlab.gnome.org/GNOME/nautilus/-/issues/2789
Open properties on the search directory crashes Nautilus.
Exclude search, recent, and starred from opening
current directory properties when no file is selected.
Fixes#2903
In the sidebar, when dragging to re-order bookmarks,
other bookmarked folders are automatically opening while hovering
over them as it happens during a drag-and-drop operation.
This action should not be permitted because it is inconceivable to
drag-and-drop a bookmark into another bookmark.
Implement a check to prevent automatically navigating
into the bookmarked folders if they are hovered on while dragging
a bookmark with the intent to just re-order them.
It achieves this behavior by not adding a navigation hover timeout
if we are dragging a row (bookmark) in the sidebar.
Fixes: https://gitlab.gnome.org/GNOME/nautilus/-/issues/2820
Nautilus fails critical assertions if the user opens then closes a
new window in rapid succession in a large folder.
This is because the GSource created by
nautilus_path_bar_set_templates_menu to bind menu model to popover is
not removed even if the pathbar has already been finalized by the user
closing the window.
Keep track of the source id and remove source if the pathbar is
being disposed of.
Fixes https://gitlab.gnome.org/GNOME/nautilus/-/issues/2867
When the current location is marked as gone, Nautilus jumps to the
first existing parent currently (except for non-native locations and
mount roots). This is fine in most cases, but not for autofs locations
as Nautilus jumps to parent everytime autofs mount timeouted. It would
be better to stay in the same folder in this case. Let's try the current
location first even if it is marked as gone to ensure that. It would be
perhaps even better to prevent autofs locations somehow from timeouting
at all, or avoid immediate remounting at least, but those solutions
don't look easy to implement.
Fixes: https://gitlab.gnome.org/GNOME/nautilus/-/issues/1514