Zander Brown
a0a78c95f7
Use gtk-rs 0.7.0
...
Currently uses forks of libhandy-rs andd mpris-player to avoid conflicts
2019-07-20 07:29: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
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
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
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
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
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
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
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
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
cb122cbc61
ShowWidget: Change description wrap mode
2018-08-14 13:59:42 +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
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