1
0
mirror of https://gitlab.gnome.org/GNOME/nautilus synced 2024-07-04 17:30:47 +00:00
Commit Graph

25199 Commits

Author SHA1 Message Date
António Fernandes
fcbfcd4c5d files-view: Omit some menu sections on Network View
These actions do not make sense on the virtual files of that view.
2024-06-02 15:39:09 +00:00
António Fernandes
6d47c4c1f3 network-view: Disable background context menu
It's useless here.
2024-06-02 15:39:09 +00:00
António Fernandes
0ff13a90f0 files-view: Add network view empty state 2024-06-02 15:39:09 +00:00
António Fernandes
3494cd79df network-cell: Show spinner while mounting/unmounting 2024-06-02 15:39:09 +00:00
António Fernandes
c674046e29 files-view: Prevent use-after-free with mount and stop
Unmount and eject are already doing this since commit 80dd8fb8ff

Let's do the same for mount and stop, and use g_autoptr() to emphasize
the callback taking ownership of the reference passed to the method.
2024-06-02 15:39:09 +00:00
António Fernandes
da79c2f3bf files-view: Update file mount info when mounted
Otherwise, nautilus_file_can_unmount() will still return FALSE for
a file which is already mounted, until the can-unmount attribute
is updated asynchronously by the file monitor.

This is needed for the next commit to be able to check whether
unmount is possible as soon as the mount operation completes.
2024-06-02 15:39:09 +00:00
António Fernandes
7e6af9d61d general: Introduce Network place
And request network view for network view directory.

Remember whether the previous view was grid or list, to preserve
per-window settings.
2024-06-02 15:39:09 +00:00
António Fernandes
d1437e9fd6 network-view: Introduce new view and cells
This is the replacement for the Other Locations.

See https://gitlab.gnome.org/GNOME/nautilus/-/issues/2785
2024-06-02 15:39:09 +00:00
António Fernandes
41b3bed264 pathbar: Add support for custom network view scheme 2024-06-02 15:39:09 +00:00
António Fernandes
a157d6d07f file: Enhance mountables and shortcuts support
We have barely been exposing to these file types since the Computer and
Network places were replaced by Other Locations.

Now that NautilusNetworkDirectory brings them back into use, we need
to account for their special status.

Both mountables and shortcuts to folders open in view, acknowledge it.
And use mountable target URI (if available) as its activation URI.
2024-06-02 15:39:09 +00:00
António Fernandes
e845387f80 view-model: Provide section sorter setter 2024-06-02 15:39:09 +00:00
António Fernandes
8ce91a54b6 recent-servers: Load on idle
GBookmarkFile doesn't provide an asynchronous loading API. Given how
GtkPlacesView has always been doing it in the main thread, I suppose
it's fine.

Still, least it cause some delays, let's do it on idle.
2024-06-02 15:39:09 +00:00
António Fernandes
b72f62f65c recent-servers: Expose functions for UI
For the purpose of these functions, there is no need to set up a file
monitor, nor for the NautilusRecentServers object at all. But they are
provided here to keep context and reuse server_list_load().

The network address bar is going to be adding servers to the list,
while the upcoming network view is going to allow to remove them.
2024-06-02 15:39:09 +00:00
António Fernandes
0a78f8cee2 network-directory: Provide recent servers
These used to be displayed in a popover attached to the address entry
in the old Other Locations view.

The new design asks for them to be provided in-line with other items
in the view.

As such, reuse and expand the recent servers code to produce GFileInfo
models for the NautilusNetworkDirectory to create new virtual files
from. Unlike the virtual files aggregated sourced from the network:///
and computer:/// GVFS backends, these virtual NautilusFiles have no
corresponding GVFS presence, and are entirely "nautilus-land" files.

Big credit goes to the people who designed the nautilus directory and
file abstractions with this in mind.
2024-06-02 15:39:09 +00:00
António Fernandes
a0a54a72dd recent-servers: New recycled object 2024-06-02 15:39:09 +00:00
António Fernandes
2e9fca4510 gtkplacesview: Format with uncrustify 2024-06-02 15:39:09 +00:00
António Fernandes
c19589fc43 gtkplacesview: Drop non-reusable code 2024-06-02 15:39:09 +00:00
António Fernandes
1906daebd8 network-address-bar: Add clear button
It had already been added once[0], later replaced by the info icon[1].

[0] 9341f64c19
[1] bb8b459407
2024-06-02 15:39:09 +00:00
António Fernandes
1d9332c6c9 network-address-bar: Use new icon
As per mockups.

Part of: https://gitlab.gnome.org/GNOME/nautilus/-/issues/2785
2024-06-02 15:39:09 +00:00
António Fernandes
62c4a979ba network-address-bar: Recycle widgetry (step 2/2)
The new design for Network view uses an address entry bar which is
similar to the one from Other Locations view. Instead of reinventing
the wheel, let's salvage some code.

In addition to formatting the code to nautilus style, this also makes
a couple of visual changes to match the design requests.

