Commit Graph
524 Commits
Author SHA1 Message Date
Rowan Lewis afdedc7575 Use crono types instead of unsigned integers for time periods. 2018-03-17 01:10:10 +01:00
Rowan Lewis 69a7a9b180 Renamed the 'auto-refresh' settings to 'refresh-interval' so that they represent the internal behaviour better. 2018-03-16 23:31:12 +01:00
Rowan Lewis a7540583d6 Connect settings for auto refresh and cleanup. 2018-03-16 23:23:06 +01: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
Rowan Lewis 3886402f8e Spelling correction. 2018-03-16 20:45:40 +01:00
Rowan Lewis 97e402b980 Added initial settings schema. 2018-03-16 20:38:37 +01: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 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 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 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 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 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 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 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 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 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