Commit Graph
78 Commits
Author SHA1 Message Date
Felix Häcker d066e8939d Player: implement mpris play/pause callbacks 2018-10-04 02:19:56 +00:00
Felix Häcker e4c3435d34 Player: add basic mpris support 2018-10-04 02:19:56 +00:00
Jordan Petridis de1c8485ae Fix rustc warnings
New warnings were introduced with rustc 1.29.0

podcasts-data/src/lib.rs: this one can be removed once diesel is
upgraded.
https://github.com/diesel-rs/diesel/issues/1785#issuecomment-422577018

podcasts-gtk/src/i18n.rs: This is just a deprication warning
2018-09-22 04:47:24 +03:00
Jordan Petridis a39e642b5a EpisodeWidget: Change cacnel button to an icon
This also reworks the button_box to be just a GtkBox instead.
I couldn't get ButtonBox to behave the way I wanted.

Fixes #89
2018-09-08 20:17:47 +03:00
Jordan Petridis e42cb49cbe EpisodeWidget: Hide total_size if request fails
This moves the rest of the methods of Progress struct to the downloader
trait and cancels the Progress if the request does nto succed.

Close #90
2018-09-08 20:17:47 +03:00
Jordan Petridis 678b0b9db1 BaseView: Set minimum width to 360
While the HomeView and ShowView can't yet scale that low,
the ShowWidget could get to about 270p already which is not
desirable.

This commit sets the minimum width of all the Views to 360p,
which is our mobile target size.
2018-09-08 20:17:47 +03:00
Jordan Petridis 993b6e9d0a Utils: only queue a single cover download
Before we were inserting the id of the cover into the registry
from a rayon thread. But rayon will only execute N threads at the
same time and let the rest into a queue. This would casue mutliple
jobs being queued since the cover id was not inserted in the
registry until the downloading had started.

This fixes said behavior by having the main thread block and write
in the id in the registry.
2018-08-28 21:15:52 +00:00
Jordan Petridis 273c9f7b99 Utils: Change the priority of the cover caches
Since loadign a pixbuf from the pre-rendered cache is the most
common operation and it does not affect the behavior we can
first check that and then if the cover is midway downloading.

This avoids a mutex lock for the most common path.
2018-08-28 21:15:52 +00:00
Jordan Petridis 822deb2867 Utils: do not block the cover_dl registry
Accidently after f21398357b when a download would start,
it would lock the cover_dl_registry hashmap till it had finished.

Since the registry.read() happens on the main thread this would
cause the UI to block until the download was and the mutex guard
from the download thread dropped.
2018-08-28 21:15:52 +00:00
Jordan Petridis 569c00ff5f Allow for parallel development instance
This adds a configuration option in meson, if set it changes the
application ID allowing for stable and development version to be
run at the same time.
2018-08-28 17:22:13 +03:00
Jordan Petridis 15457e1db4 App/Build: Use env! macro to fetch the variable
env! is resolved at compile time which means we don't need to read
and set LOCALDI from build.rs
2018-08-28 17:22:13 +03:00
Zander Brown 88e07031a6 Workaround for FileChooserNative oddness 2018-08-27 07:52:09 +00:00
Jordan Petridis 6c5cb8f07d AboutDialog: Translate website label 2018-08-22 08:29:12 +03:00
Jordan Petridis 70e79e50d6 Change the website to point to the wiki page
Thanks a lot to @svito for creating the page!
2018-08-21 20:11:38 +03:00
Jordan Petridis 92ae681517 Add gtk tests
Currently we only test the GtkBuilder files.
Also I can't find a way to get gtk to uninitialize and reinitialize
in a different thread.

