Commit graph

25291 commits

Author SHA1 Message Date
Automeris naranja
eb285df21d properties-window: Remove the "title-lines" property from some rows
Some rows have title-lines=1, but it's unlikely that their
titles will get ellipsized, as they are fixed and predictable,
unlike their subtitles. So remove this property as it's
unnecessary in this case.
2024-05-20 16:10:03 -03:00
Corey Berla
bf0d53b948 file-changes-queue: Make sure only one file queue is created
Since NautilusFileChangesQueue is called from multiple threads,
a simple NULL check can't prevent init from happening twice.
Use GOnce to make sure we only init once and gain some (tiny)
performance benefit over the NULL check.
2024-05-19 00:10:39 +00:00
Corey Berla
279d4de256 file-changes-queue: Use GAsyncQueue
Credit to Antonio for mentioning this.
2024-05-19 00:10:39 +00:00
Peter Eisenmann
9dca6ac4f4 thumbnails: Simplify scheduled thumbnailing flow
This also skips one call to the queue for already thumbnailing images.
2024-05-19 00:10:39 +00:00
Peter Eisenmann
5708a86d7a thumbnails: Add autocleanup for thumbnail info 2024-05-19 00:10:39 +00:00
Corey Berla
722b219b8e thumbnails: Use NautilusHashQueue 2024-05-19 00:10:39 +00:00
Peter Eisenmann
04884c759a general: Rename NautilusFileQueue to NautilusHashQueue 2024-05-19 00:10:39 +00:00
Corey Berla
d751d7a971 file-queue: Use generic parameter types
Also, adjust documentation and move it to the .c file.
2024-05-19 00:10:39 +00:00
Corey Berla
8313f7b095 file-queue: Don't assume value is a GObject
Set the used hash table functions via parameters. This gives the caller
full control over enqueued item life times.

We still take a NautilsFile, which is a GObject, but that's about to
change.
2024-05-19 00:10:39 +00:00
Corey Berla
97e8644102 file-queue: Build upon GQueue instead of rebuilding it 2024-05-19 00:10:39 +00:00
António Fernandes
2efe87b056 file-queue: Remove dequeue method
It's unused and removing it make memory management improvements in the
next few commits simpler.
2024-05-19 00:10:39 +00:00
Jose Riha
e9390c1be7 Update Slovak translation
(cherry picked from commit 4ed232fe25)
2024-05-16 23:28:56 +00:00
Jordi Mas i Hernandez
43fc294116 Update Catalan translation
(cherry picked from commit 858dc4204c)
2024-05-15 20:02:53 +00:00
Gary Li
800c690a9c files-view: check if gdk_clipboard_read_value_async operation was cancelled
Nautilus crashes if the user with a cut selection rapidly opens then closes a tab.

This is because update_cut_status_callback is called after the files view has already been finalized. GIO guarantees that our callback will always be called even if we cancel the clipboard cancellable in dispose.

Check cancellation status in update_cut_status_callback and proceed no further if cancelled.
Fixes https://gitlab.gnome.org/GNOME/nautilus/-/issues/3434
2024-05-15 14:46:32 -04:00
Gary Li
09f4546d50 files-view: Check model empty selection after delayed signals emitted
When the user enter keystrokes to search, the first item sometimes gets deselected before being reselected.

This is due to the gtk_bitset_is_empty check in display_pending_files, which occurs before the delayed clear signals are emitted. On the first display_pending_files call after the keystroke, there may still be a non-empty selection. Since the check happens before clear is emitted, we errorneously believe there was a selection so we do not select first until display_pending_files is called again.

Move the no_selection bitset check to after we have emitted the delayed clear signal. Ensure there is at least 1 item in the model before we select the 0th index.

