Commit Graph

120 Commits

Author SHA1 Message Date
Christopher Davis
6c701e0c41 build: Add missing source file
In the transition to tightening our meson integration this
file was left untracked by meson.
2019-05-14 08:28:23 +00:00
Jordan Petridis
28ea14f2e9 episode: add a checkmark symbol to further indicate played state
Using only a dim styleclass on the widget is too light and does
not work with the HighContrast theme.

Close #69 #106
2019-05-14 08:28:23 +00:00
Jordan Petridis
028e318bd3 app: remove preferences dialog
The dark theme option is broken with themes that don't ship a
dark variant.

The episode garbage collection doesn't seem useful being
configurable at all.

The gsettings are still there, this just removes the ui
dialog since nothing useful made it into it ever.

Also, less toggles the better.

http://www.islinuxaboutchoice.com/
2019-05-10 17:08:35 +02:00
ZephOne
4be473dcea utils: use generic image when a show has no cover
When an episode from a show that has a cover is played. Switching to an
episode of a show that has no cover does not load the generic image in the
player. utils::set_image_from_path implementation does not deal with
DownloadError::NoImageLocation

utils::set_image_from_path deals with DownloadError::NoImageLocation,
this generic is set in this case.

https://gitlab.gnome.org/World/podcasts/issues/114
2019-05-10 14:01:47 +01:00
Jordan Petridis
4a7d3d5fc2
Use 2018 edition for the crates 2019-03-30 17:49:29 +02:00
Jordan Petridis
644ca7d0d0
widgets/episode: replace deprecated method 2019-03-30 16:59:15 +02:00
Jordan Petridis
7dc1b25ee7
don't error on warnings
Nice and all when you keep up with development,
but can cause random errors by the addition of new
errors to the compiler.
2019-03-30 16:34:55 +02:00
Jordan Petridis
78283e51f6
app: remove .present() workaround
This should no longer be needed now.
https://gitlab.gnome.org/GNOME/gtk/issues/1754
2019-03-20 23:06:44 +02:00
Christopher Davis
8898fd6e2f
build: use build_by_default in cargo-build target
build_always_stale is deprecated and build_by_default can be
used now that we don't have build.rs.

Requires that we list our sources.
2019-03-07 07:04:24 +02:00
Christopher Davis
7a77f31aa3
build: Place target in meson build dir
Instead of putting target/ and target_test/ in the source
directory, we can tell our cargo script to put both target
and our cargo-home in meson's build directory.

In addition, makes tests and builds use the same target
directory, significantly reducing the time it takes to run tests.
2019-03-07 07:04:23 +02:00
Christopher Davis
5b2edc73ec build: Build resources with meson instead of build.rs
Allows us to get rid of build.rs, which was only used to
compile resources. static_resource.rs is now created by
meson, and the meson path is used for include_bytes!.

Closes https://gitlab.gnome.org/World/podcasts/issues/55
2019-03-07 04:35:31 +00:00
Christopher Davis
395e31ff85 build: Use config.rs instead of env! macro
Previously we were using the env! macro to determine
build-time variables like version, app ID, and locale dir.
Instead of relying on env vars, we can create a configuration
file with meson and import it.
2019-03-07 04:35:31 +00:00
Jordan Petridis
277f324cf0 cargo fmt 2019-03-03 17:47:11 +02:00
Jordan Petridis
0ed6c8979e Upgrade crossbeam-channel 2019-03-03 17:45:43 +02:00
Jordan Petridis
a77bf0b8fb
Update gtk-rs family of crates 2019-03-03 04:46:19 +02:00
Felix Häcker
68fa547b06 Implement MPRIS pause and play methods.
Till now we were only using the play_pause method and
was enough for most of the usecases, but looks like
some mpris clients only use the individual methods.

https://specifications.freedesktop.org/mpris-spec/latest/Player_Interface.html#Method:PlayPause

Close #115
2019-02-05 20:47:56 +00:00
Piotr Drąg
06091d1af4 Use Unicode ellipsis in a user-visible string
See https://developer.gnome.org/hig/stable/typography.html
2019-02-02 12:14:29 +01:00
Christopher Davis
6c34686d8d
p-data: Implment support for exporting the shows to an OPML file
Close #41
2019-01-27 06:06:46 +02:00
Jordan Petridis
9f8ae75691
Remove depricated lints 2018-12-09 03:53:17 +02:00
Jordan Petridis
b72ba8c66a
podcasts-gtk: make it possible to compile with just cargo
This is not supported at all, and it still won't run with cargo
run, thankfully, you should use meson instead...