https://gitlab.gnome.org/GNOME/nautilus/-/issues/2785
2024-06-02 15:39:09 +00:00
António Fernandes
2e59a031c1 network-address-bar: Recycle widgetry (step 1/2)
Rename file before applying changes to it, for git to preserve its
history. Otherwise it will look like the XML is new.
2024-06-02 15:39:09 +00:00
António Fernandes
7c12611bd0 gtkplacesview: Remove from build
Now that NautilusPlacesView is gone, we don't use this anymore.

But there is quite a bit of recycleable code here. So, let's take this
out of the build pipeline in order to disassemble it freely.
2024-06-02 15:39:09 +00:00
António Fernandes
6997f3a5eb general: Remove Other Locations
It's going to be replaced with a new Network view.[0]

For now this removes only the direct support in nautilus code proper.
The code imported from GtkPlacesView is kept to be recycled for a new
purpose.

[0] https://gitlab.gnome.org/GNOME/nautilus/-/issues/2785
2024-06-02 15:39:09 +00:00
António Fernandes
b85d0773a4 gtkplacessidebar: Drop unused places and options
This used to be shared with GTK, and even public GTK API, before GTK 4.

Therefore, it has optional behaviors we don't use. Drop them.
2024-06-02 15:39:09 +00:00
Martin
cbee15bd21 Update Slovenian translation 2024-06-02 05:39:26 +00:00
Khalid Abu Shawarib
13f3ec9f35 proprties: Don't scale up the image
In [1], a frame and an overlay were introduced for the redesign of the
thumbnail editor so that the new edit and clear buttons will not be
entirely inside the image frame. This was inside a GtkStack with
another a image which caused it to be scaled since the stack enforces
size homogeneity by default. This is undesirable, so disable it.

[1] 1c70bab1f0

Fixes: https://gitlab.gnome.org/GNOME/nautilus/-/issues/3422#note_2128815
2024-06-01 14:03:54 +00:00
António Fernandes
41c0c1f624 internal-place-file: Mount network:/// on ready request
The whole application freezes the first time `x-network-view:///` is
visited during a session (or after `killall gvfsd-network`).

This happens because GDaemonFile makes sync DBus calls to mount the
`network:///` location when we call `g_file_monitor_directory()`[0],
which is done by the view when the ready callback is invoked.

In order to avoid this, ensure the `network:///` location is mounted
before invoking the ready callback for the `x-network-view:///` file.

(This achieves a result which is similar to accessing `network:///`
directly, or any other location which is slow to mount: the location
is not changed until after the mount succeeds. I don't think this is
good UX, but it's an entirely different problem which is not specific
to the Network view at all.)

[0] More context on https://gitlab.gnome.org/GNOME/gvfs/-/issues/455
2024-06-01 11:57:05 +00:00
António Fernandes
f0d250d0cc network-directory: Introduce new directory subclass
This aggregates files from two sources:

* network:// for discoverable network resources
* computer:// for remote mounts and volumes

For the second case, we need to filter out local mounts and volumes.
For the time being, this is implemented by relying on the the icon
names, until a new file attribute is provided by GVFS.
2024-06-01 11:57:05 +00:00
António Fernandes
7776f13c69 internal-place-file: Introduce new file subclass
Instead of special casing the NautilusFile for the starred:/// URI,
give it a proper display name as part of a new specialized subclass.

This is prepared to handle more cases, like the upcoming Network view.
2024-06-01 11:57:05 +00:00
António Fernandes
61032380f3 file: Document vtable
Ensure no virtual method is left undefined by subclasses.
2024-06-01 11:57:05 +00:00
António Fernandes
6d47fce9c9 file: Make get_where_string() non-polymorphic
Similarly to .get_date(), addressed by the previous commit, this has
been added for the sake of NautilusTrashFile[0] for it to say it lives:

   "on the desktop"

We have no desktop anymore. NautilusSearchDirectoryFile is not on
desktop nor in any view, and it doesn't have a parent, so it doesn't
need this either.

[0] commit d23bb1b5be
2024-06-01 11:57:05 +00:00
António Fernandes
ce35cd2441 file: Make get_date() method non-polymorphic
It was born as a virtual method with 2 implementations: NautilusVfsFile
and NautilusTrashFile: commit e82bab8c49

Nowadays only the NautilusVfsFile implements it anyway, so, rather than
leaving it undefined for other subclasses it's best to move the
implementation to the parent class and drop the vfunc.

An undefined virtual method obviously can cause problems. A crash
can be reproduced through FileManager1 D-Bus method ShowItemProperties
with the parameters (["x-nautilus-search://0/"],""). We are lucky this
probably never happens under regular usage.
2024-06-01 11:57:05 +00:00
António Fernandes
c7d515942b search-directory: Create own file
There is no reason for nautilus-directory.c to include the header for
a subclass just to implement a virtual method the subclass could have
implemented itself.

