1. 11 Oct, 2018 1 commit
    • Ell's avatar
      app: fix gimp_wait() deadlock · 397bbb29
      Ell authored
      In the GUI implementation of gimp_wait(), explicitly finish the
      input-pipe async operation after the busy-dialog plug-in
      terminates, to avoid the async callback function from being
      repeatedly called, stalling the main thread.  Previously, this code
      relied on gimp-parallel implicitly aborting the async operation,
      but this is no longer the case since commit
      4969d757.
      
      (cherry picked from commit 85b16b9e)
      397bbb29
  2. 11 Jul, 2018 1 commit
  3. 04 Jul, 2018 1 commit
    • Ell's avatar
      app: add gimp_parallel_run_async_{full,independent}() · fac91dda
      Ell authored
      Remove the "independent" parameter of gimp_parallel_run_async(),
      and have the function always execute the passed callback in the
      shared async thread-pool.
      
      Add a new gimp_parallel_run_async_full() function, taking, in
      addition to a callback and a data pointer:
      
        - A priority value, controlling the priority of the callback in
          the async thread-pool queue.  0 is the default priority (used
          by gimp_parallel_run_async()), negative values have higher
          priority, and positive values have lower priority.
      
        - A destructor function for the data pointer.  This function is
          called to free the user data in case the async operation is
          canceled before execution of the callback function begins, and
          the operation is dropped from the queue and aborted without
          executing the callback.  Note that if the callback *is*
          executed, the destructor is *not* used -- it's the callback's
          responsibility to free/recycle the user data.
      
      Add a separate gimp_parallel_run_async_independent() function,
      taking the same parameters, and executing the passed callback in
      an independent thread, rather than the thread pool.  This function
      doesn't take a priority value or a destructor (and there's no
      corresponding "_full()" variant that does), since they're pointless
      for independent threads.
      
      Adapt the rest of the code to the changes.
      
      (cherry picked from commit b74e600c)
      fac91dda
  4. 29 May, 2018 2 commits
    • Ell's avatar
      app: fix gui_wait() cleanup · 081867de
      Ell authored
      (cherry picked from commit 5a66d6cc)
      081867de
    • Ell's avatar
      app: add gimp_wait() · 4527390c
      Ell authored
      Add a GimpGui::wait() virtual function, and a corresponding
      gimp_wait() function.  The function takes an object implementing
      the GimpWaitable interface, and a printf-style message, and waits
      for the object to become ready, displaying the message as
      indication in the meantime.  The default implementation simply
      prints the message to STDERR.
      
      Implement the function in gui-vtable, using the busy-dialog plug-
      in added in the previous commit, to display the message in a
      dialog.  Additionally, if the object implements the GimpCancelable
      interface, provide a "cancel" button in the dialog, which, when
      pressed, causes gimp_cancelable_cancel() to be called on the
      object.  Note that the function keeps waiting on the object even
      after requesting cancelation; GimpTriviallyCancelableWaitable can
      be used to stop the wait once cancelation has been requested.
      4527390c
  5. 01 Jan, 2018 1 commit
  6. 23 Nov, 2016 1 commit
  7. 05 Jun, 2016 1 commit
  8. 03 Jan, 2016 1 commit
    • Michael Natterer's avatar
      app: move some stuff out of app/file/ · 5455b8bf
      Michael Natterer authored
      file-procedure.[ch] is gone and its functions moved to
      GimpPlugInManager where they belong (the manager keeps around the
      lists of load, save and export procedures).
      
      Utility functions from file-utils.[ch] that have nothing to do with
      image files moved to core/gimp-utils.[ch].
      5455b8bf
  9. 09 Dec, 2015 1 commit
  10. 23 Aug, 2015 1 commit
    • Michael Natterer's avatar
      app: implement the "Convert to RGB Working Space" import dialog in the core · b51ee77e
      Michael Natterer authored
      Add gimp_image_import_color_profile(), a GUI vtable entry
      query_profile_policy() and a new dialog which returns the profile
      policy and the profile to convert to. Get rid of the wrapper that
      calls the lcms plug-in for that dialog, the plug-in is now completely
      unused.
      
      This commit doesn't add any new features, it's just the former lcms
      plug-in dialog implemented in app/ (except the little fix that it is
      now aware of linear vs. gamma images).
      b51ee77e
  11. 23 Jul, 2014 1 commit
    • Michael Natterer's avatar
      app: separate the mount logic from uploading/downloading · 7e7c22fc
      Michael Natterer authored
      We need to mount every non-native GFile's volume, regardless of
      whether the file procedure uses GIO directly or needs file-remote to
      download/upload the file. Move the entire mount logic to a new
      file-remote function and change gimp-gui.c and gui-vtable.c to only
      return a GMountOperation. Try to mount every non-native file in
      file-open.c and file-save.c and bail out if mounting fails. Simplify
      the uploading and downloading code accordingly.
      7e7c22fc
  12. 20 Jul, 2014 1 commit
  13. 10 Jul, 2014 1 commit
  14. 07 Jul, 2014 1 commit
  15. 04 Jul, 2014 1 commit
  16. 02 May, 2014 3 commits
  17. 03 Jul, 2011 1 commit
    • Martin Nordholts's avatar
      app: Make positioning of new dockables depend on window mode · 07556242
      Martin Nordholts authored
      Add GimpWindowingStrategy with create_dockable_dialog() and use it in
      dialogs_create_dockable_cmd_callback(). There are two implementations:
      GimpSingleWindowStrategy and GimpMultiWindowStrategy. Depending on the
      window mode, we want new dockables to appear in different places when
      created. In single-window mode, they should appear inside the single
      image window. In multi-window mode, a new dock window is created.
      07556242
  18. 06 Feb, 2011 1 commit
  19. 28 Feb, 2010 2 commits
  20. 20 Feb, 2010 3 commits
  21. 19 Jan, 2010 1 commit
    • Martin Nordholts's avatar
      app: global_dock_window_factory -> global_dock_factory · 66197c5d
      Martin Nordholts authored
      Rename back global_dock_window_factory to
      global_dock_factory. Renaming to global_dock_window_factory was done
      under the assumption that there would be a separate factory that would
      create non-toplevel dockables, but I don't expect this to happen in
      the forseeable future.
      66197c5d
  22. 20 Dec, 2009 1 commit
  23. 08 Dec, 2009 1 commit
  24. 09 Oct, 2009 1 commit
  25. 06 Oct, 2009 1 commit
  26. 05 Oct, 2009 1 commit
  27. 30 Sep, 2009 2 commits
  28. 29 Sep, 2009 3 commits
  29. 28 Sep, 2009 3 commits