Commit Graph

623 Commits

Author SHA1 Message Date
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
eafad35860
Upgrade diesel to 1.0.0 and update rest dependancies. 2018-01-05 19:57:11 +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
9d82b0edda
EpisodeWidget ui tweaks. 2018-01-04 17:27:55 +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
963ff212ad
hammond-gtk: Add some tooltips. Closes #13. 2017-12-30 21:56:44 +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
e99ab58b83
Headerbar: Add margins to the hamburger menu. 2017-12-26 15:46:25 +02:00
Jordan Petridis
d5b9379732
Headerbar: Remove some option from the menu. 2017-12-25 22:26:38 +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
eee491f17c
appdata.xml update. 2017-12-25 20:22:53 +02:00
Jordan Petridis
8cccbe928d
hammond-gtk: Change application title. Addresses #28. 2017-12-24 20:33:18 +02:00
Julian Sparber
f8b9bdb696 [ui] add round corners to listboxes 2017-12-24 13:16:37 +01: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
fac048a24d
Small Visual tweaks all over the client. 2017-12-22 20:47:37 +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
c8310b1eb9
EpisodesView: Bump the labels size a bit. 2017-12-21 20:01:24 +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
aca35c0513
ShowWidget: Improve? description handling. 2017-12-16 19:20:40 +02:00
Jordan Petridis
f8ae2dcffe
Update rustfmt.toml and remove rustfmt warnings. 2017-12-16 18:22:35 +02:00
Jordan Petridis
0653460fb2
EpisodeWidget: prevent title label overflow.
Set label's maximu character width to prevent it and elipsize instead.
2017-12-16 14:58:16 +02:00
Jordan Petridis
dbe08f7deb
EpisodeListBox: Improve the separator workaround. 2017-12-16 14:17:27 +02:00
Jordan Petridis
5989f4f541
ShowWidget: Set widget width to 600. 2017-12-15 21:15:20 +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
a7208b0c61
Set EpisodeWidget button valignment to center instead of fill. 2017-12-14 14:46:41 +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
Jordan Petridis
afdb79b712
Set the progress bar into activity mode. 2017-12-14 13:38:18 +02:00
Jordan Petridis
8fe6b526a5
Add a new Diesel Model for the EpisodeWidget. 2017-12-14 12:01:35 +02:00
Jordan Petridis
ebbebf7735
Initial implementation of the new EpisodeWidget. 2017-12-14 10:57:29 +02:00
Jordan Petridis
fe136c8dbe
use user-trash-symbolic instead of edit-delete-symbolic icon. 2017-12-14 08:42:52 +02:00
Jordan Petridis
f0de6bfb1b
Use symbolic icons instead. 2017-12-13 17:58:55 +02:00
Jordan Petridis
d74aa9c625
Wire Headerbar back button and change initialiazation order. 2017-12-13 16:36:40 +02:00
Jordan Petridis
0bb0035f3c
Rework of the Headerbar.
Added a stack to switch between a normal and a BackButton view.
Also added a centered stack switcher and removed the Home button.
Backbutton is not wired yet.
2017-12-13 13:53:15 +02:00
Jordan Petridis
0a52f87f3a
Rename glade files. 2017-12-13 12:21:34 +02:00
Jordan Petridis
82a59d80dd
Update README.md and CONTRIBUTING.md 2017-12-13 11:53:56 +02:00
Jordan Petridis
5defb5867a
Move and rename stuff. 2017-12-13 11:35:17 +02:00
Jordan Petridis
01310ee7fa
Working non-state machine stack implementation.
Removed the stack state-machines. It was confusing trying to both
implement statemachines and re-design the stack architecture at the same time.
2017-12-12 16:01:19 +02:00
Jordan Petridis
211b36dfa3
Fix showmachine updating. 2017-12-11 16:14:43 +02:00
Jordan Petridis
ddb195db3c
Wired up refresh button. 2017-12-11 13:51:16 +02:00
Jordan Petridis
fa33138d66
Start switching to the new stack architecture. 2017-12-11 11:53:29 +02:00
Jordan Petridis
ad7f5013f3
Extend ShowsMachine functionality. 2017-12-11 11:15:54 +02:00
Jordan Petridis
e9b6e26f08
yet another attempt at implementing a stack state machine. 2017-12-10 23:23:09 +02:00
Jordan Petridis
2461dca94d
Remove home button. 2017-12-10 19:15:32 +02:00
Jordan Petridis
e127941d8a
Initial stackswitcher addition into the headerbar. 2017-12-10 09:53:05 +02:00
Jordan Petridis
bc57c33491
Change episode table schema. 2017-12-09 17:38:46 +02:00
Jordan Petridis
b528c48e3b
Run rustfmt. 2017-12-09 05:57:16 +02:00
Jordan Petridis
5b19274e6a
Ignore the stack state machine until TryInto trait is stabilized. 2017-12-08 10:00:21 +02:00
Jordan Petridis
48e61c6377
Added small a utility that eats extra whitespace. 2017-12-07 18:31:45 +02:00
Jordan Petridis
1266c6e971
Switch to a Generic Struct instead of an Enum. 2017-12-07 15:24:15 +02:00
Jordan Petridis
41b0a36b81
Implement Into ContentState types. 2017-12-07 11:14:12 +02:00
Jordan Petridis
6801d0b1d1
Move replace_*view functions inot Content methods. 2017-12-07 10:51:16 +02:00
Jordan Petridis
973212254c
My code is horrible, don't look at it. 2017-12-07 09:43:47 +02:00
Jordan Petridis
2b2f44b10e
Attempt n42 of implementing a StateMachine. 2017-12-07 08:50:20 +02:00
Jordan Petridis
9431fb827f
Bug fix. 2017-12-07 08:42:36 +02:00
Jordan Petridis
d7af108833
WIP markup to html parser func. 2017-12-07 06:41:10 +02:00
Jordan Petridis
c07d240532
Sanitize html during feed parsing. 2017-12-07 06:38:31 +02:00
Jordan Petridis
276169e43d
Minor cleanup of nested match/if let statements into using and_then(). 2017-12-04 14:32:16 +02:00
Jordan Petridis
8bd48a09a6
Groupd stack manipulation functions into content module. 2017-12-02 08:58:28 +02:00
Jordan Petridis
74a1aae168
Upgraded diesel to 0.99 and switched from the git master into crated.io.
Also did a cargo upgrade of all the dependancies.
Notable upgrades are r2d2, lazystatic 1.0, loggerv 0.6 and rss 1.2
2017-12-02 01:39:28 +02:00
Jordan Petridis
8d63db047a
Temporary removed unused Content.fields. 2017-12-01 07:30:28 +02:00
Jordan Petridis
0359e9dd35
Convert EpisodeWidget into a Composed struct. 2017-12-01 07:13:41 +02:00
Jordan Petridis
91ac2c6445
Minor cleanups. 2017-12-01 06:40:32 +02:00
Jordan Petridis
2d4acc3ba3
Tweaked stack transition effects. 2017-12-01 06:21:48 +02:00
Jordan Petridis
fb6fc68d23
Fix empty view. 2017-12-01 06:00:06 +02:00
Jordan Petridis
3fca086d14
Renamed stack children. 2017-12-01 05:32:47 +02:00
Jordan Petridis
dcc541d832
Added a PodcastChild struct and groupd some flowbox_child methods. 2017-12-01 04:22:26 +02:00
Jordan Petridis
300fc3467d
Remove more stuff. 2017-12-01 03:50:23 +02:00
Jordan Petridis
326ee75cd8
Remove old implementation. 2017-12-01 02:57:55 +02:00
Jordan Petridis
b4b2f24c77
Use content struct instead of plain stack. 2017-12-01 01:30:19 +02:00
Jordan Petridis
5414dbdb37
Wire and use the new Header struct instead. 2017-12-01 01:20:49 +02:00
Jordan Petridis
dd0034327b
Add Content Struct. 2017-12-01 01:12:25 +02:00
Jordan Petridis
774e5b38a0
Add EmptyView Struct. 2017-12-01 01:03:10 +02:00
Jordan Petridis
f1f4d10fe3
Add PopulatedView struct. 2017-12-01 01:00:07 +02:00
Jordan Petridis
84c918bbd5
Fix bug where the played button will always be shown by setting default state to not visible. 2017-11-30 21:39:21 +02:00
Jordan Petridis
94879b4256
Move get_pixbuf_from_path into hammond_gtk/src/utils.rs module. 2017-11-30 21:38:21 +02:00
Jordan Petridis
bf240a00f4
Make a PodcastWidget Struct type. 2017-11-30 21:19:03 +02:00
Jordan Petridis
b32e35c574
Rename podcasts_view module. 2017-11-30 21:10:05 +02:00
Jordan Petridis
1fbcfa47ac
Refactor Headerbar into a Wrapped struct type. 2017-11-30 21:02:26 +02:00
Jordan Petridis
13751e3708
Tweak gresource initialization. 2017-11-28 10:27:43 +02:00
Jordan Petridis
c92e40e3cf
Run download cleaner on startup. Closes #3. 2017-11-28 10:23:19 +02:00
Jordan Petridis
3707b70b41
Document Episode Model. 2017-11-28 08:25:04 +02:00
Jordan Petridis
d81f9c6ad7
Fixed stable unit tests. 2017-11-28 04:42:15 +02:00
Jordan Petridis
9e03aaae27
Upgrade gtk-rs crates. 2017-11-26 21:25:46 +02:00
Jordan Petridis
866904a687
Use generic IntoIterator instead of &[foo] slices. 2017-11-26 07:03:21 +02:00
Jordan Petridis
faab32ba17
Fix podcast flowbox_child title label. 2017-11-25 02:00:37 +02:00
Jordan Petridis
62da8bbb52
Use source_id as the unique identifieble field for the podcast table. 2017-11-25 01:56:10 +02:00
Jordan Petridis
4a195eb1b7
Moved set_played_now into a method of the Episode model. 2017-11-24 19:48:20 +02:00
Jordan Petridis
aa7c493e81
hammond-data/src/feed.rs api changes. 2017-11-23 18:48:41 +02:00
Jordan Petridis
6098f0f54a
Banner fix? Closes #14. 2017-11-22 10:44:32 +02:00
Jordan Petridis
31328355b1
Methods renaming, Api changes. 2017-11-22 06:25:34 +02:00
Jordan Petridis
9bc6df2cba
Made Disel NewModels private. 2017-11-22 05:50:25 +02:00
Jordan Petridis
7be0b5bbf8
Added a url cleanr. Closes #4. 2017-11-20 22:06:29 +02:00
Jordan Petridis
0ce4107be4
Revert back to using an Arc<Mutex<Connection>> instead of the pool. 2017-11-20 18:09:53 +02:00
Jordan Petridis
ce29602431
I hate everything. 2017-11-20 16:57:27 +02:00
Jordan Petridis
e07683c046
partially-fixed the tests and benchmarks. 2017-11-20 01:08:34 +02:00
Jordan Petridis
5ad52fa4b2
Refactored to remove from Database refferences. 2017-11-19 23:32:37 +02:00
Jordan Petridis
052988a2b1
Update dependancies. 2017-11-19 18:14:56 +02:00
Jordan Petridis
a6dbf65575
Move stuff from hammond_data/src/lib.rs into utils. 2017-11-18 20:55:19 +02:00
Jordan Petridis
5c84b77434
Converted iter_mut into into_iter wherever possible. 2017-11-18 19:23:25 +02:00
Jordan Petridis
494761beaf
Removed id function from diesel models.
It's automaticly declared upon derive identifiable,
And there's no need to overwrite it.
2017-11-18 15:23:40 +02:00
Jordan Petridis
6894f33895
Renamed hammond-data/src/index_feeds.rs module into feed.rs. 2017-11-18 14:32:58 +02:00
Jordan Petridis
450643371c
Renamed index_feeds and fetch_feeds functions. 2017-11-18 14:24:52 +02:00
Jordan Petridis
1ec4370c7b
Moved Database type-alias into hammond-data/src/lib.rs. 2017-11-17 21:37:55 +02:00
Jordan Petridis
8eca46871d
Moved insert_return functions into methods of insertable models. 2017-11-17 18:10:29 +02:00
Jordan Petridis
54a0f17588
Initial draft of hammond-data/src/index_feed.rs API redesign. 2017-11-17 13:26:39 +02:00
Jordan Petridis
3c6176b1c0
Renamed hammond-data/src/dbcheckup.rs into utils.rs 2017-11-16 23:32:40 +02:00
Jordan Petridis
cfb876e006
Split hammond-data/models into sub modules. 2017-11-15 17:42:22 +02:00
Jordan Petridis
8b4701f1a1
Renamed Gresource path in order to be less confusing. 2017-11-15 14:55:26 +02:00
Jordan Petridis
03637903c6
Update dependancies. 2017-11-14 13:06:09 +02:00
Jordan Petridis
e3f0263dc0
Added appdata.xml and moved .desktop into hammond-gtk/resources. 2017-11-13 17:34:16 +02:00
Jordan Petridis
b042205a3b
Flatpak Runtime crash fix.
The application was trying to register a name different than the one
declared in the flatpak manifest.

