Commit Graph

360 Commits

Author SHA1 Message Date
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