Bionus / imgbrd-grabber

Very customizable imageboard/booru downloader with powerful filenaming features.
https://www.bionus.org/imgbrd-grabber/
Apache License 2.0
2.5k stars 216 forks source link

Integrate the batch download UI in the main window #1628

Open brazenvoid opened 5 years ago

brazenvoid commented 5 years ago

Problem

Currently one has to view the minimizeable batch download window to see the downloads progress which is not aesthetically pleasing or seemingly any part of grabber's main window.

Solution Phase 1

A minimal horizontal progress bar at the bottom of grabber showing overall progress of all downloads. I see that you are going to add function for multiple batches. This can augment that.

I think mention of done/total files along with the percentage progress would be great. The UI will seem part of Grabber itself and viewable across the interface.

This may have a turn off feature as well in the view menu till phase 2. And perhaps a turn off feature for batch downloads UI as well.

Phase 2:

The horizontal bar can also embed all the other options except the file list as globals. To integrate the batch dialogs completely, there are two options in my mind;

The focus here is to be able to browse while downloading without additional UI shenanigans.

Bionus commented 4 years ago

Summary

The inspiration will be torrent software, who also have long-running downloads with lots of "hidden" information:

image

Grabber for reference:

image

The downloads tab will be split in half horizontally (resizable of course), with the top part the current downloads tab content and the bottom part the downloads details.

Top part

Currently, the top part contains many buttons that take lots of space. Also, I doubt the "Add" buttons are often used by many users.

Bottom part

For the first iteration, the bottom part will be hidden if no download is selected or if the selected download hasn't started, as there would be nothing to show.

Also, in the first iteration, the contents of the bottom part will be the exact same as the current batch download window (modulo navigation buttons).

In the long term, we can consider a separate log per download, a speed graph history, etc.

brazenvoid commented 4 years ago

If you are going to take inspiration from torrent client then:

Bionus commented 4 years ago

👍 for all the ideas, although I don't understand what you mean in your last point:

Finally fix the order column composition, the generated series gets disturbed when downloads are moved or deleted and are never regenerated. Though its just an annoyance but an embarrassing annoyance for the developers.

What do you mean "order column composition" / "generated series"?

brazenvoid commented 4 years ago

The first column on batch downloads. It is a generated ordered series of serial nos. Which does not get reorganized/reordered when downloads are moved up and down, removed etc.

The status icons also get jumbled if for example you start a download and stop in the middle, or start another download.

Soon it starts depicting a mess. Only a restart fixes this.

Bionus commented 4 years ago

Moving to 7.4.0 as this still requires a lot of work and I'd like to release a new version soon since there were already a lot of changes implemented since 7.2.X (notably for monitors).

A few QOL changes will however already be introduced (context menu, drag drop, moved load/save buttons...).

Bionus commented 2 years ago

Here's where I'm at currently (work in progress): image

The issue I'm facing now is how to handle single images downloads, given currently they're included in the batch download window (parallel downloads are all shown in the same window), while for this one everything is separate.

The design of the side panel doesn't really make sense for single images, but removing it and only adding a status icon in the table wouldn't really work either if people want to know the combined status of multiple single downloads, as currently possible with the batch window.

The only option I see would be a separate status view for all selected single images, and which wouldn't have the "Files" tab but I'm not a big fan.

brazenvoid commented 2 years ago

Why not just show them as a batch download does in the files tab. Yes that will have you split function with the files tab but that's still a much better rendition.

Perhaps in the future we may have multi-source batches which get images from sources in parallel.

Bionus commented 2 years ago

Not sure what you mean. And keeping the "Files" tab would just duplicate the information already available in the downloads tab itself wouldn't it?

brazenvoid commented 2 years ago

There is no issue with duplicating the information, considering it works as a large progress window which is way better than the table aesthetically. Also this presents a unified visual flow.

Alternatively, I would suggest to split the whole interface for batch and single downloads, like a nested tab interface. The batches will have the downloader with files tab like in current view. While single ones will have the downloader with stats and progress panel in a wide horizontal layout at the bottom.

brazenvoid commented 2 years ago

You could also consider removing the files tab altogether considering there isn't much one can do with it. The overall progress markers are enough of an indication as to what is happening. It will present a simpler and better user experience than having a novelty of a scrolling files list.

Bionus commented 2 years ago

It allows to see which files failed exactly and investigate errors 🤔

Bionus commented 2 years ago

I like the idea of splitting the whole thing though.

brazenvoid commented 2 years ago

I would counter with the fact that the file tab in that context is a power user thing, which most users will not be. Also the batch downloader does try again to download the failed ones, there is also the log.

Suffice to say, investigations can happen regardless of its existence or sophistication. You can also build a nicer dumping or log extraction tool in the batch downloader for logging failures.