Close #56
2018-08-20 13:14:41 +03:00
Jordan Petridis 04161284a7 Headerbar: Make the switcher insensitive if empty
If there are no shows/episodes to display, there isn't any point
to being able to hit the switcher.
2018-08-19 14:31:27 +03:00
Jordan Petridis 14d4818867 App: Disable refresh action while in empty state
Close #71
2018-08-19 14:25:41 +03:00
Jordan Petridis 9f42e91088 Refactor content state with Application actions
Instead of each view/widget determening if its populated on its own,
make add Application Actions and apply the state globally.
2018-08-19 13:44:11 +03:00
Jordan Petridis 89b99614a0 Refactor the tests to use ? operator
As of ructc 1.27 #[test] can return errors. This improves a great
deal the ergonomics.
2018-08-18 17:02:31 +03:00
Jordan Petridis cd937c4844 utils: Refactor refresh_feed
Move channel creation inside the thread.
Drop the Result return type as its not needed anymore.
2018-08-14 15:24:25 +03:00
Jordan Petridis cc1a5783fd App: Do not update the db if its empty
If the source table is empty skipp the database refresh.
2018-08-14 15:19:31 +03:00
Jordan Petridis cb122cbc61 ShowWidget: Change description wrap mode 2018-08-14 13:59:42 +03:00
Jordan Petridis 03754c56c6 Fix the test-suite 2018-08-14 13:40:37 +03:00
Jordan Petridis 471f6ff93b Source: Remove ignore_etags option
This is never used anywhere else apart from the testsuite. Instead
of ignoring etags we should instead not save them if the feed does
not return 200 or 304. See #64.
2018-08-14 13:40:33 +03:00
Jordan Petridis c53ad56a6d Remove TODOs and FIXMEs
They are either no longer relevant or just forgotten
2018-08-14 13:40:28 +03:00
Jordan Petridis ae7f65e938 InAppNotif: Switch the timer to milliseconds
This allows for more responsive updates. The implementation still
sucks though. Ideally we would pass a receiver in the callback
and have an even lower timeout_add.
2018-08-14 07:58:29 +03:00
Jordan Petridis b2d71a037c Headerbar: Remove the update indicator 2018-08-14 07:52:41 +03:00
Jordan Petridis 019ec8972f InAppNotif: Add a spinner 2018-08-14 07:41:58 +03:00
Jordan Petridis e25e411ebe App: Use the new updater notif
Initial wiring of the new InAppNotif update indicator. This still
misses a spinner, and its overall teribly implemented!
2018-08-14 07:28:10 +03:00
Jordan Petridis 911dcbac9f InAppNotif: Pass revealer to the callback
Let the callback handle if/when the visibility of the notification
2018-08-14 06:22:02 +03:00
Jordan Petridis 25195c972c InAppNotif: add a method to show/hide the close button
This will enable us to create persistant notifications.
2018-08-14 05:36:17 +03:00
Jordan Petridis 304c92f733 InAppNotification: Allow to set a custom timer
This allows for a custom timer to be set before the
callback will be run. Currently all the callbacks only
run once and then retunr glib::Continue(false) but this
would allow for setting a low timer and have a callback
that would determine if it needs to be run again, Continue(true),
in a relative responsive way.
2018-08-13 09:13:39 +03:00
Jordan Petridis 336b9a126e InAppNotif: Fix ref cycles 2018-08-13 09:13:10 +03:00
Jordan Petridis 01efbf5c79 InAppNotif: Refactor to infer the undo state
If we use an Optional instead of passing empty closures, we
can infer if the Undo button needs to be shown.
2018-08-13 08:31:52 +03:00
Jordan Petridis b8bb5e6d82 ShowMenu: Fix a reference cycle 2018-08-13 06:48:39 +03:00
Jordan Petridis cc4b3cce55 Player: Fix a refference cycle 2018-08-13 06:35:19 +03:00
Jordan Petridis 5699562133 App: Fix more refference cycles 2018-08-13 03:34:37 +00:00
Jordan Petridis b07cd5515a Refactor Empty states 2018-08-13 02:05:09 +03:00
Jordan Petridis fee3e320ab ShowWidget: Move the listbox back to the glade file 2018-08-10 15:43:19 +03:00
Jordan Petridis e068cff37b ShowWidget: Increase the description char limit 2018-08-10 14:44:02 +03:00
Jordan Petridis 28f08ed196 HomeView: handle vadjustment with BaseView
Instead of using lazy_static to save the adjustment,
pass it to the widget upon creation. If its the first instance
created, pass None instead.
2018-08-10 14:43:58 +03:00
Jordan Petridis 056d971000 HomeView: make base view field publick
There is no point to re-export BaseView's methods.
2018-08-10 14:42:57 +03:00
Jordan Petridis aa5195e5a9 ShowsView: handle vadjustment with BaseView
Instead of using lazy_static to save the adjustment,
pass it to the widget upon creation. If its the first instance
created, pass None instead.
2018-08-10 14:42:52 +03:00
Jordan Petridis 85aaaf80ac ShowsView: make base view field publick
There is no point to re-export BaseView's methods.
2018-08-10 13:54:19 +03:00
Jordan Petridis 5d467a22d0 ShowWidget: make base view field publick
There is no point to re-export BaseView's methods.
2018-08-10 13:54:14 +03:00
Jordan Petridis bcc1cfb67b ShowWidget: handle vadjustment with BaseView
Instead of using lazy_static to save the adjustment,
pass it to the widget upon creation. If previous it doesn't
exists pass None instead.
2018-08-10 13:54:07 +03:00
Jordan Petridis 70a24fba69 BaseView: implement a set_adjustments method
Ment to replace the individual set_vadjustment of widgets.
Also remove unused method from ShowWiget.
2018-08-10 13:53:25 +03:00
Jordan Petridis c3121bef84 ShowsChild: Remove the need for a .ui file
Its a simple enough widget that can be written by hand
and does not need a .ui builder file.
2018-08-10 13:53:12 +03:00
Jordan Petridis 8c25be7d05 BaseView: Set scroll policy 2018-08-10 13:53:00 +03:00
Jordan Petridis 7463e9d42c ShowsView: Use BaseView abstraction 2018-08-10 13:52:56 +03:00