MrS0m30n3 / youtube-dl-gui

A cross platform front-end GUI of the popular youtube-dl written in wxPython.
The Unlicense
9.22k stars 1.58k forks source link

UI changes #131

Closed MrS0m30n3 closed 7 years ago

MrS0m30n3 commented 7 years ago

From @eliluminado on Jun 19 2016

I thought about making a new configuration window to discard the current multiple tabs, by a slightly more modern like this.

Any suggestions?

uyf1s

Original issue: https://github.com/youtube-dlg/youtube-dl-gui/issues/4

MrS0m30n3 commented 7 years ago

Hi, @philipzae

Your mockup looks pretty good.

I have some questions, first of all what is the use case for the Reload button?

Also, note that the pause-resume functionality cannot be implemented since there is no real way to pause the download at the youtube-dl level. The only possible solution i can think of is killing the current running process to fake the pause functionality and then create a new process and let youtube-dl continue the download, which from a performance (create & destroy a process each time) standpoint is not good.

Furthermore with the current state of the downloadmanager i dont see an easy way to implement the Up & Down buttons, so if we remove the Reload, Pause, Up and Down buttons the design does not look that good (having only the Delete and Play buttons on the left and the Stop-Start button on the right).

Finally i believe that your design is pretty good and x100 times better than the old one but i also believe that the buttons list on the buttom needs a re-work.

Some ideas i have:

Thanks for your help!

philipzae commented 7 years ago

Hi, @philipzae

Hi @MrS0m30n3

Your mockup looks pretty good.

Thanks

I have some questions, first of all what is the use case for the Reload button?

The Reload button is to requeue selected entries that are in the paused or error state.

Also, note that the pause-resume functionality cannot be implemented since there is no real way to pause the download at the youtube-dl level. The only possible solution i can think of is killing the current running process to fake the pause functionality and then create a new process and let youtube-dl continue the download, which from a performance (create & destroy a process each time) standpoint is not good.

The youtube-dl GUI i use has the option to do it, so maybe you can check its code to see if they do it in a different way. Yes the paused state is for the user, which is equivalent to killing the process.

Furthermore with the current state of the downloadmanager i dont see an easy way to implement the Up & Down buttons, so if we remove the Reload, Pause, Up and Down buttons the design does not look that good (having only the Delete and Play buttons on the left and the Stop-Start button on the right).

Its unfortunately that a queue system isnt available in the app, as this is one the basic features of any download manager.

Maybe remove the Delete & Play buttons since those options will be available on the context menu & change the position of the Stop-Start button.

Many users will miss these functions if they are only accessible within a context menu, while the rest of the UI is all accessible with the left click.

Thanks for your help!

Glad to help. If you'd like, we could schedule a voice chat and talk about the issues in realtime.

MrS0m30n3 commented 7 years ago

The youtube-dl GUI i use has the option to do it, so maybe you can check its code to see if they do it in a different way. Yes the paused state is for the user, which is equivalent to killing the process.

If you talk about the ytd-gtk they only pause the Queued items on the list. When you try to pause an active item (download state) nothing happens, at least on the version i tried.

Also, the Up & Down buttons don't affect the active items. I though that when you change the row of an active item the download will pause and the above item will go into active state, but their implementation is much simpler to implement, i could definetly add this feauture.

So, basically i will try to make the basic changes on a different branch and we can then work on that.

philipzae commented 7 years ago

If you talk about the ytd-gtk they only pause the Queued items on the list. When you try to pause an active item (download state) nothing happens, at least on the version i tried.

Yes you are correct, pause doesnt affect an active download it only does so for queued items. The only thing that stops an active download is the stop button and then you could set it from queued to paused.

Also, the Up & Down buttons don't affect the active items. I though that when you change the row of an active item the download will pause and the above item will go into active state, but their implementation is much simpler to implement, i could definetly add this feauture.

In most download managers and bittorrent clients it does work on active downloads and if it could be achieved that would be great, but if it is to difficult, then adjusting the non-active queued items is still a step in the right direction.

So, basically i will try to make the basic changes on a different branch and we can then work on that.

Glad to hear it, as i want to upgrade from ytd-gtk to youtube-dl-gui.