Changin the name to org.gnome.Hammond like on manifest should fix it.
2017-11-13 15:06:56 +02:00
Jordan Petridis
b82e4c8932
Home button tweak. 2017-11-10 16:25:40 +02:00
Jordan Petridis
f2476cde65
Refactored empty view logic. 2017-11-10 16:15:53 +02:00
Jordan Petridis
1fbacad8b9
Updated rayon. 2017-11-10 11:42:11 +02:00
Jordan Petridis
07c1395c29
Cleanup of downloader module. 2017-11-09 17:47:38 +02:00
Jordan Petridis
8c5cdf75a7
Cleaned up a bit the downloader moduel and added some unit tests. 2017-11-08 20:22:07 +02:00
Jordan Petridis
4e6ed416ee
Disabled http refers. 2017-11-07 10:28:04 +02:00
Jordan Petridis
8d17d30c82
Completed #6, switch to gresource instead of include_str! macro. 2017-11-06 17:17:55 +02:00
Jordan Petridis
944156d6fe
#6 Switched to using the safe api for GResource. 2017-11-06 14:56:59 +02:00
Jordan Petridis
79d9f62da5
Draft of implementation using gresources safe api. 2017-11-06 14:35:50 +02:00
Jordan Petridis
80ae1b0c88
Accidently included .gresource file into the git repo. Added gitignore rule. 2017-11-06 12:27:53 +02:00
Jordan Petridis
60a3b39339
Initial implementation of #6 Gresource support. 2017-11-06 12:19:10 +02:00
Jordan Petridis
36271afcdd
Error types cleanup. 2017-11-05 15:36:54 +02:00
Jordan Petridis
7b5bca2162
Partial cleanup of dbqueries. 2017-11-05 14:56:24 +02:00
Jordan Petridis
27c73e3d30
Flowbox polish. 2017-11-05 11:36:41 +02:00
Jordan Petridis
0e2d8ffd37
Removed the grid from the podcasts_view. 2017-11-05 10:59:56 +02:00
Jordan Petridis
ed0bbfe1ba
Flobox bug fix, connect_child_activated was connected only on the initial flowobx. 2017-11-04 21:40:22 +02:00
Jordan Petridis
e2d1466073
Changed the transition type of the stack. 2017-11-04 18:46:43 +02:00
Jordan Petridis
b0369974da
Restructe of podcast_widget and podcasts_view modules. 2017-11-04 18:40:54 +02:00
Jordan Petridis
a31dc069de
Fixed #1. Though it's an ugly hack for now. 2017-11-04 17:57:50 +02:00
Jordan Petridis
456134ab41
Hide mark_played bttn after play button is pressed. 2017-11-04 16:36:45 +02:00
Jordan Petridis
ab5802cca7
Implemented updater_on_startup and refresh_feed sleep. 2017-11-04 14:40:36 +02:00
Jordan Petridis
a9dec8dbe8
Refactored refresh_feed. 2017-11-04 13:56:23 +02:00
Jordan Petridis
7a1b272d9e
Removed code duplication and combined refresh_feed and refresh_db. 2017-11-04 13:36:25 +02:00
Jordan Petridis
7e8f39119d
Moved banner.png from assets into hammond-gtk/gtk 2017-11-04 11:28:10 +02:00
Jordan Petridis
72ac709cda
Removed the multiple declarations of the clone macro. 2017-11-03 17:42:48 +02:00
Jordan Petridis
81af6765f1
Minor Podcast widget improvment. 2017-11-03 10:07:30 +02:00
Jordan Petridis
02ae6b4aef
Changed the flowbox cover and banners size to 256x256 px. 2017-11-03 09:28:44 +02:00
Jordan Petridis
79fb8c2290
Minor home button change. 2017-11-02 17:29:53 +02:00
Jordan Petridis
422e3fc638
Crappy and ugly prototype of an episode banner prototype. 2017-11-02 13:25:35 +02:00
Jordan Petridis
300fe86dc5
Refactored create_flowbox_child constructor to use Podcast struct instead of raw strings/pixbuf. 2017-11-02 10:10:02 +02:00
Jordan Petridis
4da1ee8f10
Update TODO.md. 2017-11-02 08:33:02 +02:00
Jordan Petridis
fc761a963d
Replaced description labels with TextViews. 2017-11-01 17:36:47 +02:00
Jordan Petridis
0e6b6b2cce
Update dependancies. 2017-11-01 10:54:36 +02:00
Jordan Petridis
893218346d
unwrap handling. 2017-10-31 13:08:53 +02:00
Jordan Petridis
401c13eee7
Refactored podcast_widget constructor. 2017-10-31 12:25:15 +02:00
Jordan Petridis
faf4a4bce0
Renamed watched field in the episode table of the database to played. 2017-10-30 14:13:36 +02:00
Jordan Petridis
25344aa613
Applied clippy suggestions. 2017-10-30 13:15:44 +02:00
Jordan Petridis
ac80ab04d4
Added the ability to mark episodes of a Podcast as watched/played. 2017-10-30 13:02:35 +02:00
Jordan Petridis
9c032a7f17
On download completion also show the delete button for the episode widget. 2017-10-28 09:08:18 +03:00
Jordan Petridis
1cdae2b8b0
Temporary exposed download cleaner into the gui. 2017-10-28 08:51:59 +03:00
Jordan Petridis
eb8fdb2edb
Implemented a downloaded/watched cleaner. 2017-10-28 06:57:32 +03:00
Jordan Petridis
e6ceb86201
Completed functionality of the delete buttons. 2017-10-27 04:31:39 +03:00
Jordan Petridis
0137e1e49b
Implemented Partial feed deletion.
Cleans up the db but it leaves behind the downloaded content atm.
2017-10-26 15:02:44 +03:00
Jordan Petridis
674b233805
Wired and implemented the functionality for episde delete button. 2017-10-26 14:00:33 +03:00
Jordan Petridis
7989555a87
Added Delete buttons for podcast and episodes in the ui. 2017-10-26 10:06:51 +03:00
Jordan Petridis
c9b22ea6e2
Improved Readme. 2017-10-24 07:34:18 +03:00
Jordan Petridis
9655ad6084
Removed Searchbutton from the Headerbar.
Removed until there is a working search implementation,
I am not intrested in working on one yet.
2017-10-24 00:45:15 +03:00
Jordan Petridis
e2a06fc074
Removed ListStore entirely. 2017-10-24 00:25:48 +03:00
Jordan Petridis
8a313c145b
Made a type allias for Arc<Mutex<SqliteConnection>. 2017-10-23 12:29:04 +03:00
Jordan Petridis
0e5d976514
Database optimizations. 2017-10-23 10:47:54 +03:00
Jordan Petridis
9beea21a4f
Code cleanup.
Converted rest of .clone() s on ref pointer to use the macro instead.
Stopped ignoring clippy clone_on_ref_pointer warnings since there shouldn't
be any, anymore.
2017-10-23 07:37:07 +03:00
Jordan Petridis
539a5eae2f
Implemented the recommended clone macro from gtk-rs docs. 2017-10-23 07:09:23 +03:00
Jordan Petridis
91c6a98e1e
Better declaration of icon to be used in the glade *.ui files. 2017-10-23 04:45:55 +03:00
Jordan Petridis
b2a8091f05
Fixed Another play button fuckup. 2017-10-23 04:44:46 +03:00
Jordan Petridis
f9c5ff5e8c
Ui minor polish. 2017-10-23 04:00:32 +03:00
Jordan Petridis
51c1391d7d
Fixed a play button bug.
The local_uri value for the play button was assigned at parent widget evaluation,
instead when being clicked, and so when downloading something it would not be able
to open the file without reloading the parent widget and refreshing the value.
2017-10-23 00:27:16 +03:00
Jordan Petridis
14484f6128
Removed hammond-cli crate, as it not longer needed. 2017-10-22 09:12:12 +03:00
Jordan Petridis
6accae0fbe
Cleaned up Gtk::Application a bit. 2017-10-22 07:45:29 +03:00
Jordan Petridis
02cce8b915
I hate Arcs and Rcs. 2017-10-22 05:15:41 +03:00
Jordan Petridis
6ffacaa6d8
Final2, I swear, when dealing with Arc/rc always use references. 2017-10-22 04:51:34 +03:00
Jordan Petridis
cbe50c9163
OK OK, neat trick, clone on &A/RC<T> gives back A/RC<T>. 2017-10-22 04:32:03 +03:00
Jordan Petridis
41a836dd7b
Factor out add_button method of headerbar. 2017-10-22 04:25:07 +03:00
Jordan Petridis
716806e0e9
Trying out storeless designt. 2017-10-22 04:09:44 +03:00
Jordan Petridis
51f52c3408
Async update of the download and play buttons upon download finished. 2017-10-22 01:02:48 +03:00
Jordan Petridis
28a10ac462
Async update refinements, Stack transition refinements. 2017-10-21 23:27:53 +03:00
Jordan Petridis
2077215491
Changed arguments Arc<T> to bepassed by value, clone on arc just copies the refference anyway. 2017-10-21 22:53:04 +03:00
Jordan Petridis
7b0a8f0e25
Added a probably terrible way to update podcast_view async. 2017-10-21 22:34:20 +03:00
Jordan Petridis
f58ad6bd8c
applied some clippy suggestions. 2017-10-21 21:24:19 +03:00
Jordan Petridis
5f3d2d5bdd
Minor readability imprvments. 2017-10-21 21:21:06 +03:00
Jordan Petridis
24d088ffc3
Minor readability imprvments. 2017-10-21 18:56:18 +03:00
Jordan Petridis
90c637ed53
Cleaned up unnecessary clone() calls. 2017-10-21 09:08:03 +03:00
Jordan Petridis
86019710a1
Episode widgets update upon download. 2017-10-21 08:05:00 +03:00
Jordan Petridis
5fb783c0c0
Favor explicit refference cloning, as suggested by clippy. 2017-10-21 05:35:54 +03:00
Jordan Petridis
048d4800da
Improved of hanling of some Result types in hammond-data crate. 2017-10-21 04:58:15 +03:00
Jordan Petridis
a6f03ff27c
Added empty view. 2017-10-21 01:06:55 +03:00
Jordan Petridis
486e0ff5e4
Now Upon feed addition only that feed is indexed/updated. 2017-10-21 00:12:24 +03:00
Jordan Petridis
753cdae08f
Minor podcast_view tweak. 2017-10-20 22:56:05 +03:00
Jordan Petridis
63af61d9f6
Update podcast view after db refresh. 2017-10-20 20:09:36 +03:00
Jordan Petridis
b6fd0ed7ce
renamed gtk/podcasts_grid.ui to gtk/podcasts_view.ui 2017-10-20 04:58:45 +03:00
Jordan Petridis
ff31ad668f
Overall impromvment into episode_widget.
Parse html into plain text for the episode widget.
Implement on per episode/child description evaluation.
Minor episode_widget tweaks.
2017-10-20 04:51:02 +03:00
Jordan Petridis
31d986880b
Fixed bug where it would panic on startup if there was an epty liststroe. 2017-10-20 01:22:38 +03:00
Jordan Petridis
590e99b7e8
Small refinements, handling of unwraps, addin of TODOs and other Notes. 2017-10-19 17:22:17 +03:00
Jordan Petridis
70d1f44147
podcasts_view further refactoring. 2017-10-18 22:24:05 +03:00
Jordan Petridis
0ed6fee39f
Initial split of podcastsview. 2017-10-18 20:52:24 +03:00
Jordan Petridis
c3d7a11975
minor headerbar improvments. 2017-10-18 18:57:29 +03:00
Jordan Petridis
c0c6301e11
Split headerbar into its own module. 2017-10-18 18:50:38 +03:00
Jordan Petridis
b6d2be3ff5
Split stuff into a utils.rs module. 2017-10-18 18:49:35 +03:00
Jordan Petridis
52f2fa8791
More modulation of the gtk client. 2017-10-18 18:32:39 +03:00
Jordan Petridis
ddf62711c7
Initial split of the gtk+ client monolithic main. 2017-10-18 17:47:38 +03:00
Jordan Petridis
e03aa9dd74
Factored out thread spawning db update. 2017-10-18 06:05:00 +03:00
Jordan Petridis
0e8ea41ca7
Wired add button, Fixed db refresh and changed the index API. 2017-10-18 05:53:52 +03:00
Jordan Petridis
eb0ee994fe
Wired the download button. 2017-10-18 04:28:00 +03:00
Jordan Petridis
eccbbf0fc1
Refactor to use Arc's and a mutex instead of plain Rc<&Sqlcon>. 2017-10-18 04:14:09 +03:00
Jordan Petridis
5d01b735d6
Incoplete dl_button wiring. 2017-10-18 03:36:07 +03:00
Jordan Petridis
80f0f138f3
Wired playbutton to use xdg-open for the files. 2017-10-18 03:13:16 +03:00
Jordan Petridis
e3c1464a67
Spawn a separate thread to update the db and dont freeze the gui. 2017-10-18 02:34:59 +03:00
Jordan Petridis
4d77fa47d8
Make rustfmt ci test a requirement. 2017-10-17 23:08:30 +03:00
Jordan Petridis
952fe6b9da
Episode widget layout tweaks. 2017-10-17 22:52:11 +03:00
Jordan Petridis
31ad416c25
Prototype of an Episode List widget. 2017-10-17 22:26:59 +03:00
Jordan Petridis
90c252b34e
Populating podcast_widget. 2017-10-16 20:54:21 +03:00
Jordan Petridis
f7fb991b9c
Stole the add feed button from gnome-news project, but It's not wired up yet. 2017-10-16 03:23:21 +03:00
Jordan Petridis
1277c90f8b
Moved to a Gio Application and replaced window1 with a GtkApplicatioNWindow. 2017-10-16 02:38:23 +03:00
Jordan Petridis
c98c7d00df
Mapped home button to switch the stack to the grid containing the flowbox. 2017-10-16 01:46:12 +03:00
Jordan Petridis
a8084e1bdf
Switched back to a ListStore for now.
The dream would be to use One TStroe for all/many views,
but that seem to be expensive and not pleasant to work with.
Might also completly drop all stores, or at least some,
since I could construct the views using just Diesel models.
2017-10-15 00:56:31 +03:00
Jordan Petridis
970b151353
Forgot to add then glade file :3 2017-10-14 22:00:56 +03:00
Jordan Petridis
430b8c3995
Added PodcasWidget and prototype stack switch on flowbox_child activation. 2017-10-14 21:59:34 +03:00
Jordan Petridis
648ac9f63f
Hello world of flowbox child activation. 2017-10-14 20:56:46 +03:00
Jordan Petridis
dcc6c0202b
Removed TreeStoreView. 2017-10-14 17:43:18 +03:00
Jordan Petridis
2955579f6d
Split flowbox child into its own glade file, and wrapped them into event box. 2017-10-14 17:27:31 +03:00
Jordan Petridis
460345f49a
Use TreeStore to feed the flowbox view. 2017-10-13 13:41:36 +03:00
Jordan Petridis
9df1e65951
Prototype image cache. 2017-10-13 10:21:06 +03:00
Jordan Petridis
b176f334c3
Rustfmt changes. 2017-10-13 02:33:37 +03:00
Jordan Petridis
ac51370088
Split headerbar on it's own glade.ui file. 2017-10-12 15:41:30 +03:00
Jordan Petridis
a4e2944622
Extend TreeStore. 2017-10-12 15:16:05 +03:00
Jordan Petridis
67a6d9ec65
Switched to a TreeStore instead of a ListStore. 2017-10-11 18:52:52 +03:00
Jordan Petridis
23753708c6
Build time speedup. 2017-10-11 18:34:30 +03:00
Jordan Petridis
52a8c6fe5c
Getting a hang of list and tree stores. 2017-10-11 15:31:21 +03:00
Jordan Petridis
1c508798c9
Updated dependancies. 2017-10-10 16:19:07 +03:00
Jordan Petridis
c8b6d3faa8
Trying out clippy and rustfmt CI-integrations. 2017-10-10 15:50:31 +03:00
Jordan Petridis
920fda13f0
Headerbar tweaks. 2017-10-10 01:59:23 +03:00
Jordan Petridis
9e7a6f5ecd
IT DISPLAYS STUFF!! 2017-10-10 01:26:16 +03:00
Jordan Petridis
10fd018f1f
Babysteps vol. 3. 2017-10-10 01:07:22 +03:00
Jordan Petridis
fda21cdf16
More babysteps. 2017-10-09 20:21:16 +03:00
Jordan Petridis
6b7b7085b5
Gtk+ baby steps 2017-10-09 19:24:06 +03:00
Jordan Petridis
c890da9979
Gtk+ Hello World. 2017-10-05 21:15:53 +03:00