Jordan Petridis
69e87d129a
ShowWidget: Hide shows from the Views when unsub is hit.
2018-03-26 14:34:54 +03:00
Jordan Petridis
f7a7510322
Implement the shared HashSet with the ignored Shows ids
2018-03-26 13:25:39 +03:00
Jordan Petridis
e9f2ba47f2
dbquerries: Add get_episodes and get_podcasts querries that can filters.
2018-03-26 12:46:13 +03:00
Jordan Petridis
b2c95e5a73
ShowWidget: display a notification before removing the show.
2018-03-26 10:57:44 +03:00
Jordan Petridis
482ed7c3c6
Update README
2018-03-26 10:11:43 +03:00
Jordan Petridis
e497f73316
gitlabci: run glib-compile-resources from the flatpak enviroment
2018-03-21 14:24:56 +02:00
Jordan Petridis
28965dc2b1
gitlabci: Disable normal builds now that tests can run on the flatpak one.
2018-03-19 12:00:53 +02:00
Jordan Petridis
5425ca35b3
Cleanup .gitignore a bit
2018-03-19 11:52:02 +02:00
Jordan Petridis
9f191d0ab8
gitlabci: Run cargo test inside the flatpak.
2018-03-19 11:33:45 +02:00
Jordan Petridis
c2a3ce5096
Why the hell you do not cache cargo.
2018-03-19 07:43:04 +02:00
Jordan Petridis
1af06f2e0d
Neaw gtk-rs release, yay!
2018-03-19 06:34:28 +02:00
Jordan Petridis
2f2f11b7bc
gitlabci: Fix flatpak issue building only master.
2018-03-18 17:03:16 +02:00
Jordan Petridis
260e6015a1
Merge branch 'issue/53' into 'master'
...
Fix #53 by setting the HTTP user agent string to the latest Firefox ESR.
Closes #53
See merge request alatiera/Hammond!26
2018-03-18 11:34:12 +00:00
Jordan Petridis
2457e95f0e
gitlabci: Improve caching
2018-03-18 05:59:35 +02:00
Jordan Petridis
327c907463
gitlabci: try to cache the flatpak build
2018-03-18 05:07:42 +02:00
Jordan Petridis
1b558d3b30
gitlabci: switch flatpak build to the custom image
2018-03-18 05:07:37 +02:00
Jordan Petridis
a0d55417cd
Merge branch 'feature/gsettings-integration' into 'master'
...
Integrate gsettings into application
See merge request alatiera/Hammond!23
2018-03-17 23:37:43 +00:00
Jordan Petridis
bc2da6e59e
gitlabci: add flatpak build and reformat tabs.
2018-03-18 00:31:15 +02:00
Jordan Petridis
a253d7ebf5
Merge branch 'feature/gsettings-schema' into 'master'
...
Added initial settings schema.
See merge request alatiera/Hammond!22
2018-03-16 20:05:19 +00:00
Jordan Petridis
93e15af209
Compress gresource ui files.
2018-03-16 21:29:54 +02:00
Jordan Petridis
9f3a5a13b3
EpisodeWidget: Some RefCell are not really necessary.
2018-03-16 20:11:17 +02:00
Jordan Petridis
3a0fb4bdec
Upgrade dependancies.
2018-03-14 04:07:44 +02:00
Jordan Petridis
8a460930c6
Update changelog.
2018-03-14 01:10:02 +02:00
Jordan Petridis
a11c4c9bd2
InAppNotification: Twek the margins around the text label.
2018-03-14 00:43:17 +02:00
Jordan Petridis
d4b98b5cb2
I hate everything that has to do with centering stuff.
2018-03-14 00:40:29 +02:00
Jordan Petridis
fdf3908494
This reverts cc052eb450
...
Turns out debian stable meson package is kinda old.
2018-03-13 07:23:43 +02:00
Jordan Petridis
cc052eb450
gitlabci: use meson to test the build instead of cargo.
2018-03-13 07:03:31 +02:00
Jordan Petridis
4535c3005d
Merge branch 'state-machines-experiements' into 'master'
...
EpisodeWidget as a state machine
See merge request alatiera/Hammond!18
2018-03-13 04:52:40 +00:00
Jordan Petridis
030fed6d12
EpisodeWidget: Just in case there was a deadlock.
2018-03-13 04:57:11 +02:00
Jordan Petridis
fc9579cd51
EpisodeWidget: Replace some Mutexs with RefCells.
...
The state machines are not send and the code is sequnecial.
We only need `&mut machine` refference to pass to `take_mut::take`
to change the state of the machine. In 2/3 cases we can even use
`.get_mut()` method and even avoid the dynamic borrow checks at
runtime. For the `TitleMachine` The only thing that will hold
a refference to it after initialization will be the play_button
callback. So it's justifiable to use `RefCell` insetead of a `Mutex`.
2018-03-13 04:44:06 +02:00
Jordan Petridis
74712b5410
EpisodeWidget: Remove unnecessary Arcs.
...
`DateMachine` and `DurationMachine` are only mutated during initialization
and thus do not need shared ownership.
`TitleMachine` is only mutated during initialization and after that only
the callback will keep holding a referrence to it. The `EpisodeWidget`s
get dropped after initialization. So it's justifiable to use `Rc<Mutex<T>>`
instead of `Arc`.
2018-03-13 03:47:46 +02:00
Jordan Petridis
05628a2529
Update changelog.
2018-03-12 22:32:52 +02:00
Jordan Petridis
1bdd2f2f5b
Merge branch 'master' into state-machines-experiements
2018-03-12 22:10:14 +02:00
Jordan Petridis
3af6e103aa
Merge branch '49-itunes-to-rss-resolver' into 'master'
...
Resolve "Itunes to RSS resolver."
Closes #49
See merge request alatiera/Hammond!20
2018-03-12 19:52:51 +00:00
Jordan Petridis
3dcc20ae86
Update changelog.
2018-03-12 21:14:12 +02:00
Jordan Petridis
8a18630ae5
Initial integration of the itunes resolver with the Add button.
2018-03-12 20:49:02 +02:00
Jordan Petridis
b87c331b12
Make the itunes_resolver functions inlined.
2018-03-12 07:28:09 +02:00
Jordan Petridis
9da2414e8b
Initial implementation of an itunes_to_rss url resolver. #49
2018-03-12 06:48:05 +02:00
Jordan Petridis
285291b2ed
Ignore tests that need access to the host system.
2018-03-12 03:35:07 +02:00
Jordan Petridis
dbbb4e589e
InAppNotification: Fix autohiding after the callback is executed.
2018-03-09 20:24:28 +02:00
Jordan Petridis
064879c4ce
InAppNotification: Remove reduntant Overlay.
2018-03-09 19:46:46 +02:00
Jordan Petridis
8614922213
InAppNotification: Change box margins.
2018-03-09 19:36:43 +02:00
Jordan Petridis
745ea0ca10
Flatpak: Add dconf permissions.
...
Required also in order to run the gtk+ inspecor.
2018-03-09 17:14:49 +02:00
Jordan Petridis
99bc80c15b
ShowWidget: Add a 6px margin to the settings popup.
2018-03-09 17:04:11 +02:00
Jordan Petridis
3423d854e1
ShowWidget: Change the mark_all notif wording.
2018-03-09 16:43:13 +02:00
Jordan Petridis
483fd090f1
InAppNotification: Add close button.
2018-03-09 15:25:53 +02:00
Jordan Petridis
82988b6011
Implement in-app notifications as App wide actions.
...
At first I tried creating custom InAppNotifications and send
them to the main loop to be added. That does not work sicne gtk
widgets are not thread safe. For now we can try having Action messages
that create them on demand. As oppose to create first then pass them.
2018-03-09 14:53:13 +02:00
Jordan Petridis
d1821163c2
Factor out the In-app notification into something generic.
2018-03-09 01:21:54 +02:00
Jordan Petridis
7de118adeb
Minor style changes.
2018-03-08 23:14:48 +02:00
Jordan Petridis
abe7215bc0
Merge branch '47-mark-all-played' into 'master'
...
Resolve "Mark all episodes of a Show Feed as played."
Closes #47
See merge request alatiera/Hammond!19
2018-03-08 20:57:04 +00:00
Jordan Petridis
7b064e63b9
ShowWidget: Fix undo notif.
2018-03-08 16:21:42 +02:00
Jordan Petridis
f6890c709f
ShowWidget: Instantly dim episode titles when mark_all is clicked.
...
This is would have been way prettier, easier and safer if we could
have custom widgets. But till then I am not sure how to do it better.
2018-03-07 23:04:02 +02:00
Jordan Petridis
e4814dbfbc
ShowWidget: Initial prototype of an undo notification.
2018-03-07 16:37:10 +02:00
Jordan Petridis
8261b32c99
Update changelog.
2018-03-05 22:07:18 +02:00
Jordan Petridis
9a73520b25
dbquerries: Add a unit test for update_none_to_played_now func.
2018-03-05 21:40:11 +02:00
Jordan Petridis
10db4f7210
ShowWidget: Initial implementation of a menu popup.
...
Re implement mark_all_episodes_as_watched functionality too.
2018-03-05 20:14:06 +02:00
Jordan Petridis
94f6fdcbe7
Clippy.
2018-03-03 18:52:38 +02:00
Jordan Petridis
bb467b7aba
Rustfmt.
2018-03-03 16:45:37 +02:00
Jordan Petridis
3da503cdea
Use prebuilt image for the rustfmt CI check.
2018-02-26 17:49:20 +02:00
Jordan Petridis
b062f0a19f
EpisodeWidget Machine: Remove unused From impls.
2018-02-22 13:16:33 +00:00
Jordan Petridis
2a6e0b0e07
Merge branch 'master' into state-machines-experiements
2018-02-22 12:14:55 +00:00
Jordan Petridis
1558ee2177
EpisodeWidget: Fix Date states.
2018-02-22 12:01:07 +00:00
Jordan Petridis
3d542e5554
Readme: add dependancy ci banner.
2018-02-21 09:33:03 +00:00
Jordan Petridis
c61938ba62
Update dependancies.
2018-02-20 06:19:05 +00:00
Jordan Petridis
c856b88008
EpisodeWidget: Add a Date state machine.
2018-02-19 18:14:34 +00:00
Jordan Petridis
fce3684113
Readme: Improve flatpak instructions.
2018-02-19 16:52:58 +00:00
Jordan Petridis
ae25dd65bf
Cargo clippy and fmt.
2018-02-19 09:58:47 +00:00
Jordan Petridis
a88a1c5f1f
MediaMachine: Expose an interface to update the ProgressBar and local_size.
2018-02-17 19:49:43 +02:00
Jordan Petridis
0cd678cc1d
MediaMachine: Expose an interface to update total_size label.
2018-02-16 17:18:02 +02:00
Jordan Petridis
c9bf58af66
EpisodeWidget: Expose cancel button from the state machine.
2018-02-16 16:05:48 +02:00
Jordan Petridis
ed87a00225
EpisodeWidget: Cleanup parts of the state machine.
2018-02-16 14:43:16 +02:00
Jordan Petridis
bcc3608c04
EpisodeWidget: Split ButtonState enum from the MediaMachine.
...
Add a ButtonState Machine which represents the state of total_size
label, play button, and download button. Also implemented the
update/determine_state function for ButtonState.
Also implemented required generic functions for MediaMachine<X,Y,Z>
that convert it to the desired state.
2018-02-16 13:32:13 +02:00
Jordan Petridis
038d28779c
ShowWidget: Limit description to 100 chars width.
2018-02-16 07:45:29 +02:00
Jordan Petridis
973d47ee05
EpisodeWidget: Expose the connect_clicked callbacks from the statemachine enum.
2018-02-15 18:07:21 +02:00
Jordan Petridis
e803e11c81
Fix EpisodeWidget Vertical alignment.
2018-02-15 11:56:56 +02:00
Jordan Petridis
f50c990d93
Yay, finally something that works.
2018-02-15 11:33:56 +02:00
Jordan Petridis
72eef6f104
Running in circles.
2018-02-15 11:08:21 +02:00
Jordan Petridis
5ccdb5d100
Minor cleanup.
2018-02-15 05:31:36 +02:00
Jordan Petridis
4b8fceaa7d
Nothing makes sense.
2018-02-15 05:15:25 +02:00
Jordan Petridis
a24c9b1350
EpisodesView: Fix EpisodeWidget spacing.
2018-02-14 12:44:30 +02:00
Jordan Petridis
8913b7aedb
SHowWidet: Experiement with dynamic size. Relevant to #35 .
2018-02-14 08:44:02 +02:00
Jordan Petridis
978edfc11f
EpisodeWidget: Allow the title to ellipsize. Releavnt to #35 .
2018-02-14 08:04:59 +02:00
Jordan Petridis
f4b41d0fd3
ShowWidget: Restrict horizontal scrolling. Relevant to #35 .
2018-02-14 07:56:27 +02:00
Jordan Petridis
20162a16a8
EpisodesView: Re-work box/frame layout
...
Restrict horizontal scrolling,
Allow the episode widget to expand along when more space becomes available.
2018-02-14 07:03:26 +02:00
Jordan Petridis
73f7bfa64b
I dont even know what I am doing at this point.
2018-02-14 04:18:05 +02:00
Jordan Petridis
159b0d92dd
EpisodeWidget: Merge Size and Progress machines, Split total_size to it's own machine.
2018-02-13 07:51:00 +02:00
Jordan Petridis
02de2059db
EpisodeWidget: Shrink the Size state Machine.
2018-02-13 05:03:16 +02:00
Jordan Petridis
bdf8901dd8
This compiles.
...
Instead of having a Wrapper of StateMachinesWrappers, use only the desired
possible states in A new struct with only 1 Wrapper that covers all 3 of
the embeded state machines.
I don't even know if the comment makes any sense. Sorry.
2018-02-13 02:23:32 +02:00
Jordan Petridis
b6a71688c0
Version bump to 0.3
2018-02-11 22:57:37 +02:00
Jordan Petridis
dcc4eae27e
Use Gnome Nightly Sdk for the flatpak manifest.
2018-02-11 00:54:17 +02:00
Jordan Petridis
65a080ed1d
Readme: Fix rustup link.
2018-02-10 22:42:13 +02:00
Jordan Petridis
48071c28a7
AboutDialog: Add a temporary icon, and update contributors list.
2018-02-10 09:26:08 +02:00
Jordan Petridis
2fbc833ebe
EpisodeWidget: Add a state machine that will manager progress_bar and cancel bttn.
2018-02-10 09:11:31 +02:00
Jordan Petridis
f7b5b35374
EpisodeWidget: change DownloadPlayMachine default constructor to a hidden state.
2018-02-10 08:13:07 +02:00
Jordan Petridis
46bd23cf66
EpisodeWidget: Add a StateMachine that manages Play and Download Buttons.
2018-02-10 08:00:12 +02:00
Jordan Petridis
138cfdb68c
EpisodeWidget: use debug! instead of error! to avoid spamming stderr with *not actuall* errors.
2018-02-10 05:45:50 +02:00
Jordan Petridis
6d9dfe6fe1
EpisodeWidget: Add a StateMachine for the size labels.
2018-02-10 05:41:25 +02:00
Jordan Petridis
fc48ce9c47
EpisodeWidget: Migrate Duration Machine to use take mut too, and revert the api to require just &mut self.
2018-02-10 03:33:39 +02:00
Jordan Petridis
3a9a2f4033
EpisdoeWidget: Use take_mut crate to allow for a better api.
...
Currently it's required that you take mut self in order to manipulate
the internal state machines. This would not allow passing an Arc/Rc to
a callback since A/Rc<T> only derefs to &T and not T.
The take_mut crate allows the retrieval of ownership if you have a &mut refference
and as long you return T again. So Arc<Mutex<Machine> could work with
callbacks and embed Nested state machies without copying.
2018-02-10 03:15:12 +02:00
Jordan Petridis
f0ce0eb653
EpisodeWidget: Implement a state machine for duration label.
2018-02-09 10:12:37 +02:00