On a different note, i was thinking that a modify button and/or context menu entry could be implemented, which would remove an entry from the queue list and put it back in the Enter URL list, so if a user made a mistake about the format they wanted to download with, they could amend it. This happened to me yesterday. :D But maybe it wont be as useful unless a tooltip appeared when hovering over an entry which stated the download details of the entry.

Might be useful to also have a context menu entry for 'get url', which would copy the url into the clipboard. This could come in handy to download a different format of the same entry or paste the url in the browser.

nodiscc commented 7 years ago
MrS0m30n3 commented 7 years ago

You can check the changes here: new_layout branch

We also need to work on the Options window, some options will go away and some need regrouping.

philipzae commented 7 years ago

Tried to install the new_layout branch, but got the error 'error: can't copy 'youtube_dl_gui/icons/youtube-dl-gui_16x16.png': doesn't exist or not a regular file'.

Yes the options dialog should be reorganized, so how do you want to proceed with that?

MrS0m30n3 commented 7 years ago

You probably runned python setup.py install which does not work since the icons directory has changed. To run the _newlayout branch open a terminal and:

or oneliner

git clone -b new_layout https://github.com/MrS0m30n3/youtube-dl-gui; cd youtube-dl-gui; python -m youtube_dl_gui

About the options window i haven't really though about it.

philipzae commented 7 years ago

tried with the python -m youtube_dl_gui and here was the output

Traceback (most recent call last):
  File "/usr/lib/python2.7/runpy.py", line 162, in _run_module_as_main
    "__main__", fname, loader, pkg_name)
  File "/usr/lib/python2.7/runpy.py", line 72, in _run_code
    exec code in run_globals
  File "/home/jay/Downloads/Setup/internet/youtube downloaders/youtube-dl-gui-new_layout/youtube_dl_gui/__main__.py", line 39, in <module>
    youtube_dl_gui.main()
  File "youtube_dl_gui/__init__.py", line 76, in main
    frame = MainFrame(opt_manager, log_manager)
  File "youtube_dl_gui/mainframe.py", line 204, in __init__
    button.SetBitmap(wx.Bitmap(os.path.join(self._pixmaps_path, icon)), wx.TOP)
AttributeError: 'Button' object has no attribute 'SetBitmap'

About the options window, i did some brainstorming last night about the tabs i thought it could be organized in and what fields would be found in each and you can find the details in this google doc.

MrS0m30n3 commented 7 years ago

What wxPython version do you have? Run: python -c "import wx; print wx.version()"

The SetBitmap method is available on wxPython >= 2.9.1

philipzae commented 7 years ago

I'm running Linux Mint 17.3 with an ubuntu 14.04 base and the output was 2.8.12.1 (gtk2-unicode)

MrS0m30n3 commented 7 years ago

You should update your wxPython version to a newer one.

philipzae commented 7 years ago

so whats the minimum requirement?

MrS0m30n3 commented 7 years ago

I am running 3.0.2 i guess 2.9.1 is the minumum for the new GUI.

philipzae commented 7 years ago

Any ideas how i can upgrade it on ubuntu 14.04, as python-wxgtk3.0 only was added in 14.10. Would be sad if people with supported LTSes arent able to use the app.

philipzae commented 7 years ago

Okay i was able to grab it from this ppa - https://launchpad.net/~benoit.pierre/+archive/ubuntu/plover - while it can also be grabbed from here - https://launchpad.net/~anton+/+archive/ubuntu/photo-video-apps

So tried it out and it looks good, though none of the icons showed up except for the path one. Here are some thoughts

MrS0m30n3 commented 7 years ago

So tried it out and it looks good, though none of the icons showed up except for the path one.

From the wxButton documentation:

Please also notice that GTK+ uses a global setting called gtk-button-images to determine if the images should be shown in the buttons at all. If it is off (which is the case in e.g. Gnome 2.28 by default), no images will be shown, consistently with the native behaviour.

For me on XFCE environment i had to go to Settings > Appearance and enable the Show images on buttons. I don't know how to enable it on Mint.

MrS0m30n3 commented 7 years ago
nodiscc commented 7 years ago

@MrS0m30n3 Monochrome icons are a good idea, I would rather use Faenza or similar (I find them cleaner)

Or possibly, use the user's current set GTK icon theme (for consistency).

Edit: also find /usr/share/icons/ -type f -iname *symbolic*

nodiscc commented 7 years ago

Maybe a few basic toggles should be added to the 'gear' menu:

