1. 18 Sep, 2018 1 commit
    • Ell's avatar
      app, libgimp*, modules: don't use g_type_class_add_private() ... · 3b0040c0
      Ell authored
      g_type_class_add_private() and G_TYPE_INSTANCE_GET_PRIVATE() were
      deprecated in GLib 2.58.  Instead, use
      G_ADD_PRIVATE[_DYNAMIC](), and the implictly-defined
      foo_get_instance_private() functions, all of which are available in
      the GLib versions we depend on.
      This commit only covers types registered using one of the
      G_DEFINE_FOO() macros (i.e., most types), but not types with a
      custom registration function, of which we still have a few -- GLib
      currently only provides a (non-deprecated) public API for adding a
      private struct using the G_DEFINE_FOO() macros.
      Note that this commit was 99% auto-generated (because I'm not
      *that* crazy :), so if there are any style mismatches... we'll have
      to live with them for now.
  2. 07 Aug, 2018 2 commits
    • Jehan's avatar
      app: extensions can now install themes. · a4e0a8f9
      Jehan authored
    • Jehan's avatar
      app: extensions can now install splashes. · 7d611e71
      Jehan authored
      Not the most useful type of extensions per-se, but a lot of people seem
      to appreciate creating and installing new splashes. Let's make it easy
      to install as extensions.
      Note that extension splashes are cumulative. So if you enabled several
      splash extensions at once, an image would be chosen in random amongst
      all of them.
  3. 06 Aug, 2018 1 commit
    • Jehan's avatar
      app: fix small leak. · b3add510
      Jehan authored
      Return values of gimp_config_build_*_path() must be properly freed.
  4. 31 Jul, 2018 1 commit
    • luz.paz's avatar
      Misc. typos · 949912f5
      luz.paz authored
      Found via `codespell  -q 3 -I ../gimp-word-whitelist.txt --skip="*.po"`
  5. 18 Jul, 2018 1 commit
    • Jehan's avatar
      app: add "running" property to extension. · d68a68c5
      Jehan authored
      And connect to this property in the extension manager to allow dynamic
      reload when starting/stopping an extension. It doesn't work yet for
      extensions with plug-ins but works with other kinds of data.
  6. 17 Jul, 2018 2 commits
    • Jehan's avatar
      app: functions to manage running extensions. · 4d745743
      Jehan authored
      Add gimp_extension_manager_can_run() and rename function:
      A system extension cannot be run if it has been overrided by a
      user-installed extension of same ID. Moreover extensions can have GIMP
      version requirements as well as have dependency on other extensions
      (though these are not implemented yet).
    • Jehan's avatar
      app: serialize and deserialize extensionrc from GimpExtensionManager. · 02aec4c3
      Jehan authored
      We only save the active state of extensions so that we can reload all
      extensions same as they were at previous exit. All other data are saved
      as per-extension metadata and should not be saved in the rc file.
      If an extension is not listed in extensionrc, we run it by default if
      this is a system extension (so that new core extensions by the GIMP team
      are run when installed after an updated), but not when they are
      user-installed extensions.
  7. 11 Jul, 2018 1 commit
  8. 07 Jul, 2018 1 commit
  9. 02 Jul, 2018 3 commits
    • Jehan's avatar
      app: extensions can now contain plug-ins. · 4ac9543f
      Jehan authored
    • Jehan's avatar
      app: extensions can now bundle various data. · a8a0408e
      Jehan authored
      Extensions work for brushes, dynamics, MyPaint brushes, patterns,
      gradients, palettes and tool presets.
      More to come, but this is a first and working proof-of-concept.
    • Jehan's avatar
      app: add base classes for the extension manager. · b70424b2
      Jehan authored
      Right now it only loads AppStream data, which is completely useless, yet
      is a base of a managed extension system. Having proper metadata is what
      will allow to actually know what is installed.
      This is only the first draft.
      Note that I am not adding the extension path into GimpCoreConfig on
      purpose, since the point is not to have people manage their extension
      directories manually anymore.
      The extensions will be loaded from the build-time system path or the
      config directory, and that's all.
      What will probably be stored in the config though will be the remote
      repositories URLs (allowing third-party extension repositories).