Commit Graph

328 Commits

Author SHA1 Message Date
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
Sabri Ünal
dd0d828794 Update Turkish translation 2019-03-06 10:46:39 +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
075dd1adeb cargo: change email metadata of the crates 2019-03-03 04:59:52 +02:00
Jordan Petridis
027faf1949 Change formatting of podcasts-gtk/Cargo.toml 2019-03-03 04:58:40 +02:00
Jordan Petridis
54e049874c html2text: Use upstream git repo 2019-03-03 04:54:42 +02:00
Jordan Petridis
c4c6ba9ea4
Update dependencies 2019-03-03 04:46:19 +02:00
Jordan Petridis
a77bf0b8fb
Update gtk-rs family of crates 2019-03-03 04:46:19 +02:00
Kukuh Syafaat
b1058933b8 Update Indonesian translation 2019-03-02 12:18:56 +00:00
Jiri Grönroos
32c7f6b29e Update Finnish translation 2019-03-02 08:51:28 +00:00
Milo Casagrande
137705450b Update Italian translation 2019-02-28 08:25:39 +00:00
Ask Hjorth Larsen
4dc6034de8 Add Danish translation 2019-02-24 17:46:33 +00:00
Daniel Mustieles
7fa18fe38f Update Spanish translation 2019-02-19 15:05:09 +00: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
Balázs Úr
a113ed049d Update Hungarian translation 2019-02-05 20:45:43 +00:00
Piotr Drąg
2f8a6a91f8 Update Polish translation 2019-02-02 15:31:37 +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
Daniel Mustieles
fb4e550122 Update Spanish translation 2019-01-29 15:28:41 +00:00
Balázs Úr
a74301f479 Update Hungarian translation 2019-01-28 22:42:49 +00:00
Rafael Fontenelle
c49f417d00 Update Brazilian Portuguese translation 2019-01-28 21:22:53 +00: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
2cb6bf2b98
p-gtk: Update the libhandy bindings 2019-01-21 03:13:51 +02:00
Jiri Grönroos
d8cddfafa0 Update Finnish translation 2019-01-16 18:04:16 +00:00
Bilal Elmoussaoui
bc8d521853 appdata: Improve the appdata file per the specs
freedesktop specs:https://freedesktop.org/software/appstream/docs/chap-Quickstart.html
kudos documentation: https://gitlab.gnome.org/GNOME/gnome-software/blob/master/doc/kudos.md
2019-01-09 19:21:29 +00:00
Bilal Elmoussaoui
32424e7938 Meson: add tests to validate desktop & appdata files 2019-01-09 18:24:11 +00:00
Milo Casagrande
c47d375a58 Update Italian translation 2018-12-11 16:49:14 +00:00
Jordan Petridis
9f8ae75691
Remove depricated lints 2018-12-09 03:53:17 +02:00
Christopher Davis
ed62f2b1f2 style.css: Remove custom .devel style class
GTK includes it's own .devel style class, so we don't need to
override by creating our own.
2018-12-06 00:30:00 -05: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
fdb064ffc8
Update dependancies 2018-11-29 11:57:27 +02:00
Jordan Petridis
0888da2197 Upgrade dependencies 2018-11-18 12:59:02 +00: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
Kukuh Syafaat
201f2e23c7 Update Indonesian translation 2018-11-15 16:42:30 +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
Daniel Mustieles
534c627300 Update Spanish translation 2018-11-02 12:26:05 +00:00
Jordan Petridis
1a1e5ecd3f
Update App icon. Close #102 2018-10-30 20:34:47 +02:00
Alexandre Franke
3e555c64d9 Add French translation 2018-10-29 12:54:45 +00:00
Dušan Kazik
8d6b5f7105 Update Slovak translation 2018-10-28 21:00:26 +00:00
Dušan Kazik
4692be663e Add Slovak translation 2018-10-28 15:31:17 +00:00
gogo
5ae0fb1b0e Update Croatian translation 2018-10-24 19:46:48 +00:00
Jordan Petridis
990d830f24
cargo fmt 2018-10-23 13:23:01 +03:00
lightning1141
c1eed45194
fix typo 2018-10-23 10:52:33 +08:00
Anders Jonsson
31ee668311 Update Swedish translation 2018-10-16 19:53:58 +00:00
Piotr Drąg
a61d04f445 Update Polish translation 2018-10-07 14:57:18 +00:00
Marek Černocký
8ba8ada253 Update Czech translation 2018-10-07 14:48:24 +00:00
Jordan Petridis
885b796f85
New release 0.4.6 2018-10-07 10:18:15 +03:00
Emin Tufan Çetin
5997666bad Update Turkish translation 2018-10-06 15:53:09 +00:00
Jordan Petridis
40186ce155
Update dependancies 2018-10-06 11:29:52 +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
Rafael Fontenelle
1e6eca307b Update Brazilian Portuguese translation 2018-10-05 14:19:31 +00:00
Alexandre Franke
ab52825c71 Fix typo 2018-10-05 10:04:44 +00:00
Florian Heiser
8f4d017180 Update German translation 2018-10-05 04:41:29 +00:00
Jordan Petridis
357d99ac7c
Remove temporary file 2018-10-04 17:18: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
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
fed0edbf16 Player: use crates.io package of mpris 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
Kukuh Syafaat
2ff921cc1a Update Indonesian translation 2018-10-02 13:34:32 +00:00
Piotr Drąg
e0e66fa6af Update Polish translation 2018-09-30 17:17:46 +00:00
Marek Černocký
110e29ec5a Update Czech translation 2018-09-29 19:31:22 +00:00
Jordan Petridis
8d44649a1e
Update dependancies 2018-09-29 09:54:06 +03:00
Jordan Petridis
ba60db9977
podcasts-gtk: Upgrade reqwests to 0.9 2018-09-29 09:54:06 +03:00
Jordan Petridis
5050dda4d2
Hamburger: Update to reflect the latest HIG changes
Preferences are now grouped with the application actions.
The About label was renamed to "About Podcasts".

https://mail.gnome.org/archives/desktop-devel-list/2018-September/msg00015.html
2018-09-29 02:43:19 +03:00
Florian Heiser
9ea1e16ac8 Update German translation 2018-09-27 15:32:33 +00:00
Rodrigo Lledó
922f44f605 Update Spanish translation 2018-09-24 10:17:44 +00:00
Adolfo Jayme Barrientos
6ea3fc918b Add Catalan translation 2018-09-24 07:52:18 +00:00
Kukuh Syafaat
0c201533f0 Update Indonesian translation 2018-09-22 08:20:38 +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
gogo
a15fea1d65 Update Croatian translation 2018-09-19 12:24:57 +00:00
Emin Tufan Çetin
d8dbbc6832 Update Turkish translation 2018-09-15 20:11:23 +00:00
Marek Černocký
3563a964ef Add Czech translation 2018-09-15 05:15:51 +00:00
Jordan Petridis
c0e034726a
Upgrade gtk-rs and friends
Upgrade gtk-rs, and everything dependings on it like gst-rs and
libhandy bindigns
2018-09-13 15:47:40 +03:00
Rafael Fontenelle
d676a7071a Update Brazilian Portuguese translation 2018-09-11 00:12:22 +00:00
Rūdolfs Mazurs
a681b2c944 Add Latvian translation 2018-09-10 17:34:18 +00:00
Mario Blättermann
c53701d56b Update German translation 2018-09-10 07:50:51 +00:00
Anders Jonsson
a8c1f2eccc Update Swedish translation 2018-09-09 17:39:22 +00:00
Piotr Drąg
cf7ee44efc Update Polish translation 2018-09-09 17:00:14 +00:00
Jordan Petridis
baa84773a5
EpisodeWidget: Change the "cancel" action icon 2018-09-08 20:17:47 +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
gogo
0476b67b2f Add Croatian translation 2018-09-06 18:29:14 +00:00
Balázs Meskó
2751a828e0 Add Hungarian translation 2018-09-05 22:09:46 +00:00
Fabio Tomat
60e09c0dd7 Add Friulian translation 2018-09-04 18:18:27 +00:00
Milo Casagrande
a23297e56a Add Italian translation 2018-09-03 13:42:38 +00:00
Daniel Mustieles
f59be31ded Update Spanish translation 2018-09-03 06:32:14 +00:00
Anders Jonsson
2e527250de Add Swedish translation 2018-09-02 23:35:41 +00:00
Piotr Drąg
91dd378f5d Update Polish translation 2018-09-01 17:49:54 +00:00
Jiri Grönroos
f5b3d033a3 Update Finnish translation 2018-09-01 16:59:07 +00:00
Rafael Fontenelle
db98e3b722 Add Brazilian Portuguese translation 2018-09-01 13:29:55 +00:00
Mario Blättermann
586cf16fdc Update German translation 2018-08-31 19:05:31 +00:00
Jordan Petridis
064d877205
Appdata: add release notes 2018-08-31 21:00:18 +03:00
Jordan Petridis
fbf8cc87c9 Version bump 2018-08-31 14:14:17 +00:00
Seong-ho Cho
36f169635a Add Korean translation 2018-08-31 00:56:44 +00:00
Jordan Petridis
3f509f44a1
Update dependancies. 2018-08-30 20:45:53 +03:00
Jordan Petridis
abfe98283b
EpisodeWidget: Allow size labels to elipsize 2018-08-30 20:21:10 +03:00
Kukuh Syafaat
ded0224f51 Add Indonesian translation 2018-08-30 10:43:20 +00:00
Fran Dieguez
0060a634d2 Add Galician translation 2018-08-30 08:45:45 +00: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
Jordan Petridis
822deb2867 Utils: do not block the cover_dl registry
Accidently after f21398357b when a download would start,
it would lock the cover_dl_registry hashmap till it had finished.

Since the registry.read() happens on the main thread this would
cause the UI to block until the download was and the mutex guard
from the download thread dropped.
2018-08-28 21:15:52 +00:00
Piotr Drąg
2a888f0bce Update POTFILES.in 2018-08-28 19:44:34 +02: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
15457e1db4
App/Build: Use env! macro to fetch the variable
env! is resolved at compile time which means we don't need to read
and set LOCALDI from build.rs
2018-08-28 17:22:13 +03:00
Jordan Petridis
0ae1eb9578
build: Translate desktop and appdata files 2018-08-28 17:22:13 +03:00
Emin Tufan Çetin
a2d8b88337 Update Turkish translation 2018-08-27 08:43:08 +00:00
Zander Brown
88e07031a6 Workaround for FileChooserNative oddness 2018-08-27 07:52:09 +00:00
Piotr Drąg
cb4daa1ba1 Update Polish translation 2018-08-26 16:31:44 +00:00
Mario Blättermann
05d6d8399d Update German translation 2018-08-25 21:27:45 +00:00
Jordan Petridis
8bc81d6b5e
Update pot files 2018-08-22 08:29:30 +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
d2c6c6cc4d
Update pot files 2018-08-20 14:09:34 +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
Emin Tufan Çetin
547fdef9c4 Update Turkish translation 2018-08-19 14:54:27 +00:00
Jordan Petridis
04161284a7
Headerbar: Make the switcher insensitive if empty
If there are no shows/episodes to display, there isn't any point
to being able to hit the switcher.
2018-08-19 14:31:27 +03:00
Jordan Petridis
14d4818867
App: Disable refresh action while in empty state
Close #71
2018-08-19 14:25:41 +03:00
Jordan Petridis
9f42e91088
Refactor content state with Application actions
Instead of each view/widget determening if its populated on its own,
make add Application Actions and apply the state globally.
2018-08-19 13:44:11 +03:00
Jordan Petridis
79ac3b9700
Update dependancies 2018-08-18 18:33:26 +03:00
Jordan Petridis
89b99614a0
Refactor the tests to use ? operator
As of ructc 1.27 #[test] can return errors. This improves a great
deal the ergonomics.
2018-08-18 17:02:31 +03:00
Tobias Bernard
0dfb48593e App icon: orange -> red 2018-08-17 12:49:44 +02:00
Mario Blättermann
6b6c390cb8 Add German translation 2018-08-15 17:19:11 +00:00
Jordan Petridis
cd937c4844
utils: Refactor refresh_feed
Move channel creation inside the thread.
Drop the Result return type as its not needed anymore.
2018-08-14 15:24:25 +03:00
Jordan Petridis
cc1a5783fd
App: Do not update the db if its empty
If the source table is empty skipp the database refresh.
2018-08-14 15:19:31 +03:00
Jordan Petridis
cb122cbc61
ShowWidget: Change description wrap mode 2018-08-14 13:59:42 +03:00
Jordan Petridis
03754c56c6
Fix the test-suite 2018-08-14 13:40:37 +03:00
Jordan Petridis
471f6ff93b
Source: Remove ignore_etags option
This is never used anywhere else apart from the testsuite. Instead
of ignoring etags we should instead not save them if the feed does
not return 200 or 304. See #64.
2018-08-14 13:40:33 +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
b2d71a037c
Headerbar: Remove the update indicator 2018-08-14 07:52:41 +03:00