Fixes: https://gitlab.gnome.org/GNOME/nautilus/-/issues/3420
2024-05-13 21:59:26 +00:00
Sam Hewitt
93bccc3a5b floating-bar: Untuck the floating bar from the corner
Change the style of the floating bar so it's not tucked directly in the
corner but is a small margin from the edge so it looks less out of place
in the mobile/narrow-width view.
2024-05-13 19:46:04 +00:00
Automeris naranja
30d4e2c8bf nautilus-file: Set "—" as a placeholder for attribute_trash_orig_path_q
Use "—" as a placeholder for the "Original Folder" row/attribute
(attribute_trash_orig_path_q). Doing so, the "Original Folder" row
title won't appear centralized, which looks odd. This placeholder
is already used by the "Created On" row/attribute.
2024-05-12 00:09:06 +00:00
Automeris naranja
d1622bb24a properties-window: Fix "Unknown Permissions" page contents not being centralized
AdwStatusPage isn't meant to be used with another widgets,
as it's a page. Placing the status page inside a GtkBox
causes the page contents to not be vertically centralized.
Also, the scrolling can break, because AdwStatusPage has a
built-in GtkScrolledWindow.
2024-05-11 21:19:13 +00:00
Efstathios Iosifidis
f494dcf57c Update Greek translation
(cherry picked from commit c53d6f6d86)
2024-05-10 22:05:52 +00:00
Hugo Carvalho
9f3c7b9803 Update Portuguese translation 2024-05-09 16:53:45 +00:00
Alexander Shopov
7fc81c3b6b Update Bulgarian translation
(cherry picked from commit b755010a48)
2024-05-08 20:29:11 +00:00
Efstathios Iosifidis
b6d822b32a Update Greek translation
(cherry picked from commit 633dec2347)
2024-05-08 08:56:30 +00:00
Martin
da6c4fb447 Update Slovenian translation 2024-05-07 07:48:10 +00:00
Khalid Abu Shawarib
729f3fb6ca nautilus-window: Disable sidebar gestures when not collapsed
Fixes: https://gitlab.gnome.org/GNOME/nautilus/-/issues/3419
2024-05-06 23:27:34 +00:00
Automeris naranja
b3d94396d1 properties-window: Remove "focusable=false" from the window
It's unusual for a dialog/window to have this. Also, this might
cause a11y issues when using Orca.
2024-05-06 23:13:11 +00:00
Automeris naranja
328af29621 properties-window: Set "accessible-role=presentation" in the disk usage circles
The disk usage indicators/circles from "volume_usage_row"
are actual characters (●). However, Orca also reads these
indicators, something that is unnecessary, which also can
be confusing.
2024-05-06 23:13:11 +00:00
Automeris naranja
886b65cc99 properties-window: Port "volume_usage_row" to AdwPreferencesRow
Doing so, it won't be necessary to use a GtkListBox to give the
.boxed-list style to this row.
2024-05-06 23:13:11 +00:00
Automeris naranja
9803261466 properties-window: Remove "activatable=false" from property rows
Property rows aren't activatable by default, so using "activatable=false"
is redundant.
2024-05-06 23:13:11 +00:00
Automeris naranja
8d86a19727 properties-window: Port "Change Permissions for Enclosed Files" to AdwButtonRow
This will improve consistency as the properties dialog use rows
extensively.
2024-05-06 23:13:11 +00:00
Automeris naranja
5a57e25eac properties-window: Use header capitalization in the "Trashed on" row
https://developer.gnome.org/hig/guidelines/writing-style.html#header-capitalization
2024-05-06 23:13:11 +00:00
Automeris naranja
52b1fc063a properties-window: Port to AdwPreferencesPage/Group
This removes the need for custom styling.
2024-05-06 23:13:11 +00:00
Automeris naranja
9e95a23cd4 properties-window: Use AdwBanner for unowned files
Also, use the string suggested in [1].

[1] https://gitlab.gnome.org/GNOME/nautilus/-/merge_requests/1499?commit_id=61be70bf8bbe5e1156268335563e3d8c08007ec9#note_2097142
2024-05-06 23:13:11 +00:00
Automeris naranja
e6cf23920d properties-window: remove unused permission label 2024-05-06 23:13:11 +00:00
Peter Eisenmann
5c0085e8d4 general: make uncrustify happy
New version of uncrustify has a new/different opinion on function
typedef parameter indentions.
2024-05-07 01:12:27 +02:00
Martin
9a2b1997d1 Update Slovenian translation 2024-05-03 05:46:42 +00:00
Gary Li
d79631f025 list-view: Only clear view model sorter if it belongs to us
When switching view mode from list to grid, the grid view may set its view model sorter before the list view has been disposed.

If this happens and dispose runs, we would have cleared the grid view model sorter and file ordering would break upon reload.

Keep track of the sorter created in list-view and check if the sorter belongs to us before clearing it to NULL.

