Currently, the `Nautilus: "@name" parameter unexpected at this location`
warning is shown during build. This is caused by the extra newline character
in the documentation comment for the `nautilus_column_new` function. Let's
remove this extra newline character to get rid of that warning.
Don't allow empty or null names. While the previous commit probably
prevents the symptoms, adding empty or null names is useless and
potentially problematic.
We don't want extensions to inject random inconsistent widgets
into our window.
If there are good reasons for this, in the future we can introduce a
new model-like API instead of a widget-based one.
We want to control the layout of the window, not having extensions
injecting their own widgets.
This also avoids future breakage when porting to newer versions of GTK.
Replace the tabbed GtkNotebook view with inlined navigation rows that
link to subpages and a back button that allows navigating back.
Add additional needed getters to NautilusPropertyPage.
Also, replace the now-inadequate .view style class with .background.
Part of #1326
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.
The GTK3 to GTK4 switch requires extensions to port their widgets too,
because 2 versions of GTK cannot be loaded in the same program.
Therefore, this is effectively an API break. We must update the
library version.
Also, we are going to introduce breaking more changes before the API
freeze.
Closes: https://gitlab.gnome.org/GNOME/nautilus/-/issues/2135
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
I believe these are only included to prevent breakage of existing C
extensions, but as they're not intended for actual use we should mark
them with `(skip)`.
This has the added benefit of making the VAPI file generated from the
resulting GIR file much less noisy.
This effectively adds `<package name="libnautilus-extension"/>` to gir
xml file, which makes it easy to obtain necessary compiler and linker
flags for use in compile time bindings.
This commit completes the sections file with subsections, moves most
documentation to headers (no real reason to, especially given that
changes there may cause unwanted rebuilds, but it feels better to have
it in the headers) and fixes some annotations.
Closes https://gitlab.gnome.org/GNOME/nautilus/issues/565
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.
The libnautilus-extensions internal dependency must include the
generated enumeration header file, otherwise we may end up building
targets that depend on the library prior to have the header properly
generated.
The changes include:
* adding a single-include header and deprecating
nautilus-extension-types.h and direct inclusions of individual
headers;
* type definition simplifications - this causes some breakages in
nautilus-file, because NautilusFile used to be typedefed to
NautilusFileInfo, and that is no longer possible, so the interface
implementation was moved to static functions and the public
NautilusFile API provides thin wrappers for them to maintain
compatibility;
* documentation cleanups and reorganization;
* general build rule and code cleanups: mostly g_auto* sprinkled
around and style changes (sorry)
Currently, the pkgconfig file for nautilus-extension is generated by
substituting variables in a template file. That is prone to mistakes and
requires manual tracking of dependencies. Using the pkgconfig module
from Meson helps automate much of the process.
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.