1. 17 Jul, 2020 1 commit
    • Jehan's avatar
      app: show playground if any of the experimental feature is enabled. · a897b489
      Jehan authored
      Basically if you enabled OpenCL or any of the experimental tools, it
      will show the Playground in Preferences. Otherwise, say you enabled some
      experimental feature months ago (e.g. with the CLI option) and you now
      experience crashes or whatnot. And you forgot how to change it, and only
      remembered that there was something in Preferences. It would make you
      crazy to not find the tab again to disable the option.
      
      This is even more important as OpenCL is moving from a normal option to
      a playground option. So you might not even have ever seen the Playground
      tab in Preferences and would not know how to disable OpenCL after you
      enabled it originally in "System Resources" tab.
      
      So now Playground is visible with any of these 3 conditions:
      * If you use an unstable version.
      * If you run GIMP with --show-playground option.
      * If you previously enabled one of the playground options.
      
      (cherry picked from commit d3ef6cfb)
      a897b489
  2. 01 Feb, 2020 1 commit
    • Ell's avatar
      app: add a "Use tool groups" option to the toolbox preferences · 9362e89b
      Ell authored
      Add a new Gimp::tool_item_ui_list, which is a GimpTreeProxy over
      Gimp::tool_item_list.  This allows us to use either a hierarchical
      or a flat tool list in the UI, by setting the "flat" property of
      the new list.
      
      Use Gimp::tool_item_ui_list in GimpToolPalette, so that the toolbox
      layout is affected by this choice.
      
      Add a "Use tool groups" toggle to the toolbox preferences, and bind
      it to the "flat" property of Gimp::tool_item_ui_list.
      
      (cherry picked from commit 3cda9721)
      9362e89b
  3. 30 Jan, 2020 1 commit
    • Ell's avatar
      app: add support for tool groups in toolrc · 207c6b28
      Ell authored
      Add a new Gimp::tool_item_list list, in addition to
      Gimp::tool_info_list.  The latter may contain arbitrary tool items,
      including tool groups, and is intended for use in the UI (namely,
      the toolbox and the preferences tool editor).
      
      In gimp-tools, use Gimp::tool_item_list for representing the UI
      tool order (while still using Gimp::tool_info_list as a flat list
      of all GimpToolInfo objects), and add support for saving and
      loading tool groups to/from toolrc.
      
      Introduce file-version tracking in toolrc, and drop its contents on
      version mismatch, or when new tools are introduced.  This is
      slightly disruptive, but merging new changes with existing toolrc
      files is non-trivial, and it doesn't happen very often.
      
      Add support for a sysconf toolrc file, which is used if there's no
      user toolrc file (i.e., on first use).  If neither file is found,
      the hard-coded flat tool order is used.  This commit doesn't
      provide a default toolrc file, but the next commits will.
      
      Make the gimp-tools serialization and deserialization functions
      public, for use in GimpToolEditor in the next commits.
      207c6b28
  4. 30 May, 2019 1 commit
  5. 11 Feb, 2019 1 commit
    • Michael Natterer's avatar
      app, plug-ins: start consolidating brush and pattern loading/saving code · 616f5aac
      Michael Natterer authored
      We currently have brush and pattern I/O code in both the core and
      plug-ins. This commit starts removing plug-in code in favor of having
      one copy of the code in the core, much like XCF loading and saving is
      implemented.
      
      Add app/file-data/ module with file procedure registering code, for
      now just with an implementation of file-gbr-load.
      
      Remove the file-gbr-load code from the file-gbr plug-in.
      
      (cherry picked from commit a4e77e57)
      616f5aac
  6. 11 Jul, 2018 1 commit
  7. 03 Jun, 2018 1 commit
  8. 01 Jun, 2018 1 commit
  9. 27 May, 2018 1 commit
    • Jehan's avatar
      Issue #1211: Load fonts in background after startup. · 89c829a2
      Jehan authored
      Fonts should not be blocking startup as this provides a very bad
      experience when people have a lot of fonts. This was experienced even
      more on Windows where loading time are often excessively long.
      We were already running font loading in a thread, yet were still
      blocking startup (thread was only so that the loading status GUI could
      get updated as a feedback). Now we will only start loading and proceed
      directly to next steps.
      While fonts are not loaded, the text tool will not be usable, yet all
      other activities can be performed.
      
      (cherry picked from commit 2484dec7)
      89c829a2
  10. 01 May, 2018 1 commit
    • Jehan's avatar
      app: popup error at startup when some fonts fail to load. · e796e3a5
      Jehan authored
      As proposed on IRC. This will allow people to debug their fonts (for
      instance when there are permission issues or whatnot) by knowing the
      list of problematic fonts in an error dialog at startup (and not only on
      terminal).
      e796e3a5
  11. 22 Apr, 2018 1 commit
  12. 29 Mar, 2018 1 commit
    • Ell's avatar
      app: add --show-debug-menu command-line option · 53c145c0
      Ell authored
      The debug menu is currently not included in stable versions.
      
      Include the menu unconditionally, but hide it, and its associated
      actions, by default in stable versions.  Allow enabling the menu
      using a new --show-debug-menu command-line option, in the same vein
      as --show-playground.
      53c145c0
  13. 12 Feb, 2018 1 commit
    • Jehan's avatar
      app: keep track of number of errors and traces in GimpCriticalDialog. · 34fe992f
      Jehan authored
      We don't want an infinite number of traces because it takes some time to
      get. Until now I was keeping track of traces in app/errors.c, but that
      was very sucky because then I was limiting traces per session. Instead
      save them as a variable of a GimpCriticalDialog instance. Therefore only
      generate the traces for WARNING/CRITICAL at the last second, when
      calling the dialog.
      When too many traces are displayed, just fallback to just add error
      messages only. But then even errors without traces can be time-consuming
      (if you have dozens of thousands of errors in a few seconds, as I had
      the other day, updating the dialog for all of them would just freeze the
      whole application for a long time).
      So also keep track of errors as well and as last fallback, just send the
      remaining errors to the stderr.
      34fe992f
  14. 28 Jan, 2018 1 commit
    • Jehan's avatar
      app: new error dialog to backtrace and encourage people to report bugs. · 9fdf3555
      Jehan authored
      GIMP will now try to get a backtrace (on Unix machines only for now,
      using g_on_error_stack_trace(); for Windows, we will likely have to look
      into DrMinGW).
      This is now applied to CRITICAL errors only, which usually means major
      bugs but are currently mostly hidden unless you run GIMP in terminal. We
      limit to 3 backtraces, because many CRITICAL typically get into domino
      effect and cause more CRITICALs (for instance when a g_return*_if_fail()
      returns too early).
      9fdf3555
  15. 15 Jul, 2017 1 commit
  16. 03 Jan, 2017 2 commits
  17. 25 Nov, 2016 1 commit
  18. 11 Nov, 2016 3 commits
  19. 10 Nov, 2016 1 commit
  20. 30 Sep, 2016 1 commit
  21. 20 Sep, 2016 1 commit
  22. 19 Sep, 2016 1 commit
  23. 17 Sep, 2016 1 commit
  24. 15 Sep, 2016 2 commits
  25. 13 Sep, 2016 3 commits
    • Michael Natterer's avatar
      Bug 599573 - Remember dialog defaults between Gimp sessions · 20a32d97
      Michael Natterer authored
      Add GimpFillOptions and GimpStrokeOptions to GimpDialogConfig and use
      them in the Fill/Stroke Selection/Path dialogs and for the "with last
      values" commands. Add GUI for them to Preferences -> Dialog Defaults.
      
      This requires most of the stuff in my last few commits, and some
      more changes:
      
      GimpFillOptions is a GimpContext which has all sorts of connections to
      everything, including a Gimp pointer. Hack around in GimpDialogConfig
      to add a Gimp property, and add "gimp" parameters to quite some GimpRC
      functions. Treat the Gimp* as a GObject* in all public API because
      core/ stuff is not known in config/.
      20a32d97
    • Michael Natterer's avatar
      f1897b65
    • Michael Natterer's avatar
      app: create members of the Gimp instance earlier · 314027f0
      Michael Natterer authored
      Move fonts, data factories, document list, paint methods and user
      context creation to gimp_init() or gimp_constructed() so that most
      members are created when gimp_new() is done. This does not load any
      data earlier, it just makes sure that all containers exist when
      gimp_load_config() is called. It's also cleaner and less fragile,
      314027f0
  26. 12 Sep, 2016 2 commits
  27. 01 May, 2016 2 commits
  28. 17 Apr, 2016 2 commits
  29. 16 Apr, 2016 2 commits
  30. 26 Mar, 2016 1 commit