Jordan Petridis
c42822669b
PlayerTimes: Replace unnecessary Arc with Rc.
2018-06-23 22:45:16 +00:00
Jordan Petridis
b58d28c723
PlayerTimes: create wrapper struct of gst::ClockTime.
...
Now on_duration_changed requires a `Duration` type and
on_position_updated requires a `Position` type as oppose to
both accepting `ClockTime` as their argument.
2018-06-23 22:45:16 +00:00
Jordan Petridis
a6a34d8246
PlayerWidget: Group the button connect_clicked methods.
2018-06-23 22:45:16 +00:00
Jordan Petridis
0080399db2
PlayerWidget: Move on_duration_change and on_postion_updated methods.
...
Previously they depended on the player/pipeline to get the ClockTime
values, and only `PlayerWidget` had access to the `gst_player::Player`
object.
Now that it uses the gst_player methods instead of the raw pipeline
methods to get the ClockTime values it no longer needs access to the whole
PlayerWidget object.
2018-06-23 22:45:15 +00:00
Jordan Petridis
50b480ee23
PlayerWidget: Refactor the position_changed/updated callback.
...
It now uses gst_player::Player::connect_position_updated callback
to send, cross threads, the `position` value to the gtk main loop
which then updates the widget.
2018-06-23 22:45:15 +00:00
Jordan Petridis
da467b7837
PlayerWidget::seek handle the case where the offset might be none.
2018-06-23 22:45:15 +00:00
Jordan Petridis
70914b6c3e
PlayerWigdet: Refactor the way the duration label is updated.
...
This now connect's directly to gst_player::Player::connect_duration_changed
method.
The method then sends a cross-thread msg to the Action channel in the main loop that
then updates the widget.
2018-06-23 22:45:14 +00:00
Jordan Petridis
6c3fbfe0ca
PlayerWiget: refactor the seekbar connect signal.
2018-06-23 22:45:14 +00:00
Jordan Petridis
8e4b705e60
PlayerWidget: Log the gst warnings.
2018-06-23 22:45:14 +00:00
Jordan Petridis
48d80d3194
PlayerWidget: Remove unused vars an Enum.
2018-06-23 22:45:14 +00:00
Jordan Petridis
38768c777d
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 22:45:13 +00:00
Jordan Petridis
1daa841f31
PlayerWidget: Connect to the errors callback.
2018-06-23 22:45:13 +00:00
Jordan Petridis
a9f81d0ad3
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 22:45:13 +00:00
Jordan Petridis
76720424ab
PlayerWidget: Set a custom config for the gst Player.
2018-06-23 22:45:13 +00:00
Jordan Petridis
a7b639a66b
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 22:45:12 +00:00
Jordan Petridis
1b78d221b6
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 22:45:12 +00:00
Jordan Petridis
ac7b1a3c66
CI: disable debian builds fow now.
...
Debian stable provides gst 1.10 but the gst-rs bindings requiere
v 1.12 to build.
I will make custom images Soon™
2018-06-23 22:45:12 +00:00
Jordan Petridis
039c3182aa
h-gtk: Remove unused .ui file.
2018-06-23 22:45:12 +00:00
Jordan Petridis
55d94b1844
CI: Add gstreamer as a dep for the debian build.
2018-06-23 22:45:11 +00:00
Jordan Petridis
3baa69b43b
cargo fmt
2018-06-23 22:45:11 +00:00
Jordan Petridis
5f92df97e6
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 22:45:11 +00:00
Jordan Petridis
47f297c495
PlayerWidget: Intial draft of the the PlayerExt trait.
2018-06-23 22:45:11 +00:00
Jordan Petridis
58f09ba150
h-gtk: Bind the new player widget to code.
2018-06-23 22:45:10 +00:00
Jordan Petridis
1142948945
Rework the player widget.
2018-06-23 22:45:10 +00:00
Jordan Petridis
f56bf3afef
Enable more rustc lints
2018-06-23 21:02:19 +03:00
Jordan Petridis
c4c7bbf46b
Content: Change the user-facing string of the home stack.
2018-06-23 16:11:00 +03:00
Jordan Petridis
7fdd374911
Update the gitlab bug issue template
2018-06-23 13:01:34 +00:00
Jordan Petridis
fb9ad9870d
Update the gitlab feature issue template.
2018-06-23 12:59:35 +00:00
Jordan Petridis
bbabc6f5e9
h-gtk: Add resources/ to the cargo check list.
2018-06-11 14:23:29 +03:00
Jordan Petridis
2060579bb4
gitlab templates: Fix markdown formatting.
2018-06-09 16:16:57 +03:00
Jordan Petridis
b0f0940605
Merge branch 'master' into 'master'
...
Our GActions don't need to be in the app namespace
See merge request World/hammond!39
2018-06-07 17:37:12 +00:00
Jordan Petridis
d53865d81b
Update deps.
2018-06-07 16:14:40 +03:00
Jordan Petridis
7becfd8adb
Commit Updated Cargo.lock.
...
This was part of a9feed56fe but
forgot to commit it.
2018-06-07 15:47:41 +03:00
Jordan Petridis
a9feed56fe
Replace html2pango with html2text.
2018-06-06 15:28:44 +03:00
Jordan Petridis
dea517c17c
Update the Changelog.
2018-06-05 14:58:29 +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
acabb40171
CI and Flatpak: Use the 3.28 runtime till fdo 1.8 is fixed.
2018-06-04 14:25:38 +00:00
Jordan Petridis
04cd56ca16
CI: change the image of the flatpak job.
2018-06-02 20:55:09 +00:00
Jordan Petridis
4371512ba2
Merge branch 'episode-wiget-refactor' into 'master'
...
Episode wiget refactor
See merge request World/hammond!38
2018-06-02 20:42:46 +00: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
f9e85155a8
Remove unused dependancy.
2018-06-02 21:13:30 +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
Jordan Petridis
d7a9d9ddc8
CI: FIx the clippy cache.
2018-05-31 14:46:51 +03:00
Jordan Petridis
b3d45384e1
meson: Add debug build.
2018-05-31 14:45:54 +03:00
Jordan Petridis
64099e37e5
Merge branch 'dialog-enchance' into 'master'
...
Avoid un-closable AboutDialog
See merge request World/hammond!37
2018-05-31 09:42:52 +00:00
Jordan Petridis
14d72b92cb
h-gtk: Move appnotif.rs into the widgets module.
2018-05-30 16:45:46 +03:00
Jordan Petridis
8c0055723c
cargo fmt
2018-05-30 16:25:15 +03:00
Jordan Petridis
bb9e368b2d
Merge branch 'ZanderBrown/hammond-gaction_macro'
2018-05-29 22:21:55 +03:00
Jordan Petridis
7115eb573c
Downgrade Diesel to 1.2.x
...
disel_migrations 1.3 triggeres some clippy lints atm.
2018-05-29 18:16:57 +03:00
Jordan Petridis
e626c6f286
app.rs: Factor out the GAction definitions.
2018-05-29 14:04:09 +03:00
Jordan Petridis
24058f9534
h-gtk: Write doc comment for aboutdialog.
2018-05-29 13:36:22 +03:00
Jordan Petridis
a8d47e9a72
app.rs: Remove unused variable.
2018-05-29 13:26:36 +03:00
Jordan Petridis
9a2f51b48d
Update deps.
2018-05-28 22:06:07 +03:00
Jordan Petridis
667deef5f2
Use a mpmc channel instead of the mspc from the std.
2018-05-28 20:49:12 +03:00
Jordan Petridis
aa349aa935
Flatpak: Remove access to XDG_HOME.
...
In 75c50392cb we switched to use the
FileChooserNative API which means that filesystem access is automatically
handled by the Documents(!)(Might be another one) xdg portal.
2018-05-28 19:50:25 +03:00
Jordan Petridis
666ab01d03
Merge branch 'appmenu' into 'master'
...
Appmenu
See merge request World/hammond!33
2018-05-28 16:41:25 +00:00
Jordan Petridis
74f8e744ac
Version bump.
2018-05-20 17:47:33 +03:00
Jordan Petridis
1c657036da
Update Changelog.
2018-05-20 17:40:27 +03:00
Jordan Petridis
2869bb3ef3
Flatpak: Allow the app to access the Home folder.
...
This is needed in order to import an OPML file. There
might be a better solution to this.
2018-05-20 17:37:48 +03:00
Jordan Petridis
784e117a8a
cargo fmt
2018-05-20 16:39:36 +03:00
Jordan Petridis
0b6bbf6733
CI: Fix rustfmt job.
2018-05-20 14:36:20 +03:00
Jordan Petridis
2312df3718
Fix rustfmt config.
2018-05-20 14:32:06 +03:00
Jordan Petridis
c4e6fcc451
Version bump.
2018-05-19 13:11:02 +03:00
Jordan Petridis
22ae5242b2
Update Changelog.
2018-05-19 12:44:14 +03:00
Jordan Petridis
4d77281249
Update deps.
2018-05-19 12:17:55 +03:00
Jordan Petridis
b77a373efa
Opml: remvoe uneccesary to_string invocation.
2018-05-17 15:08:38 +03:00
Jordan Petridis
463c3908d4
Revert "gitlabci: switch to test rust-nightly till the stable image is update."
...
This reverts commit 2711ebca68 .
Rust stable image is updated again.
2018-05-16 21:00:35 +03:00
Jordan Petridis
79239a2e01
gitlabci: Cache cargo for the clippy job.
2018-05-16 20:59:54 +03:00
Jordan Petridis
41073615e9
Clippy: Derive Copy for appnotif::UndoState
2018-05-16 19:54:07 +03: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
7d598bb1d0
h-gtk: Smooth out some stack transitions.
2018-05-16 19:40:36 +03:00
Jordan Petridis
ccd3e3ab2c
h-gtk: Show error notifications when OPML import fails.
2018-05-16 17:54:32 +03:00
Jordan Petridis
118dac5a1a
app.rs: Add an action for showing error notification.
2018-05-16 17:30:43 +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
54fafa07a2
h-gtk: Use clone! macro to replace some boilerplate.
2018-05-13 21:51:32 +03:00
Jordan Petridis
97eef9149c
import_dialog: Do not show hidden files in the FileChooser.
2018-05-13 00:22:54 +03:00
Jordan Petridis
b95e70a8c4
import_dialog: Only show xml files in the FileChooser.
2018-05-13 00:06:35 +03:00
Jordan Petridis
a16d7de1ac
Add EPIC.md issue template.
2018-05-12 23:15:53 +03:00
Jordan Petridis
6f590a64af
gitlabci: Fix review-app.
2018-05-12 23:01:50 +03:00
Jordan Petridis
00e747eb5f
h-gtk: Wire the import_shows button on the hamburger menu to the the opml import.
2018-05-12 22:55:35 +03:00
Jordan Petridis
2d8164cf0a
Clippy: remove useless attribute.
...
Also merge some attributes together.
2018-05-12 15:02:33 +03:00
Jordan Petridis
be1a8df3ef
Headerbar: simplify the naming scheme a bit.
...
The type of the widgets is already a Button so there's no need in
repeating that in the struct field.
Also remove some type annotations since the compiler can infer them
from the type of the struct fields.
2018-05-12 14:45:00 +03:00
Jordan Petridis
e8ca2faaa7
Headerbar: Add import and export items in the hamburger menu.
...
I strongly believe that these do not belong there and should be moved
elsewhere. But for the time being and prototyping they are "good enough".
People most of the time tend to import from an OPML file only on the first
use of the App. Then the functionality sits there and is never used again.
That's why I think import should be moved into a preferences dialogs and
have the empty view suggest the action.
Exporting OPML files is also not that common, I also believe this should be
moved into a preference dialog instead of the hamburger menu.
2018-05-12 14:17:40 +03:00
Jordan Petridis
83f9284b05
Cargo fmt
2018-05-12 13:45:19 +03:00
Jordan Petridis
6e5c70ab71
opml: Change the signature of import_opml function.
...
xml::reader::Error is the only error that can be returned so there
is no need to use the DataError type.
2018-05-12 13:19:14 +03:00
Jordan Petridis
ab4f958b5f
Readme: bump the minimum rust version.
2018-05-11 13:55:34 +03:00
Jordan Petridis
2711ebca68
gitlabci: switch to test rust-nightly till the stable image is update.
2018-05-11 13:54:25 +03:00