| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| |
|
|
|
|
|
|
| |
Now that there is no longer wrapped objects and calling via GObject
Introspection, we can remove the use of PeasExtension and simply use
GObject (as it was internally already).
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
This commit makes PeasEngine a GListModel containing PeasPluginInfo. Such
a design is useful for modern GTK development because it allows binding
the engine to various list widgetry.
Additionally, you may use a GtkFilterListModel or others to alter or even
map the PeasPluginInfo into other forms.
This also removes the G_TYPE_POINTER based plugin-list property as that
is no longer needed (as well as rather unsafe).
|
|
|
|
| |
Just use char like we do over the rest of the platform in modern code.
|
|
|
|
|
| |
This allows for data binding using g_object_bind_property() and similar
in applications.
|
|
|
|
|
| |
We use `const char * const *` for read-only char** arrays. Additionally,
stop using gchar and instead use char directly.
|
|
|
|
| |
And fix the tests so that ASAN doesn't complain about leaks.
|
|
|
|
|
|
| |
This will allow us to use PeasPluginInfo in a GListModel (and therefore
expose them in a PeasEngine using GListModel). Properties are not yet
exposed but will be in the future.
|
|
|
|
|
| |
Use the modern GObject macros and remove autocleanups now that they are
no longer necessary to be defined externally.
|
|
|
|
|
|
| |
This uses the modern macros for defining types and also ensures that the
engine is a final type. We can drop the private pointer as well since we
are final.
|
|
|
|
| |
Use modern GLib macros for defining types.
|
| |
|
|
|
|
|
|
| |
This should be a final type and therefore there is no need to have the
class structure exposed or vtable entries for signals. Cleanup other bits
of C style and Since macros too.
|
| |
|
|
|
|
|
|
|
|
| |
We don't need GObject Introspection anymore now that we have removed the
various peas_extension_call() API.
We can still check for it to build our internal tests as we need it for
running those.
|
| |
|
|
|
|
| |
These are deprecated and can be removed from future versions.
|
|
|
|
|
|
| |
There is still much plumbing to modernize to remove GParameter from the
lower layers of libpeas, so ignore them for now to keep our compiler
warnings cleaner.
|
|
|
|
|
|
|
| |
This moves peas_engine_create_extensionv() to become private API in the
form of _peas_engine_create_extensionv() for internal use. The ultimate
goal here is the continued removal of deprecated GParameter use in the
libpeas-2 public API.
|
| |
|
|
|
|
|
| |
We use GParameter here a lot, and that gets in the way of seeing actual
useful issues. Just disable it within the file.
|
|
|
|
|
| |
Now that we're breaking ABI, we can drop the GParameter API but still use
it internally (as that'd take a lot more code cleanup).
|
| |
|
|
|
|
| |
Just a more modern version of this commonly vendored header.
|
|
|
|
|
| |
Make sure that only <libpeas.h> is included directly. Additionally this
ensures we always have LIBPEAS_COMPILATION set when building libpeas.
|
|
|
|
|
| |
There is no need to do the HAVE_CONFIG_H thing with meson. We always have
a config.h so just include it unconditionally.
|
|
|
|
|
| |
We can rely on modern compilers to support #pragma once instead of doing
the #ifndef style.
|
|
|
|
|
| |
Just a nice thing to have in headers to make it clearer for people who
casually find themselves reading, and perhaps copying, the code.
|
|
|
|
|
|
| |
Doing the extra-subdirectory thing makes more sense when you have multiple
libraries being installed. But since we dropped libpeas-gtk, we can
simplify our header include to just <libpeas.h>.
|
|
|
|
| |
These need to match what we're building so get the value from config.h.
|
|
|
|
|
| |
This is a long-deprecated feature that does not need to come along into
the libpeas-2 world.
|
| |
|
|
|
|
|
|
| |
We still use this for tests, but it can live within the testing-util
library rather than in libpeas-2 directly. This is part of the effort
to shrink down further what is in the public ABI.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This starts the process of working towards a new Libpeas 2.0 ABI. The
goals of this ABI break are:
* Modernize and cleanup GObject usage within libpeas
* Use GObject's in more places to allow for better GIO integration
* Implement GListModel where it makes sense
* Remove GTK 3 and GTK-based APIs as those are trivial to implement in
applications with GTK 4 and newer.
* Drop Python 2 support
* Simplify support for new plugin loaders
# Conflicts:
# NEWS
# meson.build
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
This implements glistmodel from the PeasExtensionSet so it can be
monitored via GListModelInterface::items-changed for change and easily
bound to list widgets in GTK.
|
|
|
|
|
|
| |
We've been maintaining something back to 2.38 for quite a while, and it
should be more than safe to bump this by now so we get access to interfaces
like GListModel.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
If we have unresolved plugin info, we might need to place the item sooner
than the tail as another plugin could depend on this one.
|
|
|
|
|
|
| |
We realistically aren't running on these systems, but we might as well be
explicit with the comment so that people know what the comment was
referring to.
|
|
|
|
|
|
|
|
|
|
|
|
| |
If we have a plugin we've added that we could not resolve all the
dependencies for then push it to the tail of the queue. That way, further
insertions of plugins are more likely to sort before the plugin.
Otherwise, we can push the info to the head as it has no dependencies.
This improves a situation in Builder where plugins that dependend on
plugins which also had dependencies could end up loading in the wrong
order.
|