Jordan Petridis
1d53f0ac62
PlayerWidget: Remove unused vars an Enum.
2018-06-23 13:12:33 +00:00
Jordan Petridis
872d7d6c58
PlayerWidget: Connect the fast-forward and rewind buttons, sort of.
...
There appears to be a bug where it seeks 17 seconds instead of 10.
2018-06-23 13:12:32 +00:00
Jordan Petridis
27266b30df
PlayerWidget: Connect to the errors callback.
2018-06-23 13:12:32 +00:00
Jordan Petridis
f14f2f255c
PlayerWidget: Refactor the timers callbacks.
...
Should use the gst_player::Player callbacks instead but they require
the Send Trait which means we would need to use SendCell and that's
not something I am going to deal with right now.
2018-06-23 13:12:31 +00:00
Jordan Petridis
50c70e06b2
PlayerWidget: Set a custom config for the gst Player.
2018-06-23 13:12:31 +00:00
Jordan Petridis
b20ea22eaf
PlayerWidget: Wire the PlayerTimes labels and scale.
...
Adapted from gstreamer basic-tutorial-5.
https://gstreamer.freedesktop.org/documentation/tutorials/basic/toolkit-integration.html
2018-06-23 13:12:30 +00:00
Jordan Petridis
d671c07afb
PlayerWidget: Wire the play and pause buttons and add style classes to the Info Labels.
...
This also includes the yak shaving of a ::new and ::inti methods.
2018-06-23 13:12:30 +00:00
Jordan Petridis
127088edd2
cargo fmt
2018-06-23 13:12:29 +00:00
Jordan Petridis
aee3fcf7bf
PlayerWidget: Wire the widget to the GUI.
...
This commit also removes the majority of the playback widget,
though most of it's code will make it to the PlayerWidget once
it starts to get wired to the gtreamer_plaer::Player.
2018-06-23 13:12:28 +00:00
Jordan Petridis
7ad16e5467
PlayerWidget: Intial draft of the the PlayerExt trait.
2018-06-23 13:12:28 +00:00
Jordan Petridis
a278bed302
h-gtk: Bind the new player widget to code.
2018-06-23 13:12:27 +00:00
Zander Brown
17d574eafe
Start hooking things up
...
Still doesn't accept input
2018-06-23 13:12:27 +00:00
Zander Brown
f26cb13174
Initial playback control area
...
(not plumbed in)
2018-06-23 13:12:26 +00:00
Zander Brown
7fe69c180f
Initial playback
...
... and not a lot more. Hit play and the podcast will play, press play on something else and that will play instead
2018-06-23 13:12:25 +00:00
Zander Brown
ee23df176d
Our GActions don't need to be in the app namespace
2018-06-07 18:06:36 +01:00
Jordan Petridis
a9feed56fe
Replace html2pango with html2text.
2018-06-06 15:28:44 +03:00
Jordan Petridis
6d93ceb910
EpisodeWidget: Minor style change.
2018-06-05 14:33:18 +03:00
Jordan Petridis
9b0ac5b83d
EpisodeWidget: Do not lock the Proggress struck when running update callbacks.
...
Previously each time we wanted to inspect the `Progress` struct we
were blocking which was problematic since the downloader also wants
to block to update it.
Now we use try_lock() and if a lock can't be aquired we requeue another
callback. That way we can also be way more aggressive about the interval
in whihc it the callbacks will run.
2018-06-05 14:17:37 +03:00
Jordan Petridis
ced686e1cd
EpisodeWidget: Remove explicit type declarations.
2018-06-02 22:33:00 +03:00
Jordan Petridis
272aab2397
EpisodeWidget: Document determine_state method.
2018-06-02 22:00:30 +03:00
Jordan Petridis
a7f87f2ac8
ShowWidget: Fix markallplayed functionality.
...
cfe79a73d6 changed the structure
of the EpisodeWidget and broke this.
2018-06-02 21:34:19 +03:00
Jordan Petridis
d281c18951
EpisodeWidget: Pass EpisodeWidgetQuery by refference.
2018-06-02 21:03:07 +03:00
Jordan Petridis
04e7f4f8a7
EpisodeWidget: Wire the download_checker callback again.
...
If an episode is being downloaded we setup a callback that will
supervise the widget and update it's state once the download action is
completed and the episode rowid is removed from `manager::ACTIVEDOWNLOADS`.
2018-06-02 21:03:00 +03:00
Jordan Petridis
a090c11f4a
EpisodeWidget: Wire the progressbar again.
2018-06-02 19:42:19 +03:00
Jordan Petridis
c303c697a9
EpisodeWidget: Wire the total_size label again.
...
The size might be provided by the rss feed but not alwasy. Additionally it might be
missleading so when a download starts we replace the label with the
HTTP ContentLength header.
2018-06-02 19:25:25 +03:00
Jordan Petridis
9466c5ea10
EpisodeWidget: Wire the cancel button.
2018-06-01 21:30:56 +03:00
Jordan Petridis
1268fcf1cc
EpisodeWidget: Wire the download button.
2018-06-01 19:08:56 +03:00
Jordan Petridis
86d06fa879
EpisodeWidget: Wire the play button again.
2018-06-01 16:49:06 +03:00
Jordan Petridis
cfe79a73d6
EpisodeWidget: Initial refactor.
...
State machines were a fun experiement but a nightmare to deal with
after the fact. This is the first steps for a refactor in a tradition
style with the goal to ultimatly making it easy to and port to relm.
2018-06-01 16:19:33 +03:00
Zander Brown
2fe612d392
Avoid un-closable AboutDialog
2018-05-31 08:35:09 +00:00
Jordan Petridis
14d72b92cb
h-gtk: Move appnotif.rs into the widgets module.
2018-05-30 16:45:46 +03:00
Jordan Petridis
24058f9534
h-gtk: Write doc comment for aboutdialog.
2018-05-29 13:36:22 +03:00
Jordan Petridis
667deef5f2
Use a mpmc channel instead of the mspc from the std.
2018-05-28 20:49:12 +03:00
Zander Brown
e7128a57db
Resolve some comments
2018-05-22 10:28:13 +01:00
Zander Brown
793cafd294
Formatting updates
2018-05-22 09:55:00 +01:00
Zander Brown
e181a9837a
Merge upstream master
2018-05-21 12:01:32 +01:00
Zander Brown
c6ce888cc7
Define an app-menu with About & Quit actions
...
Rename some paths for auto resource magic
2018-05-19 20:38:36 +01:00
Jordan Petridis
bd12b09cbc
ShowsView: Fix a bug where the last show would not be shown.
...
utils::lazy_load() now calls widget.show() for each widget it adds
to the parent container.
2018-05-16 19:44:58 +03:00
Jordan Petridis
7035fe05c4
InAppNotification: Extend the widget to allow showing notifications without an undo button.
2018-05-16 16:58:03 +03:00
Jordan Petridis
af7331c6c6
h-gtk: Rename EpisodeViewWidget to HomeEpisode.
2018-05-16 16:33:54 +03:00
Jordan Petridis
4d2b64e79d
h-gtk: Remember the vertical allingment of the ShowsView.
2018-05-13 22:47:56 +03:00
Jordan Petridis
d47bbd6131
Remove explicit and not needed inline calls.
...
This code is not performance critical and the compiler will already
inline whatever it thinks it might benefit it.
2018-05-13 22:08:25 +03:00
Jordan Petridis
c96b39d597
Fix all the clippy warnings!
2018-04-30 14:13:54 +03:00
Jordan Petridis
00d9019f29
Do not pass some things by value when not needed.
2018-04-29 19:27:40 +03:00
Jordan Petridis
8951a6e237
h-gtk: Animate the adjustment of scrolled windows.
...
Many thanks to Julian Spaber for documenting this.
2018-04-29 19:07:12 +03:00
Jordan Petridis
2c8ff2d2f2
Cargo fmt
2018-04-28 14:19:55 +03:00
Jordan Petridis
03bd951848
EpisodeWidget: Handle updating states, withotu having to reload the views.
...
This code is ugly and terrible but it works™. Previsously when a download
would finish it would refresh all the views. Now the if the widget get's
into the Donwloading state, it will setup a callback that will check
periodicly if it's still downloading and update the widget state when
the episode stops downloading.
2018-04-28 14:09:26 +03:00
Jordan Petridis
63e2ea987e
This was commited by accident.
2018-04-28 12:41:56 +03:00
Jordan Petridis
dc5ff9d809
h-gtk: Take into account the ignored_shows when detemening if podcast table is empty.
...
If you've had one show and pressed unsub, instead of going to
an empty view, it would stay to populated since it the db records
where still there.
2018-04-27 11:21:32 +03:00
Jordan Petridis
72a6832571
h-gtk: Rename HomeView and ShowView parent modules.
2018-04-25 20:57:05 +03:00