darktable-org / darktable-org/darktable

a way to cancel blocking jobs when left panel is hidden

Open
#20,612 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

no-issue-activity
Dominant language
C
Stars
13.1k
Forks
1.4k
Avg merge
22h 14m
Merged PRs (30d)
198

Description

Is your feature request related to a problem? Please describe.

Certain jobs are blocking: the cursor changes to "busy" and it is impossible to use the UI until the job finishes. There is a mechanism to monitor and cancel these via the "jobbox" on the left panel. Unfortunately, if the left panel is hidden, that mechanism is not available to the user. These blocking jobs include: paste/compress/discard history and apply styles.

Describe the solution you'd like

As these jobs are effectively modal, use a modal dialog with a progress bar and a cancel button.

Alternatives

  • Continue to block most user interactions, but still allow for hiding/unhiding panels such that the user can see the left panel
  • Provide a keyboard shortcut to cancel these jobs (it looks like there is nascent code to allow ESC to do this)
  • When left panel is hidden, show toast message providing updates
  • Make these jobs non-blocking
  • Temporarily show left panel while the jobs are running
  • Move jobbox to another portion of the UI when the left panel is hidden

Additional context

The code to provide a global busy cursor while still showing a pointer in the jobbox is a bit finicky. It would be nice to provide a cleaner way to handle this.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by tracing the jobbox and blocking-job handling for paste, compress, discard history, and apply styles, especially when the left panel is hidden. Compare the existing busy-cursor behavior with the proposed modal progress bar and cancel button, then verify that cancellation and progress remain available without the panel.

Written by the indexing model from the issue text.

Assessment

Tech stack
c
Domain
desktop
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.