summaryrefslogtreecommitdiff
path: root/src/nautilus-file-changes-queue.c
AgeCommit message (Collapse)Author
2024-05-19file-changes-queue: Make sure only one file queue is createdCorey Berla
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-19file-changes-queue: Use GAsyncQueueCorey Berla
Credit to Antonio for mentioning this.
2023-12-08file: Notify known-unmounted filesAntónio Fernandes
As a follow-up to the previous commit, propagate through the removal pipeline the contextual information that the file was unmounted. This is going to be used next commit.
2023-12-08file-changes-queue: Queue unmounts specificallyAntónio Fernandes
The window slot is using a complex logic to know when the current location is gone due to being unmounted, and it works only for the root location of the mount. Ideally we should do the same if the current location is anywhere in the unmounted hierarchy. NautilusMonitor gets about unmount events for all native files, and forwards this through this pipeline, resulting in the file being marked as gone and the NautilusFile::changed being emitted. -monitor -> -file-changes-queue -> -directory-notify -> -file So, we need to additionally channel the information that the file was unmounted through this pipeline. As a first step, introduce a new path to queue unmount events. For now, it just conflates then with other removals, but this lays the ground for behavior changes next commit.
2023-12-08file-changes-queue: Drop dead chunk size codeAntónio Fernandes
consume_all is always true Let's take that assumption to simplify things.
2023-12-08file-changes-queue: Drop obsolete struct fieldAntónio Fernandes
It has no use since the "icons on desktop" removal.[1] [1] commit 74dd9c9f72002d482c898a704bb5b95655e35e08
2022-05-30tag-manager: Stop getting full referencesAntónio Fernandes
It's really annoying having to setup a local autocleanup variable in every function we want to use the NautilusTagManager API. Use a NautilusUndoManager-like API instead, with new() returning a reference and get() not.
2021-11-22file-changes-queue: Drop GdkPoint struct memberAntónio Fernandes
It's unused because we no longer handle icons on desktop. Also, the type is gone in GDK4.
2020-10-02tag-manager: Update starred URIs on move & renameAntónio Fernandes
We don't rely on tracker-miner-fs's rename tracking for starred files anymore, as explained in 29105fc9f6abf2eca6f986104763d21b9f22f0fb. However, losing track of starred files, when they or their containing folders are renamed or moved, is a major regression for this feature. The common case is that the operation is performed using this very app, so, we can largely restore the feature by updating URI on every rename and move operation we perform. Additionally, this allows us to finally close a couple of old issues. Fixes https://gitlab.gnome.org/GNOME/nautilus/-/issues/161 and fixes https://gitlab.gnome.org/GNOME/nautilus/-/issues/169
2018-01-02general: remove desktop supportErnestas Kulik
2016-08-29general: run uncrustifyCarlos Soriano
And make the style of Nautilus the same for all files. Hopefully we can fix all the style issues we can find in the next days, so expect a little of movement on this. https://bugzilla.gnome.org/show_bug.cgi?id=770564
2016-04-25general: merge libnautilus-private to srcCarlos Soriano
And fix make distcheck. Although libnautilus-private seem self contained, it was actually depending on the files on src/ for dnd. Not only that, but files in libnautilus-private also were depending on dnd files, which you can guess it's wrong. Before the desktop split, this was working because the files were distributed, but now was a problem since we reestructured the code, and now nautilus being a library make distcheck stop working. First solution was try to fix this inter dependency of files, but at some point I realized that there was no real point on splitting some of those files, because for example, is perfectly fine for dnd to need to access the window functions, and it's perfectly fine for the widgets in the private library to need to access to all dnd functions. So seems to me the private library of nautilus is somehow an artificial split, which provides more problems than solutions. We needed libnautilus-private to have a private library that we could isolate from extensions, but I don't think it worth given the problems it provides, and also, this not so good logical split. Right now, since with the desktop split we created a libnautilus to be used by the desktop part of nautilus, extensions have access to all the API of nautilus. We will think in future how this can be handled if we want. So for now, merge the libnautilus-private into src, and let's rethink a better logic to split the code and the private parts of nautilus than what we had. Thanks a lot to Rafael Fonseca for helping in get this done. https://bugzilla.gnome.org/show_bug.cgi?id=765543