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
Currently, Nautilus is able to save the last window position when it’s
closed. That is broken in certain cases (#197 and multi-monitor setups
in general) and therefore window placement is best left to the window
manager.
This commit does the following:
* Canonicalize the style:
* Use two-space indentations.
* Un-Autotools-ify option names.
* Don’t align arguments, simply increase indentation.
* Don’t add a space before opening parenthesis in calls.
* Remove unused variables.
* Remove unused dependencies.
* Remove config.h.meson.
* Optimize dependencies.
* Use disabler functionality for libselinux dependency, to save lines.
Currently, the process for getting the common prefix of a list of file
names is a tad too greedy:
1. Find the common prefix of all the strings.
2. Strip the extension from the prefix.
3. Strip trailing punctuation.
Step 2 may strip dots if there’s trailing whitespace and step 3 may
strip useful punctuation (e.g. parentheses). This commit reworks the
process as such:
1. Strip the extension from all the file names.
2. Find the common prefix of all the strings.
3. Trim trailing whitespace.
Fixes#174.
As the eel_gtk_message_dialog_set_details_label function is only used once,
we can safely remove it and do everything inside of nautilus-file-operations.c.
Thus, we deleted the eel function and we do everything inside the
do_run_simple_dialog function and remove the function header from the header
file. We add the label straight into the content_area of the dialog box.
https://bugzilla.gnome.org/show_bug.cgi?id=598671
Creating directories within read-only ones is not allowed and appropriate
error messages pop up.
Trying to create a directory within a read-only directory opens a window
showing the error. Within the window, an expander shows the error details.
Whenever the expander is clicked, the window moves unexpectedly.
We need to fix this as the behaviour is not normal and doesn't look good.
In order to fix the issue, we removed the expander and included the error
details as a label inside the dialog box itself.
https://bugzilla.gnome.org/show_bug.cgi?id=786212
This patch avoids the use of gdk_screen_get_width,
gdk_screen_get_height,gdk_screen_width,gdk_screen_height, functions
which are deprecated since 3.22 version of GDK library.
Also deletes the eel_pop_up_context_menu function since is not used
in the source code.
https://bugzilla.gnome.org/show_bug.cgi?id=780283
Since it’s 2017 already, Nautilus should use a build system that doesn’t
take longer to set up the build than it takes to actually build. An
observed build time using Ninja of roughly one-fifth of what it took
Autotools is more than reason enough to add support for Meson. Along
with that, this commit adds a convenience script to generate a tarball
for releases, since we use libgd as a submodule and Meson does not
handle source distributions.
https://bugzilla.gnome.org/show_bug.cgi?id=778167
This commit removes git.mk and adds hand-written gitignore files. That
is needed to ignore build/, which is the directory of choice for Meson
builds.
https://bugzilla.gnome.org/show_bug.cgi?id=778167
'Other locations' is already listed in the sidebar. So there is no
need for allowing the user to bookmark 'Other Locations'.
This commit makes the bookmark button in toolbar insensitive for
'Other Locations'.
https://bugzilla.gnome.org/show_bug.cgi?id=771163
If a file had the extensions .tar.bz or .tar.xz, the function
eel_filename_get_extension_offset would identify only .bz or .xz as
an extension.
To fix this, .xz and .bz were added among the other special cases.
https://bugzilla.gnome.org/show_bug.cgi?id=771018
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
New Folder with Selection currently doesn't offer a folder name. It
would be better if it suggested a folder name based on the files that
are selected.
With this change, it now looks for a common filename prefix of the
selected files, and pre-populates the folder name entry with that. If no
common prefix is found that is greater than 3 characters long, the
folder name entry will be left blank.
https://bugzilla.gnome.org/show_bug.cgi?id=747907
AtkComponentIface's {add,remove}_focus_handler should not be overridden,
since ATK 2.9.4, as atk_component_{add,remove}_focus_handler() are
deprecated.
This commit removes deprecated virtual function overrides.
https://bugzilla.gnome.org/show_bug.cgi?id=762236
Some GdkDisplay operations have been deprecated in GDK 3.20.
This commit replaces the deprecated code in eel_canvas_item_grab() and
eel_canvas_item_ungrab() functions with new GdkSeat operations.
https://bugzilla.gnome.org/show_bug.cgi?id=762235
Vim and emacs modelines are used to specify some of the code style in the code.
However, this is misleading and poorly supported since nautilus had a mix of
code style for some time.
Also, the mode lines doesn't specify the whole code style, so we will need to
use a different tool as well to specify the whole code style.
For that, we can just use a different tool for everything.
So remove the mode lines, and in a short future we will reestyle the nautilus
code to have a single code style, and use a tool like editorconfig to specify
the whole code style.
This seems no longer necessary. It looks like it was done to avoid
flashing when redrawing, but probably this was fixed sometime in the
past, so a transparent background in a widget doesn't flash anymore.
https://bugzilla.gnome.org/show_bug.cgi?id=761965
Instead of a generic function to filter GLists, implement a simpler
and clearer filter function for file lists, since it was the only
use of that function.
In this way the ownership of files and directories are clearer
since it always returns a new allocated nautilus file list, and also
it always uses nautilus_file_ref instead of the generic g_object_ref
to match what we do everywhere else in nautilus, so it's not confusing
when breaking at nautilus_file_ref/unref for ref counting debugging.
This change fixes multiple leaks on nautilus files catched by valgrind.
GtkMisc is deprecated since 3.14 release, being replaced
by GtkWidget's halign & valign, and GtkLabel's xalign &
yalign.
Nautilus, however, did not updated its codebase to match
the new deprecations.
Remove any reminescent gtk_misc* calls from the codebase.