v0.6.0 release
Changelog:
- Added attrib original_text in VideoTile elements to save the unedited text before ellison overwrites it forever.
- Tuned all the pixel size, ellison and max size values to work with the new VideoTime system.
- Made all the new max size and ellison settings configurable.
- Fixed ellison inconsistency and mismatch issues by creating a function get_unicode_weight which calculates a
"width-weight" for unicode characters, and then that weight is subtracted from the ellison modifier. - Changed VideoTile sizing logic to use a maximum size instead of fixed size, which fixed the issue with QLabel text
going OOB. - Added debug tile coloring for padding debug.
- Made channel title and date text pixel size configurable
- Made title text weight configurable (Normal, DemiBold, Bold).
- Merged configurable database type and location into one single option 'url'.
- Fixed bug where timestamp wouldn't show the correct level, due to accidentally being offset by 1.
- Made config inform about which options require restart. Also: rearranged some options.
- Fixed broken thumbnail tooltip feature.
- Moved get_default_player from playback to super (VideoTile).
- Cleaned up keyboard modifiers code a bit.
- Fixed bad function signatures.
- Made player an optional kwarg in open_in_player()
- Refactored some strings.
- Deprecated and deleted config_play_video function.
- Made Subfeed context menu options on par with Playback's (alt players etc, mark watched, play w/o mark watched, etc...).
- Fixed buggy implementation of mousePressEvent in Subfeed that listened to all mouse events, not just LeftButton (whoops!).
- Added Playback's MidButton decrease_prio/mark_downloaded functionality to Subfeed.
- Created a function open_in_browser that properly opens a url in the web browser.
- Added some pydoc here and there.
- Made open_in_player compatible with being served URLs as well as file paths.
- Deprecated and deleted 'use_url_as_path' config hotfix.
- Added "restart may be required" signifier to config options w/o bindings.
- Fixed bug where timedelta years weren't subtracted by 10 when showing decades.
- Made youtube-dl an optional dependency, and removed tqdm entirely.
- Added in stock BreezeStyleSheets and made them load instead of the windows modded ones if you're on Linux. Also added
a missing README.md. - Added toolbar icon size modifier for use on High DPI displays.
- Implemented actions and kwargs bindings in GenericLineEdit.
- Tweaked Elided text modifier for video title to perfection (if text is bolded or otherwise it will cut off a little
sooner than this perfection, but that's why it's been made user configurable). - Explicitly set progress bars to blue instead of assuming it would be the default (varies with QStyle and QPalette).
- Fixed issue #5 (Launched players would quit along with Sane) by pre-pending 'nohup' to Popen arguments (if Linux).
- Changed timedelta formatting delimiter from % to $ due to shortcomings in ConfigParser (%% is an escaped percent sign,
so config parser finds it, but it doesn't actually do anything, but % isn't a valid string interpolation. so it fails. - Made video uploaded timedelta format customisable, and changed to use relativedelta with a string.Template to have
strftime-esque formatting (it only allows for [a-z], so had to go with repeating letters instead of dash. - Made GridView elided text values customisable.
- Fixed GridView text bleeding out of frame (length-wise, height cut-off issue is still unresolved).
- Made elided title text modifier customisable and moved out of place 'title pixel size' item in ConfigView.
- Removed mysterious hide_downloaded setting from GUI config (and MainWindowListener) that seemingly did nothing.
- Fixed bug where despawned Central Widgets were not respawning properly, leading it segfaults.
- Config checkboxes now support multiple functions where some don't have kwargs.
- Toggle for playback and download feature and debug mode now toggles the menubar and toolbar items as well.
- Created function to respawn menubar and toolbar in MainWindow (useful when config has changed to reflect hiding items)
- Extended GenericConfigCheckBox's function(**kwargs) capability to include lists of functions (and/or lists of kwargs).
- Added functionality for tabs to be inserted at their predetermined position instead of at end of row, and made it the
default. - Made Debug tab in ConfigView spawn and despawn when enable Debug option is checked/unchecked.
- Made Download tab in ConfigView spawn and despawn when enable PlaybackView option is checked/unchecked.
- Implemented ability for GenericConfigCheckBox to take checked/unchecked action functions and kwargs.
- Split ConfigView's populate_options into one function per tab, which allows for more fine grained adding/populating
in future. - Moved settings for enabling debug mode and GUI to a new "Advanced" tab in ConfigView.
- Made "Download" tab not show on startup if Playback view is disabled.
- Created del_tab and add_tab (and refactored add_tabs accordingly) in ConfigViewTabs.
- Moved Views to their own "Views" tab in ConfigView.
- Removed obsolete tab_id kwarg from InputSuper (ConfigView).
- Mask database location from being written to generated sample config.
- Made Database type and location customisable from config (default type: sqlite).
- Sample configuration files are now generated if none already exist.
- Fixed issue with log-to-file feature spawning a new file handler instance for each create_logger() call
(3000+ file descriptors). - Made Left mouse button action remappable (a little stop-gap pending full implementation of hotkeys, default: open in
default web browser) - Made Playback view (and implicitly downloading features) optional (default: disabled).
- Fixed bug that prevented QtWidget styles in Window->Theme->Style from working at all.
- Made DownloadView able to retry/re-add failed downloads.
- Made video download logic able to emit failed download signals to DownloadView and set info accordingly.
- Made downloader properly report and set failed download status to failed on pesky SSL Handshake errors (Errno 0).
- Updated MainWindow's confirmation_dialog function to make all args but message and action optional.
- Removed debug logging for unfinished downloads when clear finished downloads button is pressed.
- Made config text input fields actually set the the text variable to current config instead of just showing a
placeholder while text variable was Null (could potentially have lead to issues down the line) - Made config text input fields save-as-you-type instead of unintuitively requiring user to hit the return key.
- Added config option to adjust thumbnail tile overlay width and height
(NB: If you have enabled force AR width won't change) - Fixed bug where SaneInputDialog didn't auto close after OK was clicked.
- Added startup choice between build API key and oauth from string or load from file
- Updated startup checks to send in a cancel_action instead of needing to carry around (and update) two boolean
variables for whether or not public files were used. - Made it possible to bind actions to cancel button on SaneConfirmationDialog
- Implemented an init_ui() in SaneDialog, giving it new purpose.
- Made essential Sane{Confirmation,}Dialog args normal instead of kwarg