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.
This commit is contained in:
Jordan Petridis 2017-12-23 16:56:03 +02:00
parent 30970c8dfb
commit e7185d2cd3
No known key found for this signature in database
GPG Key ID: CEABAD9F5683B9A6
6 changed files with 20 additions and 18 deletions

21
TODO.md
View File

@ -1,20 +1,13 @@
## TODOs: # TODOs
## Planned Features ## Planned Features
## Priorities: ## Priorities
- [ ] Unplayed Only and Downloaded only view. - [ ] Unplayed Only and Downloaded only view.
- [ ] Auto-updater
- [ ] OPML import/export // Probably need to create a crate. - [ ] OPML import/export // Probably need to create a crate.
**Proper Desing Mockups for the Gtk Client:** ## Second
- [ ] Re-design EpisodeWidget.
- [ ] Re-design PodcastWidget.
- [ ] Polish the flowbox_child banner.
## Second:
- [ ] Make use of file metadas, [This](https://github.com/GuillaumeGomez/audio-video-metadata) might be helpfull. - [ ] Make use of file metadas, [This](https://github.com/GuillaumeGomez/audio-video-metadata) might be helpfull.
- [ ] Notifications - [ ] Notifications
@ -23,10 +16,9 @@
- [ ] MPRIS integration - [ ] MPRIS integration
- [ ] Search Implementation - [ ] Search Implementation
## Third
## Third: - [ ] Download Queue
- [ ] Download Queue
- [ ] Ability to Stream content on demand - [ ] Ability to Stream content on demand
- [ ] soundcloud and itunes feeds // [This](http://getrssfeed.com) seems intresting. - [ ] soundcloud and itunes feeds // [This](http://getrssfeed.com) seems intresting.
- [ ] Integrate with Itunes API for various crap - [ ] Integrate with Itunes API for various crap
@ -37,8 +29,7 @@
**Would be nice:** **Would be nice:**
- [ ] Make Podcast cover fetchng and loading not block the execution of the program at startup. - [ ] Make Podcast cover fetchng and loading not block the execution of the program at startup.
- [ ] Lazy evaluate episode loading based on the podcast_widget's view scrolling. - [ ] Lazy evaluate episode loading based on the show_widget's scrolling.
- [ ] Headerbar back button and stack switching
**FIXME:** **FIXME:**

View File

@ -125,10 +125,12 @@ pub fn get_episode(ep: &mut EpisodeWidgetQuery, download_folder: &str) -> Result
// If download succedes set episode local_uri to dlpath. // If download succedes set episode local_uri to dlpath.
ep.set_local_uri(Some(&path)); ep.set_local_uri(Some(&path));
// Over-write episode lenght
let size = fs::metadata(path); let size = fs::metadata(path);
if let Ok(s) = size { if let Ok(s) = size {
ep.set_length(Some(s.len() as i32)) ep.set_length(Some(s.len() as i32))
}; };
ep.save()?; ep.save()?;
Ok(()) Ok(())
} else { } else {

View File

@ -42,6 +42,7 @@
<property name="can_focus">False</property> <property name="can_focus">False</property>
<property name="halign">center</property> <property name="halign">center</property>
<property name="margin_top">24</property> <property name="margin_top">24</property>
<property name="margin_bottom">24</property>
<property name="orientation">vertical</property> <property name="orientation">vertical</property>
<property name="spacing">24</property> <property name="spacing">24</property>
<child> <child>

View File

@ -20,6 +20,8 @@
<property name="visible">True</property> <property name="visible">True</property>
<property name="can_focus">False</property> <property name="can_focus">False</property>
<property name="halign">center</property> <property name="halign">center</property>
<property name="margin_top">24</property>
<property name="margin_bottom">24</property>
<child> <child>
<object class="GtkBox"> <object class="GtkBox">
<property name="visible">True</property> <property name="visible">True</property>
@ -42,6 +44,7 @@
<property name="can_focus">False</property> <property name="can_focus">False</property>
<property name="halign">center</property> <property name="halign">center</property>
<property name="orientation">vertical</property> <property name="orientation">vertical</property>
<property name="spacing">24</property>
<child> <child>
<object class="GtkFrame"> <object class="GtkFrame">
<property name="visible">True</property> <property name="visible">True</property>
@ -191,7 +194,6 @@
<packing> <packing>
<property name="expand">False</property> <property name="expand">False</property>
<property name="fill">True</property> <property name="fill">True</property>
<property name="padding">24</property>
<property name="position">0</property> <property name="position">0</property>
</packing> </packing>
</child> </child>

View File

@ -1,4 +1,4 @@
#![cfg_attr(feature = "cargo-clippy", allow(clone_on_ref_ptr))] #![cfg_attr(feature = "cargo-clippy", allow(clone_on_ref_ptr, needless_pass_by_value))]
extern crate gdk; extern crate gdk;
extern crate gdk_pixbuf; extern crate gdk_pixbuf;

View File

@ -68,7 +68,13 @@ lazy_static! {
}; };
} }
// FIXME: use something that would just scale? // 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.
// TODO: maybe use something that would just scale to requested size?
pub fn get_pixbuf_from_path(pd: &PodcastCoverQuery, size: u32) -> Option<Pixbuf> { pub fn get_pixbuf_from_path(pd: &PodcastCoverQuery, size: u32) -> Option<Pixbuf> {
let mut hashmap = CACHED_PIXBUFS.lock().unwrap(); let mut hashmap = CACHED_PIXBUFS.lock().unwrap();
{ {