Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

add splash screen #17202

Open
wants to merge 10 commits into
base: master
Choose a base branch
from
Open

Conversation

ralfbrown
Copy link
Collaborator

Give the user feedback on the startup process as early as possible so that they aren't left wondering whether darktable is actually starting successfully (opening a large library can take multiple seconds even on SSD, and crawling a large collection for updated sidecars could potentially take over a minute).

@ralfbrown ralfbrown added the scope: UI user interface and interactions label Jul 25, 2024
@MStraeten
Copy link
Collaborator

maybe add an option to disable that via preferences dialog or darktablerc

@pitbuster
Copy link
Contributor

(opening a large library can take multiple seconds even on SSD, and crawling a large collection for updated sidecars could potentially take over a minute

Is there any possibility of start showing the UI while those happen? I think I am not the only one that hates splash screens

@ralfbrown
Copy link
Collaborator Author

@MStraeten done
@pitbuster beyond my pay grade.... Probably requires significant reorganization of the code.

@TurboGit TurboGit added this to the 5.0 milestone Jul 26, 2024
@TurboGit
Copy link
Member

TurboGit commented Aug 6, 2024

Tested, works but I'd like to have a better, bigger splash screen with the dt logo :)

Is there some UI designer reading this?

@pitbuster
Copy link
Contributor

Is there some UI designer reading this?

Maybe we can contact the person from this topic: https://discuss.pixls.us/t/i-am-working-on-a-rebrand-for-darktable/44382

@ralfbrown
Copy link
Collaborator Author

Tested, works but I'd like to have a better, bigger splash screen with the dt logo :)

I wanted to have the logo, but decided not to spend time trying to figure out how to get it to show until I was sure that a splash screen would be accepted.

@TurboGit
Copy link
Member

TurboGit commented Aug 6, 2024

Sure, to me we probably can have more than just a logo. I'm thinking about a whole visual (logo + pictures + lines... + whatever will make a whaou effect :), that's why I think a UI designer could shine in :)

@ralfbrown
Copy link
Collaborator Author

If you want more than an update of a text string as each major step of the initialization completes, it will probably be necessary to fire up a separate job running an event loop, since most of those steps aren't readily interruptible or subdividable. That whole "major reorganization" I mentioned upthread....

@TurboGit
Copy link
Member

TurboGit commented Aug 6, 2024

Well all is possible, we could have a single nice images with logo an an area of updating text. I don't want to put too much pressure as this splash-screen is anyway visible for few seconds only.

@ralfbrown
Copy link
Collaborator Author

Added the darktable logo. I set it to 200px, but we could make it larger to match the width of the title text (though the exact sizing depends on the theming, including font, so it switches once dt loads its CSS).

@ralfbrown
Copy link
Collaborator Author

Other than the issues with attempted progress updates after LUA initialization causing the UI to freeze (permanently, as far as I can tell), I'm happy with the code now. The sidecar crawl shows both percentage complete and estimated remaining time, updated each second, and all styling has been moved into the CSS file, which is now loaded early enough that the styling of the splash screen doesn't change in the middle of startup.

@ralfbrown
Copy link
Collaborator Author

Adding the check for whether the image being updated is the image in darkroom was easy enough, but that disables the ability to paste/compress/reset history on the image you're actively editing.... I tried putting in a check for whether the darkroom image is the same one as when the bulk operation started, but that just makes darktable crash.

I'm about to start my busy semester, so if I can't figure it out this weekend, I'll make a new PR which simply adds the busy cursor to those operations instead of progress meters and background execution.

@TurboGit
Copy link
Member

TurboGit commented Aug 9, 2024

@ralfbrown : Hum comment in wrong PR :) Can you move it at the right place?

@ralfbrown
Copy link
Collaborator Author

How the heck did that happen?
Moving...

@ralfbrown
Copy link
Collaborator Author

Rebased to fix merge conflict, added bugfix, and partially squashed.

@TurboGit
Copy link
Member

On a dual screen config I have on my main screen a shadow of dt main screen (border with full back in center) before it is moved to the secondary display.

image

@ralfbrown
Copy link
Collaborator Author

Given that I'm just starting to learn Gtk and don't have a secondary monitor, I'll need assistance in fixing that glitch.
I'll take care of the merge conflict tonight.

Give the user feedback on the startup process as early as possible so
that they aren't left wondering whether darktable is actually starting
successfully (opening a large library can take multiple seconds even
on SSD, and crawling a large collection for updated sidecar could
potentially take over a minute).

Also add pref to disable the splash screen.
This allows the splash screen to be properly styled from the
beginning, so that it does not change color/font in the middle of
startup.
This lets the darktable GUI display before the potentially very lengthy crawl,
and affords the future opportunity to add code to cancel the crawl or at least
display the directory names as they are crawled.

Some other adjustments to avoid a UI hang when doing the crawl after
LUA initialization fires up the script installer.
The sidecar crawler now updates with percentage completed once per second.
The crawling had to be moved back before LUA startup to avoid hanging the UI.
@ralfbrown
Copy link
Collaborator Author

Rebased and merge conflict fixed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
scope: UI user interface and interactions
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants