darktable-org / darktable-org/darktable
a way to cancel blocking jobs when left panel is hidden
Nobody has claimed this yet.
- 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
ESCto 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
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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