From: Jakob Haufe Date: Sun, 31 May 2020 13:55:01 +0000 (+0000) Subject: New upstream version 3.4 X-Git-Tag: upstream/3.4 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=6e2bde38c3644f1b74bea23e283200975e120c32;p=minitube New upstream version 3.4 --- diff --git a/empty.ts b/empty.ts index ce7cd4a..4ba2dd1 100644 --- a/empty.ts +++ b/empty.ts @@ -73,18 +73,10 @@ Please license %1 - - This demo has expired. - - The full version allows you to watch videos without interruptions. - - Without a license, the application will expire in %1 days. - - By purchasing the full version, you will also support the hard work I put into creating %1. @@ -880,6 +872,18 @@ Subscribed to %1 + + Rewind %1 seconds + + + + Fast forward %1 seconds + + + + channel + + MessageWidget @@ -1107,6 +1111,18 @@ Get the full version + + Remove + + + + Need a remote control for %1? Try %2! + + + + I keep improving %1 to make it the best I can. Support this work! + + SidebarHeader diff --git a/icons/dark/16/audio-volume-high.png b/icons/dark/16/audio-volume-high.png deleted file mode 100644 index 26cd8cd..0000000 Binary files a/icons/dark/16/audio-volume-high.png and /dev/null differ diff --git a/icons/dark/16/audio-volume-high@2x.png b/icons/dark/16/audio-volume-high@2x.png deleted file mode 100644 index 1336f60..0000000 Binary files a/icons/dark/16/audio-volume-high@2x.png and /dev/null differ diff --git a/icons/dark/16/audio-volume-high_active.png b/icons/dark/16/audio-volume-high_active.png new file mode 100644 index 0000000..8f9d1f6 Binary files /dev/null and b/icons/dark/16/audio-volume-high_active.png differ diff --git a/icons/dark/16/audio-volume-high_active@2x.png b/icons/dark/16/audio-volume-high_active@2x.png new file mode 100644 index 0000000..6f860af Binary files /dev/null and b/icons/dark/16/audio-volume-high_active@2x.png differ diff --git a/icons/dark/16/audio-volume-high_disabled.png b/icons/dark/16/audio-volume-high_disabled.png new file mode 100644 index 0000000..da33c25 Binary files /dev/null and b/icons/dark/16/audio-volume-high_disabled.png differ diff --git a/icons/dark/16/audio-volume-high_disabled@2x.png b/icons/dark/16/audio-volume-high_disabled@2x.png new file mode 100644 index 0000000..0363fca Binary files /dev/null and b/icons/dark/16/audio-volume-high_disabled@2x.png differ diff --git a/icons/dark/16/audio-volume-high_normal.png b/icons/dark/16/audio-volume-high_normal.png new file mode 100644 index 0000000..d47e4e5 Binary files /dev/null and b/icons/dark/16/audio-volume-high_normal.png differ diff --git a/icons/dark/16/audio-volume-high_normal@2x.png b/icons/dark/16/audio-volume-high_normal@2x.png new file mode 100644 index 0000000..fcdca86 Binary files /dev/null and b/icons/dark/16/audio-volume-high_normal@2x.png differ diff --git a/icons/dark/16/audio-volume-muted.png b/icons/dark/16/audio-volume-muted.png deleted file mode 100644 index e15b3e2..0000000 Binary files a/icons/dark/16/audio-volume-muted.png and /dev/null differ diff --git a/icons/dark/16/audio-volume-muted@2x.png b/icons/dark/16/audio-volume-muted@2x.png deleted file mode 100644 index e5d2436..0000000 Binary files a/icons/dark/16/audio-volume-muted@2x.png and /dev/null differ diff --git a/icons/dark/16/audio-volume-muted_active.png b/icons/dark/16/audio-volume-muted_active.png new file mode 100644 index 0000000..37be31d Binary files /dev/null and b/icons/dark/16/audio-volume-muted_active.png differ diff --git a/icons/dark/16/audio-volume-muted_active@2x.png b/icons/dark/16/audio-volume-muted_active@2x.png new file mode 100644 index 0000000..ebe59d2 Binary files /dev/null and b/icons/dark/16/audio-volume-muted_active@2x.png differ diff --git a/icons/dark/16/audio-volume-muted_disabled.png b/icons/dark/16/audio-volume-muted_disabled.png new file mode 100644 index 0000000..37be31d Binary files /dev/null and b/icons/dark/16/audio-volume-muted_disabled.png differ diff --git a/icons/dark/16/audio-volume-muted_disabled@2x.png b/icons/dark/16/audio-volume-muted_disabled@2x.png new file mode 100644 index 0000000..ebe59d2 Binary files /dev/null and b/icons/dark/16/audio-volume-muted_disabled@2x.png differ diff --git a/icons/dark/16/audio-volume-muted_normal.png b/icons/dark/16/audio-volume-muted_normal.png new file mode 100644 index 0000000..37be31d Binary files /dev/null and b/icons/dark/16/audio-volume-muted_normal.png differ diff --git a/icons/dark/16/audio-volume-muted_normal@2x.png b/icons/dark/16/audio-volume-muted_normal@2x.png new file mode 100644 index 0000000..ebe59d2 Binary files /dev/null and b/icons/dark/16/audio-volume-muted_normal@2x.png differ diff --git a/icons/dark/16/bookmark-new.png b/icons/dark/16/bookmark-new.png deleted file mode 100644 index 26faefd..0000000 Binary files a/icons/dark/16/bookmark-new.png and /dev/null differ diff --git a/icons/dark/16/bookmark-new@2x.png b/icons/dark/16/bookmark-new@2x.png deleted file mode 100644 index 7bc2637..0000000 Binary files a/icons/dark/16/bookmark-new@2x.png and /dev/null differ diff --git a/icons/dark/16/bookmark-new_active.png b/icons/dark/16/bookmark-new_active.png index fa7214b..e5476c4 100644 Binary files a/icons/dark/16/bookmark-new_active.png and b/icons/dark/16/bookmark-new_active.png differ diff --git a/icons/dark/16/bookmark-new_active@2x.png b/icons/dark/16/bookmark-new_active@2x.png index 5283ece..6e4f020 100644 Binary files a/icons/dark/16/bookmark-new_active@2x.png and b/icons/dark/16/bookmark-new_active@2x.png differ diff --git a/icons/dark/16/bookmark-new_disabled.png b/icons/dark/16/bookmark-new_disabled.png new file mode 100644 index 0000000..9926178 Binary files /dev/null and b/icons/dark/16/bookmark-new_disabled.png differ diff --git a/icons/dark/16/bookmark-new_disabled@2x.png b/icons/dark/16/bookmark-new_disabled@2x.png new file mode 100644 index 0000000..942e566 Binary files /dev/null and b/icons/dark/16/bookmark-new_disabled@2x.png differ diff --git a/icons/dark/16/bookmark-new_normal.png b/icons/dark/16/bookmark-new_normal.png new file mode 100644 index 0000000..a591343 Binary files /dev/null and b/icons/dark/16/bookmark-new_normal.png differ diff --git a/icons/dark/16/bookmark-new_normal@2x.png b/icons/dark/16/bookmark-new_normal@2x.png new file mode 100644 index 0000000..7da0003 Binary files /dev/null and b/icons/dark/16/bookmark-new_normal@2x.png differ diff --git a/icons/dark/16/bookmark-remove.png b/icons/dark/16/bookmark-remove.png deleted file mode 100644 index f98a670..0000000 Binary files a/icons/dark/16/bookmark-remove.png and /dev/null differ diff --git a/icons/dark/16/bookmark-remove@2x.png b/icons/dark/16/bookmark-remove@2x.png deleted file mode 100644 index 5650d28..0000000 Binary files a/icons/dark/16/bookmark-remove@2x.png and /dev/null differ diff --git a/icons/dark/16/bookmark-remove_active.png b/icons/dark/16/bookmark-remove_active.png new file mode 100644 index 0000000..7e72cbd Binary files /dev/null and b/icons/dark/16/bookmark-remove_active.png differ diff --git a/icons/dark/16/bookmark-remove_active@2x.png b/icons/dark/16/bookmark-remove_active@2x.png new file mode 100644 index 0000000..b3ae637 Binary files /dev/null and b/icons/dark/16/bookmark-remove_active@2x.png differ diff --git a/icons/dark/16/bookmark-remove_disabled.png b/icons/dark/16/bookmark-remove_disabled.png new file mode 100644 index 0000000..7e72cbd Binary files /dev/null and b/icons/dark/16/bookmark-remove_disabled.png differ diff --git a/icons/dark/16/bookmark-remove_disabled@2x.png b/icons/dark/16/bookmark-remove_disabled@2x.png new file mode 100644 index 0000000..b3ae637 Binary files /dev/null and b/icons/dark/16/bookmark-remove_disabled@2x.png differ diff --git a/icons/dark/16/bookmark-remove_normal.png b/icons/dark/16/bookmark-remove_normal.png new file mode 100644 index 0000000..7e72cbd Binary files /dev/null and b/icons/dark/16/bookmark-remove_normal.png differ diff --git a/icons/dark/16/bookmark-remove_normal@2x.png b/icons/dark/16/bookmark-remove_normal@2x.png new file mode 100644 index 0000000..b3ae637 Binary files /dev/null and b/icons/dark/16/bookmark-remove_normal@2x.png differ diff --git a/icons/dark/16/close_active.png b/icons/dark/16/close_active.png new file mode 100644 index 0000000..1a2ab7e Binary files /dev/null and b/icons/dark/16/close_active.png differ diff --git a/icons/dark/16/close_active@2x.png b/icons/dark/16/close_active@2x.png new file mode 100644 index 0000000..f9429db Binary files /dev/null and b/icons/dark/16/close_active@2x.png differ diff --git a/icons/dark/16/close_disabled.png b/icons/dark/16/close_disabled.png new file mode 100644 index 0000000..e569b22 Binary files /dev/null and b/icons/dark/16/close_disabled.png differ diff --git a/icons/dark/16/close_disabled@2x.png b/icons/dark/16/close_disabled@2x.png new file mode 100644 index 0000000..94497e9 Binary files /dev/null and b/icons/dark/16/close_disabled@2x.png differ diff --git a/icons/dark/16/close_normal.png b/icons/dark/16/close_normal.png new file mode 100644 index 0000000..8e0c9d4 Binary files /dev/null and b/icons/dark/16/close_normal.png differ diff --git a/icons/dark/16/close_normal@2x.png b/icons/dark/16/close_normal@2x.png new file mode 100644 index 0000000..7502281 Binary files /dev/null and b/icons/dark/16/close_normal@2x.png differ diff --git a/icons/dark/16/edit-find.png b/icons/dark/16/edit-find.png deleted file mode 100644 index 84a5f7a..0000000 Binary files a/icons/dark/16/edit-find.png and /dev/null differ diff --git a/icons/dark/16/edit-find@2x.png b/icons/dark/16/edit-find@2x.png deleted file mode 100644 index 0300a6a..0000000 Binary files a/icons/dark/16/edit-find@2x.png and /dev/null differ diff --git a/icons/dark/16/edit-find_active.png b/icons/dark/16/edit-find_active.png new file mode 100644 index 0000000..4d4f206 Binary files /dev/null and b/icons/dark/16/edit-find_active.png differ diff --git a/icons/dark/16/edit-find_active@2x.png b/icons/dark/16/edit-find_active@2x.png new file mode 100644 index 0000000..45eb764 Binary files /dev/null and b/icons/dark/16/edit-find_active@2x.png differ diff --git a/icons/dark/16/edit-find_disabled.png b/icons/dark/16/edit-find_disabled.png new file mode 100644 index 0000000..45fc03c Binary files /dev/null and b/icons/dark/16/edit-find_disabled.png differ diff --git a/icons/dark/16/edit-find_disabled@2x.png b/icons/dark/16/edit-find_disabled@2x.png new file mode 100644 index 0000000..6d81855 Binary files /dev/null and b/icons/dark/16/edit-find_disabled@2x.png differ diff --git a/icons/dark/16/edit-find_normal.png b/icons/dark/16/edit-find_normal.png new file mode 100644 index 0000000..f7ad55f Binary files /dev/null and b/icons/dark/16/edit-find_normal.png differ diff --git a/icons/dark/16/edit-find_normal@2x.png b/icons/dark/16/edit-find_normal@2x.png new file mode 100644 index 0000000..1487c05 Binary files /dev/null and b/icons/dark/16/edit-find_normal@2x.png differ diff --git a/icons/dark/16/email.png b/icons/dark/16/email.png deleted file mode 100644 index 90f9cb2..0000000 Binary files a/icons/dark/16/email.png and /dev/null differ diff --git a/icons/dark/16/email@2x.png b/icons/dark/16/email@2x.png deleted file mode 100644 index d7520a4..0000000 Binary files a/icons/dark/16/email@2x.png and /dev/null differ diff --git a/icons/dark/16/email_active.png b/icons/dark/16/email_active.png new file mode 100644 index 0000000..5873d78 Binary files /dev/null and b/icons/dark/16/email_active.png differ diff --git a/icons/dark/16/email_active@2x.png b/icons/dark/16/email_active@2x.png new file mode 100644 index 0000000..7ce493f Binary files /dev/null and b/icons/dark/16/email_active@2x.png differ diff --git a/icons/dark/16/email_disabled.png b/icons/dark/16/email_disabled.png new file mode 100644 index 0000000..71d4a53 Binary files /dev/null and b/icons/dark/16/email_disabled.png differ diff --git a/icons/dark/16/email_disabled@2x.png b/icons/dark/16/email_disabled@2x.png new file mode 100644 index 0000000..2b52cc7 Binary files /dev/null and b/icons/dark/16/email_disabled@2x.png differ diff --git a/icons/dark/16/email_normal.png b/icons/dark/16/email_normal.png new file mode 100644 index 0000000..04d2047 Binary files /dev/null and b/icons/dark/16/email_normal.png differ diff --git a/icons/dark/16/email_normal@2x.png b/icons/dark/16/email_normal@2x.png new file mode 100644 index 0000000..80e4af0 Binary files /dev/null and b/icons/dark/16/email_normal@2x.png differ diff --git a/icons/dark/16/facebook.png b/icons/dark/16/facebook.png deleted file mode 100644 index 6e70bdd..0000000 Binary files a/icons/dark/16/facebook.png and /dev/null differ diff --git a/icons/dark/16/facebook@2x.png b/icons/dark/16/facebook@2x.png deleted file mode 100644 index 8afb6bf..0000000 Binary files a/icons/dark/16/facebook@2x.png and /dev/null differ diff --git a/icons/dark/16/facebook_active.png b/icons/dark/16/facebook_active.png new file mode 100644 index 0000000..605d11f Binary files /dev/null and b/icons/dark/16/facebook_active.png differ diff --git a/icons/dark/16/facebook_active@2x.png b/icons/dark/16/facebook_active@2x.png new file mode 100644 index 0000000..a7acb14 Binary files /dev/null and b/icons/dark/16/facebook_active@2x.png differ diff --git a/icons/dark/16/facebook_disabled.png b/icons/dark/16/facebook_disabled.png new file mode 100644 index 0000000..98736b8 Binary files /dev/null and b/icons/dark/16/facebook_disabled.png differ diff --git a/icons/dark/16/facebook_disabled@2x.png b/icons/dark/16/facebook_disabled@2x.png new file mode 100644 index 0000000..44876c0 Binary files /dev/null and b/icons/dark/16/facebook_disabled@2x.png differ diff --git a/icons/dark/16/facebook_normal.png b/icons/dark/16/facebook_normal.png new file mode 100644 index 0000000..6ec0455 Binary files /dev/null and b/icons/dark/16/facebook_normal.png differ diff --git a/icons/dark/16/facebook_normal@2x.png b/icons/dark/16/facebook_normal@2x.png new file mode 100644 index 0000000..62b69a4 Binary files /dev/null and b/icons/dark/16/facebook_normal@2x.png differ diff --git a/icons/dark/16/go-next.png b/icons/dark/16/go-next.png deleted file mode 100644 index 86786ee..0000000 Binary files a/icons/dark/16/go-next.png and /dev/null differ diff --git a/icons/dark/16/go-next@2x.png b/icons/dark/16/go-next@2x.png deleted file mode 100644 index cf3f592..0000000 Binary files a/icons/dark/16/go-next@2x.png and /dev/null differ diff --git a/icons/dark/16/go-next_active.png b/icons/dark/16/go-next_active.png new file mode 100644 index 0000000..6e3c871 Binary files /dev/null and b/icons/dark/16/go-next_active.png differ diff --git a/icons/dark/16/go-next_active@2x.png b/icons/dark/16/go-next_active@2x.png new file mode 100644 index 0000000..1064a6a Binary files /dev/null and b/icons/dark/16/go-next_active@2x.png differ diff --git a/icons/dark/16/go-next_disabled.png b/icons/dark/16/go-next_disabled.png new file mode 100644 index 0000000..9bae84a Binary files /dev/null and b/icons/dark/16/go-next_disabled.png differ diff --git a/icons/dark/16/go-next_disabled@2x.png b/icons/dark/16/go-next_disabled@2x.png new file mode 100644 index 0000000..ca2fafe Binary files /dev/null and b/icons/dark/16/go-next_disabled@2x.png differ diff --git a/icons/dark/16/go-next_normal.png b/icons/dark/16/go-next_normal.png new file mode 100644 index 0000000..c5b1c52 Binary files /dev/null and b/icons/dark/16/go-next_normal.png differ diff --git a/icons/dark/16/go-next_normal@2x.png b/icons/dark/16/go-next_normal@2x.png new file mode 100644 index 0000000..f77c9a2 Binary files /dev/null and b/icons/dark/16/go-next_normal@2x.png differ diff --git a/icons/dark/16/go-previous.png b/icons/dark/16/go-previous.png deleted file mode 100644 index f582862..0000000 Binary files a/icons/dark/16/go-previous.png and /dev/null differ diff --git a/icons/dark/16/go-previous@2x.png b/icons/dark/16/go-previous@2x.png deleted file mode 100644 index 85523c8..0000000 Binary files a/icons/dark/16/go-previous@2x.png and /dev/null differ diff --git a/icons/dark/16/go-previous_active.png b/icons/dark/16/go-previous_active.png new file mode 100644 index 0000000..dfae968 Binary files /dev/null and b/icons/dark/16/go-previous_active.png differ diff --git a/icons/dark/16/go-previous_active@2x.png b/icons/dark/16/go-previous_active@2x.png new file mode 100644 index 0000000..fd6faa7 Binary files /dev/null and b/icons/dark/16/go-previous_active@2x.png differ diff --git a/icons/dark/16/go-previous_disabled.png b/icons/dark/16/go-previous_disabled.png new file mode 100644 index 0000000..5a9a597 Binary files /dev/null and b/icons/dark/16/go-previous_disabled.png differ diff --git a/icons/dark/16/go-previous_disabled@2x.png b/icons/dark/16/go-previous_disabled@2x.png new file mode 100644 index 0000000..8fcef9d Binary files /dev/null and b/icons/dark/16/go-previous_disabled@2x.png differ diff --git a/icons/dark/16/go-previous_normal.png b/icons/dark/16/go-previous_normal.png new file mode 100644 index 0000000..26a3b71 Binary files /dev/null and b/icons/dark/16/go-previous_normal.png differ diff --git a/icons/dark/16/go-previous_normal@2x.png b/icons/dark/16/go-previous_normal@2x.png new file mode 100644 index 0000000..c904df2 Binary files /dev/null and b/icons/dark/16/go-previous_normal@2x.png differ diff --git a/icons/dark/16/link.png b/icons/dark/16/link.png deleted file mode 100644 index a677e34..0000000 Binary files a/icons/dark/16/link.png and /dev/null differ diff --git a/icons/dark/16/link@2x.png b/icons/dark/16/link@2x.png deleted file mode 100644 index e32d826..0000000 Binary files a/icons/dark/16/link@2x.png and /dev/null differ diff --git a/icons/dark/16/link_active.png b/icons/dark/16/link_active.png new file mode 100644 index 0000000..e5eb2db Binary files /dev/null and b/icons/dark/16/link_active.png differ diff --git a/icons/dark/16/link_active@2x.png b/icons/dark/16/link_active@2x.png new file mode 100644 index 0000000..b306ab7 Binary files /dev/null and b/icons/dark/16/link_active@2x.png differ diff --git a/icons/dark/16/link_disabled.png b/icons/dark/16/link_disabled.png new file mode 100644 index 0000000..9907988 Binary files /dev/null and b/icons/dark/16/link_disabled.png differ diff --git a/icons/dark/16/link_disabled@2x.png b/icons/dark/16/link_disabled@2x.png new file mode 100644 index 0000000..08f443b Binary files /dev/null and b/icons/dark/16/link_disabled@2x.png differ diff --git a/icons/dark/16/link_normal.png b/icons/dark/16/link_normal.png new file mode 100644 index 0000000..fac60a7 Binary files /dev/null and b/icons/dark/16/link_normal.png differ diff --git a/icons/dark/16/link_normal@2x.png b/icons/dark/16/link_normal@2x.png new file mode 100644 index 0000000..91c718d Binary files /dev/null and b/icons/dark/16/link_normal@2x.png differ diff --git a/icons/dark/16/mark-watched.png b/icons/dark/16/mark-watched.png deleted file mode 100644 index 216f855..0000000 Binary files a/icons/dark/16/mark-watched.png and /dev/null differ diff --git a/icons/dark/16/mark-watched@2x.png b/icons/dark/16/mark-watched@2x.png deleted file mode 100644 index 9b38fe2..0000000 Binary files a/icons/dark/16/mark-watched@2x.png and /dev/null differ diff --git a/icons/dark/16/mark-watched_active.png b/icons/dark/16/mark-watched_active.png new file mode 100644 index 0000000..9c5045c Binary files /dev/null and b/icons/dark/16/mark-watched_active.png differ diff --git a/icons/dark/16/mark-watched_active@2x.png b/icons/dark/16/mark-watched_active@2x.png new file mode 100644 index 0000000..ff30e34 Binary files /dev/null and b/icons/dark/16/mark-watched_active@2x.png differ diff --git a/icons/dark/16/mark-watched_disabled.png b/icons/dark/16/mark-watched_disabled.png new file mode 100644 index 0000000..a8ec76b Binary files /dev/null and b/icons/dark/16/mark-watched_disabled.png differ diff --git a/icons/dark/16/mark-watched_disabled@2x.png b/icons/dark/16/mark-watched_disabled@2x.png new file mode 100644 index 0000000..5a43534 Binary files /dev/null and b/icons/dark/16/mark-watched_disabled@2x.png differ diff --git a/icons/dark/16/mark-watched_normal.png b/icons/dark/16/mark-watched_normal.png new file mode 100644 index 0000000..df0cecd Binary files /dev/null and b/icons/dark/16/mark-watched_normal.png differ diff --git a/icons/dark/16/mark-watched_normal@2x.png b/icons/dark/16/mark-watched_normal@2x.png new file mode 100644 index 0000000..15d83ce Binary files /dev/null and b/icons/dark/16/mark-watched_normal@2x.png differ diff --git a/icons/dark/16/media-playback-start.png b/icons/dark/16/media-playback-start.png deleted file mode 100644 index 0d1dd2a..0000000 Binary files a/icons/dark/16/media-playback-start.png and /dev/null differ diff --git a/icons/dark/16/media-playback-start@2x.png b/icons/dark/16/media-playback-start@2x.png deleted file mode 100644 index 5a8ee8e..0000000 Binary files a/icons/dark/16/media-playback-start@2x.png and /dev/null differ diff --git a/icons/dark/16/media-playback-start_active.png b/icons/dark/16/media-playback-start_active.png new file mode 100644 index 0000000..3bd3ffb Binary files /dev/null and b/icons/dark/16/media-playback-start_active.png differ diff --git a/icons/dark/16/media-playback-start_active@2x.png b/icons/dark/16/media-playback-start_active@2x.png new file mode 100644 index 0000000..134ef70 Binary files /dev/null and b/icons/dark/16/media-playback-start_active@2x.png differ diff --git a/icons/dark/16/media-playback-start_checked.png b/icons/dark/16/media-playback-start_checked.png deleted file mode 100644 index 0d1dd2a..0000000 Binary files a/icons/dark/16/media-playback-start_checked.png and /dev/null differ diff --git a/icons/dark/16/media-playback-start_checked@2x.png b/icons/dark/16/media-playback-start_checked@2x.png deleted file mode 100644 index 5a8ee8e..0000000 Binary files a/icons/dark/16/media-playback-start_checked@2x.png and /dev/null differ diff --git a/icons/dark/16/media-playback-start_disabled.png b/icons/dark/16/media-playback-start_disabled.png new file mode 100644 index 0000000..b8ed59b Binary files /dev/null and b/icons/dark/16/media-playback-start_disabled.png differ diff --git a/icons/dark/16/media-playback-start_disabled@2x.png b/icons/dark/16/media-playback-start_disabled@2x.png new file mode 100644 index 0000000..0f20873 Binary files /dev/null and b/icons/dark/16/media-playback-start_disabled@2x.png differ diff --git a/icons/dark/16/media-playback-start_normal.png b/icons/dark/16/media-playback-start_normal.png new file mode 100644 index 0000000..e7870d5 Binary files /dev/null and b/icons/dark/16/media-playback-start_normal.png differ diff --git a/icons/dark/16/media-playback-start_normal@2x.png b/icons/dark/16/media-playback-start_normal@2x.png new file mode 100644 index 0000000..1a4d27c Binary files /dev/null and b/icons/dark/16/media-playback-start_normal@2x.png differ diff --git a/icons/dark/16/safesearch.png b/icons/dark/16/safesearch.png deleted file mode 100644 index a359701..0000000 Binary files a/icons/dark/16/safesearch.png and /dev/null differ diff --git a/icons/dark/16/safesearch@2x.png b/icons/dark/16/safesearch@2x.png deleted file mode 100644 index 0e2257f..0000000 Binary files a/icons/dark/16/safesearch@2x.png and /dev/null differ diff --git a/icons/dark/16/safesearch_active.png b/icons/dark/16/safesearch_active.png new file mode 100644 index 0000000..1f91928 Binary files /dev/null and b/icons/dark/16/safesearch_active.png differ diff --git a/icons/dark/16/safesearch_active@2x.png b/icons/dark/16/safesearch_active@2x.png new file mode 100644 index 0000000..0ff9ea3 Binary files /dev/null and b/icons/dark/16/safesearch_active@2x.png differ diff --git a/icons/dark/16/safesearch_disabled.png b/icons/dark/16/safesearch_disabled.png new file mode 100644 index 0000000..2ddb994 Binary files /dev/null and b/icons/dark/16/safesearch_disabled.png differ diff --git a/icons/dark/16/safesearch_disabled@2x.png b/icons/dark/16/safesearch_disabled@2x.png new file mode 100644 index 0000000..6b0f4b9 Binary files /dev/null and b/icons/dark/16/safesearch_disabled@2x.png differ diff --git a/icons/dark/16/safesearch_normal.png b/icons/dark/16/safesearch_normal.png new file mode 100644 index 0000000..0d1faf7 Binary files /dev/null and b/icons/dark/16/safesearch_normal.png differ diff --git a/icons/dark/16/safesearch_normal@2x.png b/icons/dark/16/safesearch_normal@2x.png new file mode 100644 index 0000000..30da50d Binary files /dev/null and b/icons/dark/16/safesearch_normal@2x.png differ diff --git a/icons/dark/16/search-duration.png b/icons/dark/16/search-duration.png deleted file mode 100644 index 9ec10d2..0000000 Binary files a/icons/dark/16/search-duration.png and /dev/null differ diff --git a/icons/dark/16/search-duration@2x.png b/icons/dark/16/search-duration@2x.png deleted file mode 100644 index 21cb874..0000000 Binary files a/icons/dark/16/search-duration@2x.png and /dev/null differ diff --git a/icons/dark/16/search-duration_active.png b/icons/dark/16/search-duration_active.png new file mode 100644 index 0000000..a1d9372 Binary files /dev/null and b/icons/dark/16/search-duration_active.png differ diff --git a/icons/dark/16/search-duration_active@2x.png b/icons/dark/16/search-duration_active@2x.png new file mode 100644 index 0000000..4a38e7e Binary files /dev/null and b/icons/dark/16/search-duration_active@2x.png differ diff --git a/icons/dark/16/search-duration_disabled.png b/icons/dark/16/search-duration_disabled.png new file mode 100644 index 0000000..a1d9372 Binary files /dev/null and b/icons/dark/16/search-duration_disabled.png differ diff --git a/icons/dark/16/search-duration_disabled@2x.png b/icons/dark/16/search-duration_disabled@2x.png new file mode 100644 index 0000000..4a38e7e Binary files /dev/null and b/icons/dark/16/search-duration_disabled@2x.png differ diff --git a/icons/dark/16/search-duration_normal.png b/icons/dark/16/search-duration_normal.png new file mode 100644 index 0000000..a1d9372 Binary files /dev/null and b/icons/dark/16/search-duration_normal.png differ diff --git a/icons/dark/16/search-duration_normal@2x.png b/icons/dark/16/search-duration_normal@2x.png new file mode 100644 index 0000000..4a38e7e Binary files /dev/null and b/icons/dark/16/search-duration_normal@2x.png differ diff --git a/icons/dark/16/search-quality.png b/icons/dark/16/search-quality.png deleted file mode 100644 index a602e45..0000000 Binary files a/icons/dark/16/search-quality.png and /dev/null differ diff --git a/icons/dark/16/search-quality@2x.png b/icons/dark/16/search-quality@2x.png deleted file mode 100644 index db43613..0000000 Binary files a/icons/dark/16/search-quality@2x.png and /dev/null differ diff --git a/icons/dark/16/search-quality_active.png b/icons/dark/16/search-quality_active.png new file mode 100644 index 0000000..0a518d6 Binary files /dev/null and b/icons/dark/16/search-quality_active.png differ diff --git a/icons/dark/16/search-quality_active@2x.png b/icons/dark/16/search-quality_active@2x.png new file mode 100644 index 0000000..e16e218 Binary files /dev/null and b/icons/dark/16/search-quality_active@2x.png differ diff --git a/icons/dark/16/search-quality_disabled.png b/icons/dark/16/search-quality_disabled.png new file mode 100644 index 0000000..a425cf9 Binary files /dev/null and b/icons/dark/16/search-quality_disabled.png differ diff --git a/icons/dark/16/search-quality_disabled@2x.png b/icons/dark/16/search-quality_disabled@2x.png new file mode 100644 index 0000000..a6f990a Binary files /dev/null and b/icons/dark/16/search-quality_disabled@2x.png differ diff --git a/icons/dark/16/search-quality_normal.png b/icons/dark/16/search-quality_normal.png new file mode 100644 index 0000000..a64fec5 Binary files /dev/null and b/icons/dark/16/search-quality_normal.png differ diff --git a/icons/dark/16/search-quality_normal@2x.png b/icons/dark/16/search-quality_normal@2x.png new file mode 100644 index 0000000..cb1d20c Binary files /dev/null and b/icons/dark/16/search-quality_normal@2x.png differ diff --git a/icons/dark/16/search-sortBy.png b/icons/dark/16/search-sortBy.png deleted file mode 100644 index 55f6c58..0000000 Binary files a/icons/dark/16/search-sortBy.png and /dev/null differ diff --git a/icons/dark/16/search-sortBy@2x.png b/icons/dark/16/search-sortBy@2x.png deleted file mode 100644 index 7e6acdd..0000000 Binary files a/icons/dark/16/search-sortBy@2x.png and /dev/null differ diff --git a/icons/dark/16/search-sortBy_active.png b/icons/dark/16/search-sortBy_active.png new file mode 100644 index 0000000..ac85275 Binary files /dev/null and b/icons/dark/16/search-sortBy_active.png differ diff --git a/icons/dark/16/search-sortBy_active@2x.png b/icons/dark/16/search-sortBy_active@2x.png new file mode 100644 index 0000000..3b15b66 Binary files /dev/null and b/icons/dark/16/search-sortBy_active@2x.png differ diff --git a/icons/dark/16/search-sortBy_disabled.png b/icons/dark/16/search-sortBy_disabled.png new file mode 100644 index 0000000..d9c0646 Binary files /dev/null and b/icons/dark/16/search-sortBy_disabled.png differ diff --git a/icons/dark/16/search-sortBy_disabled@2x.png b/icons/dark/16/search-sortBy_disabled@2x.png new file mode 100644 index 0000000..1f3d1e1 Binary files /dev/null and b/icons/dark/16/search-sortBy_disabled@2x.png differ diff --git a/icons/dark/16/search-sortBy_normal.png b/icons/dark/16/search-sortBy_normal.png new file mode 100644 index 0000000..2313a94 Binary files /dev/null and b/icons/dark/16/search-sortBy_normal.png differ diff --git a/icons/dark/16/search-sortBy_normal@2x.png b/icons/dark/16/search-sortBy_normal@2x.png new file mode 100644 index 0000000..d76e1bb Binary files /dev/null and b/icons/dark/16/search-sortBy_normal@2x.png differ diff --git a/icons/dark/16/search-time.png b/icons/dark/16/search-time.png deleted file mode 100644 index b1cd0c3..0000000 Binary files a/icons/dark/16/search-time.png and /dev/null differ diff --git a/icons/dark/16/search-time@2x.png b/icons/dark/16/search-time@2x.png deleted file mode 100644 index 6b3f928..0000000 Binary files a/icons/dark/16/search-time@2x.png and /dev/null differ diff --git a/icons/dark/16/search-time_active.png b/icons/dark/16/search-time_active.png new file mode 100644 index 0000000..4196de9 Binary files /dev/null and b/icons/dark/16/search-time_active.png differ diff --git a/icons/dark/16/search-time_active@2x.png b/icons/dark/16/search-time_active@2x.png new file mode 100644 index 0000000..417dd9b Binary files /dev/null and b/icons/dark/16/search-time_active@2x.png differ diff --git a/icons/dark/16/search-time_disabled.png b/icons/dark/16/search-time_disabled.png new file mode 100644 index 0000000..59f9bc9 Binary files /dev/null and b/icons/dark/16/search-time_disabled.png differ diff --git a/icons/dark/16/search-time_disabled@2x.png b/icons/dark/16/search-time_disabled@2x.png new file mode 100644 index 0000000..7b388ef Binary files /dev/null and b/icons/dark/16/search-time_disabled@2x.png differ diff --git a/icons/dark/16/search-time_normal.png b/icons/dark/16/search-time_normal.png new file mode 100644 index 0000000..e98b7d5 Binary files /dev/null and b/icons/dark/16/search-time_normal.png differ diff --git a/icons/dark/16/search-time_normal@2x.png b/icons/dark/16/search-time_normal@2x.png new file mode 100644 index 0000000..0a1b0c6 Binary files /dev/null and b/icons/dark/16/search-time_normal@2x.png differ diff --git a/icons/dark/16/show-updated.png b/icons/dark/16/show-updated.png deleted file mode 100644 index f9b36c3..0000000 Binary files a/icons/dark/16/show-updated.png and /dev/null differ diff --git a/icons/dark/16/show-updated@2x.png b/icons/dark/16/show-updated@2x.png deleted file mode 100644 index c793b96..0000000 Binary files a/icons/dark/16/show-updated@2x.png and /dev/null differ diff --git a/icons/dark/16/show-updated_active.png b/icons/dark/16/show-updated_active.png new file mode 100644 index 0000000..8b8fb39 Binary files /dev/null and b/icons/dark/16/show-updated_active.png differ diff --git a/icons/dark/16/show-updated_active@2x.png b/icons/dark/16/show-updated_active@2x.png new file mode 100644 index 0000000..c33adae Binary files /dev/null and b/icons/dark/16/show-updated_active@2x.png differ diff --git a/icons/dark/16/show-updated_disabled.png b/icons/dark/16/show-updated_disabled.png new file mode 100644 index 0000000..8b8fb39 Binary files /dev/null and b/icons/dark/16/show-updated_disabled.png differ diff --git a/icons/dark/16/show-updated_disabled@2x.png b/icons/dark/16/show-updated_disabled@2x.png new file mode 100644 index 0000000..c33adae Binary files /dev/null and b/icons/dark/16/show-updated_disabled@2x.png differ diff --git a/icons/dark/16/show-updated_normal.png b/icons/dark/16/show-updated_normal.png new file mode 100644 index 0000000..8b8fb39 Binary files /dev/null and b/icons/dark/16/show-updated_normal.png differ diff --git a/icons/dark/16/show-updated_normal@2x.png b/icons/dark/16/show-updated_normal@2x.png new file mode 100644 index 0000000..c33adae Binary files /dev/null and b/icons/dark/16/show-updated_normal@2x.png differ diff --git a/icons/dark/16/sofa_active.png b/icons/dark/16/sofa_active.png new file mode 100644 index 0000000..25ba02b Binary files /dev/null and b/icons/dark/16/sofa_active.png differ diff --git a/icons/dark/16/sofa_active@2x.png b/icons/dark/16/sofa_active@2x.png new file mode 100644 index 0000000..d5e0f8a Binary files /dev/null and b/icons/dark/16/sofa_active@2x.png differ diff --git a/icons/dark/16/sofa_disabled.png b/icons/dark/16/sofa_disabled.png new file mode 100644 index 0000000..25ba02b Binary files /dev/null and b/icons/dark/16/sofa_disabled.png differ diff --git a/icons/dark/16/sofa_disabled@2x.png b/icons/dark/16/sofa_disabled@2x.png new file mode 100644 index 0000000..d5e0f8a Binary files /dev/null and b/icons/dark/16/sofa_disabled@2x.png differ diff --git a/icons/dark/16/sofa_normal.png b/icons/dark/16/sofa_normal.png new file mode 100644 index 0000000..25ba02b Binary files /dev/null and b/icons/dark/16/sofa_normal.png differ diff --git a/icons/dark/16/sofa_normal@2x.png b/icons/dark/16/sofa_normal@2x.png new file mode 100644 index 0000000..d5e0f8a Binary files /dev/null and b/icons/dark/16/sofa_normal@2x.png differ diff --git a/icons/dark/16/sort.png b/icons/dark/16/sort.png deleted file mode 100644 index 3b47e71..0000000 Binary files a/icons/dark/16/sort.png and /dev/null differ diff --git a/icons/dark/16/sort@2x.png b/icons/dark/16/sort@2x.png deleted file mode 100644 index 0152e7b..0000000 Binary files a/icons/dark/16/sort@2x.png and /dev/null differ diff --git a/icons/dark/16/sort_active.png b/icons/dark/16/sort_active.png new file mode 100644 index 0000000..794a97f Binary files /dev/null and b/icons/dark/16/sort_active.png differ diff --git a/icons/dark/16/sort_active@2x.png b/icons/dark/16/sort_active@2x.png new file mode 100644 index 0000000..58a9e16 Binary files /dev/null and b/icons/dark/16/sort_active@2x.png differ diff --git a/icons/dark/16/sort_disabled.png b/icons/dark/16/sort_disabled.png new file mode 100644 index 0000000..21aab58 Binary files /dev/null and b/icons/dark/16/sort_disabled.png differ diff --git a/icons/dark/16/sort_disabled@2x.png b/icons/dark/16/sort_disabled@2x.png new file mode 100644 index 0000000..8442c30 Binary files /dev/null and b/icons/dark/16/sort_disabled@2x.png differ diff --git a/icons/dark/16/sort_normal.png b/icons/dark/16/sort_normal.png new file mode 100644 index 0000000..c956197 Binary files /dev/null and b/icons/dark/16/sort_normal.png differ diff --git a/icons/dark/16/sort_normal@2x.png b/icons/dark/16/sort_normal@2x.png new file mode 100644 index 0000000..4ef37c5 Binary files /dev/null and b/icons/dark/16/sort_normal@2x.png differ diff --git a/icons/dark/16/twitter.png b/icons/dark/16/twitter.png deleted file mode 100644 index f789e61..0000000 Binary files a/icons/dark/16/twitter.png and /dev/null differ diff --git a/icons/dark/16/twitter@2x.png b/icons/dark/16/twitter@2x.png deleted file mode 100644 index 8267aae..0000000 Binary files a/icons/dark/16/twitter@2x.png and /dev/null differ diff --git a/icons/dark/16/twitter_active.png b/icons/dark/16/twitter_active.png new file mode 100644 index 0000000..72966c1 Binary files /dev/null and b/icons/dark/16/twitter_active.png differ diff --git a/icons/dark/16/twitter_active@2x.png b/icons/dark/16/twitter_active@2x.png new file mode 100644 index 0000000..9701dda Binary files /dev/null and b/icons/dark/16/twitter_active@2x.png differ diff --git a/icons/dark/16/twitter_disabled.png b/icons/dark/16/twitter_disabled.png new file mode 100644 index 0000000..ad651de Binary files /dev/null and b/icons/dark/16/twitter_disabled.png differ diff --git a/icons/dark/16/twitter_disabled@2x.png b/icons/dark/16/twitter_disabled@2x.png new file mode 100644 index 0000000..8cee291 Binary files /dev/null and b/icons/dark/16/twitter_disabled@2x.png differ diff --git a/icons/dark/16/twitter_normal.png b/icons/dark/16/twitter_normal.png new file mode 100644 index 0000000..977cd47 Binary files /dev/null and b/icons/dark/16/twitter_normal.png differ diff --git a/icons/dark/16/twitter_normal@2x.png b/icons/dark/16/twitter_normal@2x.png new file mode 100644 index 0000000..b8f0fe3 Binary files /dev/null and b/icons/dark/16/twitter_normal@2x.png differ diff --git a/icons/dark/16/unwatched.png b/icons/dark/16/unwatched.png deleted file mode 100644 index 6195ece..0000000 Binary files a/icons/dark/16/unwatched.png and /dev/null differ diff --git a/icons/dark/16/unwatched@2x.png b/icons/dark/16/unwatched@2x.png deleted file mode 100644 index 7768f24..0000000 Binary files a/icons/dark/16/unwatched@2x.png and /dev/null differ diff --git a/icons/dark/16/unwatched_active.png b/icons/dark/16/unwatched_active.png new file mode 100644 index 0000000..fabf4de Binary files /dev/null and b/icons/dark/16/unwatched_active.png differ diff --git a/icons/dark/16/unwatched_active@2x.png b/icons/dark/16/unwatched_active@2x.png new file mode 100644 index 0000000..223eb2f Binary files /dev/null and b/icons/dark/16/unwatched_active@2x.png differ diff --git a/icons/dark/16/unwatched_disabled.png b/icons/dark/16/unwatched_disabled.png new file mode 100644 index 0000000..1d49bb4 Binary files /dev/null and b/icons/dark/16/unwatched_disabled.png differ diff --git a/icons/dark/16/unwatched_disabled@2x.png b/icons/dark/16/unwatched_disabled@2x.png new file mode 100644 index 0000000..a436793 Binary files /dev/null and b/icons/dark/16/unwatched_disabled@2x.png differ diff --git a/icons/dark/16/unwatched_normal.png b/icons/dark/16/unwatched_normal.png new file mode 100644 index 0000000..3bccd8d Binary files /dev/null and b/icons/dark/16/unwatched_normal.png differ diff --git a/icons/dark/16/unwatched_normal@2x.png b/icons/dark/16/unwatched_normal@2x.png new file mode 100644 index 0000000..d3221eb Binary files /dev/null and b/icons/dark/16/unwatched_normal@2x.png differ diff --git a/icons/dark/16/video-display.png b/icons/dark/16/video-display.png deleted file mode 100644 index ea291f2..0000000 Binary files a/icons/dark/16/video-display.png and /dev/null differ diff --git a/icons/dark/16/video-display@2x.png b/icons/dark/16/video-display@2x.png deleted file mode 100644 index 2b6dd36..0000000 Binary files a/icons/dark/16/video-display@2x.png and /dev/null differ diff --git a/icons/dark/16/video-display_active.png b/icons/dark/16/video-display_active.png new file mode 100644 index 0000000..3ec8470 Binary files /dev/null and b/icons/dark/16/video-display_active.png differ diff --git a/icons/dark/16/video-display_active@2x.png b/icons/dark/16/video-display_active@2x.png new file mode 100644 index 0000000..3a3cc5d Binary files /dev/null and b/icons/dark/16/video-display_active@2x.png differ diff --git a/icons/dark/16/video-display_disabled.png b/icons/dark/16/video-display_disabled.png new file mode 100644 index 0000000..2a35461 Binary files /dev/null and b/icons/dark/16/video-display_disabled.png differ diff --git a/icons/dark/16/video-display_disabled@2x.png b/icons/dark/16/video-display_disabled@2x.png new file mode 100644 index 0000000..aec77c5 Binary files /dev/null and b/icons/dark/16/video-display_disabled@2x.png differ diff --git a/icons/dark/16/video-display_normal.png b/icons/dark/16/video-display_normal.png new file mode 100644 index 0000000..c07e45c Binary files /dev/null and b/icons/dark/16/video-display_normal.png differ diff --git a/icons/dark/16/video-display_normal@2x.png b/icons/dark/16/video-display_normal@2x.png new file mode 100644 index 0000000..a9666cb Binary files /dev/null and b/icons/dark/16/video-display_normal@2x.png differ diff --git a/icons/dark/16/worldwide.png b/icons/dark/16/worldwide.png deleted file mode 100644 index cdd59e6..0000000 Binary files a/icons/dark/16/worldwide.png and /dev/null differ diff --git a/icons/dark/16/worldwide@2x.png b/icons/dark/16/worldwide@2x.png deleted file mode 100644 index e8b632f..0000000 Binary files a/icons/dark/16/worldwide@2x.png and /dev/null differ diff --git a/icons/dark/16/worldwide_active.png b/icons/dark/16/worldwide_active.png new file mode 100644 index 0000000..8e8b147 Binary files /dev/null and b/icons/dark/16/worldwide_active.png differ diff --git a/icons/dark/16/worldwide_active@2x.png b/icons/dark/16/worldwide_active@2x.png new file mode 100644 index 0000000..b1c5930 Binary files /dev/null and b/icons/dark/16/worldwide_active@2x.png differ diff --git a/icons/dark/16/worldwide_disabled.png b/icons/dark/16/worldwide_disabled.png new file mode 100644 index 0000000..8fa121c Binary files /dev/null and b/icons/dark/16/worldwide_disabled.png differ diff --git a/icons/dark/16/worldwide_disabled@2x.png b/icons/dark/16/worldwide_disabled@2x.png new file mode 100644 index 0000000..43c7028 Binary files /dev/null and b/icons/dark/16/worldwide_disabled@2x.png differ diff --git a/icons/dark/16/worldwide_normal.png b/icons/dark/16/worldwide_normal.png new file mode 100644 index 0000000..e4c49c3 Binary files /dev/null and b/icons/dark/16/worldwide_normal.png differ diff --git a/icons/dark/16/worldwide_normal@2x.png b/icons/dark/16/worldwide_normal@2x.png new file mode 100644 index 0000000..3a18703 Binary files /dev/null and b/icons/dark/16/worldwide_normal@2x.png differ diff --git a/icons/dark/24/content-loading_active.png b/icons/dark/24/content-loading_active.png new file mode 100644 index 0000000..7600969 Binary files /dev/null and b/icons/dark/24/content-loading_active.png differ diff --git a/icons/dark/24/content-loading_active@2x.png b/icons/dark/24/content-loading_active@2x.png new file mode 100644 index 0000000..3ecf0f9 Binary files /dev/null and b/icons/dark/24/content-loading_active@2x.png differ diff --git a/icons/dark/24/content-loading_disabled.png b/icons/dark/24/content-loading_disabled.png new file mode 100644 index 0000000..cc4dba8 Binary files /dev/null and b/icons/dark/24/content-loading_disabled.png differ diff --git a/icons/dark/24/content-loading_disabled@2x.png b/icons/dark/24/content-loading_disabled@2x.png new file mode 100644 index 0000000..b9387e0 Binary files /dev/null and b/icons/dark/24/content-loading_disabled@2x.png differ diff --git a/icons/dark/24/content-loading_normal.png b/icons/dark/24/content-loading_normal.png new file mode 100644 index 0000000..92797ec Binary files /dev/null and b/icons/dark/24/content-loading_normal.png differ diff --git a/icons/dark/24/content-loading_normal@2x.png b/icons/dark/24/content-loading_normal@2x.png new file mode 100644 index 0000000..72cc4fd Binary files /dev/null and b/icons/dark/24/content-loading_normal@2x.png differ diff --git a/icons/dark/24/document-save_active.png b/icons/dark/24/document-save_active.png new file mode 100644 index 0000000..4312e79 Binary files /dev/null and b/icons/dark/24/document-save_active.png differ diff --git a/icons/dark/24/document-save_active@2x.png b/icons/dark/24/document-save_active@2x.png new file mode 100644 index 0000000..54f9aab Binary files /dev/null and b/icons/dark/24/document-save_active@2x.png differ diff --git a/icons/dark/24/document-save_disabled.png b/icons/dark/24/document-save_disabled.png new file mode 100644 index 0000000..abf9c7d Binary files /dev/null and b/icons/dark/24/document-save_disabled.png differ diff --git a/icons/dark/24/document-save_disabled@2x.png b/icons/dark/24/document-save_disabled@2x.png new file mode 100644 index 0000000..8f1aa4e Binary files /dev/null and b/icons/dark/24/document-save_disabled@2x.png differ diff --git a/icons/dark/24/document-save_normal.png b/icons/dark/24/document-save_normal.png new file mode 100644 index 0000000..8db9aa5 Binary files /dev/null and b/icons/dark/24/document-save_normal.png differ diff --git a/icons/dark/24/document-save_normal@2x.png b/icons/dark/24/document-save_normal@2x.png new file mode 100644 index 0000000..5feaf82 Binary files /dev/null and b/icons/dark/24/document-save_normal@2x.png differ diff --git a/icons/dark/24/edit-find.png b/icons/dark/24/edit-find.png deleted file mode 100644 index ac08a42..0000000 Binary files a/icons/dark/24/edit-find.png and /dev/null differ diff --git a/icons/dark/24/edit-find@2x.png b/icons/dark/24/edit-find@2x.png deleted file mode 100644 index 8bb8bfd..0000000 Binary files a/icons/dark/24/edit-find@2x.png and /dev/null differ diff --git a/icons/dark/24/edit-find_active.png b/icons/dark/24/edit-find_active.png new file mode 100644 index 0000000..1c022fa Binary files /dev/null and b/icons/dark/24/edit-find_active.png differ diff --git a/icons/dark/24/edit-find_active@2x.png b/icons/dark/24/edit-find_active@2x.png new file mode 100644 index 0000000..f0d9386 Binary files /dev/null and b/icons/dark/24/edit-find_active@2x.png differ diff --git a/icons/dark/24/edit-find_disabled.png b/icons/dark/24/edit-find_disabled.png new file mode 100644 index 0000000..cc224be Binary files /dev/null and b/icons/dark/24/edit-find_disabled.png differ diff --git a/icons/dark/24/edit-find_disabled@2x.png b/icons/dark/24/edit-find_disabled@2x.png new file mode 100644 index 0000000..e6390ab Binary files /dev/null and b/icons/dark/24/edit-find_disabled@2x.png differ diff --git a/icons/dark/24/edit-find_normal.png b/icons/dark/24/edit-find_normal.png new file mode 100644 index 0000000..275bbf4 Binary files /dev/null and b/icons/dark/24/edit-find_normal.png differ diff --git a/icons/dark/24/edit-find_normal@2x.png b/icons/dark/24/edit-find_normal@2x.png new file mode 100644 index 0000000..958f602 Binary files /dev/null and b/icons/dark/24/edit-find_normal@2x.png differ diff --git a/icons/dark/24/media-playback-pause_active.png b/icons/dark/24/media-playback-pause_active.png new file mode 100644 index 0000000..a437f39 Binary files /dev/null and b/icons/dark/24/media-playback-pause_active.png differ diff --git a/icons/dark/24/media-playback-pause_active@2x.png b/icons/dark/24/media-playback-pause_active@2x.png new file mode 100644 index 0000000..451326a Binary files /dev/null and b/icons/dark/24/media-playback-pause_active@2x.png differ diff --git a/icons/dark/24/media-playback-pause_disabled.png b/icons/dark/24/media-playback-pause_disabled.png new file mode 100644 index 0000000..76c4c1c Binary files /dev/null and b/icons/dark/24/media-playback-pause_disabled.png differ diff --git a/icons/dark/24/media-playback-pause_disabled@2x.png b/icons/dark/24/media-playback-pause_disabled@2x.png new file mode 100644 index 0000000..2679d3e Binary files /dev/null and b/icons/dark/24/media-playback-pause_disabled@2x.png differ diff --git a/icons/dark/24/media-playback-pause_normal.png b/icons/dark/24/media-playback-pause_normal.png new file mode 100644 index 0000000..45a88d2 Binary files /dev/null and b/icons/dark/24/media-playback-pause_normal.png differ diff --git a/icons/dark/24/media-playback-pause_normal@2x.png b/icons/dark/24/media-playback-pause_normal@2x.png new file mode 100644 index 0000000..2f39975 Binary files /dev/null and b/icons/dark/24/media-playback-pause_normal@2x.png differ diff --git a/icons/dark/24/media-playback-start_active.png b/icons/dark/24/media-playback-start_active.png new file mode 100644 index 0000000..ae6e138 Binary files /dev/null and b/icons/dark/24/media-playback-start_active.png differ diff --git a/icons/dark/24/media-playback-start_active@2x.png b/icons/dark/24/media-playback-start_active@2x.png new file mode 100644 index 0000000..fe4d095 Binary files /dev/null and b/icons/dark/24/media-playback-start_active@2x.png differ diff --git a/icons/dark/24/media-playback-start_disabled.png b/icons/dark/24/media-playback-start_disabled.png new file mode 100644 index 0000000..e810d59 Binary files /dev/null and b/icons/dark/24/media-playback-start_disabled.png differ diff --git a/icons/dark/24/media-playback-start_disabled@2x.png b/icons/dark/24/media-playback-start_disabled@2x.png new file mode 100644 index 0000000..353dfcc Binary files /dev/null and b/icons/dark/24/media-playback-start_disabled@2x.png differ diff --git a/icons/dark/24/media-playback-start_normal.png b/icons/dark/24/media-playback-start_normal.png new file mode 100644 index 0000000..d2c34d6 Binary files /dev/null and b/icons/dark/24/media-playback-start_normal.png differ diff --git a/icons/dark/24/media-playback-start_normal@2x.png b/icons/dark/24/media-playback-start_normal@2x.png new file mode 100644 index 0000000..c84d271 Binary files /dev/null and b/icons/dark/24/media-playback-start_normal@2x.png differ diff --git a/icons/dark/24/media-playback-stop_active.png b/icons/dark/24/media-playback-stop_active.png new file mode 100644 index 0000000..0321fc5 Binary files /dev/null and b/icons/dark/24/media-playback-stop_active.png differ diff --git a/icons/dark/24/media-playback-stop_active@2x.png b/icons/dark/24/media-playback-stop_active@2x.png new file mode 100644 index 0000000..14b0245 Binary files /dev/null and b/icons/dark/24/media-playback-stop_active@2x.png differ diff --git a/icons/dark/24/media-playback-stop_disabled.png b/icons/dark/24/media-playback-stop_disabled.png new file mode 100644 index 0000000..80a2f75 Binary files /dev/null and b/icons/dark/24/media-playback-stop_disabled.png differ diff --git a/icons/dark/24/media-playback-stop_disabled@2x.png b/icons/dark/24/media-playback-stop_disabled@2x.png new file mode 100644 index 0000000..3282a34 Binary files /dev/null and b/icons/dark/24/media-playback-stop_disabled@2x.png differ diff --git a/icons/dark/24/media-playback-stop_normal.png b/icons/dark/24/media-playback-stop_normal.png new file mode 100644 index 0000000..aa2ffb5 Binary files /dev/null and b/icons/dark/24/media-playback-stop_normal.png differ diff --git a/icons/dark/24/media-playback-stop_normal@2x.png b/icons/dark/24/media-playback-stop_normal@2x.png new file mode 100644 index 0000000..2290b49 Binary files /dev/null and b/icons/dark/24/media-playback-stop_normal@2x.png differ diff --git a/icons/dark/24/media-skip-forward_active.png b/icons/dark/24/media-skip-forward_active.png new file mode 100644 index 0000000..05cab27 Binary files /dev/null and b/icons/dark/24/media-skip-forward_active.png differ diff --git a/icons/dark/24/media-skip-forward_active@2x.png b/icons/dark/24/media-skip-forward_active@2x.png new file mode 100644 index 0000000..529956c Binary files /dev/null and b/icons/dark/24/media-skip-forward_active@2x.png differ diff --git a/icons/dark/24/media-skip-forward_disabled.png b/icons/dark/24/media-skip-forward_disabled.png new file mode 100644 index 0000000..1302c19 Binary files /dev/null and b/icons/dark/24/media-skip-forward_disabled.png differ diff --git a/icons/dark/24/media-skip-forward_disabled@2x.png b/icons/dark/24/media-skip-forward_disabled@2x.png new file mode 100644 index 0000000..4592767 Binary files /dev/null and b/icons/dark/24/media-skip-forward_disabled@2x.png differ diff --git a/icons/dark/24/media-skip-forward_normal.png b/icons/dark/24/media-skip-forward_normal.png new file mode 100644 index 0000000..df963f1 Binary files /dev/null and b/icons/dark/24/media-skip-forward_normal.png differ diff --git a/icons/dark/24/media-skip-forward_normal@2x.png b/icons/dark/24/media-skip-forward_normal@2x.png new file mode 100644 index 0000000..c44bdaa Binary files /dev/null and b/icons/dark/24/media-skip-forward_normal@2x.png differ diff --git a/icons/dark/24/open-menu_active.png b/icons/dark/24/open-menu_active.png new file mode 100644 index 0000000..2570f2f Binary files /dev/null and b/icons/dark/24/open-menu_active.png differ diff --git a/icons/dark/24/open-menu_active@2x.png b/icons/dark/24/open-menu_active@2x.png new file mode 100644 index 0000000..271ebe3 Binary files /dev/null and b/icons/dark/24/open-menu_active@2x.png differ diff --git a/icons/dark/24/open-menu_disabled.png b/icons/dark/24/open-menu_disabled.png new file mode 100644 index 0000000..57e8bc7 Binary files /dev/null and b/icons/dark/24/open-menu_disabled.png differ diff --git a/icons/dark/24/open-menu_disabled@2x.png b/icons/dark/24/open-menu_disabled@2x.png new file mode 100644 index 0000000..2492fbb Binary files /dev/null and b/icons/dark/24/open-menu_disabled@2x.png differ diff --git a/icons/dark/24/open-menu_normal.png b/icons/dark/24/open-menu_normal.png new file mode 100644 index 0000000..c4ec9bb Binary files /dev/null and b/icons/dark/24/open-menu_normal.png differ diff --git a/icons/dark/24/open-menu_normal@2x.png b/icons/dark/24/open-menu_normal@2x.png new file mode 100644 index 0000000..6bf0cc3 Binary files /dev/null and b/icons/dark/24/open-menu_normal@2x.png differ diff --git a/icons/dark/24/refine-search.png b/icons/dark/24/refine-search.png deleted file mode 100644 index ac08a42..0000000 Binary files a/icons/dark/24/refine-search.png and /dev/null differ diff --git a/icons/dark/24/refine-search@2x.png b/icons/dark/24/refine-search@2x.png deleted file mode 100644 index 8bb8bfd..0000000 Binary files a/icons/dark/24/refine-search@2x.png and /dev/null differ diff --git a/icons/dark/24/refine-search_active.png b/icons/dark/24/refine-search_active.png new file mode 100644 index 0000000..1c022fa Binary files /dev/null and b/icons/dark/24/refine-search_active.png differ diff --git a/icons/dark/24/refine-search_active@2x.png b/icons/dark/24/refine-search_active@2x.png new file mode 100644 index 0000000..f0d9386 Binary files /dev/null and b/icons/dark/24/refine-search_active@2x.png differ diff --git a/icons/dark/24/refine-search_disabled.png b/icons/dark/24/refine-search_disabled.png new file mode 100644 index 0000000..cc224be Binary files /dev/null and b/icons/dark/24/refine-search_disabled.png differ diff --git a/icons/dark/24/refine-search_disabled@2x.png b/icons/dark/24/refine-search_disabled@2x.png new file mode 100644 index 0000000..e6390ab Binary files /dev/null and b/icons/dark/24/refine-search_disabled@2x.png differ diff --git a/icons/dark/24/refine-search_normal.png b/icons/dark/24/refine-search_normal.png new file mode 100644 index 0000000..275bbf4 Binary files /dev/null and b/icons/dark/24/refine-search_normal.png differ diff --git a/icons/dark/24/refine-search_normal@2x.png b/icons/dark/24/refine-search_normal@2x.png new file mode 100644 index 0000000..958f602 Binary files /dev/null and b/icons/dark/24/refine-search_normal@2x.png differ diff --git a/icons/dark/24/view-fullscreen_active.png b/icons/dark/24/view-fullscreen_active.png new file mode 100644 index 0000000..8380bcf Binary files /dev/null and b/icons/dark/24/view-fullscreen_active.png differ diff --git a/icons/dark/24/view-fullscreen_active@2x.png b/icons/dark/24/view-fullscreen_active@2x.png new file mode 100644 index 0000000..e41cbaf Binary files /dev/null and b/icons/dark/24/view-fullscreen_active@2x.png differ diff --git a/icons/dark/24/view-fullscreen_disabled.png b/icons/dark/24/view-fullscreen_disabled.png new file mode 100644 index 0000000..f77a04c Binary files /dev/null and b/icons/dark/24/view-fullscreen_disabled.png differ diff --git a/icons/dark/24/view-fullscreen_disabled@2x.png b/icons/dark/24/view-fullscreen_disabled@2x.png new file mode 100644 index 0000000..324bb06 Binary files /dev/null and b/icons/dark/24/view-fullscreen_disabled@2x.png differ diff --git a/icons/dark/24/view-fullscreen_normal.png b/icons/dark/24/view-fullscreen_normal.png new file mode 100644 index 0000000..9d96d15 Binary files /dev/null and b/icons/dark/24/view-fullscreen_normal.png differ diff --git a/icons/dark/24/view-fullscreen_normal@2x.png b/icons/dark/24/view-fullscreen_normal@2x.png new file mode 100644 index 0000000..2c11789 Binary files /dev/null and b/icons/dark/24/view-fullscreen_normal@2x.png differ diff --git a/icons/dark/24/view-list_active.png b/icons/dark/24/view-list_active.png new file mode 100644 index 0000000..bd5be8a Binary files /dev/null and b/icons/dark/24/view-list_active.png differ diff --git a/icons/dark/24/view-list_active@2x.png b/icons/dark/24/view-list_active@2x.png new file mode 100644 index 0000000..66984cf Binary files /dev/null and b/icons/dark/24/view-list_active@2x.png differ diff --git a/icons/dark/24/view-list_disabled.png b/icons/dark/24/view-list_disabled.png new file mode 100644 index 0000000..6808966 Binary files /dev/null and b/icons/dark/24/view-list_disabled.png differ diff --git a/icons/dark/24/view-list_disabled@2x.png b/icons/dark/24/view-list_disabled@2x.png new file mode 100644 index 0000000..600a326 Binary files /dev/null and b/icons/dark/24/view-list_disabled@2x.png differ diff --git a/icons/dark/24/view-list_normal.png b/icons/dark/24/view-list_normal.png new file mode 100644 index 0000000..ed46d99 Binary files /dev/null and b/icons/dark/24/view-list_normal.png differ diff --git a/icons/dark/24/view-list_normal@2x.png b/icons/dark/24/view-list_normal@2x.png new file mode 100644 index 0000000..a5a116c Binary files /dev/null and b/icons/dark/24/view-list_normal@2x.png differ diff --git a/icons/dark/24/view-restore_active.png b/icons/dark/24/view-restore_active.png new file mode 100644 index 0000000..2a33402 Binary files /dev/null and b/icons/dark/24/view-restore_active.png differ diff --git a/icons/dark/24/view-restore_active@2x.png b/icons/dark/24/view-restore_active@2x.png new file mode 100644 index 0000000..5a9f305 Binary files /dev/null and b/icons/dark/24/view-restore_active@2x.png differ diff --git a/icons/dark/24/view-restore_disabled.png b/icons/dark/24/view-restore_disabled.png new file mode 100644 index 0000000..b349ace Binary files /dev/null and b/icons/dark/24/view-restore_disabled.png differ diff --git a/icons/dark/24/view-restore_disabled@2x.png b/icons/dark/24/view-restore_disabled@2x.png new file mode 100644 index 0000000..a905a54 Binary files /dev/null and b/icons/dark/24/view-restore_disabled@2x.png differ diff --git a/icons/dark/24/view-restore_normal.png b/icons/dark/24/view-restore_normal.png new file mode 100644 index 0000000..47fa4c5 Binary files /dev/null and b/icons/dark/24/view-restore_normal.png differ diff --git a/icons/dark/24/view-restore_normal@2x.png b/icons/dark/24/view-restore_normal@2x.png new file mode 100644 index 0000000..09aa0c7 Binary files /dev/null and b/icons/dark/24/view-restore_normal@2x.png differ diff --git a/icons/dark/32/content-loading.png b/icons/dark/32/content-loading.png deleted file mode 100644 index 56d9991..0000000 Binary files a/icons/dark/32/content-loading.png and /dev/null differ diff --git a/icons/dark/32/content-loading@2x.png b/icons/dark/32/content-loading@2x.png deleted file mode 100644 index cc80147..0000000 Binary files a/icons/dark/32/content-loading@2x.png and /dev/null differ diff --git a/icons/dark/32/content-loading_active.png b/icons/dark/32/content-loading_active.png new file mode 100644 index 0000000..bfdfcb4 Binary files /dev/null and b/icons/dark/32/content-loading_active.png differ diff --git a/icons/dark/32/content-loading_active@2x.png b/icons/dark/32/content-loading_active@2x.png new file mode 100644 index 0000000..6601806 Binary files /dev/null and b/icons/dark/32/content-loading_active@2x.png differ diff --git a/icons/dark/32/content-loading_disabled.png b/icons/dark/32/content-loading_disabled.png new file mode 100644 index 0000000..f5ee66f Binary files /dev/null and b/icons/dark/32/content-loading_disabled.png differ diff --git a/icons/dark/32/content-loading_disabled@2x.png b/icons/dark/32/content-loading_disabled@2x.png new file mode 100644 index 0000000..3d1d2f9 Binary files /dev/null and b/icons/dark/32/content-loading_disabled@2x.png differ diff --git a/icons/dark/32/content-loading_normal.png b/icons/dark/32/content-loading_normal.png new file mode 100644 index 0000000..826ee1c Binary files /dev/null and b/icons/dark/32/content-loading_normal.png differ diff --git a/icons/dark/32/content-loading_normal@2x.png b/icons/dark/32/content-loading_normal@2x.png new file mode 100644 index 0000000..b4ef52e Binary files /dev/null and b/icons/dark/32/content-loading_normal@2x.png differ diff --git a/icons/dark/32/document-save.png b/icons/dark/32/document-save.png deleted file mode 100644 index 0af10d8..0000000 Binary files a/icons/dark/32/document-save.png and /dev/null differ diff --git a/icons/dark/32/document-save@2x.png b/icons/dark/32/document-save@2x.png deleted file mode 100644 index 35054ee..0000000 Binary files a/icons/dark/32/document-save@2x.png and /dev/null differ diff --git a/icons/dark/32/document-save_active.png b/icons/dark/32/document-save_active.png new file mode 100644 index 0000000..62465db Binary files /dev/null and b/icons/dark/32/document-save_active.png differ diff --git a/icons/dark/32/document-save_active@2x.png b/icons/dark/32/document-save_active@2x.png new file mode 100644 index 0000000..7f5f864 Binary files /dev/null and b/icons/dark/32/document-save_active@2x.png differ diff --git a/icons/dark/32/document-save_disabled.png b/icons/dark/32/document-save_disabled.png new file mode 100644 index 0000000..b2d10f2 Binary files /dev/null and b/icons/dark/32/document-save_disabled.png differ diff --git a/icons/dark/32/document-save_disabled@2x.png b/icons/dark/32/document-save_disabled@2x.png new file mode 100644 index 0000000..0d60e0a Binary files /dev/null and b/icons/dark/32/document-save_disabled@2x.png differ diff --git a/icons/dark/32/document-save_normal.png b/icons/dark/32/document-save_normal.png new file mode 100644 index 0000000..c96f028 Binary files /dev/null and b/icons/dark/32/document-save_normal.png differ diff --git a/icons/dark/32/document-save_normal@2x.png b/icons/dark/32/document-save_normal@2x.png new file mode 100644 index 0000000..f39bc81 Binary files /dev/null and b/icons/dark/32/document-save_normal@2x.png differ diff --git a/icons/dark/32/media-playback-pause.png b/icons/dark/32/media-playback-pause.png deleted file mode 100644 index 133fab7..0000000 Binary files a/icons/dark/32/media-playback-pause.png and /dev/null differ diff --git a/icons/dark/32/media-playback-pause@2x.png b/icons/dark/32/media-playback-pause@2x.png deleted file mode 100644 index 91af18a..0000000 Binary files a/icons/dark/32/media-playback-pause@2x.png and /dev/null differ diff --git a/icons/dark/32/media-playback-pause_active.png b/icons/dark/32/media-playback-pause_active.png new file mode 100644 index 0000000..b5ead88 Binary files /dev/null and b/icons/dark/32/media-playback-pause_active.png differ diff --git a/icons/dark/32/media-playback-pause_active@2x.png b/icons/dark/32/media-playback-pause_active@2x.png new file mode 100644 index 0000000..4840d5f Binary files /dev/null and b/icons/dark/32/media-playback-pause_active@2x.png differ diff --git a/icons/dark/32/media-playback-pause_disabled.png b/icons/dark/32/media-playback-pause_disabled.png new file mode 100644 index 0000000..0b88125 Binary files /dev/null and b/icons/dark/32/media-playback-pause_disabled.png differ diff --git a/icons/dark/32/media-playback-pause_disabled@2x.png b/icons/dark/32/media-playback-pause_disabled@2x.png new file mode 100644 index 0000000..95b6183 Binary files /dev/null and b/icons/dark/32/media-playback-pause_disabled@2x.png differ diff --git a/icons/dark/32/media-playback-pause_normal.png b/icons/dark/32/media-playback-pause_normal.png new file mode 100644 index 0000000..6aef0ab Binary files /dev/null and b/icons/dark/32/media-playback-pause_normal.png differ diff --git a/icons/dark/32/media-playback-pause_normal@2x.png b/icons/dark/32/media-playback-pause_normal@2x.png new file mode 100644 index 0000000..c33d287 Binary files /dev/null and b/icons/dark/32/media-playback-pause_normal@2x.png differ diff --git a/icons/dark/32/media-playback-start.png b/icons/dark/32/media-playback-start.png deleted file mode 100644 index 70c3c6e..0000000 Binary files a/icons/dark/32/media-playback-start.png and /dev/null differ diff --git a/icons/dark/32/media-playback-start@2x.png b/icons/dark/32/media-playback-start@2x.png deleted file mode 100644 index 32f1318..0000000 Binary files a/icons/dark/32/media-playback-start@2x.png and /dev/null differ diff --git a/icons/dark/32/media-playback-start_active.png b/icons/dark/32/media-playback-start_active.png new file mode 100644 index 0000000..df846bb Binary files /dev/null and b/icons/dark/32/media-playback-start_active.png differ diff --git a/icons/dark/32/media-playback-start_active@2x.png b/icons/dark/32/media-playback-start_active@2x.png new file mode 100644 index 0000000..8328747 Binary files /dev/null and b/icons/dark/32/media-playback-start_active@2x.png differ diff --git a/icons/dark/32/media-playback-start_checked.png b/icons/dark/32/media-playback-start_checked.png deleted file mode 100644 index 4b7e59e..0000000 Binary files a/icons/dark/32/media-playback-start_checked.png and /dev/null differ diff --git a/icons/dark/32/media-playback-start_checked@2x.png b/icons/dark/32/media-playback-start_checked@2x.png deleted file mode 100644 index 55f6afb..0000000 Binary files a/icons/dark/32/media-playback-start_checked@2x.png and /dev/null differ diff --git a/icons/dark/32/media-playback-start_disabled.png b/icons/dark/32/media-playback-start_disabled.png new file mode 100644 index 0000000..b309138 Binary files /dev/null and b/icons/dark/32/media-playback-start_disabled.png differ diff --git a/icons/dark/32/media-playback-start_disabled@2x.png b/icons/dark/32/media-playback-start_disabled@2x.png new file mode 100644 index 0000000..5b29781 Binary files /dev/null and b/icons/dark/32/media-playback-start_disabled@2x.png differ diff --git a/icons/dark/32/media-playback-start_normal.png b/icons/dark/32/media-playback-start_normal.png new file mode 100644 index 0000000..c8c5b22 Binary files /dev/null and b/icons/dark/32/media-playback-start_normal.png differ diff --git a/icons/dark/32/media-playback-start_normal@2x.png b/icons/dark/32/media-playback-start_normal@2x.png new file mode 100644 index 0000000..656426a Binary files /dev/null and b/icons/dark/32/media-playback-start_normal@2x.png differ diff --git a/icons/dark/32/media-playback-stop.png b/icons/dark/32/media-playback-stop.png deleted file mode 100644 index b86d233..0000000 Binary files a/icons/dark/32/media-playback-stop.png and /dev/null differ diff --git a/icons/dark/32/media-playback-stop@2x.png b/icons/dark/32/media-playback-stop@2x.png deleted file mode 100644 index 28de286..0000000 Binary files a/icons/dark/32/media-playback-stop@2x.png and /dev/null differ diff --git a/icons/dark/32/media-playback-stop_active.png b/icons/dark/32/media-playback-stop_active.png new file mode 100644 index 0000000..7c52b25 Binary files /dev/null and b/icons/dark/32/media-playback-stop_active.png differ diff --git a/icons/dark/32/media-playback-stop_active@2x.png b/icons/dark/32/media-playback-stop_active@2x.png new file mode 100644 index 0000000..d32f19f Binary files /dev/null and b/icons/dark/32/media-playback-stop_active@2x.png differ diff --git a/icons/dark/32/media-playback-stop_disabled.png b/icons/dark/32/media-playback-stop_disabled.png new file mode 100644 index 0000000..33eb4a5 Binary files /dev/null and b/icons/dark/32/media-playback-stop_disabled.png differ diff --git a/icons/dark/32/media-playback-stop_disabled@2x.png b/icons/dark/32/media-playback-stop_disabled@2x.png new file mode 100644 index 0000000..0bcd605 Binary files /dev/null and b/icons/dark/32/media-playback-stop_disabled@2x.png differ diff --git a/icons/dark/32/media-playback-stop_normal.png b/icons/dark/32/media-playback-stop_normal.png new file mode 100644 index 0000000..1ab207d Binary files /dev/null and b/icons/dark/32/media-playback-stop_normal.png differ diff --git a/icons/dark/32/media-playback-stop_normal@2x.png b/icons/dark/32/media-playback-stop_normal@2x.png new file mode 100644 index 0000000..68cc4f9 Binary files /dev/null and b/icons/dark/32/media-playback-stop_normal@2x.png differ diff --git a/icons/dark/32/media-skip-forward.png b/icons/dark/32/media-skip-forward.png deleted file mode 100644 index bfb0dc6..0000000 Binary files a/icons/dark/32/media-skip-forward.png and /dev/null differ diff --git a/icons/dark/32/media-skip-forward@2x.png b/icons/dark/32/media-skip-forward@2x.png deleted file mode 100644 index 982da70..0000000 Binary files a/icons/dark/32/media-skip-forward@2x.png and /dev/null differ diff --git a/icons/dark/32/media-skip-forward_active.png b/icons/dark/32/media-skip-forward_active.png new file mode 100644 index 0000000..602cd2f Binary files /dev/null and b/icons/dark/32/media-skip-forward_active.png differ diff --git a/icons/dark/32/media-skip-forward_active@2x.png b/icons/dark/32/media-skip-forward_active@2x.png new file mode 100644 index 0000000..b009686 Binary files /dev/null and b/icons/dark/32/media-skip-forward_active@2x.png differ diff --git a/icons/dark/32/media-skip-forward_disabled.png b/icons/dark/32/media-skip-forward_disabled.png new file mode 100644 index 0000000..c1bb78a Binary files /dev/null and b/icons/dark/32/media-skip-forward_disabled.png differ diff --git a/icons/dark/32/media-skip-forward_disabled@2x.png b/icons/dark/32/media-skip-forward_disabled@2x.png new file mode 100644 index 0000000..f33e266 Binary files /dev/null and b/icons/dark/32/media-skip-forward_disabled@2x.png differ diff --git a/icons/dark/32/media-skip-forward_normal.png b/icons/dark/32/media-skip-forward_normal.png new file mode 100644 index 0000000..0b09bb0 Binary files /dev/null and b/icons/dark/32/media-skip-forward_normal.png differ diff --git a/icons/dark/32/media-skip-forward_normal@2x.png b/icons/dark/32/media-skip-forward_normal@2x.png new file mode 100644 index 0000000..a0df389 Binary files /dev/null and b/icons/dark/32/media-skip-forward_normal@2x.png differ diff --git a/icons/dark/32/open-menu.png b/icons/dark/32/open-menu.png deleted file mode 100644 index 917da50..0000000 Binary files a/icons/dark/32/open-menu.png and /dev/null differ diff --git a/icons/dark/32/open-menu@2x.png b/icons/dark/32/open-menu@2x.png deleted file mode 100644 index 7a95cba..0000000 Binary files a/icons/dark/32/open-menu@2x.png and /dev/null differ diff --git a/icons/dark/32/open-menu_active.png b/icons/dark/32/open-menu_active.png new file mode 100644 index 0000000..55f0523 Binary files /dev/null and b/icons/dark/32/open-menu_active.png differ diff --git a/icons/dark/32/open-menu_active@2x.png b/icons/dark/32/open-menu_active@2x.png new file mode 100644 index 0000000..a18bd42 Binary files /dev/null and b/icons/dark/32/open-menu_active@2x.png differ diff --git a/icons/dark/32/open-menu_disabled.png b/icons/dark/32/open-menu_disabled.png new file mode 100644 index 0000000..2f47eca Binary files /dev/null and b/icons/dark/32/open-menu_disabled.png differ diff --git a/icons/dark/32/open-menu_disabled@2x.png b/icons/dark/32/open-menu_disabled@2x.png new file mode 100644 index 0000000..226e0f5 Binary files /dev/null and b/icons/dark/32/open-menu_disabled@2x.png differ diff --git a/icons/dark/32/open-menu_normal.png b/icons/dark/32/open-menu_normal.png new file mode 100644 index 0000000..41e43ca Binary files /dev/null and b/icons/dark/32/open-menu_normal.png differ diff --git a/icons/dark/32/open-menu_normal@2x.png b/icons/dark/32/open-menu_normal@2x.png new file mode 100644 index 0000000..e6f6eb1 Binary files /dev/null and b/icons/dark/32/open-menu_normal@2x.png differ diff --git a/icons/dark/32/view-fullscreen.png b/icons/dark/32/view-fullscreen.png deleted file mode 100644 index 87864c9..0000000 Binary files a/icons/dark/32/view-fullscreen.png and /dev/null differ diff --git a/icons/dark/32/view-fullscreen@2x.png b/icons/dark/32/view-fullscreen@2x.png deleted file mode 100644 index 48f63ac..0000000 Binary files a/icons/dark/32/view-fullscreen@2x.png and /dev/null differ diff --git a/icons/dark/32/view-fullscreen_active.png b/icons/dark/32/view-fullscreen_active.png new file mode 100644 index 0000000..25edceb Binary files /dev/null and b/icons/dark/32/view-fullscreen_active.png differ diff --git a/icons/dark/32/view-fullscreen_active@2x.png b/icons/dark/32/view-fullscreen_active@2x.png new file mode 100644 index 0000000..bc6104c Binary files /dev/null and b/icons/dark/32/view-fullscreen_active@2x.png differ diff --git a/icons/dark/32/view-fullscreen_disabled.png b/icons/dark/32/view-fullscreen_disabled.png new file mode 100644 index 0000000..e24727b Binary files /dev/null and b/icons/dark/32/view-fullscreen_disabled.png differ diff --git a/icons/dark/32/view-fullscreen_disabled@2x.png b/icons/dark/32/view-fullscreen_disabled@2x.png new file mode 100644 index 0000000..af706b0 Binary files /dev/null and b/icons/dark/32/view-fullscreen_disabled@2x.png differ diff --git a/icons/dark/32/view-fullscreen_normal.png b/icons/dark/32/view-fullscreen_normal.png new file mode 100644 index 0000000..249912a Binary files /dev/null and b/icons/dark/32/view-fullscreen_normal.png differ diff --git a/icons/dark/32/view-fullscreen_normal@2x.png b/icons/dark/32/view-fullscreen_normal@2x.png new file mode 100644 index 0000000..d8baacd Binary files /dev/null and b/icons/dark/32/view-fullscreen_normal@2x.png differ diff --git a/icons/dark/32/view-list.png b/icons/dark/32/view-list.png deleted file mode 100644 index 9508f98..0000000 Binary files a/icons/dark/32/view-list.png and /dev/null differ diff --git a/icons/dark/32/view-list@2x.png b/icons/dark/32/view-list@2x.png deleted file mode 100644 index 93f8421..0000000 Binary files a/icons/dark/32/view-list@2x.png and /dev/null differ diff --git a/icons/dark/32/view-list_active.png b/icons/dark/32/view-list_active.png new file mode 100644 index 0000000..d0712f7 Binary files /dev/null and b/icons/dark/32/view-list_active.png differ diff --git a/icons/dark/32/view-list_active@2x.png b/icons/dark/32/view-list_active@2x.png new file mode 100644 index 0000000..4fb75bf Binary files /dev/null and b/icons/dark/32/view-list_active@2x.png differ diff --git a/icons/dark/32/view-list_disabled.png b/icons/dark/32/view-list_disabled.png new file mode 100644 index 0000000..4b4bb59 Binary files /dev/null and b/icons/dark/32/view-list_disabled.png differ diff --git a/icons/dark/32/view-list_disabled@2x.png b/icons/dark/32/view-list_disabled@2x.png new file mode 100644 index 0000000..1c4b29a Binary files /dev/null and b/icons/dark/32/view-list_disabled@2x.png differ diff --git a/icons/dark/32/view-list_normal.png b/icons/dark/32/view-list_normal.png new file mode 100644 index 0000000..f92d6ea Binary files /dev/null and b/icons/dark/32/view-list_normal.png differ diff --git a/icons/dark/32/view-list_normal@2x.png b/icons/dark/32/view-list_normal@2x.png new file mode 100644 index 0000000..ecce409 Binary files /dev/null and b/icons/dark/32/view-list_normal@2x.png differ diff --git a/icons/dark/32/view-restore.png b/icons/dark/32/view-restore.png deleted file mode 100644 index dcde5ee..0000000 Binary files a/icons/dark/32/view-restore.png and /dev/null differ diff --git a/icons/dark/32/view-restore@2x.png b/icons/dark/32/view-restore@2x.png deleted file mode 100644 index 3ad5590..0000000 Binary files a/icons/dark/32/view-restore@2x.png and /dev/null differ diff --git a/icons/dark/32/view-restore_active.png b/icons/dark/32/view-restore_active.png new file mode 100644 index 0000000..732daf9 Binary files /dev/null and b/icons/dark/32/view-restore_active.png differ diff --git a/icons/dark/32/view-restore_active@2x.png b/icons/dark/32/view-restore_active@2x.png new file mode 100644 index 0000000..b1c65ae Binary files /dev/null and b/icons/dark/32/view-restore_active@2x.png differ diff --git a/icons/dark/32/view-restore_disabled.png b/icons/dark/32/view-restore_disabled.png new file mode 100644 index 0000000..bd5f9e3 Binary files /dev/null and b/icons/dark/32/view-restore_disabled.png differ diff --git a/icons/dark/32/view-restore_disabled@2x.png b/icons/dark/32/view-restore_disabled@2x.png new file mode 100644 index 0000000..63e4367 Binary files /dev/null and b/icons/dark/32/view-restore_disabled@2x.png differ diff --git a/icons/dark/32/view-restore_normal.png b/icons/dark/32/view-restore_normal.png new file mode 100644 index 0000000..a8a7f90 Binary files /dev/null and b/icons/dark/32/view-restore_normal.png differ diff --git a/icons/dark/32/view-restore_normal@2x.png b/icons/dark/32/view-restore_normal@2x.png new file mode 100644 index 0000000..ed50202 Binary files /dev/null and b/icons/dark/32/view-restore_normal@2x.png differ diff --git a/icons/dark/88/channels.png b/icons/dark/88/channels.png deleted file mode 100644 index f472d3a..0000000 Binary files a/icons/dark/88/channels.png and /dev/null differ diff --git a/icons/dark/88/channels@2x.png b/icons/dark/88/channels@2x.png deleted file mode 100644 index 8172783..0000000 Binary files a/icons/dark/88/channels@2x.png and /dev/null differ diff --git a/icons/dark/88/channels_active.png b/icons/dark/88/channels_active.png new file mode 100644 index 0000000..939fd62 Binary files /dev/null and b/icons/dark/88/channels_active.png differ diff --git a/icons/dark/88/channels_active@2x.png b/icons/dark/88/channels_active@2x.png new file mode 100644 index 0000000..ba7ea1f Binary files /dev/null and b/icons/dark/88/channels_active@2x.png differ diff --git a/icons/dark/88/channels_disabled.png b/icons/dark/88/channels_disabled.png new file mode 100644 index 0000000..5642ee4 Binary files /dev/null and b/icons/dark/88/channels_disabled.png differ diff --git a/icons/dark/88/channels_disabled@2x.png b/icons/dark/88/channels_disabled@2x.png new file mode 100644 index 0000000..f617bc5 Binary files /dev/null and b/icons/dark/88/channels_disabled@2x.png differ diff --git a/icons/dark/88/channels_normal.png b/icons/dark/88/channels_normal.png new file mode 100644 index 0000000..5c7985c Binary files /dev/null and b/icons/dark/88/channels_normal.png differ diff --git a/icons/dark/88/channels_normal@2x.png b/icons/dark/88/channels_normal@2x.png new file mode 100644 index 0000000..2ebffb8 Binary files /dev/null and b/icons/dark/88/channels_normal@2x.png differ diff --git a/icons/dark/88/unwatched.png b/icons/dark/88/unwatched.png deleted file mode 100644 index f24b750..0000000 Binary files a/icons/dark/88/unwatched.png and /dev/null differ diff --git a/icons/dark/88/unwatched@2x.png b/icons/dark/88/unwatched@2x.png deleted file mode 100644 index 917bd2b..0000000 Binary files a/icons/dark/88/unwatched@2x.png and /dev/null differ diff --git a/icons/dark/88/unwatched_active.png b/icons/dark/88/unwatched_active.png new file mode 100644 index 0000000..df6f798 Binary files /dev/null and b/icons/dark/88/unwatched_active.png differ diff --git a/icons/dark/88/unwatched_active@2x.png b/icons/dark/88/unwatched_active@2x.png new file mode 100644 index 0000000..2413cc1 Binary files /dev/null and b/icons/dark/88/unwatched_active@2x.png differ diff --git a/icons/dark/88/unwatched_disabled.png b/icons/dark/88/unwatched_disabled.png new file mode 100644 index 0000000..bf8b053 Binary files /dev/null and b/icons/dark/88/unwatched_disabled.png differ diff --git a/icons/dark/88/unwatched_disabled@2x.png b/icons/dark/88/unwatched_disabled@2x.png new file mode 100644 index 0000000..d5c8efc Binary files /dev/null and b/icons/dark/88/unwatched_disabled@2x.png differ diff --git a/icons/dark/88/unwatched_normal.png b/icons/dark/88/unwatched_normal.png new file mode 100644 index 0000000..ef8b92e Binary files /dev/null and b/icons/dark/88/unwatched_normal.png differ diff --git a/icons/dark/88/unwatched_normal@2x.png b/icons/dark/88/unwatched_normal@2x.png new file mode 100644 index 0000000..9fcf671 Binary files /dev/null and b/icons/dark/88/unwatched_normal@2x.png differ diff --git a/icons/light/16/audio-volume-high.png b/icons/light/16/audio-volume-high.png deleted file mode 100644 index 96f746e..0000000 Binary files a/icons/light/16/audio-volume-high.png and /dev/null differ diff --git a/icons/light/16/audio-volume-high@2x.png b/icons/light/16/audio-volume-high@2x.png deleted file mode 100644 index 3893e4d..0000000 Binary files a/icons/light/16/audio-volume-high@2x.png and /dev/null differ diff --git a/icons/light/16/audio-volume-high_active.png b/icons/light/16/audio-volume-high_active.png new file mode 100644 index 0000000..bc840de Binary files /dev/null and b/icons/light/16/audio-volume-high_active.png differ diff --git a/icons/light/16/audio-volume-high_active@2x.png b/icons/light/16/audio-volume-high_active@2x.png new file mode 100644 index 0000000..0d0dc34 Binary files /dev/null and b/icons/light/16/audio-volume-high_active@2x.png differ diff --git a/icons/light/16/audio-volume-high_disabled.png b/icons/light/16/audio-volume-high_disabled.png new file mode 100644 index 0000000..9eea46d Binary files /dev/null and b/icons/light/16/audio-volume-high_disabled.png differ diff --git a/icons/light/16/audio-volume-high_disabled@2x.png b/icons/light/16/audio-volume-high_disabled@2x.png new file mode 100644 index 0000000..665cfec Binary files /dev/null and b/icons/light/16/audio-volume-high_disabled@2x.png differ diff --git a/icons/light/16/audio-volume-high_normal.png b/icons/light/16/audio-volume-high_normal.png new file mode 100644 index 0000000..da33c25 Binary files /dev/null and b/icons/light/16/audio-volume-high_normal.png differ diff --git a/icons/light/16/audio-volume-high_normal@2x.png b/icons/light/16/audio-volume-high_normal@2x.png new file mode 100644 index 0000000..0363fca Binary files /dev/null and b/icons/light/16/audio-volume-high_normal@2x.png differ diff --git a/icons/light/16/audio-volume-muted.png b/icons/light/16/audio-volume-muted.png deleted file mode 100644 index 37be31d..0000000 Binary files a/icons/light/16/audio-volume-muted.png and /dev/null differ diff --git a/icons/light/16/audio-volume-muted@2x.png b/icons/light/16/audio-volume-muted@2x.png deleted file mode 100644 index ebe59d2..0000000 Binary files a/icons/light/16/audio-volume-muted@2x.png and /dev/null differ diff --git a/icons/light/16/audio-volume-muted_active.png b/icons/light/16/audio-volume-muted_active.png new file mode 100644 index 0000000..37be31d Binary files /dev/null and b/icons/light/16/audio-volume-muted_active.png differ diff --git a/icons/light/16/audio-volume-muted_active@2x.png b/icons/light/16/audio-volume-muted_active@2x.png new file mode 100644 index 0000000..ebe59d2 Binary files /dev/null and b/icons/light/16/audio-volume-muted_active@2x.png differ diff --git a/icons/light/16/audio-volume-muted_disabled.png b/icons/light/16/audio-volume-muted_disabled.png new file mode 100644 index 0000000..37be31d Binary files /dev/null and b/icons/light/16/audio-volume-muted_disabled.png differ diff --git a/icons/light/16/audio-volume-muted_disabled@2x.png b/icons/light/16/audio-volume-muted_disabled@2x.png new file mode 100644 index 0000000..ebe59d2 Binary files /dev/null and b/icons/light/16/audio-volume-muted_disabled@2x.png differ diff --git a/icons/light/16/audio-volume-muted_normal.png b/icons/light/16/audio-volume-muted_normal.png new file mode 100644 index 0000000..37be31d Binary files /dev/null and b/icons/light/16/audio-volume-muted_normal.png differ diff --git a/icons/light/16/audio-volume-muted_normal@2x.png b/icons/light/16/audio-volume-muted_normal@2x.png new file mode 100644 index 0000000..ebe59d2 Binary files /dev/null and b/icons/light/16/audio-volume-muted_normal@2x.png differ diff --git a/icons/light/16/bookmark-new.png b/icons/light/16/bookmark-new.png deleted file mode 100644 index ed1d093..0000000 Binary files a/icons/light/16/bookmark-new.png and /dev/null differ diff --git a/icons/light/16/bookmark-new@2x.png b/icons/light/16/bookmark-new@2x.png deleted file mode 100644 index 006432b..0000000 Binary files a/icons/light/16/bookmark-new@2x.png and /dev/null differ diff --git a/icons/light/16/bookmark-new_active.png b/icons/light/16/bookmark-new_active.png index cdf415d..0f301fb 100644 Binary files a/icons/light/16/bookmark-new_active.png and b/icons/light/16/bookmark-new_active.png differ diff --git a/icons/light/16/bookmark-new_active@2x.png b/icons/light/16/bookmark-new_active@2x.png index 9d924a1..415561e 100644 Binary files a/icons/light/16/bookmark-new_active@2x.png and b/icons/light/16/bookmark-new_active@2x.png differ diff --git a/icons/light/16/bookmark-new_disabled.png b/icons/light/16/bookmark-new_disabled.png new file mode 100644 index 0000000..295337c Binary files /dev/null and b/icons/light/16/bookmark-new_disabled.png differ diff --git a/icons/light/16/bookmark-new_disabled@2x.png b/icons/light/16/bookmark-new_disabled@2x.png new file mode 100644 index 0000000..5b97dab Binary files /dev/null and b/icons/light/16/bookmark-new_disabled@2x.png differ diff --git a/icons/light/16/bookmark-new_normal.png b/icons/light/16/bookmark-new_normal.png new file mode 100644 index 0000000..9926178 Binary files /dev/null and b/icons/light/16/bookmark-new_normal.png differ diff --git a/icons/light/16/bookmark-new_normal@2x.png b/icons/light/16/bookmark-new_normal@2x.png new file mode 100644 index 0000000..942e566 Binary files /dev/null and b/icons/light/16/bookmark-new_normal@2x.png differ diff --git a/icons/light/16/bookmark-remove.png b/icons/light/16/bookmark-remove.png deleted file mode 100644 index 906a7c1..0000000 Binary files a/icons/light/16/bookmark-remove.png and /dev/null differ diff --git a/icons/light/16/bookmark-remove@2x.png b/icons/light/16/bookmark-remove@2x.png deleted file mode 100644 index afbf07f..0000000 Binary files a/icons/light/16/bookmark-remove@2x.png and /dev/null differ diff --git a/icons/light/16/bookmark-remove_active.png b/icons/light/16/bookmark-remove_active.png new file mode 100644 index 0000000..7e72cbd Binary files /dev/null and b/icons/light/16/bookmark-remove_active.png differ diff --git a/icons/light/16/bookmark-remove_active@2x.png b/icons/light/16/bookmark-remove_active@2x.png new file mode 100644 index 0000000..b3ae637 Binary files /dev/null and b/icons/light/16/bookmark-remove_active@2x.png differ diff --git a/icons/light/16/bookmark-remove_disabled.png b/icons/light/16/bookmark-remove_disabled.png new file mode 100644 index 0000000..7e72cbd Binary files /dev/null and b/icons/light/16/bookmark-remove_disabled.png differ diff --git a/icons/light/16/bookmark-remove_disabled@2x.png b/icons/light/16/bookmark-remove_disabled@2x.png new file mode 100644 index 0000000..b3ae637 Binary files /dev/null and b/icons/light/16/bookmark-remove_disabled@2x.png differ diff --git a/icons/light/16/bookmark-remove_normal.png b/icons/light/16/bookmark-remove_normal.png new file mode 100644 index 0000000..7e72cbd Binary files /dev/null and b/icons/light/16/bookmark-remove_normal.png differ diff --git a/icons/light/16/bookmark-remove_normal@2x.png b/icons/light/16/bookmark-remove_normal@2x.png new file mode 100644 index 0000000..b3ae637 Binary files /dev/null and b/icons/light/16/bookmark-remove_normal@2x.png differ diff --git a/icons/light/16/close_active.png b/icons/light/16/close_active.png new file mode 100644 index 0000000..3ad1b3e Binary files /dev/null and b/icons/light/16/close_active.png differ diff --git a/icons/light/16/close_active@2x.png b/icons/light/16/close_active@2x.png new file mode 100644 index 0000000..edf6319 Binary files /dev/null and b/icons/light/16/close_active@2x.png differ diff --git a/icons/light/16/close_disabled.png b/icons/light/16/close_disabled.png new file mode 100644 index 0000000..cc4678c Binary files /dev/null and b/icons/light/16/close_disabled.png differ diff --git a/icons/light/16/close_disabled@2x.png b/icons/light/16/close_disabled@2x.png new file mode 100644 index 0000000..2a01f70 Binary files /dev/null and b/icons/light/16/close_disabled@2x.png differ diff --git a/icons/light/16/close_normal.png b/icons/light/16/close_normal.png new file mode 100644 index 0000000..e569b22 Binary files /dev/null and b/icons/light/16/close_normal.png differ diff --git a/icons/light/16/close_normal@2x.png b/icons/light/16/close_normal@2x.png new file mode 100644 index 0000000..94497e9 Binary files /dev/null and b/icons/light/16/close_normal@2x.png differ diff --git a/icons/light/16/edit-find.png b/icons/light/16/edit-find.png deleted file mode 100644 index 128a933..0000000 Binary files a/icons/light/16/edit-find.png and /dev/null differ diff --git a/icons/light/16/edit-find@2x.png b/icons/light/16/edit-find@2x.png deleted file mode 100644 index 96e6a39..0000000 Binary files a/icons/light/16/edit-find@2x.png and /dev/null differ diff --git a/icons/light/16/edit-find_active.png b/icons/light/16/edit-find_active.png new file mode 100644 index 0000000..128a933 Binary files /dev/null and b/icons/light/16/edit-find_active.png differ diff --git a/icons/light/16/edit-find_active@2x.png b/icons/light/16/edit-find_active@2x.png new file mode 100644 index 0000000..96e6a39 Binary files /dev/null and b/icons/light/16/edit-find_active@2x.png differ diff --git a/icons/light/16/edit-find_disabled.png b/icons/light/16/edit-find_disabled.png new file mode 100644 index 0000000..37678c5 Binary files /dev/null and b/icons/light/16/edit-find_disabled.png differ diff --git a/icons/light/16/edit-find_disabled@2x.png b/icons/light/16/edit-find_disabled@2x.png new file mode 100644 index 0000000..ac38bb6 Binary files /dev/null and b/icons/light/16/edit-find_disabled@2x.png differ diff --git a/icons/light/16/edit-find_normal.png b/icons/light/16/edit-find_normal.png new file mode 100644 index 0000000..45fc03c Binary files /dev/null and b/icons/light/16/edit-find_normal.png differ diff --git a/icons/light/16/edit-find_normal@2x.png b/icons/light/16/edit-find_normal@2x.png new file mode 100644 index 0000000..6d81855 Binary files /dev/null and b/icons/light/16/edit-find_normal@2x.png differ diff --git a/icons/light/16/email.png b/icons/light/16/email.png deleted file mode 100644 index 005123f..0000000 Binary files a/icons/light/16/email.png and /dev/null differ diff --git a/icons/light/16/email@2x.png b/icons/light/16/email@2x.png deleted file mode 100644 index 5f7d495..0000000 Binary files a/icons/light/16/email@2x.png and /dev/null differ diff --git a/icons/light/16/email_active.png b/icons/light/16/email_active.png new file mode 100644 index 0000000..005123f Binary files /dev/null and b/icons/light/16/email_active.png differ diff --git a/icons/light/16/email_active@2x.png b/icons/light/16/email_active@2x.png new file mode 100644 index 0000000..5f7d495 Binary files /dev/null and b/icons/light/16/email_active@2x.png differ diff --git a/icons/light/16/email_disabled.png b/icons/light/16/email_disabled.png new file mode 100644 index 0000000..219a12a Binary files /dev/null and b/icons/light/16/email_disabled.png differ diff --git a/icons/light/16/email_disabled@2x.png b/icons/light/16/email_disabled@2x.png new file mode 100644 index 0000000..cd3c936 Binary files /dev/null and b/icons/light/16/email_disabled@2x.png differ diff --git a/icons/light/16/email_normal.png b/icons/light/16/email_normal.png new file mode 100644 index 0000000..71d4a53 Binary files /dev/null and b/icons/light/16/email_normal.png differ diff --git a/icons/light/16/email_normal@2x.png b/icons/light/16/email_normal@2x.png new file mode 100644 index 0000000..2b52cc7 Binary files /dev/null and b/icons/light/16/email_normal@2x.png differ diff --git a/icons/light/16/facebook.png b/icons/light/16/facebook.png deleted file mode 100644 index 7df7fc6..0000000 Binary files a/icons/light/16/facebook.png and /dev/null differ diff --git a/icons/light/16/facebook@2x.png b/icons/light/16/facebook@2x.png deleted file mode 100644 index 3d51f50..0000000 Binary files a/icons/light/16/facebook@2x.png and /dev/null differ diff --git a/icons/light/16/facebook_active.png b/icons/light/16/facebook_active.png new file mode 100644 index 0000000..7df7fc6 Binary files /dev/null and b/icons/light/16/facebook_active.png differ diff --git a/icons/light/16/facebook_active@2x.png b/icons/light/16/facebook_active@2x.png new file mode 100644 index 0000000..3d51f50 Binary files /dev/null and b/icons/light/16/facebook_active@2x.png differ diff --git a/icons/light/16/facebook_disabled.png b/icons/light/16/facebook_disabled.png new file mode 100644 index 0000000..44e28a3 Binary files /dev/null and b/icons/light/16/facebook_disabled.png differ diff --git a/icons/light/16/facebook_disabled@2x.png b/icons/light/16/facebook_disabled@2x.png new file mode 100644 index 0000000..9560069 Binary files /dev/null and b/icons/light/16/facebook_disabled@2x.png differ diff --git a/icons/light/16/facebook_normal.png b/icons/light/16/facebook_normal.png new file mode 100644 index 0000000..98736b8 Binary files /dev/null and b/icons/light/16/facebook_normal.png differ diff --git a/icons/light/16/facebook_normal@2x.png b/icons/light/16/facebook_normal@2x.png new file mode 100644 index 0000000..44876c0 Binary files /dev/null and b/icons/light/16/facebook_normal@2x.png differ diff --git a/icons/light/16/go-next.png b/icons/light/16/go-next.png deleted file mode 100644 index eb900d8..0000000 Binary files a/icons/light/16/go-next.png and /dev/null differ diff --git a/icons/light/16/go-next@2x.png b/icons/light/16/go-next@2x.png deleted file mode 100644 index 5d5f123..0000000 Binary files a/icons/light/16/go-next@2x.png and /dev/null differ diff --git a/icons/light/16/go-next_active.png b/icons/light/16/go-next_active.png new file mode 100644 index 0000000..eb900d8 Binary files /dev/null and b/icons/light/16/go-next_active.png differ diff --git a/icons/light/16/go-next_active@2x.png b/icons/light/16/go-next_active@2x.png new file mode 100644 index 0000000..5d5f123 Binary files /dev/null and b/icons/light/16/go-next_active@2x.png differ diff --git a/icons/light/16/go-next_disabled.png b/icons/light/16/go-next_disabled.png new file mode 100644 index 0000000..3564dc5 Binary files /dev/null and b/icons/light/16/go-next_disabled.png differ diff --git a/icons/light/16/go-next_disabled@2x.png b/icons/light/16/go-next_disabled@2x.png new file mode 100644 index 0000000..cd5f9b1 Binary files /dev/null and b/icons/light/16/go-next_disabled@2x.png differ diff --git a/icons/light/16/go-next_normal.png b/icons/light/16/go-next_normal.png new file mode 100644 index 0000000..9bae84a Binary files /dev/null and b/icons/light/16/go-next_normal.png differ diff --git a/icons/light/16/go-next_normal@2x.png b/icons/light/16/go-next_normal@2x.png new file mode 100644 index 0000000..ca2fafe Binary files /dev/null and b/icons/light/16/go-next_normal@2x.png differ diff --git a/icons/light/16/go-previous.png b/icons/light/16/go-previous.png deleted file mode 100644 index 7922ae8..0000000 Binary files a/icons/light/16/go-previous.png and /dev/null differ diff --git a/icons/light/16/go-previous@2x.png b/icons/light/16/go-previous@2x.png deleted file mode 100644 index 78e528b..0000000 Binary files a/icons/light/16/go-previous@2x.png and /dev/null differ diff --git a/icons/light/16/go-previous_active.png b/icons/light/16/go-previous_active.png new file mode 100644 index 0000000..7922ae8 Binary files /dev/null and b/icons/light/16/go-previous_active.png differ diff --git a/icons/light/16/go-previous_active@2x.png b/icons/light/16/go-previous_active@2x.png new file mode 100644 index 0000000..78e528b Binary files /dev/null and b/icons/light/16/go-previous_active@2x.png differ diff --git a/icons/light/16/go-previous_disabled.png b/icons/light/16/go-previous_disabled.png new file mode 100644 index 0000000..66d2311 Binary files /dev/null and b/icons/light/16/go-previous_disabled.png differ diff --git a/icons/light/16/go-previous_disabled@2x.png b/icons/light/16/go-previous_disabled@2x.png new file mode 100644 index 0000000..403a1f4 Binary files /dev/null and b/icons/light/16/go-previous_disabled@2x.png differ diff --git a/icons/light/16/go-previous_normal.png b/icons/light/16/go-previous_normal.png new file mode 100644 index 0000000..5a9a597 Binary files /dev/null and b/icons/light/16/go-previous_normal.png differ diff --git a/icons/light/16/go-previous_normal@2x.png b/icons/light/16/go-previous_normal@2x.png new file mode 100644 index 0000000..8fcef9d Binary files /dev/null and b/icons/light/16/go-previous_normal@2x.png differ diff --git a/icons/light/16/link.png b/icons/light/16/link.png deleted file mode 100644 index 239ca25..0000000 Binary files a/icons/light/16/link.png and /dev/null differ diff --git a/icons/light/16/link@2x.png b/icons/light/16/link@2x.png deleted file mode 100644 index 148c5c3..0000000 Binary files a/icons/light/16/link@2x.png and /dev/null differ diff --git a/icons/light/16/link_active.png b/icons/light/16/link_active.png new file mode 100644 index 0000000..239ca25 Binary files /dev/null and b/icons/light/16/link_active.png differ diff --git a/icons/light/16/link_active@2x.png b/icons/light/16/link_active@2x.png new file mode 100644 index 0000000..148c5c3 Binary files /dev/null and b/icons/light/16/link_active@2x.png differ diff --git a/icons/light/16/link_disabled.png b/icons/light/16/link_disabled.png new file mode 100644 index 0000000..82b80c5 Binary files /dev/null and b/icons/light/16/link_disabled.png differ diff --git a/icons/light/16/link_disabled@2x.png b/icons/light/16/link_disabled@2x.png new file mode 100644 index 0000000..15e3026 Binary files /dev/null and b/icons/light/16/link_disabled@2x.png differ diff --git a/icons/light/16/link_normal.png b/icons/light/16/link_normal.png new file mode 100644 index 0000000..9907988 Binary files /dev/null and b/icons/light/16/link_normal.png differ diff --git a/icons/light/16/link_normal@2x.png b/icons/light/16/link_normal@2x.png new file mode 100644 index 0000000..08f443b Binary files /dev/null and b/icons/light/16/link_normal@2x.png differ diff --git a/icons/light/16/mark-watched.png b/icons/light/16/mark-watched.png deleted file mode 100644 index 4cb43df..0000000 Binary files a/icons/light/16/mark-watched.png and /dev/null differ diff --git a/icons/light/16/mark-watched@2x.png b/icons/light/16/mark-watched@2x.png deleted file mode 100644 index 5d232ac..0000000 Binary files a/icons/light/16/mark-watched@2x.png and /dev/null differ diff --git a/icons/light/16/mark-watched_active.png b/icons/light/16/mark-watched_active.png new file mode 100644 index 0000000..dbbdecd Binary files /dev/null and b/icons/light/16/mark-watched_active.png differ diff --git a/icons/light/16/mark-watched_active@2x.png b/icons/light/16/mark-watched_active@2x.png new file mode 100644 index 0000000..1eb6a2b Binary files /dev/null and b/icons/light/16/mark-watched_active@2x.png differ diff --git a/icons/light/16/mark-watched_disabled.png b/icons/light/16/mark-watched_disabled.png new file mode 100644 index 0000000..566ba32 Binary files /dev/null and b/icons/light/16/mark-watched_disabled.png differ diff --git a/icons/light/16/mark-watched_disabled@2x.png b/icons/light/16/mark-watched_disabled@2x.png new file mode 100644 index 0000000..d100429 Binary files /dev/null and b/icons/light/16/mark-watched_disabled@2x.png differ diff --git a/icons/light/16/mark-watched_normal.png b/icons/light/16/mark-watched_normal.png new file mode 100644 index 0000000..a8ec76b Binary files /dev/null and b/icons/light/16/mark-watched_normal.png differ diff --git a/icons/light/16/mark-watched_normal@2x.png b/icons/light/16/mark-watched_normal@2x.png new file mode 100644 index 0000000..5a43534 Binary files /dev/null and b/icons/light/16/mark-watched_normal@2x.png differ diff --git a/icons/light/16/media-playback-start.png b/icons/light/16/media-playback-start.png deleted file mode 100644 index 0671d08..0000000 Binary files a/icons/light/16/media-playback-start.png and /dev/null differ diff --git a/icons/light/16/media-playback-start@2x.png b/icons/light/16/media-playback-start@2x.png deleted file mode 100644 index 3877ef1..0000000 Binary files a/icons/light/16/media-playback-start@2x.png and /dev/null differ diff --git a/icons/light/16/media-playback-start_active.png b/icons/light/16/media-playback-start_active.png new file mode 100644 index 0000000..0671d08 Binary files /dev/null and b/icons/light/16/media-playback-start_active.png differ diff --git a/icons/light/16/media-playback-start_active@2x.png b/icons/light/16/media-playback-start_active@2x.png new file mode 100644 index 0000000..3877ef1 Binary files /dev/null and b/icons/light/16/media-playback-start_active@2x.png differ diff --git a/icons/light/16/media-playback-start_checked.png b/icons/light/16/media-playback-start_checked.png deleted file mode 100644 index 0671d08..0000000 Binary files a/icons/light/16/media-playback-start_checked.png and /dev/null differ diff --git a/icons/light/16/media-playback-start_checked@2x.png b/icons/light/16/media-playback-start_checked@2x.png deleted file mode 100644 index 3877ef1..0000000 Binary files a/icons/light/16/media-playback-start_checked@2x.png and /dev/null differ diff --git a/icons/light/16/media-playback-start_disabled.png b/icons/light/16/media-playback-start_disabled.png new file mode 100644 index 0000000..30f670b Binary files /dev/null and b/icons/light/16/media-playback-start_disabled.png differ diff --git a/icons/light/16/media-playback-start_disabled@2x.png b/icons/light/16/media-playback-start_disabled@2x.png new file mode 100644 index 0000000..fb3a6ea Binary files /dev/null and b/icons/light/16/media-playback-start_disabled@2x.png differ diff --git a/icons/light/16/media-playback-start_normal.png b/icons/light/16/media-playback-start_normal.png new file mode 100644 index 0000000..b8ed59b Binary files /dev/null and b/icons/light/16/media-playback-start_normal.png differ diff --git a/icons/light/16/media-playback-start_normal@2x.png b/icons/light/16/media-playback-start_normal@2x.png new file mode 100644 index 0000000..0f20873 Binary files /dev/null and b/icons/light/16/media-playback-start_normal@2x.png differ diff --git a/icons/light/16/safesearch.png b/icons/light/16/safesearch.png deleted file mode 100644 index 8af718d..0000000 Binary files a/icons/light/16/safesearch.png and /dev/null differ diff --git a/icons/light/16/safesearch@2x.png b/icons/light/16/safesearch@2x.png deleted file mode 100644 index b77f576..0000000 Binary files a/icons/light/16/safesearch@2x.png and /dev/null differ diff --git a/icons/light/16/safesearch_active.png b/icons/light/16/safesearch_active.png new file mode 100644 index 0000000..8af718d Binary files /dev/null and b/icons/light/16/safesearch_active.png differ diff --git a/icons/light/16/safesearch_active@2x.png b/icons/light/16/safesearch_active@2x.png new file mode 100644 index 0000000..b77f576 Binary files /dev/null and b/icons/light/16/safesearch_active@2x.png differ diff --git a/icons/light/16/safesearch_disabled.png b/icons/light/16/safesearch_disabled.png new file mode 100644 index 0000000..8fe3db3 Binary files /dev/null and b/icons/light/16/safesearch_disabled.png differ diff --git a/icons/light/16/safesearch_disabled@2x.png b/icons/light/16/safesearch_disabled@2x.png new file mode 100644 index 0000000..1faaf0c Binary files /dev/null and b/icons/light/16/safesearch_disabled@2x.png differ diff --git a/icons/light/16/safesearch_normal.png b/icons/light/16/safesearch_normal.png new file mode 100644 index 0000000..2ddb994 Binary files /dev/null and b/icons/light/16/safesearch_normal.png differ diff --git a/icons/light/16/safesearch_normal@2x.png b/icons/light/16/safesearch_normal@2x.png new file mode 100644 index 0000000..6b0f4b9 Binary files /dev/null and b/icons/light/16/safesearch_normal@2x.png differ diff --git a/icons/light/16/search-duration.png b/icons/light/16/search-duration.png deleted file mode 100644 index 16ae94c..0000000 Binary files a/icons/light/16/search-duration.png and /dev/null differ diff --git a/icons/light/16/search-duration@2x.png b/icons/light/16/search-duration@2x.png deleted file mode 100644 index cc38ef6..0000000 Binary files a/icons/light/16/search-duration@2x.png and /dev/null differ diff --git a/icons/light/16/search-duration_active.png b/icons/light/16/search-duration_active.png new file mode 100644 index 0000000..a1d9372 Binary files /dev/null and b/icons/light/16/search-duration_active.png differ diff --git a/icons/light/16/search-duration_active@2x.png b/icons/light/16/search-duration_active@2x.png new file mode 100644 index 0000000..4a38e7e Binary files /dev/null and b/icons/light/16/search-duration_active@2x.png differ diff --git a/icons/light/16/search-duration_disabled.png b/icons/light/16/search-duration_disabled.png new file mode 100644 index 0000000..a1d9372 Binary files /dev/null and b/icons/light/16/search-duration_disabled.png differ diff --git a/icons/light/16/search-duration_disabled@2x.png b/icons/light/16/search-duration_disabled@2x.png new file mode 100644 index 0000000..4a38e7e Binary files /dev/null and b/icons/light/16/search-duration_disabled@2x.png differ diff --git a/icons/light/16/search-duration_normal.png b/icons/light/16/search-duration_normal.png new file mode 100644 index 0000000..a1d9372 Binary files /dev/null and b/icons/light/16/search-duration_normal.png differ diff --git a/icons/light/16/search-duration_normal@2x.png b/icons/light/16/search-duration_normal@2x.png new file mode 100644 index 0000000..4a38e7e Binary files /dev/null and b/icons/light/16/search-duration_normal@2x.png differ diff --git a/icons/light/16/search-quality.png b/icons/light/16/search-quality.png deleted file mode 100644 index 50cc7b4..0000000 Binary files a/icons/light/16/search-quality.png and /dev/null differ diff --git a/icons/light/16/search-quality@2x.png b/icons/light/16/search-quality@2x.png deleted file mode 100644 index d4127f3..0000000 Binary files a/icons/light/16/search-quality@2x.png and /dev/null differ diff --git a/icons/light/16/search-quality_active.png b/icons/light/16/search-quality_active.png new file mode 100644 index 0000000..7b9097a Binary files /dev/null and b/icons/light/16/search-quality_active.png differ diff --git a/icons/light/16/search-quality_active@2x.png b/icons/light/16/search-quality_active@2x.png new file mode 100644 index 0000000..ec85816 Binary files /dev/null and b/icons/light/16/search-quality_active@2x.png differ diff --git a/icons/light/16/search-quality_disabled.png b/icons/light/16/search-quality_disabled.png new file mode 100644 index 0000000..d078775 Binary files /dev/null and b/icons/light/16/search-quality_disabled.png differ diff --git a/icons/light/16/search-quality_disabled@2x.png b/icons/light/16/search-quality_disabled@2x.png new file mode 100644 index 0000000..8671027 Binary files /dev/null and b/icons/light/16/search-quality_disabled@2x.png differ diff --git a/icons/light/16/search-quality_normal.png b/icons/light/16/search-quality_normal.png new file mode 100644 index 0000000..a425cf9 Binary files /dev/null and b/icons/light/16/search-quality_normal.png differ diff --git a/icons/light/16/search-quality_normal@2x.png b/icons/light/16/search-quality_normal@2x.png new file mode 100644 index 0000000..a6f990a Binary files /dev/null and b/icons/light/16/search-quality_normal@2x.png differ diff --git a/icons/light/16/search-sortBy.png b/icons/light/16/search-sortBy.png deleted file mode 100644 index 8fb8356..0000000 Binary files a/icons/light/16/search-sortBy.png and /dev/null differ diff --git a/icons/light/16/search-sortBy@2x.png b/icons/light/16/search-sortBy@2x.png deleted file mode 100644 index 7e42d90..0000000 Binary files a/icons/light/16/search-sortBy@2x.png and /dev/null differ diff --git a/icons/light/16/search-sortBy_active.png b/icons/light/16/search-sortBy_active.png new file mode 100644 index 0000000..07622c0 Binary files /dev/null and b/icons/light/16/search-sortBy_active.png differ diff --git a/icons/light/16/search-sortBy_active@2x.png b/icons/light/16/search-sortBy_active@2x.png new file mode 100644 index 0000000..adedfc9 Binary files /dev/null and b/icons/light/16/search-sortBy_active@2x.png differ diff --git a/icons/light/16/search-sortBy_disabled.png b/icons/light/16/search-sortBy_disabled.png new file mode 100644 index 0000000..8319152 Binary files /dev/null and b/icons/light/16/search-sortBy_disabled.png differ diff --git a/icons/light/16/search-sortBy_disabled@2x.png b/icons/light/16/search-sortBy_disabled@2x.png new file mode 100644 index 0000000..16677d7 Binary files /dev/null and b/icons/light/16/search-sortBy_disabled@2x.png differ diff --git a/icons/light/16/search-sortBy_normal.png b/icons/light/16/search-sortBy_normal.png new file mode 100644 index 0000000..d9c0646 Binary files /dev/null and b/icons/light/16/search-sortBy_normal.png differ diff --git a/icons/light/16/search-sortBy_normal@2x.png b/icons/light/16/search-sortBy_normal@2x.png new file mode 100644 index 0000000..1f3d1e1 Binary files /dev/null and b/icons/light/16/search-sortBy_normal@2x.png differ diff --git a/icons/light/16/search-time.png b/icons/light/16/search-time.png deleted file mode 100644 index a7aaa62..0000000 Binary files a/icons/light/16/search-time.png and /dev/null differ diff --git a/icons/light/16/search-time@2x.png b/icons/light/16/search-time@2x.png deleted file mode 100644 index 3ba32ee..0000000 Binary files a/icons/light/16/search-time@2x.png and /dev/null differ diff --git a/icons/light/16/search-time_active.png b/icons/light/16/search-time_active.png new file mode 100644 index 0000000..2d0c8f7 Binary files /dev/null and b/icons/light/16/search-time_active.png differ diff --git a/icons/light/16/search-time_active@2x.png b/icons/light/16/search-time_active@2x.png new file mode 100644 index 0000000..6caccae Binary files /dev/null and b/icons/light/16/search-time_active@2x.png differ diff --git a/icons/light/16/search-time_disabled.png b/icons/light/16/search-time_disabled.png new file mode 100644 index 0000000..4d93df3 Binary files /dev/null and b/icons/light/16/search-time_disabled.png differ diff --git a/icons/light/16/search-time_disabled@2x.png b/icons/light/16/search-time_disabled@2x.png new file mode 100644 index 0000000..992f29b Binary files /dev/null and b/icons/light/16/search-time_disabled@2x.png differ diff --git a/icons/light/16/search-time_normal.png b/icons/light/16/search-time_normal.png new file mode 100644 index 0000000..59f9bc9 Binary files /dev/null and b/icons/light/16/search-time_normal.png differ diff --git a/icons/light/16/search-time_normal@2x.png b/icons/light/16/search-time_normal@2x.png new file mode 100644 index 0000000..7b388ef Binary files /dev/null and b/icons/light/16/search-time_normal@2x.png differ diff --git a/icons/light/16/show-updated.png b/icons/light/16/show-updated.png deleted file mode 100644 index 8b8fb39..0000000 Binary files a/icons/light/16/show-updated.png and /dev/null differ diff --git a/icons/light/16/show-updated@2x.png b/icons/light/16/show-updated@2x.png deleted file mode 100644 index c33adae..0000000 Binary files a/icons/light/16/show-updated@2x.png and /dev/null differ diff --git a/icons/light/16/show-updated_active.png b/icons/light/16/show-updated_active.png new file mode 100644 index 0000000..8b8fb39 Binary files /dev/null and b/icons/light/16/show-updated_active.png differ diff --git a/icons/light/16/show-updated_active@2x.png b/icons/light/16/show-updated_active@2x.png new file mode 100644 index 0000000..c33adae Binary files /dev/null and b/icons/light/16/show-updated_active@2x.png differ diff --git a/icons/light/16/show-updated_disabled.png b/icons/light/16/show-updated_disabled.png new file mode 100644 index 0000000..8b8fb39 Binary files /dev/null and b/icons/light/16/show-updated_disabled.png differ diff --git a/icons/light/16/show-updated_disabled@2x.png b/icons/light/16/show-updated_disabled@2x.png new file mode 100644 index 0000000..c33adae Binary files /dev/null and b/icons/light/16/show-updated_disabled@2x.png differ diff --git a/icons/light/16/show-updated_normal.png b/icons/light/16/show-updated_normal.png new file mode 100644 index 0000000..8b8fb39 Binary files /dev/null and b/icons/light/16/show-updated_normal.png differ diff --git a/icons/light/16/show-updated_normal@2x.png b/icons/light/16/show-updated_normal@2x.png new file mode 100644 index 0000000..c33adae Binary files /dev/null and b/icons/light/16/show-updated_normal@2x.png differ diff --git a/icons/light/16/sofa_active.png b/icons/light/16/sofa_active.png new file mode 100644 index 0000000..25ba02b Binary files /dev/null and b/icons/light/16/sofa_active.png differ diff --git a/icons/light/16/sofa_active@2x.png b/icons/light/16/sofa_active@2x.png new file mode 100644 index 0000000..d5e0f8a Binary files /dev/null and b/icons/light/16/sofa_active@2x.png differ diff --git a/icons/light/16/sofa_disabled.png b/icons/light/16/sofa_disabled.png new file mode 100644 index 0000000..25ba02b Binary files /dev/null and b/icons/light/16/sofa_disabled.png differ diff --git a/icons/light/16/sofa_disabled@2x.png b/icons/light/16/sofa_disabled@2x.png new file mode 100644 index 0000000..d5e0f8a Binary files /dev/null and b/icons/light/16/sofa_disabled@2x.png differ diff --git a/icons/light/16/sofa_normal.png b/icons/light/16/sofa_normal.png new file mode 100644 index 0000000..25ba02b Binary files /dev/null and b/icons/light/16/sofa_normal.png differ diff --git a/icons/light/16/sofa_normal@2x.png b/icons/light/16/sofa_normal@2x.png new file mode 100644 index 0000000..d5e0f8a Binary files /dev/null and b/icons/light/16/sofa_normal@2x.png differ diff --git a/icons/light/16/sort.png b/icons/light/16/sort.png deleted file mode 100644 index 1c22954..0000000 Binary files a/icons/light/16/sort.png and /dev/null differ diff --git a/icons/light/16/sort@2x.png b/icons/light/16/sort@2x.png deleted file mode 100644 index 8f84953..0000000 Binary files a/icons/light/16/sort@2x.png and /dev/null differ diff --git a/icons/light/16/sort_active.png b/icons/light/16/sort_active.png new file mode 100644 index 0000000..1c22954 Binary files /dev/null and b/icons/light/16/sort_active.png differ diff --git a/icons/light/16/sort_active@2x.png b/icons/light/16/sort_active@2x.png new file mode 100644 index 0000000..8f84953 Binary files /dev/null and b/icons/light/16/sort_active@2x.png differ diff --git a/icons/light/16/sort_disabled.png b/icons/light/16/sort_disabled.png new file mode 100644 index 0000000..8b9bb37 Binary files /dev/null and b/icons/light/16/sort_disabled.png differ diff --git a/icons/light/16/sort_disabled@2x.png b/icons/light/16/sort_disabled@2x.png new file mode 100644 index 0000000..3dd2f5c Binary files /dev/null and b/icons/light/16/sort_disabled@2x.png differ diff --git a/icons/light/16/sort_normal.png b/icons/light/16/sort_normal.png new file mode 100644 index 0000000..21aab58 Binary files /dev/null and b/icons/light/16/sort_normal.png differ diff --git a/icons/light/16/sort_normal@2x.png b/icons/light/16/sort_normal@2x.png new file mode 100644 index 0000000..8442c30 Binary files /dev/null and b/icons/light/16/sort_normal@2x.png differ diff --git a/icons/light/16/twitter.png b/icons/light/16/twitter.png deleted file mode 100644 index 2d597d9..0000000 Binary files a/icons/light/16/twitter.png and /dev/null differ diff --git a/icons/light/16/twitter@2x.png b/icons/light/16/twitter@2x.png deleted file mode 100644 index 6a74c2a..0000000 Binary files a/icons/light/16/twitter@2x.png and /dev/null differ diff --git a/icons/light/16/twitter_active.png b/icons/light/16/twitter_active.png new file mode 100644 index 0000000..2d597d9 Binary files /dev/null and b/icons/light/16/twitter_active.png differ diff --git a/icons/light/16/twitter_active@2x.png b/icons/light/16/twitter_active@2x.png new file mode 100644 index 0000000..6a74c2a Binary files /dev/null and b/icons/light/16/twitter_active@2x.png differ diff --git a/icons/light/16/twitter_disabled.png b/icons/light/16/twitter_disabled.png new file mode 100644 index 0000000..86a8b63 Binary files /dev/null and b/icons/light/16/twitter_disabled.png differ diff --git a/icons/light/16/twitter_disabled@2x.png b/icons/light/16/twitter_disabled@2x.png new file mode 100644 index 0000000..a7744b4 Binary files /dev/null and b/icons/light/16/twitter_disabled@2x.png differ diff --git a/icons/light/16/twitter_normal.png b/icons/light/16/twitter_normal.png new file mode 100644 index 0000000..ad651de Binary files /dev/null and b/icons/light/16/twitter_normal.png differ diff --git a/icons/light/16/twitter_normal@2x.png b/icons/light/16/twitter_normal@2x.png new file mode 100644 index 0000000..8cee291 Binary files /dev/null and b/icons/light/16/twitter_normal@2x.png differ diff --git a/icons/light/16/unwatched.png b/icons/light/16/unwatched.png deleted file mode 100644 index e3fe022..0000000 Binary files a/icons/light/16/unwatched.png and /dev/null differ diff --git a/icons/light/16/unwatched@2x.png b/icons/light/16/unwatched@2x.png deleted file mode 100644 index daaea3f..0000000 Binary files a/icons/light/16/unwatched@2x.png and /dev/null differ diff --git a/icons/light/16/unwatched_active.png b/icons/light/16/unwatched_active.png new file mode 100644 index 0000000..e3fe022 Binary files /dev/null and b/icons/light/16/unwatched_active.png differ diff --git a/icons/light/16/unwatched_active@2x.png b/icons/light/16/unwatched_active@2x.png new file mode 100644 index 0000000..daaea3f Binary files /dev/null and b/icons/light/16/unwatched_active@2x.png differ diff --git a/icons/light/16/unwatched_disabled.png b/icons/light/16/unwatched_disabled.png new file mode 100644 index 0000000..4cc9393 Binary files /dev/null and b/icons/light/16/unwatched_disabled.png differ diff --git a/icons/light/16/unwatched_disabled@2x.png b/icons/light/16/unwatched_disabled@2x.png new file mode 100644 index 0000000..4a45a1c Binary files /dev/null and b/icons/light/16/unwatched_disabled@2x.png differ diff --git a/icons/light/16/unwatched_normal.png b/icons/light/16/unwatched_normal.png new file mode 100644 index 0000000..1d49bb4 Binary files /dev/null and b/icons/light/16/unwatched_normal.png differ diff --git a/icons/light/16/unwatched_normal@2x.png b/icons/light/16/unwatched_normal@2x.png new file mode 100644 index 0000000..a436793 Binary files /dev/null and b/icons/light/16/unwatched_normal@2x.png differ diff --git a/icons/light/16/video-display.png b/icons/light/16/video-display.png deleted file mode 100644 index f5021bd..0000000 Binary files a/icons/light/16/video-display.png and /dev/null differ diff --git a/icons/light/16/video-display@2x.png b/icons/light/16/video-display@2x.png deleted file mode 100644 index 6daa132..0000000 Binary files a/icons/light/16/video-display@2x.png and /dev/null differ diff --git a/icons/light/16/video-display_active.png b/icons/light/16/video-display_active.png new file mode 100644 index 0000000..f5021bd Binary files /dev/null and b/icons/light/16/video-display_active.png differ diff --git a/icons/light/16/video-display_active@2x.png b/icons/light/16/video-display_active@2x.png new file mode 100644 index 0000000..6daa132 Binary files /dev/null and b/icons/light/16/video-display_active@2x.png differ diff --git a/icons/light/16/video-display_disabled.png b/icons/light/16/video-display_disabled.png new file mode 100644 index 0000000..8fd4d26 Binary files /dev/null and b/icons/light/16/video-display_disabled.png differ diff --git a/icons/light/16/video-display_disabled@2x.png b/icons/light/16/video-display_disabled@2x.png new file mode 100644 index 0000000..4c5bc91 Binary files /dev/null and b/icons/light/16/video-display_disabled@2x.png differ diff --git a/icons/light/16/video-display_normal.png b/icons/light/16/video-display_normal.png new file mode 100644 index 0000000..2a35461 Binary files /dev/null and b/icons/light/16/video-display_normal.png differ diff --git a/icons/light/16/video-display_normal@2x.png b/icons/light/16/video-display_normal@2x.png new file mode 100644 index 0000000..aec77c5 Binary files /dev/null and b/icons/light/16/video-display_normal@2x.png differ diff --git a/icons/light/16/worldwide.png b/icons/light/16/worldwide.png deleted file mode 100644 index 97218d0..0000000 Binary files a/icons/light/16/worldwide.png and /dev/null differ diff --git a/icons/light/16/worldwide@2x.png b/icons/light/16/worldwide@2x.png deleted file mode 100644 index 41d22d8..0000000 Binary files a/icons/light/16/worldwide@2x.png and /dev/null differ diff --git a/icons/light/16/worldwide_active.png b/icons/light/16/worldwide_active.png new file mode 100644 index 0000000..97218d0 Binary files /dev/null and b/icons/light/16/worldwide_active.png differ diff --git a/icons/light/16/worldwide_active@2x.png b/icons/light/16/worldwide_active@2x.png new file mode 100644 index 0000000..41d22d8 Binary files /dev/null and b/icons/light/16/worldwide_active@2x.png differ diff --git a/icons/light/16/worldwide_disabled.png b/icons/light/16/worldwide_disabled.png new file mode 100644 index 0000000..4eab4cb Binary files /dev/null and b/icons/light/16/worldwide_disabled.png differ diff --git a/icons/light/16/worldwide_disabled@2x.png b/icons/light/16/worldwide_disabled@2x.png new file mode 100644 index 0000000..01868ae Binary files /dev/null and b/icons/light/16/worldwide_disabled@2x.png differ diff --git a/icons/light/16/worldwide_normal.png b/icons/light/16/worldwide_normal.png new file mode 100644 index 0000000..8fa121c Binary files /dev/null and b/icons/light/16/worldwide_normal.png differ diff --git a/icons/light/16/worldwide_normal@2x.png b/icons/light/16/worldwide_normal@2x.png new file mode 100644 index 0000000..43c7028 Binary files /dev/null and b/icons/light/16/worldwide_normal@2x.png differ diff --git a/icons/light/24/content-loading_active.png b/icons/light/24/content-loading_active.png new file mode 100644 index 0000000..6602be0 Binary files /dev/null and b/icons/light/24/content-loading_active.png differ diff --git a/icons/light/24/content-loading_active@2x.png b/icons/light/24/content-loading_active@2x.png new file mode 100644 index 0000000..09d45b7 Binary files /dev/null and b/icons/light/24/content-loading_active@2x.png differ diff --git a/icons/light/24/content-loading_disabled.png b/icons/light/24/content-loading_disabled.png new file mode 100644 index 0000000..f711867 Binary files /dev/null and b/icons/light/24/content-loading_disabled.png differ diff --git a/icons/light/24/content-loading_disabled@2x.png b/icons/light/24/content-loading_disabled@2x.png new file mode 100644 index 0000000..fd6c58e Binary files /dev/null and b/icons/light/24/content-loading_disabled@2x.png differ diff --git a/icons/light/24/content-loading_normal.png b/icons/light/24/content-loading_normal.png new file mode 100644 index 0000000..cc4dba8 Binary files /dev/null and b/icons/light/24/content-loading_normal.png differ diff --git a/icons/light/24/content-loading_normal@2x.png b/icons/light/24/content-loading_normal@2x.png new file mode 100644 index 0000000..b9387e0 Binary files /dev/null and b/icons/light/24/content-loading_normal@2x.png differ diff --git a/icons/light/24/document-save_active.png b/icons/light/24/document-save_active.png new file mode 100644 index 0000000..d867c6d Binary files /dev/null and b/icons/light/24/document-save_active.png differ diff --git a/icons/light/24/document-save_active@2x.png b/icons/light/24/document-save_active@2x.png new file mode 100644 index 0000000..c80ac53 Binary files /dev/null and b/icons/light/24/document-save_active@2x.png differ diff --git a/icons/light/24/document-save_disabled.png b/icons/light/24/document-save_disabled.png new file mode 100644 index 0000000..d9eca4c Binary files /dev/null and b/icons/light/24/document-save_disabled.png differ diff --git a/icons/light/24/document-save_disabled@2x.png b/icons/light/24/document-save_disabled@2x.png new file mode 100644 index 0000000..730ab02 Binary files /dev/null and b/icons/light/24/document-save_disabled@2x.png differ diff --git a/icons/light/24/document-save_normal.png b/icons/light/24/document-save_normal.png new file mode 100644 index 0000000..abf9c7d Binary files /dev/null and b/icons/light/24/document-save_normal.png differ diff --git a/icons/light/24/document-save_normal@2x.png b/icons/light/24/document-save_normal@2x.png new file mode 100644 index 0000000..8f1aa4e Binary files /dev/null and b/icons/light/24/document-save_normal@2x.png differ diff --git a/icons/light/24/edit-find.png b/icons/light/24/edit-find.png deleted file mode 100644 index be603af..0000000 Binary files a/icons/light/24/edit-find.png and /dev/null differ diff --git a/icons/light/24/edit-find@2x.png b/icons/light/24/edit-find@2x.png deleted file mode 100644 index bdf4071..0000000 Binary files a/icons/light/24/edit-find@2x.png and /dev/null differ diff --git a/icons/light/24/edit-find_active.png b/icons/light/24/edit-find_active.png new file mode 100644 index 0000000..be603af Binary files /dev/null and b/icons/light/24/edit-find_active.png differ diff --git a/icons/light/24/edit-find_active@2x.png b/icons/light/24/edit-find_active@2x.png new file mode 100644 index 0000000..bdf4071 Binary files /dev/null and b/icons/light/24/edit-find_active@2x.png differ diff --git a/icons/light/24/edit-find_disabled.png b/icons/light/24/edit-find_disabled.png new file mode 100644 index 0000000..d5fe0a4 Binary files /dev/null and b/icons/light/24/edit-find_disabled.png differ diff --git a/icons/light/24/edit-find_disabled@2x.png b/icons/light/24/edit-find_disabled@2x.png new file mode 100644 index 0000000..250427e Binary files /dev/null and b/icons/light/24/edit-find_disabled@2x.png differ diff --git a/icons/light/24/edit-find_normal.png b/icons/light/24/edit-find_normal.png new file mode 100644 index 0000000..cc224be Binary files /dev/null and b/icons/light/24/edit-find_normal.png differ diff --git a/icons/light/24/edit-find_normal@2x.png b/icons/light/24/edit-find_normal@2x.png new file mode 100644 index 0000000..e6390ab Binary files /dev/null and b/icons/light/24/edit-find_normal@2x.png differ diff --git a/icons/light/24/media-playback-pause_active.png b/icons/light/24/media-playback-pause_active.png new file mode 100644 index 0000000..1d21e1f Binary files /dev/null and b/icons/light/24/media-playback-pause_active.png differ diff --git a/icons/light/24/media-playback-pause_active@2x.png b/icons/light/24/media-playback-pause_active@2x.png new file mode 100644 index 0000000..42aa1b0 Binary files /dev/null and b/icons/light/24/media-playback-pause_active@2x.png differ diff --git a/icons/light/24/media-playback-pause_disabled.png b/icons/light/24/media-playback-pause_disabled.png new file mode 100644 index 0000000..80ddcfb Binary files /dev/null and b/icons/light/24/media-playback-pause_disabled.png differ diff --git a/icons/light/24/media-playback-pause_disabled@2x.png b/icons/light/24/media-playback-pause_disabled@2x.png new file mode 100644 index 0000000..0f15c85 Binary files /dev/null and b/icons/light/24/media-playback-pause_disabled@2x.png differ diff --git a/icons/light/24/media-playback-pause_normal.png b/icons/light/24/media-playback-pause_normal.png new file mode 100644 index 0000000..76c4c1c Binary files /dev/null and b/icons/light/24/media-playback-pause_normal.png differ diff --git a/icons/light/24/media-playback-pause_normal@2x.png b/icons/light/24/media-playback-pause_normal@2x.png new file mode 100644 index 0000000..2679d3e Binary files /dev/null and b/icons/light/24/media-playback-pause_normal@2x.png differ diff --git a/icons/light/24/media-playback-start_active.png b/icons/light/24/media-playback-start_active.png new file mode 100644 index 0000000..f8553a4 Binary files /dev/null and b/icons/light/24/media-playback-start_active.png differ diff --git a/icons/light/24/media-playback-start_active@2x.png b/icons/light/24/media-playback-start_active@2x.png new file mode 100644 index 0000000..48c26e5 Binary files /dev/null and b/icons/light/24/media-playback-start_active@2x.png differ diff --git a/icons/light/24/media-playback-start_disabled.png b/icons/light/24/media-playback-start_disabled.png new file mode 100644 index 0000000..2669b0a Binary files /dev/null and b/icons/light/24/media-playback-start_disabled.png differ diff --git a/icons/light/24/media-playback-start_disabled@2x.png b/icons/light/24/media-playback-start_disabled@2x.png new file mode 100644 index 0000000..81b6ac2 Binary files /dev/null and b/icons/light/24/media-playback-start_disabled@2x.png differ diff --git a/icons/light/24/media-playback-start_normal.png b/icons/light/24/media-playback-start_normal.png new file mode 100644 index 0000000..e810d59 Binary files /dev/null and b/icons/light/24/media-playback-start_normal.png differ diff --git a/icons/light/24/media-playback-start_normal@2x.png b/icons/light/24/media-playback-start_normal@2x.png new file mode 100644 index 0000000..353dfcc Binary files /dev/null and b/icons/light/24/media-playback-start_normal@2x.png differ diff --git a/icons/light/24/media-playback-stop_active.png b/icons/light/24/media-playback-stop_active.png new file mode 100644 index 0000000..43ebe95 Binary files /dev/null and b/icons/light/24/media-playback-stop_active.png differ diff --git a/icons/light/24/media-playback-stop_active@2x.png b/icons/light/24/media-playback-stop_active@2x.png new file mode 100644 index 0000000..f2d62e2 Binary files /dev/null and b/icons/light/24/media-playback-stop_active@2x.png differ diff --git a/icons/light/24/media-playback-stop_disabled.png b/icons/light/24/media-playback-stop_disabled.png new file mode 100644 index 0000000..583d710 Binary files /dev/null and b/icons/light/24/media-playback-stop_disabled.png differ diff --git a/icons/light/24/media-playback-stop_disabled@2x.png b/icons/light/24/media-playback-stop_disabled@2x.png new file mode 100644 index 0000000..b1b8465 Binary files /dev/null and b/icons/light/24/media-playback-stop_disabled@2x.png differ diff --git a/icons/light/24/media-playback-stop_normal.png b/icons/light/24/media-playback-stop_normal.png new file mode 100644 index 0000000..80a2f75 Binary files /dev/null and b/icons/light/24/media-playback-stop_normal.png differ diff --git a/icons/light/24/media-playback-stop_normal@2x.png b/icons/light/24/media-playback-stop_normal@2x.png new file mode 100644 index 0000000..3282a34 Binary files /dev/null and b/icons/light/24/media-playback-stop_normal@2x.png differ diff --git a/icons/light/24/media-skip-forward_active.png b/icons/light/24/media-skip-forward_active.png new file mode 100644 index 0000000..7477e2b Binary files /dev/null and b/icons/light/24/media-skip-forward_active.png differ diff --git a/icons/light/24/media-skip-forward_active@2x.png b/icons/light/24/media-skip-forward_active@2x.png new file mode 100644 index 0000000..5f612af Binary files /dev/null and b/icons/light/24/media-skip-forward_active@2x.png differ diff --git a/icons/light/24/media-skip-forward_disabled.png b/icons/light/24/media-skip-forward_disabled.png new file mode 100644 index 0000000..000f095 Binary files /dev/null and b/icons/light/24/media-skip-forward_disabled.png differ diff --git a/icons/light/24/media-skip-forward_disabled@2x.png b/icons/light/24/media-skip-forward_disabled@2x.png new file mode 100644 index 0000000..3cac3ff Binary files /dev/null and b/icons/light/24/media-skip-forward_disabled@2x.png differ diff --git a/icons/light/24/media-skip-forward_normal.png b/icons/light/24/media-skip-forward_normal.png new file mode 100644 index 0000000..1302c19 Binary files /dev/null and b/icons/light/24/media-skip-forward_normal.png differ diff --git a/icons/light/24/media-skip-forward_normal@2x.png b/icons/light/24/media-skip-forward_normal@2x.png new file mode 100644 index 0000000..4592767 Binary files /dev/null and b/icons/light/24/media-skip-forward_normal@2x.png differ diff --git a/icons/light/24/open-menu_active.png b/icons/light/24/open-menu_active.png new file mode 100644 index 0000000..c2f2c2a Binary files /dev/null and b/icons/light/24/open-menu_active.png differ diff --git a/icons/light/24/open-menu_active@2x.png b/icons/light/24/open-menu_active@2x.png new file mode 100644 index 0000000..46711e2 Binary files /dev/null and b/icons/light/24/open-menu_active@2x.png differ diff --git a/icons/light/24/open-menu_disabled.png b/icons/light/24/open-menu_disabled.png new file mode 100644 index 0000000..7c8198c Binary files /dev/null and b/icons/light/24/open-menu_disabled.png differ diff --git a/icons/light/24/open-menu_disabled@2x.png b/icons/light/24/open-menu_disabled@2x.png new file mode 100644 index 0000000..9409ba0 Binary files /dev/null and b/icons/light/24/open-menu_disabled@2x.png differ diff --git a/icons/light/24/open-menu_normal.png b/icons/light/24/open-menu_normal.png new file mode 100644 index 0000000..57e8bc7 Binary files /dev/null and b/icons/light/24/open-menu_normal.png differ diff --git a/icons/light/24/open-menu_normal@2x.png b/icons/light/24/open-menu_normal@2x.png new file mode 100644 index 0000000..2492fbb Binary files /dev/null and b/icons/light/24/open-menu_normal@2x.png differ diff --git a/icons/light/24/refine-search.png b/icons/light/24/refine-search.png deleted file mode 100644 index be603af..0000000 Binary files a/icons/light/24/refine-search.png and /dev/null differ diff --git a/icons/light/24/refine-search@2x.png b/icons/light/24/refine-search@2x.png deleted file mode 100644 index bdf4071..0000000 Binary files a/icons/light/24/refine-search@2x.png and /dev/null differ diff --git a/icons/light/24/refine-search_active.png b/icons/light/24/refine-search_active.png new file mode 100644 index 0000000..be603af Binary files /dev/null and b/icons/light/24/refine-search_active.png differ diff --git a/icons/light/24/refine-search_active@2x.png b/icons/light/24/refine-search_active@2x.png new file mode 100644 index 0000000..bdf4071 Binary files /dev/null and b/icons/light/24/refine-search_active@2x.png differ diff --git a/icons/light/24/refine-search_disabled.png b/icons/light/24/refine-search_disabled.png new file mode 100644 index 0000000..d5fe0a4 Binary files /dev/null and b/icons/light/24/refine-search_disabled.png differ diff --git a/icons/light/24/refine-search_disabled@2x.png b/icons/light/24/refine-search_disabled@2x.png new file mode 100644 index 0000000..250427e Binary files /dev/null and b/icons/light/24/refine-search_disabled@2x.png differ diff --git a/icons/light/24/refine-search_normal.png b/icons/light/24/refine-search_normal.png new file mode 100644 index 0000000..cc224be Binary files /dev/null and b/icons/light/24/refine-search_normal.png differ diff --git a/icons/light/24/refine-search_normal@2x.png b/icons/light/24/refine-search_normal@2x.png new file mode 100644 index 0000000..e6390ab Binary files /dev/null and b/icons/light/24/refine-search_normal@2x.png differ diff --git a/icons/light/24/view-fullscreen_active.png b/icons/light/24/view-fullscreen_active.png new file mode 100644 index 0000000..57bcdcc Binary files /dev/null and b/icons/light/24/view-fullscreen_active.png differ diff --git a/icons/light/24/view-fullscreen_active@2x.png b/icons/light/24/view-fullscreen_active@2x.png new file mode 100644 index 0000000..31ff61e Binary files /dev/null and b/icons/light/24/view-fullscreen_active@2x.png differ diff --git a/icons/light/24/view-fullscreen_disabled.png b/icons/light/24/view-fullscreen_disabled.png new file mode 100644 index 0000000..6d4024a Binary files /dev/null and b/icons/light/24/view-fullscreen_disabled.png differ diff --git a/icons/light/24/view-fullscreen_disabled@2x.png b/icons/light/24/view-fullscreen_disabled@2x.png new file mode 100644 index 0000000..c978b24 Binary files /dev/null and b/icons/light/24/view-fullscreen_disabled@2x.png differ diff --git a/icons/light/24/view-fullscreen_normal.png b/icons/light/24/view-fullscreen_normal.png new file mode 100644 index 0000000..f77a04c Binary files /dev/null and b/icons/light/24/view-fullscreen_normal.png differ diff --git a/icons/light/24/view-fullscreen_normal@2x.png b/icons/light/24/view-fullscreen_normal@2x.png new file mode 100644 index 0000000..324bb06 Binary files /dev/null and b/icons/light/24/view-fullscreen_normal@2x.png differ diff --git a/icons/light/24/view-list_active.png b/icons/light/24/view-list_active.png new file mode 100644 index 0000000..0155427 Binary files /dev/null and b/icons/light/24/view-list_active.png differ diff --git a/icons/light/24/view-list_active@2x.png b/icons/light/24/view-list_active@2x.png new file mode 100644 index 0000000..40d524b Binary files /dev/null and b/icons/light/24/view-list_active@2x.png differ diff --git a/icons/light/24/view-list_disabled.png b/icons/light/24/view-list_disabled.png new file mode 100644 index 0000000..723e305 Binary files /dev/null and b/icons/light/24/view-list_disabled.png differ diff --git a/icons/light/24/view-list_disabled@2x.png b/icons/light/24/view-list_disabled@2x.png new file mode 100644 index 0000000..aa2fe2c Binary files /dev/null and b/icons/light/24/view-list_disabled@2x.png differ diff --git a/icons/light/24/view-list_normal.png b/icons/light/24/view-list_normal.png new file mode 100644 index 0000000..6808966 Binary files /dev/null and b/icons/light/24/view-list_normal.png differ diff --git a/icons/light/24/view-list_normal@2x.png b/icons/light/24/view-list_normal@2x.png new file mode 100644 index 0000000..600a326 Binary files /dev/null and b/icons/light/24/view-list_normal@2x.png differ diff --git a/icons/light/24/view-restore_active.png b/icons/light/24/view-restore_active.png new file mode 100644 index 0000000..20fbaaf Binary files /dev/null and b/icons/light/24/view-restore_active.png differ diff --git a/icons/light/24/view-restore_active@2x.png b/icons/light/24/view-restore_active@2x.png new file mode 100644 index 0000000..d45e8dd Binary files /dev/null and b/icons/light/24/view-restore_active@2x.png differ diff --git a/icons/light/24/view-restore_disabled.png b/icons/light/24/view-restore_disabled.png new file mode 100644 index 0000000..5f26ebe Binary files /dev/null and b/icons/light/24/view-restore_disabled.png differ diff --git a/icons/light/24/view-restore_disabled@2x.png b/icons/light/24/view-restore_disabled@2x.png new file mode 100644 index 0000000..fb7fa95 Binary files /dev/null and b/icons/light/24/view-restore_disabled@2x.png differ diff --git a/icons/light/24/view-restore_normal.png b/icons/light/24/view-restore_normal.png new file mode 100644 index 0000000..b349ace Binary files /dev/null and b/icons/light/24/view-restore_normal.png differ diff --git a/icons/light/24/view-restore_normal@2x.png b/icons/light/24/view-restore_normal@2x.png new file mode 100644 index 0000000..a905a54 Binary files /dev/null and b/icons/light/24/view-restore_normal@2x.png differ diff --git a/icons/light/32/content-loading.png b/icons/light/32/content-loading.png deleted file mode 100644 index d7a96d9..0000000 Binary files a/icons/light/32/content-loading.png and /dev/null differ diff --git a/icons/light/32/content-loading@2x.png b/icons/light/32/content-loading@2x.png deleted file mode 100644 index 4b41759..0000000 Binary files a/icons/light/32/content-loading@2x.png and /dev/null differ diff --git a/icons/light/32/content-loading_active.png b/icons/light/32/content-loading_active.png new file mode 100644 index 0000000..f5ed0ac Binary files /dev/null and b/icons/light/32/content-loading_active.png differ diff --git a/icons/light/32/content-loading_active@2x.png b/icons/light/32/content-loading_active@2x.png new file mode 100644 index 0000000..0be14e5 Binary files /dev/null and b/icons/light/32/content-loading_active@2x.png differ diff --git a/icons/light/32/content-loading_disabled.png b/icons/light/32/content-loading_disabled.png new file mode 100644 index 0000000..8e29958 Binary files /dev/null and b/icons/light/32/content-loading_disabled.png differ diff --git a/icons/light/32/content-loading_disabled@2x.png b/icons/light/32/content-loading_disabled@2x.png new file mode 100644 index 0000000..4a43299 Binary files /dev/null and b/icons/light/32/content-loading_disabled@2x.png differ diff --git a/icons/light/32/content-loading_normal.png b/icons/light/32/content-loading_normal.png new file mode 100644 index 0000000..f5ee66f Binary files /dev/null and b/icons/light/32/content-loading_normal.png differ diff --git a/icons/light/32/content-loading_normal@2x.png b/icons/light/32/content-loading_normal@2x.png new file mode 100644 index 0000000..3d1d2f9 Binary files /dev/null and b/icons/light/32/content-loading_normal@2x.png differ diff --git a/icons/light/32/document-save.png b/icons/light/32/document-save.png deleted file mode 100644 index 222b2de..0000000 Binary files a/icons/light/32/document-save.png and /dev/null differ diff --git a/icons/light/32/document-save@2x.png b/icons/light/32/document-save@2x.png deleted file mode 100644 index 88f62c3..0000000 Binary files a/icons/light/32/document-save@2x.png and /dev/null differ diff --git a/icons/light/32/document-save_active.png b/icons/light/32/document-save_active.png new file mode 100644 index 0000000..426453b Binary files /dev/null and b/icons/light/32/document-save_active.png differ diff --git a/icons/light/32/document-save_active@2x.png b/icons/light/32/document-save_active@2x.png new file mode 100644 index 0000000..b3fc0e1 Binary files /dev/null and b/icons/light/32/document-save_active@2x.png differ diff --git a/icons/light/32/document-save_disabled.png b/icons/light/32/document-save_disabled.png new file mode 100644 index 0000000..c2e86b2 Binary files /dev/null and b/icons/light/32/document-save_disabled.png differ diff --git a/icons/light/32/document-save_disabled@2x.png b/icons/light/32/document-save_disabled@2x.png new file mode 100644 index 0000000..fa0bef5 Binary files /dev/null and b/icons/light/32/document-save_disabled@2x.png differ diff --git a/icons/light/32/document-save_normal.png b/icons/light/32/document-save_normal.png new file mode 100644 index 0000000..b2d10f2 Binary files /dev/null and b/icons/light/32/document-save_normal.png differ diff --git a/icons/light/32/document-save_normal@2x.png b/icons/light/32/document-save_normal@2x.png new file mode 100644 index 0000000..0d60e0a Binary files /dev/null and b/icons/light/32/document-save_normal@2x.png differ diff --git a/icons/light/32/media-playback-pause.png b/icons/light/32/media-playback-pause.png deleted file mode 100644 index 5aad9d5..0000000 Binary files a/icons/light/32/media-playback-pause.png and /dev/null differ diff --git a/icons/light/32/media-playback-pause@2x.png b/icons/light/32/media-playback-pause@2x.png deleted file mode 100644 index b868bc0..0000000 Binary files a/icons/light/32/media-playback-pause@2x.png and /dev/null differ diff --git a/icons/light/32/media-playback-pause_active.png b/icons/light/32/media-playback-pause_active.png new file mode 100644 index 0000000..62dfe4a Binary files /dev/null and b/icons/light/32/media-playback-pause_active.png differ diff --git a/icons/light/32/media-playback-pause_active@2x.png b/icons/light/32/media-playback-pause_active@2x.png new file mode 100644 index 0000000..6d2682a Binary files /dev/null and b/icons/light/32/media-playback-pause_active@2x.png differ diff --git a/icons/light/32/media-playback-pause_disabled.png b/icons/light/32/media-playback-pause_disabled.png new file mode 100644 index 0000000..a983f07 Binary files /dev/null and b/icons/light/32/media-playback-pause_disabled.png differ diff --git a/icons/light/32/media-playback-pause_disabled@2x.png b/icons/light/32/media-playback-pause_disabled@2x.png new file mode 100644 index 0000000..ad1c4d0 Binary files /dev/null and b/icons/light/32/media-playback-pause_disabled@2x.png differ diff --git a/icons/light/32/media-playback-pause_normal.png b/icons/light/32/media-playback-pause_normal.png new file mode 100644 index 0000000..0b88125 Binary files /dev/null and b/icons/light/32/media-playback-pause_normal.png differ diff --git a/icons/light/32/media-playback-pause_normal@2x.png b/icons/light/32/media-playback-pause_normal@2x.png new file mode 100644 index 0000000..95b6183 Binary files /dev/null and b/icons/light/32/media-playback-pause_normal@2x.png differ diff --git a/icons/light/32/media-playback-start.png b/icons/light/32/media-playback-start.png deleted file mode 100644 index 122b804..0000000 Binary files a/icons/light/32/media-playback-start.png and /dev/null differ diff --git a/icons/light/32/media-playback-start@2x.png b/icons/light/32/media-playback-start@2x.png deleted file mode 100644 index 88b679a..0000000 Binary files a/icons/light/32/media-playback-start@2x.png and /dev/null differ diff --git a/icons/light/32/media-playback-start_active.png b/icons/light/32/media-playback-start_active.png new file mode 100644 index 0000000..5a85eb7 Binary files /dev/null and b/icons/light/32/media-playback-start_active.png differ diff --git a/icons/light/32/media-playback-start_active@2x.png b/icons/light/32/media-playback-start_active@2x.png new file mode 100644 index 0000000..5140aad Binary files /dev/null and b/icons/light/32/media-playback-start_active@2x.png differ diff --git a/icons/light/32/media-playback-start_checked.png b/icons/light/32/media-playback-start_checked.png deleted file mode 100644 index d799121..0000000 Binary files a/icons/light/32/media-playback-start_checked.png and /dev/null differ diff --git a/icons/light/32/media-playback-start_checked@2x.png b/icons/light/32/media-playback-start_checked@2x.png deleted file mode 100644 index 6fb34cd..0000000 Binary files a/icons/light/32/media-playback-start_checked@2x.png and /dev/null differ diff --git a/icons/light/32/media-playback-start_disabled.png b/icons/light/32/media-playback-start_disabled.png new file mode 100644 index 0000000..c31de86 Binary files /dev/null and b/icons/light/32/media-playback-start_disabled.png differ diff --git a/icons/light/32/media-playback-start_disabled@2x.png b/icons/light/32/media-playback-start_disabled@2x.png new file mode 100644 index 0000000..98be7e1 Binary files /dev/null and b/icons/light/32/media-playback-start_disabled@2x.png differ diff --git a/icons/light/32/media-playback-start_normal.png b/icons/light/32/media-playback-start_normal.png new file mode 100644 index 0000000..b309138 Binary files /dev/null and b/icons/light/32/media-playback-start_normal.png differ diff --git a/icons/light/32/media-playback-start_normal@2x.png b/icons/light/32/media-playback-start_normal@2x.png new file mode 100644 index 0000000..5b29781 Binary files /dev/null and b/icons/light/32/media-playback-start_normal@2x.png differ diff --git a/icons/light/32/media-playback-stop.png b/icons/light/32/media-playback-stop.png deleted file mode 100644 index 421075a..0000000 Binary files a/icons/light/32/media-playback-stop.png and /dev/null differ diff --git a/icons/light/32/media-playback-stop@2x.png b/icons/light/32/media-playback-stop@2x.png deleted file mode 100644 index d944741..0000000 Binary files a/icons/light/32/media-playback-stop@2x.png and /dev/null differ diff --git a/icons/light/32/media-playback-stop_active.png b/icons/light/32/media-playback-stop_active.png new file mode 100644 index 0000000..742647f Binary files /dev/null and b/icons/light/32/media-playback-stop_active.png differ diff --git a/icons/light/32/media-playback-stop_active@2x.png b/icons/light/32/media-playback-stop_active@2x.png new file mode 100644 index 0000000..45bdaab Binary files /dev/null and b/icons/light/32/media-playback-stop_active@2x.png differ diff --git a/icons/light/32/media-playback-stop_disabled.png b/icons/light/32/media-playback-stop_disabled.png new file mode 100644 index 0000000..7f73d38 Binary files /dev/null and b/icons/light/32/media-playback-stop_disabled.png differ diff --git a/icons/light/32/media-playback-stop_disabled@2x.png b/icons/light/32/media-playback-stop_disabled@2x.png new file mode 100644 index 0000000..2994d05 Binary files /dev/null and b/icons/light/32/media-playback-stop_disabled@2x.png differ diff --git a/icons/light/32/media-playback-stop_normal.png b/icons/light/32/media-playback-stop_normal.png new file mode 100644 index 0000000..33eb4a5 Binary files /dev/null and b/icons/light/32/media-playback-stop_normal.png differ diff --git a/icons/light/32/media-playback-stop_normal@2x.png b/icons/light/32/media-playback-stop_normal@2x.png new file mode 100644 index 0000000..0bcd605 Binary files /dev/null and b/icons/light/32/media-playback-stop_normal@2x.png differ diff --git a/icons/light/32/media-skip-forward.png b/icons/light/32/media-skip-forward.png deleted file mode 100644 index 6283be9..0000000 Binary files a/icons/light/32/media-skip-forward.png and /dev/null differ diff --git a/icons/light/32/media-skip-forward@2x.png b/icons/light/32/media-skip-forward@2x.png deleted file mode 100644 index e79b0bf..0000000 Binary files a/icons/light/32/media-skip-forward@2x.png and /dev/null differ diff --git a/icons/light/32/media-skip-forward_active.png b/icons/light/32/media-skip-forward_active.png new file mode 100644 index 0000000..1ac5561 Binary files /dev/null and b/icons/light/32/media-skip-forward_active.png differ diff --git a/icons/light/32/media-skip-forward_active@2x.png b/icons/light/32/media-skip-forward_active@2x.png new file mode 100644 index 0000000..3a12f79 Binary files /dev/null and b/icons/light/32/media-skip-forward_active@2x.png differ diff --git a/icons/light/32/media-skip-forward_disabled.png b/icons/light/32/media-skip-forward_disabled.png new file mode 100644 index 0000000..e66cde6 Binary files /dev/null and b/icons/light/32/media-skip-forward_disabled.png differ diff --git a/icons/light/32/media-skip-forward_disabled@2x.png b/icons/light/32/media-skip-forward_disabled@2x.png new file mode 100644 index 0000000..dd53dd5 Binary files /dev/null and b/icons/light/32/media-skip-forward_disabled@2x.png differ diff --git a/icons/light/32/media-skip-forward_normal.png b/icons/light/32/media-skip-forward_normal.png new file mode 100644 index 0000000..c1bb78a Binary files /dev/null and b/icons/light/32/media-skip-forward_normal.png differ diff --git a/icons/light/32/media-skip-forward_normal@2x.png b/icons/light/32/media-skip-forward_normal@2x.png new file mode 100644 index 0000000..f33e266 Binary files /dev/null and b/icons/light/32/media-skip-forward_normal@2x.png differ diff --git a/icons/light/32/open-menu.png b/icons/light/32/open-menu.png deleted file mode 100644 index 981d103..0000000 Binary files a/icons/light/32/open-menu.png and /dev/null differ diff --git a/icons/light/32/open-menu@2x.png b/icons/light/32/open-menu@2x.png deleted file mode 100644 index 6aa8b0d..0000000 Binary files a/icons/light/32/open-menu@2x.png and /dev/null differ diff --git a/icons/light/32/open-menu_active.png b/icons/light/32/open-menu_active.png new file mode 100644 index 0000000..44844fc Binary files /dev/null and b/icons/light/32/open-menu_active.png differ diff --git a/icons/light/32/open-menu_active@2x.png b/icons/light/32/open-menu_active@2x.png new file mode 100644 index 0000000..1ccf9d5 Binary files /dev/null and b/icons/light/32/open-menu_active@2x.png differ diff --git a/icons/light/32/open-menu_disabled.png b/icons/light/32/open-menu_disabled.png new file mode 100644 index 0000000..ae4b3e1 Binary files /dev/null and b/icons/light/32/open-menu_disabled.png differ diff --git a/icons/light/32/open-menu_disabled@2x.png b/icons/light/32/open-menu_disabled@2x.png new file mode 100644 index 0000000..b5b8780 Binary files /dev/null and b/icons/light/32/open-menu_disabled@2x.png differ diff --git a/icons/light/32/open-menu_normal.png b/icons/light/32/open-menu_normal.png new file mode 100644 index 0000000..2f47eca Binary files /dev/null and b/icons/light/32/open-menu_normal.png differ diff --git a/icons/light/32/open-menu_normal@2x.png b/icons/light/32/open-menu_normal@2x.png new file mode 100644 index 0000000..226e0f5 Binary files /dev/null and b/icons/light/32/open-menu_normal@2x.png differ diff --git a/icons/light/32/view-fullscreen.png b/icons/light/32/view-fullscreen.png deleted file mode 100644 index 2725ed2..0000000 Binary files a/icons/light/32/view-fullscreen.png and /dev/null differ diff --git a/icons/light/32/view-fullscreen@2x.png b/icons/light/32/view-fullscreen@2x.png deleted file mode 100644 index ce103b6..0000000 Binary files a/icons/light/32/view-fullscreen@2x.png and /dev/null differ diff --git a/icons/light/32/view-fullscreen_active.png b/icons/light/32/view-fullscreen_active.png new file mode 100644 index 0000000..77df264 Binary files /dev/null and b/icons/light/32/view-fullscreen_active.png differ diff --git a/icons/light/32/view-fullscreen_active@2x.png b/icons/light/32/view-fullscreen_active@2x.png new file mode 100644 index 0000000..46a0de8 Binary files /dev/null and b/icons/light/32/view-fullscreen_active@2x.png differ diff --git a/icons/light/32/view-fullscreen_disabled.png b/icons/light/32/view-fullscreen_disabled.png new file mode 100644 index 0000000..f315a85 Binary files /dev/null and b/icons/light/32/view-fullscreen_disabled.png differ diff --git a/icons/light/32/view-fullscreen_disabled@2x.png b/icons/light/32/view-fullscreen_disabled@2x.png new file mode 100644 index 0000000..0d08db6 Binary files /dev/null and b/icons/light/32/view-fullscreen_disabled@2x.png differ diff --git a/icons/light/32/view-fullscreen_normal.png b/icons/light/32/view-fullscreen_normal.png new file mode 100644 index 0000000..e24727b Binary files /dev/null and b/icons/light/32/view-fullscreen_normal.png differ diff --git a/icons/light/32/view-fullscreen_normal@2x.png b/icons/light/32/view-fullscreen_normal@2x.png new file mode 100644 index 0000000..af706b0 Binary files /dev/null and b/icons/light/32/view-fullscreen_normal@2x.png differ diff --git a/icons/light/32/view-list.png b/icons/light/32/view-list.png deleted file mode 100644 index 0587ecf..0000000 Binary files a/icons/light/32/view-list.png and /dev/null differ diff --git a/icons/light/32/view-list@2x.png b/icons/light/32/view-list@2x.png deleted file mode 100644 index 8cdc9f2..0000000 Binary files a/icons/light/32/view-list@2x.png and /dev/null differ diff --git a/icons/light/32/view-list_active.png b/icons/light/32/view-list_active.png new file mode 100644 index 0000000..ffeef15 Binary files /dev/null and b/icons/light/32/view-list_active.png differ diff --git a/icons/light/32/view-list_active@2x.png b/icons/light/32/view-list_active@2x.png new file mode 100644 index 0000000..278464b Binary files /dev/null and b/icons/light/32/view-list_active@2x.png differ diff --git a/icons/light/32/view-list_disabled.png b/icons/light/32/view-list_disabled.png new file mode 100644 index 0000000..682cdfb Binary files /dev/null and b/icons/light/32/view-list_disabled.png differ diff --git a/icons/light/32/view-list_disabled@2x.png b/icons/light/32/view-list_disabled@2x.png new file mode 100644 index 0000000..98bdc93 Binary files /dev/null and b/icons/light/32/view-list_disabled@2x.png differ diff --git a/icons/light/32/view-list_normal.png b/icons/light/32/view-list_normal.png new file mode 100644 index 0000000..4b4bb59 Binary files /dev/null and b/icons/light/32/view-list_normal.png differ diff --git a/icons/light/32/view-list_normal@2x.png b/icons/light/32/view-list_normal@2x.png new file mode 100644 index 0000000..1c4b29a Binary files /dev/null and b/icons/light/32/view-list_normal@2x.png differ diff --git a/icons/light/32/view-restore.png b/icons/light/32/view-restore.png deleted file mode 100644 index 2a9d4aa..0000000 Binary files a/icons/light/32/view-restore.png and /dev/null differ diff --git a/icons/light/32/view-restore@2x.png b/icons/light/32/view-restore@2x.png deleted file mode 100644 index c93a128..0000000 Binary files a/icons/light/32/view-restore@2x.png and /dev/null differ diff --git a/icons/light/32/view-restore_active.png b/icons/light/32/view-restore_active.png new file mode 100644 index 0000000..913388d Binary files /dev/null and b/icons/light/32/view-restore_active.png differ diff --git a/icons/light/32/view-restore_active@2x.png b/icons/light/32/view-restore_active@2x.png new file mode 100644 index 0000000..ae63bba Binary files /dev/null and b/icons/light/32/view-restore_active@2x.png differ diff --git a/icons/light/32/view-restore_disabled.png b/icons/light/32/view-restore_disabled.png new file mode 100644 index 0000000..280e19e Binary files /dev/null and b/icons/light/32/view-restore_disabled.png differ diff --git a/icons/light/32/view-restore_disabled@2x.png b/icons/light/32/view-restore_disabled@2x.png new file mode 100644 index 0000000..8cc06b4 Binary files /dev/null and b/icons/light/32/view-restore_disabled@2x.png differ diff --git a/icons/light/32/view-restore_normal.png b/icons/light/32/view-restore_normal.png new file mode 100644 index 0000000..bd5f9e3 Binary files /dev/null and b/icons/light/32/view-restore_normal.png differ diff --git a/icons/light/32/view-restore_normal@2x.png b/icons/light/32/view-restore_normal@2x.png new file mode 100644 index 0000000..63e4367 Binary files /dev/null and b/icons/light/32/view-restore_normal@2x.png differ diff --git a/icons/light/88/channels.png b/icons/light/88/channels.png deleted file mode 100644 index 27fbc14..0000000 Binary files a/icons/light/88/channels.png and /dev/null differ diff --git a/icons/light/88/channels@2x.png b/icons/light/88/channels@2x.png deleted file mode 100644 index c83867d..0000000 Binary files a/icons/light/88/channels@2x.png and /dev/null differ diff --git a/icons/light/88/channels_active.png b/icons/light/88/channels_active.png new file mode 100644 index 0000000..896c26b Binary files /dev/null and b/icons/light/88/channels_active.png differ diff --git a/icons/light/88/channels_active@2x.png b/icons/light/88/channels_active@2x.png new file mode 100644 index 0000000..f94f362 Binary files /dev/null and b/icons/light/88/channels_active@2x.png differ diff --git a/icons/light/88/channels_disabled.png b/icons/light/88/channels_disabled.png new file mode 100644 index 0000000..42310f4 Binary files /dev/null and b/icons/light/88/channels_disabled.png differ diff --git a/icons/light/88/channels_disabled@2x.png b/icons/light/88/channels_disabled@2x.png new file mode 100644 index 0000000..9a6c1f5 Binary files /dev/null and b/icons/light/88/channels_disabled@2x.png differ diff --git a/icons/light/88/channels_normal.png b/icons/light/88/channels_normal.png new file mode 100644 index 0000000..5642ee4 Binary files /dev/null and b/icons/light/88/channels_normal.png differ diff --git a/icons/light/88/channels_normal@2x.png b/icons/light/88/channels_normal@2x.png new file mode 100644 index 0000000..f617bc5 Binary files /dev/null and b/icons/light/88/channels_normal@2x.png differ diff --git a/icons/light/88/unwatched.png b/icons/light/88/unwatched.png deleted file mode 100644 index abda7b2..0000000 Binary files a/icons/light/88/unwatched.png and /dev/null differ diff --git a/icons/light/88/unwatched@2x.png b/icons/light/88/unwatched@2x.png deleted file mode 100644 index b04db9b..0000000 Binary files a/icons/light/88/unwatched@2x.png and /dev/null differ diff --git a/icons/light/88/unwatched_active.png b/icons/light/88/unwatched_active.png new file mode 100644 index 0000000..a58f2e9 Binary files /dev/null and b/icons/light/88/unwatched_active.png differ diff --git a/icons/light/88/unwatched_active@2x.png b/icons/light/88/unwatched_active@2x.png new file mode 100644 index 0000000..5b8b919 Binary files /dev/null and b/icons/light/88/unwatched_active@2x.png differ diff --git a/icons/light/88/unwatched_disabled.png b/icons/light/88/unwatched_disabled.png new file mode 100644 index 0000000..2b4fb4e Binary files /dev/null and b/icons/light/88/unwatched_disabled.png differ diff --git a/icons/light/88/unwatched_disabled@2x.png b/icons/light/88/unwatched_disabled@2x.png new file mode 100644 index 0000000..20ae0ea Binary files /dev/null and b/icons/light/88/unwatched_disabled@2x.png differ diff --git a/icons/light/88/unwatched_normal.png b/icons/light/88/unwatched_normal.png new file mode 100644 index 0000000..bf8b053 Binary files /dev/null and b/icons/light/88/unwatched_normal.png differ diff --git a/icons/light/88/unwatched_normal@2x.png b/icons/light/88/unwatched_normal@2x.png new file mode 100644 index 0000000..d5c8efc Binary files /dev/null and b/icons/light/88/unwatched_normal@2x.png differ diff --git a/lib/http/http.pri b/lib/http/http.pri index 6a210c7..b17f3ba 100644 --- a/lib/http/http.pri +++ b/lib/http/http.pri @@ -6,11 +6,16 @@ DEPENDPATH += $$PWD/src HEADERS += \ $$PWD/src/cachedhttp.h \ $$PWD/src/http.h \ + $$PWD/src/httpreply.h \ + $$PWD/src/httprequest.h \ $$PWD/src/localcache.h \ + $$PWD/src/networkhttpreply.h \ $$PWD/src/throttledhttp.h SOURCES += \ $$PWD/src/cachedhttp.cpp \ $$PWD/src/http.cpp \ + $$PWD/src/httpreply.cpp \ $$PWD/src/localcache.cpp \ + $$PWD/src/networkhttpreply.cpp \ $$PWD/src/throttledhttp.cpp diff --git a/lib/http/src/cachedhttp.cpp b/lib/http/src/cachedhttp.cpp index 3c6942d..9762143 100644 --- a/lib/http/src/cachedhttp.cpp +++ b/lib/http/src/cachedhttp.cpp @@ -37,6 +37,7 @@ WrappedHttpReply::WrappedHttpReply(LocalCache *cache, const QByteArray &key, Htt } void WrappedHttpReply::originFinished(const HttpReply &reply) { + qDebug() << reply.statusCode() << reply.url(); if (reply.isSuccessful()) cache->insert(key, reply.body()); emit finished(reply); } @@ -62,9 +63,9 @@ HttpReply *CachedHttp::request(const HttpRequest &req) { const QByteArray key = requestHash(req); const QByteArray value = cache->value(key); if (!value.isNull()) { - qDebug() << "CachedHttp HIT" << req.url; + qDebug() << "HIT" << key << req.url; return new CachedHttpReply(value, req); } - qDebug() << "CachedHttp MISS" << req.url.toString(); + qDebug() << "MISS" << key << req.url; return new WrappedHttpReply(cache, key, http.request(req)); } diff --git a/lib/http/src/http.cpp b/lib/http/src/http.cpp index 7f58d39..f724889 100644 --- a/lib/http/src/http.cpp +++ b/lib/http/src/http.cpp @@ -1,26 +1,21 @@ #include "http.h" -namespace { +#include "networkhttpreply.h" -QNetworkAccessManager *createNetworkAccessManager() { - QNetworkAccessManager *nam = new QNetworkAccessManager(); - return nam; -} +namespace { QNetworkAccessManager *networkAccessManager() { - static QMap nams; - QThread *t = QThread::currentThread(); - QMap::const_iterator i = nams.constFind(t); - if (i != nams.constEnd()) return i.value(); - QNetworkAccessManager *nam = createNetworkAccessManager(); - nams.insert(t, nam); + static thread_local QNetworkAccessManager *nam = new QNetworkAccessManager(); return nam; } int defaultReadTimeout = 10000; +int defaultMaxRetries = 3; } // namespace -Http::Http() : requestHeaders(getDefaultRequestHeaders()), readTimeout(defaultReadTimeout) {} +Http::Http() + : requestHeaders(getDefaultRequestHeaders()), readTimeout(defaultReadTimeout), + maxRetries(defaultMaxRetries) {} void Http::setRequestHeaders(const QMap &headers) { requestHeaders = headers; @@ -68,7 +63,7 @@ QNetworkReply *Http::networkReply(const HttpRequest &req) { request.setRawHeader(it.key(), it.value()); if (req.offset > 0) - request.setRawHeader("Range", QString("bytes=%1-").arg(req.offset).toUtf8()); + request.setRawHeader("Range", QStringLiteral("bytes=%1-").arg(req.offset).toUtf8()); QNetworkAccessManager *manager = networkAccessManager(); @@ -145,161 +140,12 @@ HttpReply *Http::post(const QUrl &url, const QByteArray &body, const QByteArray return request(req); } -NetworkHttpReply::NetworkHttpReply(const HttpRequest &req, Http &http) - : http(http), req(req), retryCount(0) { - if (req.url.isEmpty()) { - qWarning() << "Empty URL"; - } - - networkReply = http.networkReply(req); - setParent(networkReply); - setupReply(); - - readTimeoutTimer = new QTimer(this); - readTimeoutTimer->setInterval(http.getReadTimeout()); - readTimeoutTimer->setSingleShot(true); - connect(readTimeoutTimer, SIGNAL(timeout()), SLOT(readTimeout()), Qt::UniqueConnection); - readTimeoutTimer->start(); -} - -void NetworkHttpReply::setupReply() { - connect(networkReply, SIGNAL(error(QNetworkReply::NetworkError)), - SLOT(replyError(QNetworkReply::NetworkError)), Qt::UniqueConnection); - connect(networkReply, SIGNAL(finished()), SLOT(replyFinished()), Qt::UniqueConnection); - connect(networkReply, SIGNAL(downloadProgress(qint64, qint64)), - SLOT(downloadProgress(qint64, qint64)), Qt::UniqueConnection); -} - -QString NetworkHttpReply::errorMessage() { - return url().toString() + QLatin1Char(' ') + QString::number(statusCode()) + QLatin1Char(' ') + - reasonPhrase(); -} - -void NetworkHttpReply::emitError() { - const QString msg = errorMessage(); -#ifndef QT_NO_DEBUG_OUTPUT - qDebug() << "Http:" << msg; - if (!req.body.isEmpty()) qDebug() << "Http:" << req.body; -#endif - emit error(msg); - emitFinished(); -} - -void NetworkHttpReply::emitFinished() { - readTimeoutTimer->stop(); - - // disconnect to avoid replyFinished() from being called - networkReply->disconnect(); - - emit finished(*this); - - // bye bye my reply - // this will also delete this object and HttpReply as the QNetworkReply is their parent - networkReply->deleteLater(); -} - -void NetworkHttpReply::replyFinished() { - QUrl redirection = networkReply->attribute(QNetworkRequest::RedirectionTargetAttribute).toUrl(); - if (redirection.isValid()) { - HttpRequest redirectReq; - redirectReq.url = redirection; - redirectReq.operation = req.operation; - redirectReq.body = req.body; - redirectReq.offset = req.offset; - QNetworkReply *redirectReply = http.networkReply(redirectReq); - setParent(redirectReply); - networkReply->deleteLater(); - networkReply = redirectReply; - setupReply(); - readTimeoutTimer->start(); - return; - } - - if (isSuccessful()) { - bytes = networkReply->readAll(); - emit data(bytes); - -#ifndef QT_NO_DEBUG_OUTPUT - if (!networkReply->attribute(QNetworkRequest::SourceIsFromCacheAttribute).toBool()) - qDebug() << networkReply->url().toString() << statusCode(); - else - qDebug() << "CACHE" << networkReply->url().toString(); -#endif - } - - emitFinished(); -} - -void NetworkHttpReply::replyError(QNetworkReply::NetworkError code) { - Q_UNUSED(code); - const int status = statusCode(); - if (retryCount <= 3 && status >= 500 && status < 600) { - qDebug() << "Retrying" << req.url; - networkReply->disconnect(); - networkReply->deleteLater(); - QNetworkReply *retryReply = http.networkReply(req); - setParent(retryReply); - networkReply = retryReply; - setupReply(); - retryCount++; - readTimeoutTimer->start(); - } else { - emitError(); - return; - } -} - -void NetworkHttpReply::downloadProgress(qint64 bytesReceived, qint64 /* bytesTotal */) { - // qDebug() << "Downloading" << bytesReceived << bytesTotal << networkReply->url(); - if (bytesReceived > 0 && readTimeoutTimer->isActive()) { - readTimeoutTimer->stop(); - disconnect(networkReply, SIGNAL(downloadProgress(qint64, qint64)), this, - SLOT(downloadProgress(qint64, qint64))); - } -} - -void NetworkHttpReply::readTimeout() { - if (!networkReply) return; - networkReply->disconnect(); - networkReply->abort(); - networkReply->deleteLater(); - - if (retryCount > 3 && (networkReply->operation() != QNetworkAccessManager::GetOperation && - networkReply->operation() != QNetworkAccessManager::HeadOperation)) { - emitError(); - emit finished(*this); - return; - } - - qDebug() << "Timeout" << req.url; - QNetworkReply *retryReply = http.networkReply(req); - setParent(retryReply); - networkReply = retryReply; - setupReply(); - retryCount++; - readTimeoutTimer->start(); -} - -QUrl NetworkHttpReply::url() const { - return networkReply->url(); -} - -int NetworkHttpReply::statusCode() const { - return networkReply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(); -} - -QString NetworkHttpReply::reasonPhrase() const { - return networkReply->attribute(QNetworkRequest::HttpReasonPhraseAttribute).toString(); -} - -const QList NetworkHttpReply::headers() const { - return networkReply->rawHeaderPairs(); -} - -QByteArray NetworkHttpReply::header(const QByteArray &headerName) const { - return networkReply->rawHeader(headerName); +int Http::getMaxRetries() const +{ + return maxRetries; } -QByteArray NetworkHttpReply::body() const { - return bytes; +void Http::setMaxRetries(int value) +{ + maxRetries = value; } diff --git a/lib/http/src/http.h b/lib/http/src/http.h index 23f3754..8ae56cf 100644 --- a/lib/http/src/http.h +++ b/lib/http/src/http.h @@ -3,40 +3,8 @@ #include -class HttpRequest { -public: - HttpRequest() : operation(QNetworkAccessManager::GetOperation), offset(0) {} - QUrl url; - QNetworkAccessManager::Operation operation; - QByteArray body; - uint offset; - QMap headers; -}; - -class HttpReply : public QObject { - Q_OBJECT - -public: - HttpReply(QObject *parent = nullptr) : QObject(parent) {} - virtual QUrl url() const = 0; - virtual int statusCode() const = 0; - int isSuccessful() const { return statusCode() >= 200 && statusCode() < 300; } - virtual QString reasonPhrase() const { return QString(); } - virtual const QList headers() const { - return QList(); - } - virtual QByteArray header(const QByteArray &headerName) const { - Q_UNUSED(headerName); - return QByteArray(); - } - - virtual QByteArray body() const = 0; - -signals: - void data(const QByteArray &bytes); - void error(const QString &message); - void finished(const HttpReply &reply); -}; +#include "httpreply.h" +#include "httprequest.h" class Http { public: @@ -53,6 +21,9 @@ public: void setReadTimeout(int timeout); int getReadTimeout() { return readTimeout; } + int getMaxRetries() const; + void setMaxRetries(int value); + QNetworkReply *networkReply(const HttpRequest &req); virtual HttpReply *request(const HttpRequest &req); HttpReply * @@ -68,38 +39,7 @@ public: private: QMap requestHeaders; int readTimeout; -}; - -class NetworkHttpReply : public HttpReply { - Q_OBJECT - -public: - NetworkHttpReply(const HttpRequest &req, Http &http); - QUrl url() const; - int statusCode() const; - QString reasonPhrase() const; - const QList headers() const; - QByteArray header(const QByteArray &headerName) const; - QByteArray body() const; - -private slots: - void replyFinished(); - void replyError(QNetworkReply::NetworkError); - void downloadProgress(qint64 bytesReceived, qint64 bytesTotal); - void readTimeout(); - -private: - void setupReply(); - QString errorMessage(); - void emitError(); - void emitFinished(); - - Http &http; - HttpRequest req; - QNetworkReply *networkReply; - QTimer *readTimeoutTimer; - int retryCount; - QByteArray bytes; + int maxRetries; }; #endif // HTTP_H diff --git a/lib/http/src/httpreply.cpp b/lib/http/src/httpreply.cpp new file mode 100644 index 0000000..1f853d7 --- /dev/null +++ b/lib/http/src/httpreply.cpp @@ -0,0 +1,20 @@ +#include "httpreply.h" + +HttpReply::HttpReply(QObject *parent) : QObject(parent) {} + +int HttpReply::isSuccessful() const { + return statusCode() >= 200 && statusCode() < 300; +} + +QString HttpReply::reasonPhrase() const { + return QString(); +} + +const QList HttpReply::headers() const { + return QList(); +} + +QByteArray HttpReply::header(const QByteArray &headerName) const { + Q_UNUSED(headerName); + return QByteArray(); +} diff --git a/lib/http/src/httpreply.h b/lib/http/src/httpreply.h new file mode 100644 index 0000000..2d79ff6 --- /dev/null +++ b/lib/http/src/httpreply.h @@ -0,0 +1,25 @@ +#ifndef HTTPREPLY_H +#define HTTPREPLY_H + +#include + +class HttpReply : public QObject { + Q_OBJECT + +public: + HttpReply(QObject *parent = nullptr); + virtual QUrl url() const = 0; + virtual int statusCode() const = 0; + int isSuccessful() const; + virtual QString reasonPhrase() const; + virtual const QList headers() const; + virtual QByteArray header(const QByteArray &headerName) const; + virtual QByteArray body() const = 0; + +signals: + void data(const QByteArray &bytes); + void error(const QString &message); + void finished(const HttpReply &reply); +}; + +#endif // HTTPREPLY_H diff --git a/lib/http/src/httprequest.h b/lib/http/src/httprequest.h new file mode 100644 index 0000000..5bb0b99 --- /dev/null +++ b/lib/http/src/httprequest.h @@ -0,0 +1,16 @@ +#ifndef HTTPREQUEST_H +#define HTTPREQUEST_H + +#include + +class HttpRequest { +public: + HttpRequest() : operation(QNetworkAccessManager::GetOperation), offset(0) {} + QUrl url; + QNetworkAccessManager::Operation operation; + QByteArray body; + uint offset; + QMap headers; +}; + +#endif // HTTPREQUEST_H diff --git a/lib/http/src/localcache.cpp b/lib/http/src/localcache.cpp index 8bee99e..99b9315 100644 --- a/lib/http/src/localcache.cpp +++ b/lib/http/src/localcache.cpp @@ -10,8 +10,7 @@ LocalCache *LocalCache::instance(const char *name) { } LocalCache::LocalCache(const QByteArray &name) - : name(name), maxSeconds(86400 * 30), maxSize(1024 * 1024 * 100), size(0), expiring(false), - insertCount(0) { + : name(name), maxSeconds(86400 * 30), maxSize(1024 * 1024 * 100), size(0), insertCount(0) { directory = QStandardPaths::writableLocation(QStandardPaths::CacheLocation) + QLatin1Char('/') + QLatin1String(name) + QLatin1Char('/'); #ifndef QT_NO_DEBUG_OUTPUT @@ -42,10 +41,9 @@ QByteArray LocalCache::hash(const QByteArray &s) { } bool LocalCache::isCached(const QString &path) { - bool cached = (QFile::exists(path) && - (maxSeconds == 0 || QDateTime::currentDateTimeUtc().toTime_t() - - QFileInfo(path).created().toTime_t() < - maxSeconds)); + bool cached = QFile::exists(path) && + (maxSeconds == 0 || QFileInfo(path).birthTime().secsTo( + QDateTime::currentDateTimeUtc()) < maxSeconds); #ifndef QT_NO_DEBUG_OUTPUT if (!cached) misses++; #endif @@ -71,51 +69,45 @@ QByteArray LocalCache::value(const QByteArray &key) { } void LocalCache::insert(const QByteArray &key, const QByteArray &value) { - const QueueItem item = {key, value}; - insertQueue.append(item); - QTimer::singleShot(0, [this]() { - if (insertQueue.isEmpty()) return; - for (const auto &item : insertQueue) { - const QString path = cachePath(item.key); - const QString parentDir = path.left(path.lastIndexOf('/')); - if (!QFile::exists(parentDir)) { - QDir().mkpath(parentDir); - } - QFile file(path); - if (!file.open(QIODevice::WriteOnly)) { - qWarning() << "Cannot create" << path; - continue; - } - file.write(item.value); - file.close(); - if (size > 0) size += item.value.size(); - } - insertQueue.clear(); - - // expire cache every n inserts - if (maxSize > 0 && ++insertCount % 100 == 0) { - if (size == 0 || size > maxSize) size = expire(); - } - }); + qDebug() << "Inserting" << key; + const QString path = cachePath(key); + const QString parentDir = path.left(path.lastIndexOf(QLatin1Char('/'))); + if (!QFile::exists(parentDir)) { + QDir().mkpath(parentDir); + } + QFile file(path); + if (!file.open(QIODevice::WriteOnly)) { + qWarning() << "Cannot create" << path; + return; + } + file.write(value); + file.close(); + if (size > 0) size += value.size(); + + // expire cache every n inserts + if (maxSize > 0 && ++insertCount % 100 == 0) { + if (size == 0 || size > maxSize) expire(); + } } -bool LocalCache::clear() { +void LocalCache::clear() { #ifndef QT_NO_DEBUG_OUTPUT hits = 0; misses = 0; #endif size = 0; insertCount = 0; - return QDir(directory).removeRecursively(); + mutex.lock(); + QDir(directory).removeRecursively(); + mutex.unlock(); } QString LocalCache::cachePath(const QByteArray &key) const { - return directory + QLatin1String(key.constData()); + return directory + QLatin1String(key); } -qint64 LocalCache::expire() { - if (expiring) return size; - expiring = true; +void LocalCache::expire() { + if (!mutex.tryLock()) return; QDir::Filters filters = QDir::AllDirs | QDir::Files | QDir::NoDotAndDotDot; QDirIterator it(directory, filters, QDirIterator::Subdirectories); @@ -125,7 +117,7 @@ qint64 LocalCache::expire() { while (it.hasNext()) { QString path = it.next(); QFileInfo info = it.fileInfo(); - cacheItems.insert(info.created(), path); + cacheItems.insert(info.birthTime(), path); totalSize += info.size(); qApp->processEvents(); } @@ -152,9 +144,8 @@ qint64 LocalCache::expire() { } #endif - expiring = false; - - return totalSize; + size = totalSize; + mutex.unlock(); } #ifndef QT_NO_DEBUG_OUTPUT diff --git a/lib/http/src/localcache.h b/lib/http/src/localcache.h index ff07109..90725e1 100644 --- a/lib/http/src/localcache.h +++ b/lib/http/src/localcache.h @@ -19,13 +19,13 @@ public: QByteArray value(const QByteArray &key); void insert(const QByteArray &key, const QByteArray &value); - bool clear(); + void clear(); private: LocalCache(const QByteArray &name); QString cachePath(const QByteArray &key) const; bool isCached(const QString &path); - qint64 expire(); + void expire(); #ifndef QT_NO_DEBUG_OUTPUT void debugStats(); #endif @@ -35,13 +35,8 @@ private: uint maxSeconds; qint64 maxSize; qint64 size; - bool expiring; + QMutex mutex; uint insertCount; - struct QueueItem { - QByteArray key; - QByteArray value; - }; - QVector insertQueue; #ifndef QT_NO_DEBUG_OUTPUT uint hits; diff --git a/lib/http/src/networkhttpreply.cpp b/lib/http/src/networkhttpreply.cpp new file mode 100644 index 0000000..c27d77d --- /dev/null +++ b/lib/http/src/networkhttpreply.cpp @@ -0,0 +1,169 @@ +#include "networkhttpreply.h" + +NetworkHttpReply::NetworkHttpReply(const HttpRequest &req, Http &http) + : http(http), req(req), retryCount(0) { + if (req.url.isEmpty()) { + qWarning() << "Empty URL"; + } + + networkReply = http.networkReply(req); + setParent(networkReply); + setupReply(); + + readTimeoutTimer = new QTimer(this); + readTimeoutTimer->setInterval(http.getReadTimeout()); + readTimeoutTimer->setSingleShot(true); + connect(readTimeoutTimer, SIGNAL(timeout()), SLOT(readTimeout()), Qt::UniqueConnection); + readTimeoutTimer->start(); +} + +void NetworkHttpReply::setupReply() { + connect(networkReply, SIGNAL(error(QNetworkReply::NetworkError)), + SLOT(replyError(QNetworkReply::NetworkError)), Qt::UniqueConnection); + connect(networkReply, SIGNAL(finished()), SLOT(replyFinished()), Qt::UniqueConnection); + connect(networkReply, SIGNAL(downloadProgress(qint64, qint64)), + SLOT(downloadProgress(qint64, qint64)), Qt::UniqueConnection); +} + +QString NetworkHttpReply::errorMessage() { + return url().toString() + QLatin1Char(' ') + QString::number(statusCode()) + QLatin1Char(' ') + + reasonPhrase(); +} + +void NetworkHttpReply::emitError() { + const QString msg = errorMessage(); +#ifndef QT_NO_DEBUG_OUTPUT + qDebug() << "Http:" << msg; + if (!req.body.isEmpty()) qDebug() << "Http:" << req.body; +#endif + emit error(msg); + emitFinished(); +} + +void NetworkHttpReply::emitFinished() { + readTimeoutTimer->stop(); + + // disconnect to avoid replyFinished() from being called + networkReply->disconnect(); + + emit finished(*this); + + // bye bye my reply + // this will also delete this object and HttpReply as the QNetworkReply is their parent + networkReply->deleteLater(); +} + +void NetworkHttpReply::replyFinished() { + QUrl redirection = networkReply->attribute(QNetworkRequest::RedirectionTargetAttribute).toUrl(); + if (redirection.isValid()) { + HttpRequest redirectReq; + if (redirection.isRelative()) redirection = networkReply->url().resolved(redirection); + redirectReq.url = redirection; + qDebug() << "Redirected to" << redirectReq.url; + redirectReq.operation = req.operation; + redirectReq.body = req.body; + redirectReq.offset = req.offset; + QNetworkReply *redirectReply = http.networkReply(redirectReq); + setParent(redirectReply); + networkReply->deleteLater(); + networkReply = redirectReply; + setupReply(); + readTimeoutTimer->start(); + return; + } + + if (isSuccessful()) { + bytes = networkReply->readAll(); + emit data(bytes); + +#ifndef QT_NO_DEBUG_OUTPUT + if (!networkReply->attribute(QNetworkRequest::SourceIsFromCacheAttribute).toBool()) + qDebug() << statusCode() << networkReply->url().toString(); + else + qDebug() << "CACHE" << networkReply->url().toString(); +#endif + } + + emitFinished(); +} + +void NetworkHttpReply::replyError(QNetworkReply::NetworkError code) { + Q_UNUSED(code); + const int status = statusCode(); + if (retryCount <= http.getMaxRetries() && status >= 500 && status < 600 && + (networkReply->operation() == QNetworkAccessManager::GetOperation || + networkReply->operation() == QNetworkAccessManager::HeadOperation)) { + qDebug() << "Retrying" << status << QVariant(req.operation).toString() << req.url; + networkReply->disconnect(); + networkReply->deleteLater(); + QNetworkReply *retryReply = http.networkReply(req); + setParent(retryReply); + networkReply = retryReply; + setupReply(); + retryCount++; + readTimeoutTimer->start(); + } else { + emitError(); + return; + } +} + +void NetworkHttpReply::downloadProgress(qint64 bytesReceived, qint64 /* bytesTotal */) { + // qDebug() << "Downloading" << bytesReceived << bytesTotal << networkReply->url(); + if (bytesReceived > 0 && readTimeoutTimer->isActive()) { + readTimeoutTimer->stop(); + disconnect(networkReply, SIGNAL(downloadProgress(qint64, qint64)), this, + SLOT(downloadProgress(qint64, qint64))); + } +} + +void NetworkHttpReply::readTimeout() { + qDebug() << "Timeout" << req.url; + + if (!networkReply) return; + + bool shouldRetry = (networkReply->operation() == QNetworkAccessManager::GetOperation || + networkReply->operation() == QNetworkAccessManager::HeadOperation) && + retryCount < http.getMaxRetries(); + + networkReply->disconnect(); + networkReply->abort(); + networkReply->deleteLater(); + + if (!shouldRetry) { + emitError(); + emit finished(*this); + return; + } + + retryCount++; + QNetworkReply *retryReply = http.networkReply(req); + setParent(retryReply); + networkReply = retryReply; + setupReply(); + readTimeoutTimer->start(); +} + +QUrl NetworkHttpReply::url() const { + return networkReply->url(); +} + +int NetworkHttpReply::statusCode() const { + return networkReply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(); +} + +QString NetworkHttpReply::reasonPhrase() const { + return networkReply->attribute(QNetworkRequest::HttpReasonPhraseAttribute).toString(); +} + +const QList NetworkHttpReply::headers() const { + return networkReply->rawHeaderPairs(); +} + +QByteArray NetworkHttpReply::header(const QByteArray &headerName) const { + return networkReply->rawHeader(headerName); +} + +QByteArray NetworkHttpReply::body() const { + return bytes; +} diff --git a/lib/http/src/networkhttpreply.h b/lib/http/src/networkhttpreply.h new file mode 100644 index 0000000..8d3f6fa --- /dev/null +++ b/lib/http/src/networkhttpreply.h @@ -0,0 +1,42 @@ +#ifndef NETWORKHTTPREPLY_H +#define NETWORKHTTPREPLY_H + +#include + +#include "http.h" +#include "httpreply.h" +#include "httprequest.h" + +class NetworkHttpReply : public HttpReply { + Q_OBJECT + +public: + NetworkHttpReply(const HttpRequest &req, Http &http); + QUrl url() const; + int statusCode() const; + QString reasonPhrase() const; + const QList headers() const; + QByteArray header(const QByteArray &headerName) const; + QByteArray body() const; + +private slots: + void replyFinished(); + void replyError(QNetworkReply::NetworkError); + void downloadProgress(qint64 bytesReceived, qint64 bytesTotal); + void readTimeout(); + +private: + void setupReply(); + QString errorMessage(); + void emitError(); + void emitFinished(); + + Http &http; + HttpRequest req; + QNetworkReply *networkReply; + QTimer *readTimeoutTimer; + int retryCount; + QByteArray bytes; +}; + +#endif // NETWORKHTTPREPLY_H diff --git a/lib/http/src/throttledhttp.cpp b/lib/http/src/throttledhttp.cpp index 7cfb3fd..ce4e6e1 100644 --- a/lib/http/src/throttledhttp.cpp +++ b/lib/http/src/throttledhttp.cpp @@ -31,7 +31,7 @@ void ThrottledHttpReply::checkElapsed() { connect(timer, SIGNAL(timeout()), SLOT(checkElapsed())); } qDebug() << "Throttling" << req.url - << QString("%1ms").arg(milliseconds - elapsedSinceLastRequest); + << QStringLiteral("%1ms").arg(milliseconds - elapsedSinceLastRequest); timer->setInterval(milliseconds - elapsedSinceLastRequest); timer->start(); return; diff --git a/lib/media/src/mpv/mediampv.cpp b/lib/media/src/mpv/mediampv.cpp index b077530..b7cd236 100644 --- a/lib/media/src/mpv/mediampv.cpp +++ b/lib/media/src/mpv/mediampv.cpp @@ -1,7 +1,6 @@ #include "mediampv.h" #include -#include #ifndef MEDIA_AUDIOONLY #include "mpvwidget.h" @@ -85,6 +84,7 @@ MediaMPV::MediaMPV(QObject *parent) : Media(parent), widget(nullptr) { mpv_observe_property(mpv, 0, "duration", MPV_FORMAT_DOUBLE); mpv_observe_property(mpv, 0, "volume", MPV_FORMAT_DOUBLE); mpv_observe_property(mpv, 0, "mute", MPV_FORMAT_FLAG); + mpv_observe_property(mpv, 0, "pause", MPV_FORMAT_FLAG); } // This slot is invoked by wakeup() (through the mpvEvents signal). @@ -109,7 +109,7 @@ void MediaMPV::checkAboutToFinish(qint64 position) { } void MediaMPV::handleMpvEvent(mpv_event *event) { - // qDebug() << event->data; + // qDebug() << event->event_id << event->data; switch (event->event_id) { case MPV_EVENT_START_FILE: clearTrackState(); @@ -121,12 +121,18 @@ void MediaMPV::handleMpvEvent(mpv_event *event) { setState(Media::BufferingState); break; - case MPV_EVENT_FILE_LOADED: - setState(Media::PlayingState); + case MPV_EVENT_PLAYBACK_RESTART: { + int pause; + mpv_get_property(mpv, "pause", MPV_FORMAT_FLAG, &pause); + bool paused = pause == 1; + if (paused) + setState(Media::PausedState); + else + setState(Media::PlayingState); break; + } - case MPV_EVENT_PLAYBACK_RESTART: - case MPV_EVENT_UNPAUSE: + case MPV_EVENT_FILE_LOADED: setState(Media::PlayingState); break; @@ -141,13 +147,9 @@ void MediaMPV::handleMpvEvent(mpv_event *event) { break; } - case MPV_EVENT_PAUSE: - setState(Media::PausedState); - break; - case MPV_EVENT_PROPERTY_CHANGE: { mpv_event_property *prop = (mpv_event_property *)event->data; - // qDebug() << prop->name << prop->data; + qDebug() << prop->name << prop->data; if (strcmp(prop->name, "time-pos") == 0) { if (prop->format == MPV_FORMAT_DOUBLE) { @@ -172,6 +174,23 @@ void MediaMPV::handleMpvEvent(mpv_event *event) { } } + else if (strcmp(prop->name, "pause") == 0) { + if (prop->format == MPV_FORMAT_FLAG) { + int pause = *(int *)prop->data; + bool paused = pause == 1; + if (paused) + setState(Media::PausedState); + else { + int coreIdle; + mpv_get_property(mpv, "core-idle", MPV_FORMAT_FLAG, &coreIdle); + if (coreIdle == 1) + setState(Media::StoppedState); + else + setState(Media::PlayingState); + } + } + } + break; } @@ -205,6 +224,7 @@ void MediaMPV::sendCommand(const char *args[]) { void MediaMPV::setState(Media::State value) { if (value != currentState) { + qDebug() << "State" << value; currentState = value; emit stateChanged(currentState); } diff --git a/locale/de_DE.ts b/locale/de_DE.ts index ec338db..1430c29 100644 --- a/locale/de_DE.ts +++ b/locale/de_DE.ts @@ -27,11 +27,11 @@ Powered by %1 - + Angetrieben von %1 Open-source software - + Open-Source-Software Icon designed by %1. @@ -54,7 +54,7 @@ ActivationDialog Enter your License Details - Geben Sie Ihre Lizenzierungsinformationen ein + Geben Sie Ihre Lizensierungsinformationen ein &Email: @@ -115,7 +115,7 @@ You have %n new video(s) - + Sie haben %n neues VideoSie haben %n neue Videos @@ -196,30 +196,30 @@ %n hour(s) ago - + vor %n StundeVor %n Stunden %n day(s) ago - + vor %n Tagvor %n Tagen %n month(s) ago - + vor %n Monatvor %n Monaten K K as in Kilo, i.e. thousands - + Tsd M M stands for Millions - + Mio B B stands for Billions - + Mrd %1 views @@ -227,7 +227,7 @@ %n week(s) ago - + vor %n Wochevor %n Wochen @@ -281,7 +281,7 @@ %n Download(s) - + %n Download%n Downloads @@ -674,11 +674,11 @@ Toggle &Menu Bar - + &Menüleiste umschalten Menu - + Menü &Love %1? Rate it! @@ -806,7 +806,7 @@ You can still access the menu bar by pressing the ALT key - + Sie können die Menüleiste weiterhin durch Drücken der ALT-Taste erreichen @@ -856,7 +856,7 @@ Switched to %1 - + Umgeschaltet zu %1 Unsubscribed from %1 @@ -905,7 +905,7 @@ PickMessage Pick a video - + Wählen Sie ein Video aus @@ -1102,7 +1102,7 @@ &Forward - + &Weiter Forward to %1 diff --git a/locale/ja_JP.ts b/locale/ja_JP.ts index ed2e914..d20caed 100644 --- a/locale/ja_JP.ts +++ b/locale/ja_JP.ts @@ -27,11 +27,11 @@ Powered by %1 - + %1 によって作られました Open-source software - + オープンソース・ソフトウェア Icon designed by %1. @@ -115,7 +115,7 @@ You have %n new video(s) - + %n 個の新しい動画があります @@ -196,30 +196,30 @@ %n hour(s) ago - + %n 時間前 %n day(s) ago - + %n 日前 %n month(s) ago - + %n か月前 K K as in Kilo, i.e. thousands - + キロ M M stands for Millions - + メガ B B stands for Billions - + バイト %1 views @@ -227,7 +227,7 @@ %n week(s) ago - + %n 週間前 @@ -281,7 +281,7 @@ %n Download(s) - + %n 個のダウンロード @@ -426,11 +426,11 @@ MainWindow &Window - + ウィンドウ(&W) &Minimize - + 最小化(&M) &Stop @@ -666,19 +666,19 @@ Restricted Mode - + 制限付きモード Hide videos that may contain inappropriate content - + 不適切なコンテンツを含む可能性のある動画を非表示にする Toggle &Menu Bar - + メニューバーを切り替え(&M) Menu - + メニュー &Love %1? Rate it! @@ -806,7 +806,7 @@ You can still access the menu bar by pressing the ALT key - + ALTキーを押すことでメニューバーにアクセスできます @@ -856,7 +856,7 @@ Switched to %1 - + %1 に切り替えました Unsubscribed from %1 @@ -905,7 +905,7 @@ PickMessage Pick a video - + 動画を拾う @@ -1102,7 +1102,7 @@ &Forward - + 進む(&F) Forward to %1 @@ -1154,7 +1154,7 @@ Downloading %1... - + %1 をダウンロードしています... diff --git a/locale/pt_PT.ts b/locale/pt_PT.ts index 30161ae..6f0737e 100644 --- a/locale/pt_PT.ts +++ b/locale/pt_PT.ts @@ -674,11 +674,11 @@ Toggle &Menu Bar - + Bascula a Barra de &Menu Menu - + Menu &Love %1? Rate it! @@ -806,7 +806,7 @@ You can still access the menu bar by pressing the ALT key - + Podes sempre obter a barra de menu com a tecla ALT @@ -856,7 +856,7 @@ Switched to %1 - + Enviado para %1 Unsubscribed from %1 @@ -905,7 +905,7 @@ PickMessage Pick a video - + Escolhe um vídeo @@ -1102,7 +1102,7 @@ &Forward - + &Avançar Forward to %1 diff --git a/minitube.pro b/minitube.pro index 778eb3e..c38d9f7 100644 --- a/minitube.pro +++ b/minitube.pro @@ -1,7 +1,7 @@ CONFIG += c++14 exceptions_off rtti_off optimize_full TEMPLATE = app -VERSION = 3.3 +VERSION = 3.4 DEFINES += APP_VERSION="$$VERSION" APP_NAME = Minitube @@ -12,12 +12,16 @@ DEFINES += APP_UNIX_NAME="$$APP_UNIX_NAME" DEFINES += APP_SNAPSHOT -message(Building $${APP_NAME} $${VERSION}) -message(Qt $$[QT_VERSION] in $$[QT_INSTALL_PREFIX]) +CONFIG -= debug_and_release +CONFIG(debug, debug|release): { + message(Building for debug) +} +CONFIG(release, debug|release): { + message(Building for release) + DEFINES *= QT_NO_DEBUG_OUTPUT +} -DEFINES *= QT_NO_DEBUG_OUTPUT -DEFINES *= QT_USE_QSTRINGBUILDER -DEFINES *= QT_STRICT_ITERATORS +DEFINES *= QT_USE_QSTRINGBUILDER QT_STRICT_ITERATORS QT_DEPRECATED_WARNINGS !contains(DEFINES, APP_GOOGLE_API_KEY=.+) { warning("You need to specify a Google API Key, refer to the README.md file for details") @@ -36,6 +40,7 @@ include(lib/media/media.pri) include(src/qtsingleapplication/qtsingleapplication.pri) HEADERS += src/video.h \ + src/messagebar.h \ src/spacer.h \ src/constants.h \ src/playlistitemdelegate.h \ @@ -111,6 +116,7 @@ HEADERS += src/video.h \ src/videoarea.h \ src/searchlineedit.h SOURCES += src/main.cpp \ + src/messagebar.cpp \ src/spacer.cpp \ src/video.cpp \ src/videomimedata.cpp \ @@ -259,3 +265,8 @@ unix:!mac { } mac|win32|contains(DEFINES, APP_UBUNTU):include(local/local.pri) + +message(CONFIG: $$CONFIG) +message(DEFINES: $$DEFINES) +message(QMAKE_CXXFLAGS: $$QMAKE_CXXFLAGS) +message(QMAKE_LFLAGS: $$QMAKE_LFLAGS) diff --git a/src/appwidget.cpp b/src/appwidget.cpp index 295388c..000c6dd 100644 --- a/src/appwidget.cpp +++ b/src/appwidget.cpp @@ -21,6 +21,7 @@ AppsWidget::AppsWidget(QWidget *parent) : QWidget(parent) { const QString ext = "deb"; #endif + setupApp("Sofa", "sofa." + ext); setupApp("Finetune", "finetune." + ext); setupApp("Musictube", "musictube." + ext); setupApp("Musique", "musique." + ext); diff --git a/src/channelaggregator.cpp b/src/channelaggregator.cpp index 7573919..a4cd7d2 100644 --- a/src/channelaggregator.cpp +++ b/src/channelaggregator.cpp @@ -110,7 +110,7 @@ void ChannelAggregator::parseWebPage(const QByteArray &bytes) { if (re.indexIn(bytes) != -1) { QString videoId = re.cap(1); QString latestVideoId = currentChannel->latestVideoId(); - // qDebug() << "Comparing" << videoId << latestVideoId; + qDebug() << "Comparing" << videoId << latestVideoId; hasNewVideos = videoId != latestVideoId; } if (hasNewVideos) { diff --git a/src/clickablelabel.cpp b/src/clickablelabel.cpp index bc07301..7d83fa4 100644 --- a/src/clickablelabel.cpp +++ b/src/clickablelabel.cpp @@ -10,6 +10,7 @@ ClickableLabel::ClickableLabel(const QString &text, QWidget *parent) : QLabel(te void ClickableLabel::mouseReleaseEvent(QMouseEvent *e) { if (e->button() == Qt::LeftButton && rect().contains(e->pos())) emit clicked(); + QLabel::mouseReleaseEvent(e); } void ClickableLabel::leaveEvent(QEvent *e) { diff --git a/src/httputils.cpp b/src/httputils.cpp index 6865499..76bac4d 100644 --- a/src/httputils.cpp +++ b/src/httputils.cpp @@ -40,6 +40,16 @@ Http &HttpUtils::yt() { return *h; } +Http &HttpUtils::stealthAndNotCached() { + static Http *h = [] { + Http *http = new Http; + http->addRequestHeader("User-Agent", stealthUserAgent()); + + return http; + }(); + return *h; +} + void HttpUtils::clearCaches() { LocalCache::instance("yt")->clear(); LocalCache::instance("http")->clear(); diff --git a/src/httputils.h b/src/httputils.h index 1b6cbb6..3e91778 100644 --- a/src/httputils.h +++ b/src/httputils.h @@ -11,6 +11,7 @@ public: static Http ¬Cached(); static Http &cached(); static Http &yt(); + static Http &stealthAndNotCached(); static void clearCaches(); static const QByteArray &userAgent(); diff --git a/src/iconutils.cpp b/src/iconutils.cpp index 6b53645..b58368e 100644 --- a/src/iconutils.cpp +++ b/src/iconutils.cpp @@ -23,6 +23,7 @@ $END_LICENSE */ #include namespace { + void addIconFile(QIcon &icon, const QString &filename, int size, @@ -43,13 +44,15 @@ QIcon IconUtils::fromTheme(const QString &name) { } QIcon IconUtils::fromResources(const char *name) { + qDebug() << "Creating icon" << name; + static const QLatin1String normal("_normal"); static const QLatin1String active("_active"); static const QLatin1String selected("_selected"); static const QLatin1String disabled("_disabled"); static const QLatin1String checked("_checked"); static const QLatin1String ext(".png"); - QString path(":/icons/"); + QString path = QStringLiteral(":/icons/"); if (MainWindow::instance()->palette().window().color().value() > 128) path += QLatin1String("light/"); @@ -60,8 +63,9 @@ QIcon IconUtils::fromResources(const char *name) { // WARN keep these sizes updated with what we really use for (int size : {16, 24, 32, 88}) { - const QString pathAndName = path + QString::number(size) + '/' + name; - QString iconFilename = pathAndName + ext; + const QString pathAndName = + path + QString::number(size) + QLatin1Char('/') + QLatin1String(name); + QString iconFilename = pathAndName + normal + ext; if (QFile::exists(iconFilename)) { addIconFile(icon, iconFilename, size); addIconFile(icon, pathAndName + active + ext, size, QIcon::Active); @@ -74,13 +78,29 @@ QIcon IconUtils::fromResources(const char *name) { } QIcon IconUtils::icon(const char *name) { -#ifdef APP_LINUX - QIcon icon = fromTheme(name); + static QMap cache = [] { + qDebug() << "Init icon cache"; + QMap c; + QObject::connect(qApp, &QApplication::paletteChanged, qApp, [&c]() { + qDebug() << "Clearing icon cache"; + c.clear(); + }); + return c; + }(); + + auto i = cache.constFind(QByteArray::fromRawData(name, strlen(name))); + if (i != cache.constEnd()) return i.value(); + + QIcon icon; +#ifdef APP_UBUNTU_NO + icon = fromTheme(name); if (icon.isNull()) icon = fromResources(name); - return icon; #else - return fromResources(name); + icon = fromResources(name); #endif + + cache.insert(QByteArray(name), icon); + return icon; } QIcon IconUtils::icon(const QVector &names) { @@ -96,12 +116,13 @@ QPixmap IconUtils::iconPixmap(const char *name, int size, const QColor &background, const qreal pixelRatio) { - QString path(":/icons/"); + QString path = QStringLiteral(":/icons/"); if (background.value() > 128) - path += "light/"; + path += QLatin1String("light/"); else - path += "dark/"; - path += QString::number(size) + '/' + name + QLatin1String(".png"); + path += QLatin1String("dark/"); + path += QString::number(size) + QLatin1Char('/') + QLatin1String(name) + + QLatin1String("_normal.png"); return IconUtils::pixmap(path, pixelRatio); } @@ -149,6 +170,10 @@ void IconUtils::tint(QPixmap &pixmap, const QColor &color, QPainter::Composition painter.fillRect(pixmap.rect(), color); } +QPixmap IconUtils::pixmap(const char *name, const qreal pixelRatio) { + return pixmap(QString::fromLatin1(name), pixelRatio); +} + QPixmap IconUtils::pixmap(const QString &filename, const qreal pixelRatio) { // Check if a "@2x" file exists if (pixelRatio > 1.0) { diff --git a/src/iconutils.h b/src/iconutils.h index 52d915c..00e764e 100644 --- a/src/iconutils.h +++ b/src/iconutils.h @@ -32,6 +32,7 @@ public: QIcon i = icon(name); obj->setIcon(i); obj->connect(qApp, &QGuiApplication::paletteChanged, obj, [obj, name] { + qDebug() << "Updating icon" << name; QIcon i = icon(name); obj->setIcon(i); }); @@ -46,6 +47,7 @@ public: static QIcon tintedIcon(const char *name, const QColor &color, const QSize &size); // HiDPI stuff + static QPixmap pixmap(const char *name, const qreal pixelRatio); static QPixmap pixmap(const QString &filename, const qreal pixelRatio); static void tint(QPixmap &pixmap, diff --git a/src/jsfunctions.cpp b/src/jsfunctions.cpp index d0cef41..679d1e3 100644 --- a/src/jsfunctions.cpp +++ b/src/jsfunctions.cpp @@ -42,16 +42,18 @@ JsFunctions::JsFunctions(const QString &url, QObject *parent) QDateTime::currentDateTime().toTime_t() - 1800; if (stale) loadJs(); } else { + /* QFile resFile(QLatin1String(":/") + jsFilename()); resFile.open(QIODevice::ReadOnly | QIODevice::Text); parseJs(QString::fromUtf8(resFile.readAll())); + */ loadJs(); } } void JsFunctions::parseJs(const QString &js) { + // qDebug() << "Js Parsing" << js; if (js.isEmpty()) return; - // qDebug() << "Parsing" << js; if (engine) delete engine; engine = new QJSEngine(this); engine->evaluate(js); @@ -71,6 +73,7 @@ QString JsFunctions::jsPath() { } void JsFunctions::loadJs() { + qDebug() << "Js Loading" << url; QUrl url(this->url); QUrlQuery q; q.addQueryItem("v", Constants::VERSION); diff --git a/src/main.cpp b/src/main.cpp index 717179e..e2a0c44 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -66,9 +66,6 @@ int main(int argc, char **argv) { qSetMessagePattern("[%{function}] %{message}"); #endif - // Seed random number generator - qsrand(QDateTime::currentDateTime().toTime_t()); - #ifdef MEDIA_MPV QSurfaceFormat format = QSurfaceFormat::defaultFormat(); #ifdef APP_MAC @@ -83,6 +80,8 @@ int main(int argc, char **argv) { mac::MacMain(); #endif + QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling); + QtSingleApplication app(argc, argv); QString message; if (app.arguments().size() > 1) { diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 4a3a480..1cfe622 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -679,7 +679,7 @@ void MainWindow::createActions() { // add actions to the MainWindow so that they work // when the menu is hidden addAction(action); - MainWindow::instance()->setupAction(action); + setupAction(action); } } @@ -1093,7 +1093,7 @@ void MainWindow::visitSite() { } void MainWindow::donate() { - QUrl url(QString(Constants::WEBSITE) + "#donate"); + QUrl url("https://" + QLatin1String(Constants::ORG_DOMAIN) + "/donate"); showMessage(QString(tr("Opening %1").arg(url.toString()))); QDesktopServices::openUrl(url); } @@ -1121,7 +1121,6 @@ void MainWindow::quit() { ChannelAggregator::instance()->stop(); ChannelAggregator::instance()->cleanup(); Database::shutdown(); - HttpUtils::clearCaches(); qApp->quit(); } diff --git a/src/mediaview.cpp b/src/mediaview.cpp index e6343ab..46eb8ea 100644 --- a/src/mediaview.cpp +++ b/src/mediaview.cpp @@ -34,6 +34,7 @@ $END_LICENSE */ #include "videoarea.h" #ifdef APP_ACTIVATION #include "activation.h" +#include "activationview.h" #endif #ifdef APP_EXTRA #include "extra.h" @@ -132,7 +133,16 @@ void MediaView::initialize() { #ifdef APP_ACTIVATION demoTimer = new QTimer(this); demoTimer->setSingleShot(true); - connect(demoTimer, &QTimer::timeout, mainWindow, &MainWindow::showActivationView, + connect( + demoTimer, &QTimer::timeout, this, + [this] { + if (media->state() != Media::PlayingState) return; + media->pause(); + connect( + ActivationView::instance(), &ActivationView::done, media, + [this] { media->play(); }, Qt::UniqueConnection); + MainWindow::instance()->showActivationView(); + }, Qt::QueuedConnection); #endif @@ -153,6 +163,45 @@ void MediaView::initialize() { for (auto *name : videoActionNames) { currentVideoActions.append(mainWindow->getAction(name)); } + + for (int i = 0; i < 10; ++i) { + QAction *action = new QAction(QString()); + action->setShortcut(Qt::Key_0 + i); + action->setAutoRepeat(false); + connect(action, &QAction::triggered, this, [this, i] { + qint64 duration = media->duration(); + // dur : pos = 100 : i*10 + qint64 position = (duration * (i * 10)) / 100; + media->seek(position); + }); + addAction(action); + playingVideoActions << action; + } + + QAction *leftAction = new QAction(tr("Rewind %1 seconds").arg(10)); + leftAction->setShortcut(Qt::Key_Left); + leftAction->setAutoRepeat(false); + connect(leftAction, &QAction::triggered, this, [this] { + qint64 position = media->position(); + position -= 10000; + if (position < 0) position = 0; + media->seek(position); + }); + addAction(leftAction); + playingVideoActions << leftAction; + + QAction *rightAction = new QAction(tr("Fast forward %1 seconds").arg(10)); + rightAction->setShortcut(Qt::Key_Right); + rightAction->setAutoRepeat(false); + connect(rightAction, &QAction::triggered, this, [this] { + qint64 position = media->position(); + position += 10000; + qint64 duration = media->duration(); + if (position > duration) position = duration; + media->seek(position); + }); + addAction(rightAction); + playingVideoActions << rightAction; } void MediaView::setMedia(Media *media) { @@ -319,6 +368,10 @@ void MediaView::mediaStateChanged(Media::State state) { handleError(media->errorString()); } + bool enablePlayingVideoActions = state == Media::PlayingState || state == Media::PausedState; + for (QAction *action : qAsConst(playingVideoActions)) + action->setEnabled(enablePlayingVideoActions); + if (state == Media::PlayingState) { bool res = Idle::preventDisplaySleep(QString("%1 is playing").arg(Constants::NAME)); if (!res) qWarning() << "Error disabling idle display sleep" << Idle::displayErrorMessage(); @@ -497,8 +550,8 @@ void MediaView::gotStreamUrl(const QString &streamUrl, const QString &audioUrl) } #ifdef APP_ACTIVATION - if (!Activation::instance().isActivated() && !demoTimer->isActive()) { - int ms = (60000 * 5) + (qrand() % (60000 * 5)); + if (!demoTimer->isActive() && !Activation::instance().isActivated()) { + int ms = (60000 * 2) + (QRandomGenerator::global()->generate() % (60000 * 2)); demoTimer->start(ms); } #endif diff --git a/src/mediaview.h b/src/mediaview.h index 2569305..ea3400b 100644 --- a/src/mediaview.h +++ b/src/mediaview.h @@ -144,6 +144,7 @@ private: QVector history; QVector currentVideoActions; + QVector playingVideoActions; qint64 currentVideoSize; diff --git a/src/messagebar.cpp b/src/messagebar.cpp new file mode 100644 index 0000000..159eeae --- /dev/null +++ b/src/messagebar.cpp @@ -0,0 +1,33 @@ +#include "messagebar.h" +#include "iconutils.h" + +MessageBar::MessageBar(QWidget *parent) : QWidget(parent) { + setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Minimum); + + QBoxLayout *layout = new QHBoxLayout(this); + layout->setSpacing(16); + + msgLabel = new QLabel(); + msgLabel->setOpenExternalLinks(true); + layout->addWidget(msgLabel); + + QToolButton *closeToolButton = new QToolButton(); + closeToolButton->setIcon(IconUtils::icon("close")); + connect(closeToolButton, &QToolButton::clicked, this, [this] { + emit closed(); + hide(); + }); + layout->addWidget(closeToolButton); +} + +void MessageBar::setMessage(const QString &message) { + msgLabel->setText(message); +} + +void MessageBar::paintEvent(QPaintEvent *e) { + Q_UNUSED(e); + QStyleOption o; + o.initFrom(this); + QPainter p(this); + style()->drawPrimitive(QStyle::PE_Widget, &o, &p, this); +} diff --git a/src/messagebar.h b/src/messagebar.h new file mode 100644 index 0000000..34c4d06 --- /dev/null +++ b/src/messagebar.h @@ -0,0 +1,23 @@ +#ifndef MESSAGEBAR_H +#define MESSAGEBAR_H + +#include + +class MessageBar : public QWidget { + Q_OBJECT + +public: + MessageBar(QWidget *parent = 0); + void setMessage(const QString &message); + +signals: + void closed(); + +protected: + void paintEvent(QPaintEvent *e); + +private: + QLabel *msgLabel; +}; + +#endif // MESSAGEBAR_H diff --git a/src/searchview.cpp b/src/searchview.cpp index 6536d0b..c13a830 100644 --- a/src/searchview.cpp +++ b/src/searchview.cpp @@ -42,6 +42,7 @@ $END_LICENSE */ #include "clickablelabel.h" #include "iconutils.h" #include "mainwindow.h" +#include "messagebar.h" #include "painterutils.h" namespace { @@ -60,10 +61,11 @@ SearchView::SearchView(QWidget *parent) : View(parent) { vLayout->setMargin(padding); vLayout->setSpacing(0); - // hidden message widget - message = new QLabel(this); - message->hide(); - vLayout->addWidget(message); + messageBar = new MessageBar(); + messageBar->hide(); + vLayout->addWidget(messageBar, 0, Qt::AlignCenter); + vLayout->addSpacing(padding); + maybeShowMessage(); vLayout->addStretch(); @@ -265,7 +267,6 @@ void SearchView::updateRecentKeywords() { ClickableLabel *item; if (recentKeywordsLayout->count() - 1 >= counter) { item = qobject_cast(recentKeywordsLayout->itemAt(counter)->widget()); - } else { item = new ClickableLabel(); #ifdef APP_MAC @@ -285,6 +286,17 @@ void SearchView::updateRecentKeywords() { } } }); + item->setContextMenuPolicy(Qt::ActionsContextMenu); + auto removeAction = new QAction(tr("Remove")); + item->addAction(removeAction); + connect(removeAction, &QAction::triggered, item, [item] { + QSettings settings; + QStringList keywords = settings.value(recentKeywordsKey).toStringList(); + QString keyword = item->property("keyword").toString(); + keywords.removeOne(keyword); + settings.setValue(recentKeywordsKey, keywords); + item->deleteLater(); + }); recentKeywordsLayout->addWidget(item); } @@ -293,6 +305,7 @@ void SearchView::updateRecentKeywords() { item->setStatusTip(link); else item->setStatusTip(QString()); + item->setProperty("keyword", keyword); disconnect(item, &ClickableLabel::clicked, nullptr, nullptr); connect(item, &ClickableLabel::clicked, this, [this, link]() { watchKeywords(link); }); @@ -332,6 +345,7 @@ void SearchView::updateRecentChannels() { } ClickableLabel *item = new ClickableLabel(display); + item->setProperty("keyword", keyword); #ifdef APP_MAC item->setPalette(p); #endif @@ -342,6 +356,17 @@ void SearchView::updateRecentChannels() { connect(item, &ClickableLabel::hovered, item, [item](bool value) { item->setForegroundRole(value ? QPalette::Highlight : QPalette::WindowText); }); + item->setContextMenuPolicy(Qt::ActionsContextMenu); + auto removeAction = new QAction(tr("Remove")); + item->addAction(removeAction); + connect(removeAction, &QAction::triggered, item, [item] { + QSettings settings; + QStringList keywords = settings.value(recentChannelsKey).toStringList(); + QString keyword = item->property("keyword").toString(); + keywords.removeOne(keyword); + settings.setValue(recentChannelsKey, keywords); + item->deleteLater(); + }); recentChannelsLayout->addWidget(item); } } @@ -429,3 +454,53 @@ void SearchView::suggestionAccepted(Suggestion *suggestion) { void SearchView::onChannelSuggestions(const QVector &suggestions) { lastChannelSuggestions = suggestions; } + +void SearchView::maybeShowMessage() { + QSettings settings; + QString key; + + bool showMessages = true; +#ifdef APP_ACTIVATION + showMessages = Activation::instance().isActivated(); +#endif + +#if defined APP_MAC && !defined APP_MAC_STORE + if (showMessages && !settings.contains(key = "sofa")) { + QString msg = tr("Need a remote control for %1? Try %2!").arg(Constants::NAME).arg("Sofa"); + msg = " " + msg + ""; + messageBar->setMessage(msg); + connect(messageBar, &MessageBar::closed, this, [key] { + QSettings settings; + settings.setValue(key, true); + }); + messageBar->show(); + showMessages = false; + } +#endif + + if (showMessages) { + key = "donate" + QLatin1String(Constants::VERSION); + if (!settings.contains(key)) { + bool oneYearUsage = true; +#ifdef APP_ACTIVATION + oneYearUsage = (QDateTime::currentSecsSinceEpoch() - + Activation::instance().getLicenseTimestamp()) > 86400 * 365; +#endif + if (oneYearUsage) { + QString msg = + tr("I keep improving %1 to make it the best I can. Support this work!") + .arg(Constants::NAME); + msg = " " + msg + + ""; + messageBar->setMessage(msg); + connect(messageBar, &MessageBar::closed, this, [key] { + QSettings settings; + settings.setValue(key, true); + }); + messageBar->show(); + } + } + } +} diff --git a/src/searchview.h b/src/searchview.h index d6841d2..a5342c9 100644 --- a/src/searchview.h +++ b/src/searchview.h @@ -31,6 +31,7 @@ class YTSuggester; class ChannelSuggest; class Suggestion; class ClickableLabel; +class MessageBar; class SearchView : public View { Q_OBJECT @@ -58,15 +59,16 @@ private slots: void onChannelSuggestions(const QVector &suggestions); private: + void maybeShowMessage(); YTSuggester *youtubeSuggest; ChannelSuggest *channelSuggest; + MessageBar *messageBar; SearchWidget *queryEdit; QLabel *recentKeywordsLabel; QBoxLayout *recentKeywordsLayout; QLabel *recentChannelsLabel; QBoxLayout *recentChannelsLayout; - QLabel *message; QStringList recentKeywords; QStringList recentChannels; diff --git a/src/temporary.cpp b/src/temporary.cpp index ceb3b33..2bf7fcd 100644 --- a/src/temporary.cpp +++ b/src/temporary.cpp @@ -31,7 +31,8 @@ Temporary::Temporary() { } QString Temporary::filename() { static const QString tempDir = QStandardPaths::writableLocation(QStandardPaths::TempLocation); - QString tempFile = tempDir + "/" + Constants::UNIX_NAME + "-" + QString::number(qrand()); + QString tempFile = tempDir + "/" + Constants::UNIX_NAME + "-" + + QString::number(QRandomGenerator::global()->generate()); #ifdef APP_LINUX if (userName.isNull()) { diff --git a/src/yt3.cpp b/src/yt3.cpp index c8081b6..c9cede5 100644 --- a/src/yt3.cpp +++ b/src/yt3.cpp @@ -78,7 +78,7 @@ void YT3::testApiKey() { q.addQueryItem("chart", "mostPopular"); q.addQueryItem("maxResults", "1"); url.setQuery(q); - QObject *reply = HttpUtils::yt().get(url); + QObject *reply = HttpUtils::stealthAndNotCached().get(url); connect(reply, SIGNAL(finished(HttpReply)), SLOT(testResponse(HttpReply))); } diff --git a/src/ytvideo.cpp b/src/ytvideo.cpp index 157eeb9..fca388a 100644 --- a/src/ytvideo.cpp +++ b/src/ytvideo.cpp @@ -66,7 +66,7 @@ void YTVideo::getVideoInfo() { .arg(videoId, elTypes.at(elIndex))); } - QObject *reply = HttpUtils::yt().get(url); + QObject *reply = HttpUtils::stealthAndNotCached().get(url); connect(reply, SIGNAL(data(QByteArray)), SLOT(gotVideoInfo(QByteArray))); connect(reply, SIGNAL(error(QString)), SLOT(emitError(QString))); @@ -93,6 +93,7 @@ void YTVideo::gotVideoInfo(const QByteArray &bytes) { QString url = formatObj["url"].toString(); if (url.isEmpty()) { QString cipher = formatObj["cipher"].toString(); + if (cipher.isEmpty()) cipher = formatObj["signatureCipher"].toString(); QUrlQuery q(cipher); qDebug() << "Cipher is " << q.toString(); url = q.queryItemValue("url").trimmed(); @@ -152,6 +153,7 @@ void YTVideo::gotVideoInfo(const QByteArray &bytes) { */ if (urlMap.isEmpty()) { + qDebug() << "empty urlMap, trying next el"; elIndex++; getVideoInfo(); return; @@ -267,8 +269,6 @@ void YTVideo::loadWebPage() { q.addQueryItem("bpctr", "9999999999"); url.setQuery(q); - // QUrl url("https://www.youtube.com/embed/" + videoId); - qDebug() << "Loading webpage" << url; QObject *reply = HttpUtils::yt().get(url); connect(reply, SIGNAL(data(QByteArray)), SLOT(scrapeWebPage(QByteArray))); @@ -276,6 +276,37 @@ void YTVideo::loadWebPage() { // see you in scrapWebPage(QByteArray) } +void YTVideo::loadEmbedPage() { + QUrl url("https://www.youtube.com/embed/" + videoId); + auto reply = HttpUtils::yt().get(url); + connect(reply, &HttpReply::finished, this, [this](const HttpReply &reply) { + if (!reply.isSuccessful()) { + getVideoInfo(); + return; + } + static const QRegExp embedRE("\"sts\"\\s*:\\s*(\\d+)"); + QString sts; + if (embedRE.indexIn(reply.body()) == -1) { + // qDebug() << "Cannot get sts" << reply.body(); + } else { + sts = embedRE.cap(1); + qDebug() << "sts" << sts; + } + QUrlQuery q; + q.addQueryItem("video_id", videoId); + q.addQueryItem("eurl", "https://youtube.googleapis.com/v/" + videoId); + q.addQueryItem("sts", sts); + QUrl url = QUrl("https://www.youtube.com/get_video_info"); + url.setQuery(q); + HttpReply *r = HttpUtils::stealthAndNotCached().get(url); + connect(r, &HttpReply::data, this, [this](const QByteArray &bytes) { + QByteArray decodedBytes = QByteArray::fromPercentEncoding(bytes); + gotVideoInfo(decodedBytes); + }); + connect(r, &HttpReply::error, this, &YTVideo::emitError); + }); +} + void YTVideo::emitError(const QString &message) { qWarning() << message; emit errorStreamUrl(message); @@ -288,11 +319,12 @@ void YTVideo::scrapeWebPage(const QByteArray &bytes) { // qDebug() << "scrapeWebPage" << html; static const QRegExp ageGateRE(JsFunctions::instance()->ageGateRE()); - if (ageGateRE.indexIn(html) != -1) { + if (ageGateRE.indexIn(html) != -1 || html.contains("desktopLegacyAgeGateReason")) { qDebug() << "Found ageGate"; ageGate = true; - elIndex = 4; - getVideoInfo(); + // elIndex = 4; + // getVideoInfo(); + loadEmbedPage(); return; } @@ -311,7 +343,7 @@ void YTVideo::scrapeWebPage(const QByteArray &bytes) { } if (fmtUrlMap.isEmpty() && urlMap.isEmpty()) { - qWarning() << "Cannot get fmtUrlMap from video page. Trying next el"; + qDebug() << "Cannot get fmtUrlMap from video page. Trying next el"; // elIndex++; // getVideoInfo(); // return; @@ -332,9 +364,11 @@ void YTVideo::scrapeWebPage(const QByteArray &bytes) { jsPlayerIdRe.indexIn(jsPlayerUrl); QString jsPlayerId = jsPlayerRe.cap(1); */ - QObject *reply = HttpUtils::yt().get(jsPlayerUrl); + QObject *reply = HttpUtils::stealthAndNotCached().get(jsPlayerUrl); connect(reply, SIGNAL(data(QByteArray)), SLOT(parseJsPlayer(QByteArray))); connect(reply, SIGNAL(error(QString)), SLOT(emitError(QString))); + } else { + qDebug() << "Cannot find jsPlayer"; } } @@ -366,7 +400,7 @@ void YTVideo::parseJsPlayer(const QByteArray &bytes) { break; } } - if (sigFuncName.isEmpty()) qDebug() << "Empty signature function name"; + if (sigFuncName.isEmpty()) qDebug() << "Empty signature function name" << jsPlayer; // parseFmtUrlMap(fmtUrlMap, true); getVideoInfo(); diff --git a/src/ytvideo.h b/src/ytvideo.h index d50fa59..4c47c81 100644 --- a/src/ytvideo.h +++ b/src/ytvideo.h @@ -27,6 +27,7 @@ private: void getVideoInfo(); void parseFmtUrlMap(const QString &fmtUrlMap); void loadWebPage(); + void loadEmbedPage(); void captureFunction(const QString &name, const QString &js); void captureObject(const QString &name, const QString &js); QString decryptSignature(const QString &s); diff --git a/style.css b/style.css index ab926ac..e66c17f 100644 --- a/style.css +++ b/style.css @@ -82,3 +82,17 @@ SearchView *[recentItem="true"], SearchView *[recentHeader="true"] { SearchView *[recentItem="true"]:focus { outline: 1px solid palette(highlight); } + +MessageBar { + background: #f9f7c8; + border-radius: 5px; +} + +MessageBar QLabel { + color: rgba(0,0,0,192); +} + +MessageBar QToolButton { + background: transparent; + border: 0; +}