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
Jordan Petridis
041684b13a
Use impl Trait syntax instead of Trait Objects.
...
Rust v1.26 introduced impl Trait which avoid the heap allocation with Box
and makes the code a bit more ergonomic.
For more see https://blog.rust-lang.org/2018/05/10/Rust-1.26.html
2018-05-11 12:06:31 +03:00
Jordan Petridis
777a2102f8
gitlabci: Add review apps.
...
This makes it able to show a link pointing to the bundle in Merge Requests.
2018-05-10 18:46:52 +03:00
Jordan Petridis
65949c5af5
gitlabci: Extend the lifespan of the flatpak bundle.
...
For more information see the following nautilus commit.
https://gitlab.gnome.org/GNOME/nautilus/commit/3a35b6035ae6f383744aa88b73e451918292736c
Closes #60 .
2018-05-10 18:46:52 +03:00
Jordan Petridis
e40f880b9e
gitlabci: Use prebuilt clippy image
...
Since clippy won't fail to install now that it's bundled in the
container image also do not allow the to fail
2018-05-10 18:38:51 +03:00
Jordan Petridis
f9b34bbd50
h-data: Initial implementation of an OPML parser and importer.
...
This is not really compiant with the OPML spec and there
does not seem to be an OPML crate sadly. There are edge-cases
that are not handled but will only be addressed if a problem is reported.
2018-05-10 18:17:19 +03:00
Jordan Petridis
f06dbd0562
Version bump.
2018-05-07 19:48:21 +03:00
Jordan Petridis
4a6f5c6268
Update the Changelog.
2018-05-07 18:46:09 +03:00
Jordan Petridis
b5dbfb1a86
PopulatedStack: Allow for more control over the stack transitions.
...
When you just update/replace the widget there is no need for an animation
to occur. Thus why animations where broken before. This commit is not ideal
as it makes it the responsibility of the caller to declare valid(UX wise)
transitions.
2018-05-04 11:32:50 +03:00
Jordan Petridis
d86a17f76e
ShowWidget: Set max_width_charters in the Description.
...
If the window is fullscreen or given a big width description
expands and becomes harder to read. This sets the character limit
of the description to 70charaters. The exact size might differ
from machine-to-machine based on user settings. (Hi-dpi, chosen
font, etc.)
2018-05-02 19:29:55 +03:00
Jordan Petridis
37c7f20256
gitlabci: Always run clippy as part of the lint state now.
2018-05-02 16:05:03 +03:00
Jordan Petridis
f324407c9c
Deny all the warnings when building.
2018-04-30 14:21:34 +03:00
Jordan Petridis
c96b39d597
Fix all the clippy warnings!
2018-04-30 14:13:54 +03:00
Jordan Petridis
d4d89a56e9
Revert "Update deps."
...
This reverts commit f19ad133c6 .
There was dependancy conflitct that was not caught locally due to caching.
2018-04-29 20:15:44 +03:00
Jordan Petridis
f19ad133c6
Update deps.
2018-04-29 19:57:32 +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
b0ac037964
Fix the broken test.
2018-04-28 14:53:43 +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
115df7f884
h-gtk: Re-work the minimum widget requests.
2018-04-27 12:08:07 +03:00
Jordan Petridis
ed94d34589
h-gtk: Rename the stasckswitcher field in the Headerbar.
2018-04-27 11:41:39 +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
Jordan Petridis
b0c692ab7d
Readme: Add matrix link.
2018-04-25 20:15:43 +03:00
Jordan Petridis
06e8bc14f4
Readme: Remove badges and tweak the description.
...
Gitlab 10.7 natively supports badges
2018-04-25 20:00:41 +03:00
Jordan Petridis
3d160fc35c
h-gtk: Restructure the stacks structure.
...
This commit reimplements support for the empty view in the ShowStack.
The current structure is the following:
* A Content stack which holds the HomeStack and the ShowStack.
It's what is used in the headerbar StackSwitcher.
* The HomeStack is composed of the HomeView and an EmptyView.
* The ShowStack is composed of the PopulatedStack and an EmptyView.
* The PopulatedStack is composed of the ShowsView and the ShowWidget
currently. An AboutEpisode widget is planned to be added here also.
2018-04-25 19:23:02 +03:00
Jordan Petridis
734f85a517
Fix logic typo.
2018-04-24 15:34:52 +03:00
Jordan Petridis
a56a80db88
ShowWidget: Keep track of the podcast it was created from.
...
Since ShowStack now keeps a refference to ShowWidget we no
longer need to encode it in the widget name.
2018-04-24 15:25:34 +03:00
Jordan Petridis
c4ed90dd5a
ShowStack: Refactor to make stack restructure easier.
...
This removes the empty widget from the ShowStack. The plan is
to have a ShowsView which will be the parent of ShowStack and
an Empty Widget. Then make ShowStack have only valid populated
states of ShowsPopulate, ShowWidget and AboutEpisodeWidget later.
2018-04-24 13:12:27 +03:00
Jordan Petridis
f173b326a4
Contnet: Minor renaming following 75af3c7f2b
2018-04-24 12:28:29 +03:00
Jordan Petridis
5e302290de
HomeStack: Minor refactor to wrap gtk::Stack actions.
...
For now the methods are private and migth not be neccesarry,
but it will be much easier to manipulate the stack from outside
with this API if it's needed and the methods are made public.
2018-04-24 09:59:29 +03:00
Jordan Petridis
75af3c7f2b
h-gtk: Rename EpisodeStack to HomeStack.
2018-04-24 09:31:56 +03:00
Jordan Petridis
d7aec6fdfb
h-gtk: Move vies inside the widgets module.
...
EpisodeView was renamed to HomeView. More renaming will follow.
2018-04-23 15:57:46 +03:00
Jordan Petridis
9a3586fd1c
Readme: Fix the flatpak instructions.
2018-04-23 13:35:04 +03:00
Jordan Petridis
063bcbd0e5
Remove unused pub field.
2018-04-22 06:34:02 +03:00