The only purpose of this commit is to make it possible for
cargo check, and by extension rls, to function and work
properly.

Part of #110
2018-12-02 02:10:09 +02:00
Jordan Petridis
f9f0dad203
cargo fmt 2018-11-29 14:36:06 +02:00
Jordan Petridis
19e0b7e565 Further preparations for Rusto 2018 edition 2018-11-18 12:59:01 +00:00
Jordan Petridis
fd4128c364 Prepare for Rust 2018 edition 2018-11-18 12:59:01 +00:00
Jordan Petridis
98f105fda0 Player: Use a wrapper struct to write methods on &self
Previously, methods that required the Player to be ref counted,
were using static methods with s: &Rc<Self> as the first argument.

Now the wrapper type auto-derefs to the inner struct and you can
declare methods on just &self.
2018-11-18 12:59:01 +00:00
Jordan Petridis
32b257ec30
cargo fmt 2018-11-13 15:29:20 +02:00
Zander Brown
fbda4c76f0
player.rs: Improve the fast-forward handling
Previously if you hit fast-forward but the offset remaining was
let that the amount you wanted to seek, it would do nothing.
Now it resets the stream and seekbar to the start.

Eventually this will just move on to the next episode in the
Queue once that's implemented.
2018-11-07 00:46:40 +02:00
Zander Brown
85387a0a9b
Fix for https://gitlab.gnome.org/World/podcasts/issues/105
Wow that was a quick one
2018-11-05 17:55:46 +00:00
Jordan Petridis
5ac4f6dcf9
Mpris: Actually raise the window
This fixes a bug where can_raise was never registered on dbus,
but it also works around a wayland issue with the .present()
method.

https://gitlab.gnome.org/GNOME/gtk/issues/624
2018-11-04 21:05:09 +02:00
Jordan Petridis
6671f8c6fe
podcasts-gtk: Add per file license annotations 2018-11-04 19:35:35 +02:00
Jordan Petridis
990d830f24
cargo fmt 2018-10-23 13:23:01 +03:00
Jordan Petridis
9cfdb35224
AboutDialog: Update contributors list 2018-10-06 11:09:07 +03:00
Jordan Petridis
32bd2a89a3
Stacks: Check if there episodes insteads of shows
If you added a Feed where a Show exists but it had no episodes
entries, the stack would end up in a populated state, but the
HomeView would be blank without widgets.

This changes it so the stack state depends upon the episodes
table being populated instead of the show. The downside
is that if your only feed is one without episodes you can
no longer navigate and interact with it.
2018-10-06 10:22:24 +03:00
Jordan Petridis
e0b3dd9795
Mpris: Implement the raise method 2018-10-04 16:46:04 +03:00
Jordan Petridis
cd2b087006 Player: Check the episode id before triggering a smart rewind 2018-10-04 05:27:11 +00:00
Jordan Petridis
ef2940142c PlayerInfo: Store the id of the current playing episode 2018-10-04 05:27:11 +00:00
Jordan Petridis
e13b8b8827 Player: Tweak the smart rewind behavior
Check if time interval passed since the last pause, and only
rewind if the delta to indicates that the user had
switched their focus.

In other words, avoid rewinding if the track was just paused and
resumed.
2018-10-04 05:27:11 +00:00
Jordan Petridis
bcc6ab50e2 PlayerInfo: Minor refactor of the mpris cover 2018-10-04 02:19:56 +00:00
Jordan Petridis
23aa8c05ab Player: Do not duplicate the mpris instance 2018-10-04 02:19:56 +00:00
Jordan Petridis
986d898217 Player: Remove an unwrap 2018-10-04 02:19:56 +00:00
Jordan Petridis
654c0e5e56 Player: Remove Initialization test
When constucting Player in the Sandbox, it tries to use X-11
for dbus-autolaunch which is disabled in the flatpak environment.

It fails with the following error:
D-Bus error: Using X11 for dbus-daemon autolaunch was disabled at compile time, set your DBUS_SESSION_BUS_ADDRESS instead (org.freedesktop.DBus.Error.NotSupported)
2018-10-04 02:19:56 +00:00
Felix Häcker
ede91da6f8 cargo fmt 2018-10-04 02:19:56 +00:00
Felix Häcker
1f18d4291f Player: implement fast forward / rewind for mpris 2018-10-04 02:19:56 +00:00
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