Fixes https://gitlab.gnome.org/GNOME/nautilus/-/issues/3383
2024-05-02 22:28:00 +00:00
𝅳Automeris naranja
42c5b9c7c6 properties-window: Port "Open in Disks" row to AdwButttonRow
AdwButtonRow is a new widget to present actions at the end of a
boxed list. Requires a bump of libadwaita dependency to v1.6.alpha.

Also, add a mnemonic to this button row.
2024-05-02 22:25:42 +00:00
Hugo Carvalho
2e4ea45f4f Update Portuguese translation
(cherry picked from commit 08567e64b0)
2024-05-02 17:32:04 +00:00
Artur S0
2aa4935c05 Update Russian translation 2024-04-29 12:04:53 +00:00
Khalid Abu Shawarib
f9944ccf97 metainfo: Don't specify the language in link
Fixes: https://gitlab.gnome.org/GNOME/nautilus/-/issues/3418
2024-04-29 11:45:39 +00:00
Peter Eisenmann
c509b256a1 properties-window: only refresh model pages once
Rely on `properties_window_update` to initialize extension models.
2024-04-27 17:26:14 +00:00
Peter Eisenmann
ced6598084 properties-window: don't free bound extension model
Keep the bound list of extension providers around while the properties
window is open.

Fixes https://gitlab.gnome.org/GNOME/nautilus/-/issues/3377
2024-04-27 17:26:14 +00:00
Peter Eisenmann
925a4c15cc audio-video-properties: return early without discoverer
Without a correctly initialized GstDiscoverer, no locations can be
set, so return early if that is the case.
2024-04-27 17:26:14 +00:00
António Fernandes
9298b7b5a2 file: Drop redundant callback
Unlike other preferences change callbacks, it doesn't do anything other
than asking to updating the cached setting value.

Also, it has an unamed and unused `gpointer` parameter, which is unusual.
2024-04-27 14:45:13 +00:00
António Fernandes
7d470a4df6 directory-async: Make callback matching more understandable
This function used to be unnecessarily long and complex, so it has been
simplified by commit e3052ab1c8

However, now it's too cryptic/obfuscated. This is partly dues to the
clash between boolean logic (`0` being FALSE) and the requirements of
g_list_find_custom() (`0` being a positive match). And partly because
of nested ternary operator, dereferencing a union, and unfortunate
naming (`callback` having double meaning).

To make the code easily readable and auditable by humans, let's break
up the comparisons and use explicit return value literals.
2024-04-27 14:45:13 +00:00
António Fernandes
c4068e6196 general: Don't treat root directory as separator
This partially reverts commit c5216c47da

G_DIR_SEPARATOR_S exists primarily as convenience to make GLib-based
code portable to Microsoft Windows, which is not relevant to this app.
We can still use it anyway when we want to be clear that a slash is
being used as a dir separator.

The root directory's path is "/". While that's the exact same character
as a directory separator, its meaning is completely different.
2024-04-27 14:45:13 +00:00
António Fernandes
c1646b3411 Revert "window-slot: Remove unused property"
This reverts commit b75bd46f49.

While it's not used yet, it's going to be used by the FileChooser
portal implementation.
2024-04-27 14:45:13 +00:00
António Fernandes
613e7f0d84 Revert "window-slot: fully remove unused selection binding"
This reverts commit c092dd8c8c.

While it's not used yet, it's going to be used by the FileChooser
portal implementation.
2024-04-27 14:45:13 +00:00
António Fernandes
7a5dcf26dc Revert "files-view: Move focus function from list base"
This reverts commit ba665f5371.

NautilusFilesView should be agnostic to the inner widgetry. So,
it should not be GtkListItemWidget|listitem.select action.

Also, moving this whole function is not necessary. The true cause of
the bug[0] was that NautilusFilesView was not forwarding the focus
event  its child. Which turned out to be an AdwBin bug. Good news is
this bug has been fixed in libadwaita main[1] and stable[2] branches.

So let's revert this workaround.

[0] https://gitlab.gnome.org/GNOME/nautilus/-/issues/3354
[1] 0e30d48f66
[2] 9962168906
2024-04-27 14:45:13 +00:00
António Fernandes
3a7d1103fd compress-dialog: Don't doubly validate
This is a follow-up to commit 1206af7d12

It fixed a bug where we were validating but not accepting the filename.

try_accept() and validate() do almost the same job except the first also emits 
::name-accepted if valid, or, if duplicate, shows feedback without delay.
2024-04-27 14:45:13 +00:00