philipzae commented 7 years ago

For me on XFCE environment i had to go to Settings > Appearance and enable the Show images on buttons. I don't know how to enable it on Mint.

Went into Appearance, Interface tab and it was set to 'Text beside items', so i changed it to 'Text below items' and still no difference. Changing the setting works fine in pluma (aka gedit).

I kind of like the monochrome icons, i could add an option later on to change between icon styles maybe, or we could open a new issue to vote

Would be useful on Linux, not sure how it works on Mac, to be able to use the theme's icons, so it fits well with other apps and the rest of the UI is themed, and then for those who prefer something different, have an options setting to switch to some alternatives. I know qbittorrent and smplayer do it like this.

Not going to happen since the height of the URL field is adjusted automatically from the sizer and it's not that important

Can we set the minimum height to be 4 lines, rather than 3.5.

The button width is automatically adjusted to the label and i prefer keeping the same padding between savepath_box + button & videoformat_box + button

Is the Start button the same, as the Add button is wider than the Start button for me. Yes please keep the paddings between both the same by increasing both slightly, even 5px would be good as it is at 0px now.

Including a screenshot of how it looks for me, encase we are seeing it different, as well as what i would consider a good fixed or minimum size for the dialog. youtube-dlg

philipzae commented 7 years ago

Extract audio

That will be available in the format/quality drop down list

Download subtitles

+1 as it likely would be quick action that users would want to turn off and on regularly and even per download.

...

Possibly 'Close on Completion' to close that app once all the downloads are finished if this is a common enough thing people do.

MrS0m30n3 commented 7 years ago

@philipzae The UI looks a bit different on me: youtubedlg_mainwindow I will try to do some adjustments when i'm done with the basic functionality.

Can we set the minimum height to be 4 lines, rather than 3.5.