So, have NautilusSearchDirectory create NautilusSearchDirectoryFile
and stop including unneeded headers in directory.c.

Also do precondition checking in the method, not the implementation.

This sets a pattern for upcoming new NautilusFile subclasses.
2024-06-01 11:57:05 +00:00
António Fernandes
3c23786c8c file: Make directory a construct property
We always call nautilus_file_set_directory() right after creating the
object, and a file is not expected to live without a directory.

Therefore, it makes sense to require the directory to be passed upon
object construction.

This is not just about adopting idiomatic GObject patterns: it's
going to become useful later for new file subclasses who will need to
know something about their parent directory upon construction.
2024-06-01 11:57:05 +00:00
Jordi Mas i Hernandez
3153252095 Update Catalan translation 2024-05-31 22:12:16 +00:00
Pawan Chitrakar
4511a7ab9b Update Nepali translation
(cherry picked from commit ea10fe4a07)
2024-05-28 16:36:45 +00:00
Khalid Abu Shawarib
0aab4b8458 files-view: Don't always reload on global search
In [1], global search was excluded from skipping the reloading of
the view like normal search in order for the current content of the
view to not appear in the global search for a short time until the
results were loaded. This causes global search results to flicker
for every key stroke.

Instead, make the condition more specific so that it will not
affect loading between search queries.

[1] ce47e61372

Fixes: https://gitlab.gnome.org/GNOME/nautilus/-/issues/3403
2024-05-27 23:57:35 +00:00
António Fernandes
a9ca62f771 file: Don't rely on application-x-generic
`application-x-generic` is our preferred fallback themed icon. However,
it's  not present in the icon naming specification[0] and, as such, is
not included in the icon themes some downstreams adopt.

Instead of immediately resorting to the unthemed fallback texture, we
can give a second themed alternative which is likely available in any
icon theme: text-x-generic.

[0] https://specifications.freedesktop.org/icon-naming-spec/icon-naming-spec-latest.html

Fixes https://gitlab.gnome.org/GNOME/nautilus/-/issues/3268
2024-05-27 22:47:34 +00:00
Martin
56a9882610 Update Slovenian translation 2024-05-27 12:44:29 +00:00
Artur S0
6dd4f7ef9f Update Russian translation 2024-05-27 10:18:30 +00:00
Asier Sarasua Garmendia
bfde9badb5 Update Basque translation
(cherry picked from commit 52f4db5071)
2024-05-26 09:36:48 +00:00
Balázs Úr
5a7347867f Update Hungarian translation 2024-05-26 09:22:53 +00:00
António Fernandes
356570978c bookmark: Don't mark non-native bookmarks as broken
We want to use a warning icon to warn about broken bookmarks,
i.e., bookmarks whose pointed path is gone.

But for non-local files, this may just mean they are not currently
mounted or temporarily innaccessible, not necessarily broken.

So, apply the broken bookmark icon logic to native icons only.

Fixes https://gitlab.gnome.org/GNOME/nautilus/-/merge_requests/1430#note_2069827
2024-05-24 15:09:12 +00:00
António Fernandes
a011010567 bookmark: Simplify get_native_icon() and get_xdg_type()
The usage of goto's makes get_native_icon() unnecessarily complex and
error-prone.

Indeed, the goto's may be the reason why the commit[0] which introduced
the `nautilus_bookmark_get_xdg_type()` function as a replacement for
`nautilus_file_is_user_special_directory()` didn't remove the obsolete
checks `bookmark->file == NULL` and `xdg_type < G_USER_N_DIRECTORIES`.

Simplify and modernize `nautilus_bookmark_get_xdg_type()` as well, to
make it clear it the passed `GUserDirectory` value is always lower than
G_USER_N_DIRECTORIES, because it's the for loop condition.

[0] commit 1dcd2d816a
2024-05-24 15:09:12 +00:00
Corey Berla
7e427c0ba7 sidebar: Remove "enter-location" row
We don't use it, and likely never will again.
2024-05-24 15:09:12 +00:00
Corey Berla
26480b7017 sidebar: Replace gtkbookmarksmanager with nautilus-bookmark-list 2024-05-24 15:09:12 +00:00
Corey Berla
3aca4ce418 bookmark-list: Save file on name changed
Now that we allow changing the name at any time, save the file when
the name is updated, as that information ends up in the bookmarks file.
2024-05-24 15:09:12 +00:00
Corey Berla
4dd0e6aa57 bookmark: Expose nautilus_bookmark_set_name
In the following commits we will be dropping gtkbookmarkmanager and
using nautilus-bookmark/list instead.  In order to allow renaming
bookmarks we need access to set_name.
2024-05-24 15:09:12 +00:00
Corey Berla
3bdf93975a bookmark: Update custom_name on new name
We incorrectly only set custom_name on construction.
2024-05-24 15:09:12 +00:00
Corey Berla
ced25b64e3 bookmark: Stop notifying twice on set_name 2024-05-24 15:09:12 +00:00