Now that we have AdwMessageDialog to provide a GNOME-compliant
message dialog API, we don't need the functions from eel.
This commit removes all of the functions for creating
dialogs from eel-stock-dialogs.
Meson builds out-of-tree, these ignored files will never get created in
these directories. If they do, it indicates a build configuration error
and should not be hidden.
After the GTK 4 port, some dialogs are no more modal. This is regression,
which is probably caused by the fact, that this needs to be explicitly
specified now. Let's make all the `GtkMessageDialog` dialogs modal again.
Fixes: https://gitlab.gnome.org/GNOME/nautilus/-/issues/2117
The new major version of the toolkit is a requirement to fix old issues and enable future enhancements.
Update symbols and adapt logic to API changes.
Update and simplify UI definitions.
Update local copy of places sidebar and places view.
Replace dependencies with their GTK4-compatible successors.
Make a minimum changes required to build and run, with known
regressions to be fixed in future commits.
For a detailed breakup of the changes, see the 36 commits-deep
log leading to d5763facb1e5045251171ed1273dca0859f3542f.
This is the main part of https://gitlab.gnome.org/GNOME/nautilus/-/issues/276
It relies on X11-only information, such as the window position on the
screen, which is not known to the application under Wayland.
So, this was already broken.
Also, its implementation relies on GtkWindow API which is gone in GTK 4.
The new grid view has reached feature parity with the canvas, if we
ignore drag-and-drop and clipboard support (which would need to be
reimplemented in GTK 4 anyway) and performance scalability (which is
a problem of GtkFlowBox and solvable by using GtkGridView in GTK 4).
The canvas view relies on extensive custom implementation for layout,
drawing, input handling, accessibility, etc., which would be too
hard to port to in GT1K4.
Furthermore, most of its features, such as support for manual sorting,
haven't been used since the "icons on desktop" feature has been taken
out from this app. We are actually using a swiss army knife for a job
where we only need a single blade -- a simple pocketknife would do!
Therefore, we say goodbye to this seasoned veteran widget, who has
served us for 2 whole decades.
Extracts the creation of simple dialogs to a new function
that does not depend on gtk_dialog_run. It is the caller's
responsibility to obtain a response from the dialog.
Part of #1992
There are a few non-braced single-statement in the final cases, which
have gone unnoticed until detected by a recent uncrustify update.
Let's add the missing braces around single-statements even if it's the
last case.
Uncrustify changes "(*pixsrc++ * *pixdest)" to "(*pixsrc++ **pixdest)"
which is unwanted. Let's add redundant parentheses around "*pixdest" to
prevent these unwanted changes.
Empty trash widget is displaying for empty folder inside trash
instead of Empty folder widget.
`eel_uri_is_trash` only checks whether the URI starts with "trash:",
that's why it also returns true for empty folders inside trash.
Create `eel_uri_is_trash_root` to distinguish trash root (trash:///)
from empty folder inside trash (trash:///emptyfolder)
Closes https://gitlab.gnome.org/GNOME/nautilus/issues/1367
The eel_str_double_underscores and eel_str_capitalize
functions didn't have documentation.
Added importance of eel_str_double_underscores as well.
It's good practice to have documentation for functions
in the long term.
Even though more convoluted than the previous solution, this one
should last longer. Canvas item icons are now colorized by first drawing
the background to a Cairo surface and then multiplying the color values
of the original icon pixbuf and the ones from the newly created one.
In theory, it would be possible to just drop the GAIL code and keep the
header, but, given that NautilusCanvasItem is the only remaining
consumer, the needed bits can be moved over.
f42979f0b0 changed the ellipsis to a
unicode one, which is one character in length, in turn changing the
expected output.
For cases where the truncation length is zero, the expected output is
changed to NULL, as 536505728e added an
assertion.
The traditional include guards are not as easy to handle
and require extra thought into the names.
Pragma once is an easier, more contributor friendly approach.
Closes https://gitlab.gnome.org/GNOME/nautilus/issues/294
general: Remove include guards in favor of pragma once
The traditional include guards are not as easy to handle
and require extra thought into the names.
Pragma once is an easier, more contributor friendly approach.
Closes https://gitlab.gnome.org/GNOME/nautilus/issues/294
When hacking on Nautilus, it is very inconvenient to have to close any
running instance before running the built version. This commit enables
running three different instances by changing the application ID.
Beside the default “profile” is one crafted for stable flatpak
releases and one for development. The stable flatpak profile adds an
identifying mark to the about dialog to aid collecting information in
bug reports. The development profile is that plus additional styling to
help visually identify the development instance. It also will be used
when generating Flatpak bundles with the help of CI.
Generally, the implementation is slightly hacky to allow all the
different workflows, spanning from regular installations to GNOME
Builder flatpak builds, as each comes with its own quirks.
Shadowing variables is error-prone, since one might mean to refer to a
variable that was declared earlier, but has the same name. Additionally,
being more strict about variable scoping can help make the code more
readable.
This commit tries to make the function more readable and fixes the allocation of
the new string: the truncated string is of the same size as the source string.
This can be fixed by adding a couple of different allocations. :)
Some comments were trimmed down or removed.
It was a mix of both terms, given that tracker uses 'favorite' but we
use 'starred' in the UI. Since the part that interact with tracker is
minimal, is better to be consistent with the UI.
This renames 'favorite' to 'starred' except the tracker queries.
Currently the star menu item is shown for every file in the system,
however when a file is not indexed by tracker this operation fails.
We cannot set Tracker to index the file and wait for Tracker to index
it, since that happens in an idle and Tracker doesn't queue the
operation of starring.
There is no easy solution for this, so for now we will show the star
menu item for indexed (by default) locations, which are the XDG folders,
otherwise we will hide the item.
A better solution needs to be researched for 3.30, but this will do for
now.
Related https://gitlab.gnome.org/GNOME/nautilus/issues/243