Jordan Petridis
c6e426cbac
Downloader: Change cache_image function to return Result<T, DownlaoderError> instead of Option<T>.
2018-02-06 20:14:03 +02:00
Jordan Petridis
d3f279374a
ShowWidget: Refactor to return Result<T, Error> wherever possible.
2018-02-06 02:47:39 +02:00
Jordan Petridis
0dc16dab9a
EpisodeWidget: Refactor to return Result<T, Error> wherever possible.
2018-02-06 02:31:53 +02:00
Jordan Petridis
de43cae015
Switch rest stuff of data/downloader to Failure Crate.
2018-02-04 17:36:27 +02:00
Jordan Petridis
f9f015a211
Hammond-data: switch database module to use Failure.
2018-02-04 16:33:10 +02:00
Jordan Petridis
97c65c8bd1
Add a download test for Steal the Stars podcast to spot #10 reggressions.
2018-02-03 15:43:00 +02:00
Jordan Petridis
e8ae0b0251
Thats a hack, a terrible one, but without it the user
...
would have to manually click refresh if the user that was added
happen to redirect somewhere else.
The problem is in the hammond-data/src/models/source.rs
fn request_constructor. It has to do with futures and lifetimes
and I am not sure how to tackle it yet.
2018-02-03 00:06:02 +02:00
Jordan Petridis
2f062afb07
Clippy suggestions
2018-01-29 19:09:53 +02:00
Jordan Petridis
a2cf2357c6
Add about a basic about dialog.
2018-01-29 18:02:24 +02:00
Jordan Petridis
a4660a0700
Headerbar: Do not allow insertion of duplicate urls.
2018-01-27 14:40:51 +02:00
Jordan Petridis
18e55e23ee
Headerbar: Do not allow insertion of invalid urls.
2018-01-27 14:11:02 +02:00
Jordan Petridis
8c0e3221cb
refresh_feed: remove code duplication.
2018-01-26 19:29:45 +02:00
Jordan Petridis
5e1d1e557f
GtkApplication: Add an action for showing the headerbar_update_indicator.
2018-01-26 19:15:07 +02:00
Jordan Petridis
a7e3b1b99e
GtkApplication: Headbar and Content constructors now return Self instead of Arc<Self>.
2018-01-26 19:05:19 +02:00
Jordan Petridis
39aa86157b
Switch rest of the tests to point to the internet archive urls.
2018-01-26 17:25:35 +02:00
Jordan Petridis
2912bad110
Pipeline: Split the pipeline from the cpu-pool and the tokio-core.
2018-01-26 13:34:04 +02:00
Jordan Petridis
20f36a67a0
Upgrade log and loggerv.
2018-01-21 15:22:13 +02:00
Jordan Petridis
b3c4de320b
Remove dead dependancies.
2018-01-20 07:41:09 +02:00
Jordan Petridis
46b6c0d27e
hammond-data: Remove leftover synchronous code.
2018-01-19 15:41:37 +02:00
Jordan Petridis
e6b0cfccb5
Apply clippy suggestions.
2018-01-19 10:32:25 +02:00
Jordan Petridis
5c5faafc72
Source: Move around code and change some methods signature.
...
request_constructor is now a Source method.
update_etags now takes &mut self instead of mut self.
update_etags now uses source setters methods instead of raw fields.
changed the naming of into_feed to to_feed according to rust convention.
2018-01-19 07:51:55 +02:00
Jordan Petridis
93372a30d0
1.21 Gigawatts. Remove non-future indexing loop.
...
Tried to have a seperate futures loop but it's too confusign having
too write a Trait2, functon2, etc version of everything and keep it together.
Futures are functional sort of, so the synchronous versioun can be removed.
It still needs a ton of work though to be ready, or even get near the perf
of of the sync+rayon version.
2018-01-18 11:38:24 +02:00
Jordan Petridis
574cfae5c6
rustfmt: enable reorder imports.
2018-01-17 08:57:02 +02:00
Jordan Petridis
3358fcd0b3
hammond_data::Feed: general cleanup of no longer needed stuff.
2018-01-15 11:03:40 +02:00
Jordan Petridis
2f7a22355f
Minor cleanup of the mess.
2018-01-14 08:27:50 +02:00
Jordan Petridis
1031315cdd
Getting somewhere?
2018-01-14 06:37:47 +02:00
Jordan Petridis
e4d77a6ba4
Cleanup the id() method mess of the diesel models.
2018-01-13 07:46:56 +02:00
Jordan Petridis
ee9cede921
hammond_data: Remove Source dependancy from Feed struct.
2018-01-13 06:08:51 +02:00
Jordan Petridis
8e367b7e86
Dont ask me how this is working.
2018-01-12 08:50:16 +02:00
Jordan Petridis
01fe5c4730
Revert to using light theme.
2018-01-12 01:48:52 +02:00
Jordan Petridis
e192cf6618
Headerbar: Use application action channel instead of GAction.
2018-01-12 01:41:36 +02:00
Jordan Petridis
95ff3715a3
Migrate StackSwitch actions to use the AppAction channel.
2018-01-11 01:14:54 +02:00
Jordan Petridis
8a90de3c0e
Implement download cancel action. #24
2018-01-10 09:43:38 +02:00
Jordan Petridis
a63a6e168c
Added BrokenFeed Issue template.
2018-01-10 08:27:13 +02:00
Jordan Petridis
7f8544373f
EpisodesView: Show 50 episodes instead of 100.
2018-01-10 02:14:49 +02:00
Jordan Petridis
955845110b
Merge branch 'master' into 33-downloader-re-work
2018-01-09 12:06:38 +02:00
Jordan Petridis
d4e3bf696b
EpisodeWidget: Fix updating.
2018-01-09 10:52:52 +02:00
Jordan Petridis
0ba5e14d7f
EpisodeWidget: Only update if it's visible.
2018-01-09 10:10:54 +02:00
Jordan Petridis
ea70addbc6
Removed some unwrap()s.
2018-01-09 09:21:07 +02:00
Jordan Petridis
87a259e1a4
Minor cleanup.
2018-01-09 07:21:38 +02:00
Jordan Petridis
68d7c621d3
EpisodeWidget: Update the local_size label.
2018-01-09 06:15:41 +02:00
Jordan Petridis
c54f29e82a
EpisodeWidget: Modulate callbacks.
2018-01-09 04:20:38 +02:00
Jordan Petridis
9dafb0ae9e
EpisodeWidget: Add local_size label that shows the amount of bytes downloaded.
2018-01-09 03:58:13 +02:00
Jordan Petridis
193117f579
Downloader: Update the progress index of downloads.
2018-01-08 12:29:47 +02:00
Jordan Petridis
eef83fc98c
EpisodeWidget: Implement API to update the progress bar.
2018-01-08 05:11:37 +02:00
Jordan Petridis
81b1ec810c
Apply clippy suggestions.
2018-01-07 08:36:02 +02:00
Jordan Petridis
074284d286
Move unsub show logic and get_download_folder func to hammond-data::utils.
2018-01-07 08:26:38 +02:00
Jordan Petridis
e290ae223e
Pixbuf cache: use rwlock where possible.
2018-01-07 07:49:16 +02:00
Jordan Petridis
6bd391d89e
I hate global mutable state..
2018-01-07 05:51:29 +02:00
Jordan Petridis
4a6a9517f1
ShowStack: Copy the scrollbar position only if both widget represent the same podcast.
2018-01-06 05:38:31 +02:00
Jordan Petridis
e961d5f8b0
Use lazystatic to cache the current chrono date. This will backfire on every new year's eve.
2018-01-06 03:49:26 +02:00
Jordan Petridis
5fed283ff4
EpisodeWidget: Hide duration label if its equal to 0.
2018-01-06 03:18:28 +02:00
Jordan Petridis
da459707be
Wire up the callbacks to the client.
2018-01-05 23:57:48 +02:00
Jordan Petridis
13ba2762ad
Move the download manager to the gtk crate.
2018-01-05 22:02:06 +02:00
Jordan Petridis
e9dd297bf3
Merge branch 'master' into 33-downloader-re-work
2018-01-05 21:43:41 +02:00
Jordan Petridis
d8d4b08252
EpisodeWidget: Trim date label to avoid date/title miss alignment on single digit dates.
2018-01-05 18:46:22 +02:00
Jordan Petridis
65a2d666a3
ShowWidget: Upon unsubing spawn IO heavy tasks into a seperate thread.
2018-01-05 00:35:18 +02:00
Jordan Petridis
299d2e8db1
ShowsView: Retain vertical scrolling adjustment upon view refresh.
2018-01-05 00:09:09 +02:00
Jordan Petridis
8ad5bf6f09
ShowWidget: Retain vertical scrolling adjustment upon view refresh.
2018-01-04 23:43:31 +02:00
Jordan Petridis
112b61d39e
EpisodesView: Retain vertical scrolling adjustment upon view refresh.
2018-01-04 23:19:15 +02:00
Jordan Petridis
29837ad39a
Default to using Arc instead of Rc with composite structs of GtkWidgets.
2018-01-04 17:05:05 +02:00
Jordan Petridis
750abb519b
GtkApplication: Change the action channel polling interval.
2018-01-04 16:42:17 +02:00
Jordan Petridis
f873278a96
hammond_gtk: Move the gtk callback to an Application channel action.
2018-01-04 16:16:34 +02:00
Jordan Petridis
f30c645596
hammond_gtk: Refactor refresh_feed func to use the Application channel.
2018-01-04 16:05:42 +02:00
Jordan Petridis
67bc3e5225
Minor cleanup.
2018-01-03 08:12:55 +02:00
Jordan Petridis
c33b493dcd
Migrate Headerbar transitions into Channel actions.
2018-01-03 08:02:06 +02:00
Jordan Petridis
2633161c67
GtkApplication: Remove some SimpleActions.
2018-01-03 06:57:15 +02:00
Jordan Petridis
33cd6e69ff
EpisodeWidget: Migrate to use a Channel Action instead of simple Action.
2018-01-03 06:53:19 +02:00
Jordan Petridis
84da6aac8c
ShowWidget: Replace the unsub simple action with a Channel Action.
2018-01-03 06:23:12 +02:00
Jordan Petridis
c8537e9474
GtkApplication: Start to refactor to into a App-channel structure.
2018-01-03 05:58:50 +02:00
Jordan Petridis
a0476fedec
ShowWidget: Split init into smaller functions and add comments.
2018-01-03 03:33:33 +02:00
Jordan Petridis
f54ae2f1d5
EpisodeWidget: Code cleanup and splitting.
2018-01-03 03:02:46 +02:00
Jordan Petridis
2d71a99121
Change the auto-updater and checkup startup scheduling.
2018-01-02 20:47:49 +02:00
Jordan Petridis
c67c6e463e
EpisodeWidget: Its still a mess, but a bit cleaner.
2018-01-02 08:19:24 +02:00
Jordan Petridis
c61d322569
EpisodeWidget: Implement shared download state.
2018-01-02 08:00:38 +02:00
Jordan Petridis
37e9b6fbf0
'How hard could it be'
2018-01-02 07:23:53 +02:00
Jordan Petridis
15b3eb115c
ShowWidget: Add tooltip to the website button.
2018-01-01 19:46:27 +02:00
Jordan Petridis
a3c204a02d
Headerbar: Fix add popup.
2018-01-01 00:42:14 +02:00
Jordan Petridis
3c84d889fd
Headerbar: Do more stuff through glade, cut some code.
2017-12-30 21:19:29 +02:00
Jordan Petridis
5730e71e2a
Clear TODO and FIXME that are no longer releavant.
2017-12-30 20:54:23 +02:00
Jordan Petridis
4894683924
hammond-gtk: Set the default theme to the dark variant for now.
2017-12-30 18:12:53 +02:00
Jordan Petridis
ce08d49107
Headerbar: Added update indication.
2017-12-29 22:58:20 +02:00
Jordan Petridis
bcc089bd82
ShowWidget: Migrate unsub button to use the GAction instead.
2017-12-29 20:33:47 +02:00
Jordan Petridis
036292284d
hammond-data: Do not clean source url's cause some feeds use queries as identifiers for some reason.
2017-12-29 20:21:36 +02:00
Jordan Petridis
ac286888bd
hammond-gtk: Add more GActions and wire the EpisodeWidget.
2017-12-29 20:06:04 +02:00
Jordan Petridis
fdd63afdfe
hammond-gtk: Create Application wide actions.
2017-12-29 16:05:10 +02:00
Jordan Petridis
ca06a16bd9
Closes #2 . Kudo to @jwykeham for the fix!.
2017-12-29 02:45:02 +02:00
Jordan Petridis
55b6fccefd
Make it explicit to run some tests.
2017-12-28 23:46:09 +02:00
Jordan Petridis
1d78ab7c42
Cargo upgrade.
2017-12-28 23:19:36 +02:00
Jordan Petridis
287620d6cd
hammond-gtk: Added some getters and removed some public fields.
2017-12-28 19:16:51 +02:00
Jordan Petridis
5942e47f2a
hammond-gtk: Split gtk::Application into its own module.
2017-12-28 16:59:05 +02:00
Jordan Petridis
ada73a616f
EpisodeWidget: Make cancel button insensitive.
2017-12-27 15:13:09 +02:00
Jordan Petridis
0a7825dfff
EpisodeWidget: Remove delete button and hide cancel button till refactor.
2017-12-26 21:36:18 +02:00
Jordan Petridis
bfb74c4dba
hammond-data: Index_loop does not wait for GET request to finish now.
2017-12-26 18:18:48 +02:00
Jordan Petridis
0a47b91913
Headerbar: Wire menu refresh button.
2017-12-25 22:03:37 +02:00
Jordan Petridis
9f51f4826f
Headerbar: Added menu popup.
2017-12-25 21:54:57 +02:00
Jordan Petridis
8cccbe928d
hammond-gtk: Change application title. Addresses #28 .
2017-12-24 20:33:18 +02:00
Jordan Petridis
e7185d2cd3
Visual tweaks, and other minor stuff.
...
Added margins bottom margins on EpisodesView and ShowWidget.
Added some comment's to the code.
Silenced needless_pass_by_value clippy warning.
Updated TODO.md.
2017-12-23 16:56:03 +02:00
Jordan Petridis
2d6f02c407
EpisodeWidget: Do not display size if it's 0 bytes.
2017-12-23 15:44:28 +02:00
Jordan Petridis
f9d17afad3
hammond-gtk: Remove app menu.
2017-12-23 10:39:20 +02:00
Julian Sparber
32c60e7ffa
merge
2017-12-22 22:10:40 +01:00
Julian Sparber
95c290df50
[ui] add custom style and [fix] draw List separators with css
2017-12-22 21:54:28 +01:00
Jordan Petridis
832495bece
EpisodesView: Remove Year category.
2017-12-22 22:14:08 +02:00
Jordan Petridis
ae6a97d725
EpisodesViewWidget: Add margins from the cover.
2017-12-22 21:21:39 +02:00
Jordan Petridis
0129efb02e
EpisodeWidget: Display episode's duration. Closes #21 .
2017-12-22 17:49:15 +02:00
Jordan Petridis
8513ba3644
EpisodesView: Use chrono to categorize widgets intead of epoch calculations.
2017-12-22 14:29:41 +02:00
Jordan Petridis
b7e160f735
EpisodeWidget: Change date representation based on it's year. Closes #19 .
2017-12-21 21:50:50 +02:00
Jordan Petridis
4a033e6d89
EpisodeWidget: Remove the decimal places in the size label.
2017-12-21 21:37:51 +02:00
Jordan Petridis
378b8609aa
EpisodeWidget: Change the byte unit based on the size. Closes #18 .
2017-12-21 21:31:25 +02:00
Jordan Petridis
13b2043b76
EpisodesStack: Fix view selection upon creation.
2017-12-21 19:10:37 +02:00
Jordan Petridis
e416bca963
Implemented a pixbuf cache mechanism.
...
Since gdk_pixbuf::Pixbuf is refference counted and every episode,
use the cover of the Podcast Feed/Show, We can only create a Pixbuf
cover per show and pass around the Rc pointer.
GObjects do not implement Send trait, so SendCell is a way around that.
Also lazy_static requires Sync trait, so that's what the mutexes are.
2017-12-21 17:36:07 +02:00
Jordan Petridis
74a6e5814a
ShowWidget: Update EpisodesView when unsub button is activated.
2017-12-21 15:14:29 +02:00
Jordan Petridis
994ea5af22
EpisodesView: Remove unused label.
2017-12-20 22:08:07 +02:00
Jordan Petridis
336846f6dd
EpisodesStack: Implemnt the transition between empty and populated.
2017-12-20 21:25:00 +02:00
Jordan Petridis
db59bed69d
hammond-data::utils: Modified EpisodeCleaner Diesel model to also be used with played_cleaner.
2017-12-20 19:18:20 +02:00
Jordan Petridis
2e06205eda
Define a new Diesel Model for PodcastCover querries.
...
Define new Diesel Model and impl From<Podcast> trait,
Change the signature of downloader::cache_image function,
Change and merge hammond-gtk::utils::get_pixbuf_from_path functions.
2017-12-20 18:19:31 +02:00
Jordan Petridis
c070fc3032
EpisodesView: Ugly and Hacky Prototype of episode splitting.
2017-12-20 15:12:55 +02:00
Jordan Petridis
ace62f7ed6
EpisodesView: Initial draft of episodewidget's splitting into the frames.
2017-12-20 14:49:28 +02:00
Jordan Petridis
bda09c032a
EpisodeWidget: Update the progrress bar only when download clicked.
2017-12-20 13:18:29 +02:00
Jordan Petridis
632f011db5
EpisodeView: Implement initial view update.
2017-12-20 13:13:32 +02:00
Jordan Petridis
914cad72f5
EpisodesView: Custom Diesel model not really necessary.
2017-12-19 20:45:40 +02:00
Jordan Petridis
895591f628
EpisodesView: Use show cover image.
2017-12-19 13:19:38 +02:00
Jordan Petridis
ad9a932143
Fix diesel query.
2017-12-19 12:56:16 +02:00
Jordan Petridis
f602e8c36d
EpisodesView: Create a DieselModel for EpisodeViewWidget.
2017-12-19 11:04:44 +02:00
Jordan Petridis
5220eaceee
EpisodesView: Add an empty cover to the widget.
2017-12-18 21:35:51 +02:00
Jordan Petridis
61bd7893c7
EpisodeWidget: Remove Podcast depndancy from new() method.
2017-12-18 19:10:50 +02:00
Jordan Petridis
32cd24fc7b
EpisodesView: Added glade files and initial yak shaving.
2017-12-18 18:20:40 +02:00
Jordan Petridis
945600b20d
Merge branch 'master' into 'master'
...
Set dim-label for secondary labels of EpisodeWidget in Glade.
See merge request alatiera/Hammond!7
2017-12-17 14:30:10 +00:00
Jordan Petridis
e04de5a576
ShowsView: Move title to a tooltip, fix gresource, center flowbox halign.
2017-12-17 15:57:06 +02:00
Jordan Petridis
0826514cbc
ShowsView: Remove new_episodes indicator.
2017-12-17 15:34:34 +02:00
Constantin Nickel
681b91d368
Set dim-label for secondary labels of EpisodeWidget in Glade.
2017-12-17 13:17:04 +01:00
Jordan Petridis
2eb58eae00
Headerbar: Remove refresh button.
2017-12-17 13:57:08 +02:00
Jordan Petridis
4c8c1f0013
Add update option to the app menu.
2017-12-17 13:52:00 +02:00
Jordan Petridis
35009e2574
Added an auto-updater that runs each hour.
2017-12-17 13:44:00 +02:00
Jordan Petridis
75fe0f8ff5
Use Default trait for creating Widget's that don't need arguments.
2017-12-17 13:08:51 +02:00
Jordan Petridis
440badf1eb
ShowWidget: Strip html tags from the description.
2017-12-16 20:45:15 +02:00
Jordan Petridis
f7af05a650
EpisodeWidget: Dim/Grey out widget if episode is played.
2017-12-16 20:30:25 +02:00
Jordan Petridis
f8ae2dcffe
Update rustfmt.toml and remove rustfmt warnings.
2017-12-16 18:22:35 +02:00
Jordan Petridis
dbe08f7deb
EpisodeListBox: Improve the separator workaround.
2017-12-16 14:17:27 +02:00
Jordan Petridis
4375c7f4ce
EpisodeWidget: Added a separator in each widget.
...
This is a work around since list_box_set_header_func is not yet
available in the gtk-rs bindings.
2017-12-15 21:06:57 +02:00
Jordan Petridis
3c90e98d43
ShowWidget: Make settings button a GtkMenuButton.
2017-12-15 21:06:43 +02:00
Jordan Petridis
b1af25e4c0
ShowWidget: Wire the website button to open podcast homepage.
2017-12-15 21:06:16 +02:00
Jordan Petridis
6614818418
Use Gtk::Frame to limit ShowWidget's size.
2017-12-15 19:55:13 +02:00
Jordan Petridis
c74153f56a
Initial implementation of the new ShowWidget.
2017-12-15 18:42:49 +02:00
Jordan Petridis
4b0a6ea0f7
Add Show title in the Headerbar when switching to ShowWidget.
2017-12-15 13:45:08 +02:00
Jordan Petridis
6284c8828b
Merge branch 'episode_widget_redisgn' into 'master'
...
Episode widget redisgn
See merge request alatiera/Hammond!5
2017-12-15 11:30:15 +00:00
Jordan Petridis
0c1e759a45
Dim out secondary label of EpisodeWidget.
2017-12-15 12:27:30 +02:00
Jordan Petridis
0ac78fcff1
Added date label into EpisodeWidget.
2017-12-14 18:03:37 +02:00
Jordan Petridis
e3b540170a
Add file size indication based on rss item length.
2017-12-14 15:32:21 +02:00
Jordan Petridis
9d07ba24b8
HeaderBar Refactor.
...
Removed the Headerbar stack.
Removed the ShowTitle.
Fixed StackSwitcher centering.
Set the Headerbar button valignment to center instead of fill.
2017-12-14 14:27:51 +02:00