Again, the answer is no. The main reason is that there is no easy way since the height is automatically adjusted by the sizer and each font is rendered differently on each system, there's no method to say _set_minheight(4-lines). How tall are those 4 lines?! You can't say for sure (at least i don't know an easy way). Just adjust your frames height to match your preferences.

Possibly 'Close on Completion' to close that app once all the downloads are finished if this is a common enough thing people do.

Other users have asked for this feature but there is already the shutdown option. I mean if you are in front of your computer when your downloads are done just click close.

P.S. I pushed more code on the _newlayout branch, now most of the basic functionality should work. Give it a try and post your feedback here.

NOTES

philipzae commented 7 years ago

Tried it out and the functionality looks good. Here is some feedback.

MrS0m30n3 commented 7 years ago

The width of the title column seemed to have limits at some times and no limit at other times. I later figured out it relates to the widths of the other columns and i'm unable to stretch it more and have the horizontal scrollbar appear.

The "weird" behaviour is based on the auto-resize feature of the title column. Changing the auto-resize to false in line mainframe.py:#165 should achieve the behaviour you want. I could add it as an option, but a lot of options start to gather up.

All downloads had 'Warning' status after completion because "WARNING: Your copy of avconv is outdated, update avconv to version 10-0 or newer if you encounter any errors."

Update your avconv and the message will go away.

Statusbar said "Successfully downloaded 0 url(s)..." when i had finished downloading 3 urls

That's because of the Warning messages you get.

When i redownloaded an video, it didnt populate the title and extension columns of that download and then the Play button didnt work

If you talk about the Already Downloaded status, that's a known problem and already on the TODO (last line) list. Note that the filename, extension are not extracted even in the current (old) gui.

Delete is only to remove the entry from the list and not delete the underlying file, so no need for the dialog. If you wish to keep the dialog, lets have an option to enable it and also set 'No' as the default button.

I will probably add it as an option as you suggested.

List didnt repopulate on reopening the app

Currently there is no support neither on the old nor to the new gui. I might add it after i'm done with the other stuff.

Was able to shrink the window so small that the format/quality control completely disappeared.

I didn't set the minimum width for the video formats combobox on purpose to achieve that behaviour.

nodiscc commented 7 years ago

List didnt repopulate on reopening the app

Do you mean the application should open with the previous download queue/history loaded?

Extract audio

That will be available in the format/quality drop down list

I use it as (or more) frequently than the subtitles option - quick action that users would want to turn off and on regularly and even per download. But more importantly I think --format and --extract-audio have different behaviours:

-x, --extract-audio              Convert video files to audio-only files
                                 (requires ffmpeg or avconv and ffprobe or
                                 avprobe)

--format                    ...
                           bestaudio: Select best quality audio only format, may not be available
                           worstaudio: Select worst quality audio only format, may not be available

There are also related options to consider

-k, --keep-video                 Keep the video file on disk after the post-
                             processing; the video is erased by default
--audio-format  FORMAT            Specify audio format: "best", "aac",
                             "vorbis", "mp3", "m4a", "opus", or "wav";
                             "best" by default

But yes, having shorthand formats best worst bestvideo worstvideo bestaudio worstaudio in the dropdown list is a must-have.

Edit: also note

--recode-video FORMAT            Encode the video to another format if
                             necessary (currently supported:
                             mp4|flv|ogg|webm|mkv|avi)

You can also use a file extension (currently 3gp, aac, flv, m4a, mp3, mp4, ogg, wav, webm are supported) to download best quality format of particular file extension served as a single file, e.g. -f webm will download best quality format with webm extension served as a single file.

nodiscc commented 7 years ago

This is how the formats list should look in my humble opinion

ytdlg-mc

nodiscc commented 7 years ago

For the gear menu:

ytdlg-gm

nodiscc commented 7 years ago

Post-processing and subtitles in options dialog

ytdlg-pp

Some format entries may be freeform text fields, or dropdown lists (eg. for --convert-subs where only srt|ass|vtt are supported).

Format fields should be grayed out/made inactive when the corresponding checkbox is toggled off.

nodiscc commented 7 years ago

There is still the question about whether the options dialog should have a tabbed UI/vertical tabs/horizontal tabs/other...

2E0PGS commented 7 years ago

One of my fav applications. The GUI just makes it nice and easy to use. However I would suggest adding a Dark theme so its easier on the eyes at night.

philipzae commented 7 years ago

The "weird" behaviour is based on the auto-resize feature of the title column. Changing the auto-resize to false in line mainframe.py:#165 should achieve the behaviour you want. I could add it as an option, but a lot of options start to gather up.

Would suggest have fixed sized for all columns except title column

Update your avconv and the message will go away.

Would suggest having a 'Finished' or 'Finished (*)' status when warning messages appear. Those interested in seeing warnings can open the log, but we need to keep things as simple as possible for the novice user, especially those who have no means of fixing such warnings (e.g. they are on the latest version of avconv that their distro provides).

@nodiscc

Do you mean the application should open with the previous download queue/history loaded?

Yes it should so if a user closed that app when some downloads had errors, were incomplete or still in the queue, those arent wiped away.

But more importantly I think --format and --extract-audio have different behaviours:

Youtube presently only saved audio in m4a format, which means all other audio formats will be converted by ffmpeg.

This is how the formats list should look in my humble opinion

Having a huge list that will overwhelm people is not beneficial and instead i've suggested that the list be customizable in the options dialog by those who want that flexibility.

For the gear menu:

All of these should be in the options dialog - update, extract audio, keep video, recode video

There is still the question about whether the options dialog should have a tabbed UI/vertical tabs/horizontal tabs/other...

With the organization i've worked on in the google doc, there would only be a few tabs, so having them vertical or horizontal is up to the developer to decide what best suits the target platform.

nodiscc commented 7 years ago

Having a huge list that will overwhelm people is not beneficial and instead i've suggested that the list be customizable

What should be in the list by default? I suggest all the common aliases (but not the numbered formats).

Youtube presently only saved audio in m4a format, which means all other audio formats will be converted by ffmpeg.

Nope: https://en.wikipedia.org/wiki/YouTube#Quality_and_formats (unhide the table). There are other audio formats, eg opus , ogg vorbis...

youtube-dl --list-formats 'https://www.youtube.com/watch?v=8UwY6CIyN90'
[youtube] 8UwY6CIyN90: Downloading webpage
[youtube] 8UwY6CIyN90: Downloading video info webpage
[youtube] 8UwY6CIyN90: Extracting video information
[youtube] 8UwY6CIyN90: Downloading js player en_US-vflhPhaA1
[youtube] 8UwY6CIyN90: Downloading js player en_US-vflhPhaA1
[info] Available formats for 8UwY6CIyN90:
format code  extension  resolution note
249          webm       audio only DASH audio   59k , opus @ 50k, 2.03MiB
250          webm       audio only DASH audio   87k , opus @ 70k, 2.79MiB
171          webm       audio only DASH audio  125k , vorbis@128k, 4.45MiB
140          m4a        audio only DASH audio  128k , m4a_dash container, mp4a.40.2@128k, 4.79MiB
251          webm       audio only DASH audio  209k , opus @160k, 6.92MiB
278          webm       192x144    144p   78k , webm container, vp9, 13fps, video only, 2.23MiB
242          webm       320x240    240p  114k , vp9, 25fps, video only, 4.25MiB
160          mp4        192x144    144p  118k , avc1.4d400c, 15fps, video only, 4.43MiB
243          webm       480x360    360p  198k , vp9, 25fps, video only, 6.67MiB
134          mp4        480x360    360p  222k , avc1.4d4015, 25fps, video only, 7.89MiB
133          mp4        320x240    240p  273k , avc1.4d400d, 25fps, video only, 9.95MiB
244          webm       640x480    480p  341k , vp9, 25fps, video only, 10.32MiB
135          mp4        640x480    480p  500k , avc1.4d401e, 25fps, video only, 18.12MiB
17           3gp        176x144    small , mp4v.20.3,  mp4a.40.2@ 24k
36           3gp        320x240    small , mp4v.20.3,  mp4a.40.2
18           mp4        480x360    medium , avc1.42001E,  mp4a.40.2@ 96k
43           webm       640x360    medium , vp8.0,  vorbis@128k (best)
MrS0m30n3 commented 7 years ago

@2E0PGS Currently the GUI follows the native window appearance, if you use a dark theme i believe that the frame will also have a dark appearance.

Would suggest having a 'Finished' or 'Finished (*)' status when warning messages appear. Those interested in seeing warnings can open the log, but we need to keep things as simple as possible for the novice user, especially those who have no means of fixing such warnings (e.g. they are on the latest version of avconv that their distro provides).

You are probably right on this i am going to change those Warning messages.

Do you mean the application should open with the previous download queue/history loaded?

Yes it should so if a user closed that app when some downloads had errors, were incomplete or still in the queue, those arent wiped away.

I also believe this functionality is useful, but what about the Active downloads? On frame close you kill the downloads and re-queue them on restart?

Having a huge list that will overwhelm people is not beneficial and instead i've suggested that the list be customizable in the options dialog by those who want that flexibility.

I will probably add only the basic formats like: mp4, flv, etc and add an option to change to advanced view.

All of these should be in the options dialog - update, extract audio, keep video, recode video

Yeah, i am not going to add checkboxes on the settings popup menu.

With the organization i've worked on in the google doc, there would only be a few tabs, so having them vertical or horizontal is up to the developer to decide what best suits the target platform.

I will probably keep the horizontal tabs, but i will decrease the number of tabs and regroup the options based on the google doc.

MrS0m30n3 commented 7 years ago

Also, currently there is no way to clear the list from the non-Active downloads. What do you think? Should i add a new Clear button or use the Delete button with no selections to clear the list?

2E0PGS commented 7 years ago

Yes but Windows does not have the option for dark background besides high contrast mode and that does not work properly with youtube-dl-gui as I have tested it. So it would be nice to see a colour theme option or something. Just the two (Light or Dark) would be nice.

philipzae commented 7 years ago

@nodiscc

What should be in the list by default? I suggest all the common aliases (but not the numbered formats).

Yes the most common video and audio formats should be there by default, primarily the ones that dont require re-encoding after downloading. I'd recommend mp4, webm, m4a, mp3 and ogg, which is a good balance of open source and proprietary format.

Nope: https://en.wikipedia.org/wiki/YouTube#Quality_and_formats (unhide the table). There are other audio formats, eg opus , ogg vorbis...

Yes many years ago they used to support more audio and video formats, but nowadays, they limit themselves to audio and video codecs found in mp4 and webm containers, which does include opus and vorbis if a webm container of the video is available.

youtube-dl --list-formats 'https://www.youtube.com/watch?v=VYsq5fXELyk'
[youtube] VYsq5fXELyk: Downloading webpage
[youtube] VYsq5fXELyk: Downloading video info webpage
[youtube] VYsq5fXELyk: Extracting video information
[youtube] VYsq5fXELyk: Downloading MPD manifest
[info] Available formats for VYsq5fXELyk:
format code  extension  resolution note
140          m4a        audio only DASH audio  128k , m4a_dash container, mp4a.40.2@128k (44100Hz), 3.07MiB
160          mp4        256x144    DASH video  118k , avc1.4d400c, 24fps, video only, 2.71MiB
133          mp4        426x240    DASH video  258k , avc1.4d4015, 24fps, video only, 5.97MiB
134          mp4        640x360    DASH video  636k , avc1.4d401e, 24fps, video only, 12.36MiB
135          mp4        854x480    DASH video 1165k , avc1.4d401e, 24fps, video only, 23.71MiB
136          mp4        1280x720   DASH video 2326k , avc1.4d401f, 24fps, video only, 44.12MiB
137          mp4        1920x1080  DASH video 4430k , avc1.640028, 24fps, video only, 80.96MiB
17           3gp        176x144    small , mp4v.20.3,  mp4a.40.2@ 24k
36           3gp        320x180    small , mp4v.20.3,  mp4a.40.2
18           mp4        640x360    medium , avc1.42001E,  mp4a.40.2@ 96k
22           mp4        1280x720   hd720 , avc1.64001F,  mp4a.40.2@192k (best)

@MrS0m30n3

I also believe this functionality is useful, but what about the Active downloads? On frame close you kill the downloads and re-queue them on restart?

Once a user presses any of the download list manipulation buttons, the download list should be saved, so encase the app is killed, the list is still intact. If the user clicks the close button while downloads are active, a popup should appear asking if they are sure, and if they say yes, then the stop button should be activated and all active downloads are placed in the queue status.

I will probably keep the horizontal tabs, but i will decrease the number of tabs and regroup the options based on the google doc.

Let me know once you do begin working on this, so we can discuss the details. I'd assume a new issue should be created for this reorganization.

Also, currently there is no way to clear the list from the non-Active downloads. What do you think? Should i add a new Clear button or use the Delete button with no selections to clear the list?

Yes i forgot to include a Clear button :D, but i would likely limit it to only removing the finished entries or else have a dialog confirming which of the two actions they want to do. If the Clear button can be a split button, then the default part of the button would be to 'Clear downloaded entries' and then a menu would have an entry for 'Clear all entries'.

nodiscc commented 7 years ago

I'd recommend mp4, webm, m4a, mp3 and ogg, which is a good balance of open source and proprietary format.

Add best/worst/bestaudio/worstaudio to that and I'm sold :)

MrS0m30n3 commented 7 years ago

Tasks remaining for issue completion:

In case i forget anything please post back.

MrS0m30n3 commented 7 years ago

I just pushed more code, the above tasks are all completed. I'm going to leave this issue open 2-3 days in case someone has any suggestions or finds a bug.

Also, i changed the bottom buttons to bitmap only buttons since the translated labels do not fit inside and if i try to automatically adjust the buttons size based on the labels the buttons turn huge.

philipzae commented 7 years ago

Some suggestions

MrS0m30n3 commented 7 years ago
  • Have simpler names for video formats

Done.

  • Download folder shouldnt be automatically opened after downloads complete, especially when you can set different download folders for different downloads in a single list

That's already disabled. You should either remove your settings.json file or click the Reset button on the options window and restart youtube-dl-gui.

  • As we have more space because the buttons dont have labels, an open folder button would be useful instead of the context menu option.

I'm not going to add more buttons.

  • Change label to 'Update youtube-dl' in the context menu to remove possible confusion with updating youtube-dl-gui. Also doesnt updating youtube-dl need to run with sudo, so how is things being achieved.

No, since the average user does not care what is happening in the background. About the permissions, currently the youtube-dl binary is stored under ~/.config/youtube-dlg on Linux and %appdata%\youtube-dlg on Windows which do not require elevated privileges.

  • Download list is blank when reopening

Will take care in a different issue after i merge back to master.

Update

Regarding the open button, now double clicking the folder icon next to the savepath combobox will open the selected path in a new window. I know this "hidden" option is not the best choice but i dont want to add a new open button since there is already the context menu entry.

philipzae commented 7 years ago

Some additional suggestions after resetting settings.json.

MrS0m30n3 commented 7 years ago
  • add m4a as a default selected audio format, as it a format that doesnt need re-encoding

Done

  • default width of options dialog should be its minimum size

Nope

  • default height of options dialog has view and clear buttons in advanced tab to be cramped. Adding 20px should be sufficient

Done

  • Instead of using the user home folder (e.g. ~/) as the default download folder, use the default download (e.g. ~/Downloads/) folder and add the desktop (e.g. ~/Desktop/) and default video (e.g. ~/Videos/) folders to the downloadable paths combobox.

Added four new paths (Downloads, Desktop, Videos, Music) but left home as the default choice

  • 'Youtube-dl downloaded correctly' statusbar string should likely include the version number. It should likely have a different string when the user already has the latest version, or does it not check for this before downloading the latest version?

Currently there is no check for version number, but it's already in the TODO list

  • Is there any means of disabling the main window when the options or about dialogs appear

I don't see the reason for disabling them

  • Might be useful to have a separator above the statusbar or alternatively have bevelled border around it, to clearly identify it area

That's system dependent, on some systems the statusbar is sunken on some it's not

  • Good default commandline argument "--no-mtime --no-playlist"

We have issues #127, #128

  • Have 'Active (X)' before 'Queued (X)' in statusbar

No since the current order reflects the underline implementation. A download follows this order Queued or Paused -> Active -> Completed

  • Have 'url' in capitals in the successfully downloaded statusbar string and the url missing warning dialog

Done

  • Is there any means of making the mousescroll work on the listbox, like it works with the listbox scrollbar in the video format, audio format, and subtitle listboxes in the options dialog

I'm not sure what exactly you mean.

philipzae commented 7 years ago

I don't see the reason for disabling them

As this is the common behaviour for applications that the main window being disabled when such dialogs appear, and these dialogs not have their own window list (aka taskbar) entry.

That's system dependent, on some systems the statusbar is sunken on some it's not

Yes the bevel appears can be theme dependent, but its possible to force this appearance, atleast in glade i believe. Just noticed that the 'Welcome' label isnt aligned with 'Enter URLs below' and 'Download list'

I'm not sure what exactly you mean.

In the options dialog, does the mouse scrollwheel work with the video format list? It works for me only when the mouse cursor is over the scrollbar of the listbox, but not when its above the list area of the listbox.

MrS0m30n3 commented 7 years ago

As this is the common behaviour for applications that the main window being disabled when such dialogs appear, and these dialogs not have their own window list (aka taskbar) entry.

Unfortunately, wxPython uses the native implementation of the about dialog which does not give me any control of the frame and i'm sure not going to create a new custom about dialog just to make the frame dissapear from the taskbar. So, i prefer keeping the same behaviour between frames and display them all in the taskbar. If you want you can research this issue further or make a pull request implementing a custom about dialog.

Yes the bevel appears can be theme dependent, but its possible to force this appearance, atleast in glade i believe. Just noticed that the 'Welcome' label isnt aligned with 'Enter URLs below' and 'Download list'

I missed this one, but the statusbar supports those styles inherited by the wxWindow class:

I tried them all out and i don't like the look. You can test them yourself by editing mainframe.py:303 like this:

self._status_bar = self.CreateStatusBar(style=wx.BORDER_DEFAULT)

In the options dialog, does the mouse scrollwheel work with the video format list? It works for me only when the mouse cursor is over the scrollbar of the listbox, but not when its above the list area of the listbox.

For me it also works when above the list area.

philipzae commented 7 years ago

I tried them all out and i don't like the look.

If you dont like it, its fine. Do you also not like the separator, as it is used in ytd-gtk?

MrS0m30n3 commented 7 years ago

If you mean this one: http://screenshots.getdeb.net/getdeb/media/screens/243/243.png

This on wxPython is equivalent to wx.BORDER_SUNKEN. Anyway, i prefer keeping the native look and not force the sunken border.

If you have more suggestions, let me know else i'm going to close this issue.

philipzae commented 7 years ago

I think i've given all the suggestions i can, so the issue can be closed now. :D

If you want to create a dialog for the addition of playlist entries, please create a new issue on it and CC me.

MrS0m30n3 commented 7 years ago

Ok, i will leave it open two more days in case someone else has any suggestions. About the playlist dialog, i will probably open a new issue after i merge back to master.

Thanks for your help @philipzae the UI looks x100 times better now.