Merge branch '27-episodesview' into '27-episodesview'

[ui] add custom style and [fix] draw List separators with css

See merge request alatiera/Hammond!9
This commit is contained in:
Jordan Petridis 2017-12-22 21:41:18 +00:00
commit 5234ecb2a7
5 changed files with 12 additions and 17 deletions

View File

@ -0,0 +1,7 @@
row {
border-bottom: solid 1px rgba(0,0,0, 0.1);
}
row:last-child {
border-bottom: none;
}

View File

@ -9,5 +9,6 @@
<file preprocess="xml-stripblanks">gtk/shows_view.ui</file> <file preprocess="xml-stripblanks">gtk/shows_view.ui</file>
<file preprocess="xml-stripblanks">gtk/shows_child.ui</file> <file preprocess="xml-stripblanks">gtk/shows_child.ui</file>
<file preprocess="xml-stripblanks">gtk/headerbar.ui</file> <file preprocess="xml-stripblanks">gtk/headerbar.ui</file>
<file compressed="true">gtk/style.css</file>
</gresource> </gresource>
</gresources> </gresources>

View File

@ -64,6 +64,10 @@ fn build_ui(app: &gtk::Application) {
menu.append("Update feeds", "app.update"); menu.append("Update feeds", "app.update");
app.set_app_menu(&menu); app.set_app_menu(&menu);
// Add custom style
let provider = gtk::CssProvider::new();
gtk::CssProvider::load_from_resource(&provider, "/org/gnome/hammond/gtk/style.css");
gtk::StyleContext::add_provider_for_screen(&gdk::Screen::get_default().unwrap(), &provider, 600);
// Get the main window // Get the main window
let window = gtk::ApplicationWindow::new(app); let window = gtk::ApplicationWindow::new(app);
window.set_default_size(1024, 576); window.set_default_size(1024, 576);

View File

@ -76,35 +76,25 @@ impl EpisodesView {
episodes.into_iter().for_each(|mut ep| { episodes.into_iter().for_each(|mut ep| {
let viewep = EpisodesViewWidget::new(&mut ep); let viewep = EpisodesViewWidget::new(&mut ep);
let sep = gtk::Separator::new(gtk::Orientation::Vertical);
sep.set_sensitive(false);
sep.set_can_focus(false);
let t = split(&now_utc, i64::from(ep.epoch())); let t = split(&now_utc, i64::from(ep.epoch()));
match t { match t {
ListSplit::Today => { ListSplit::Today => {
view.today_list.add(&viewep.container); view.today_list.add(&viewep.container);
view.today_list.add(&sep)
} }
ListSplit::Yday => { ListSplit::Yday => {
view.yday_list.add(&viewep.container); view.yday_list.add(&viewep.container);
view.yday_list.add(&sep)
} }
ListSplit::Week => { ListSplit::Week => {
view.week_list.add(&viewep.container); view.week_list.add(&viewep.container);
view.week_list.add(&sep)
} }
ListSplit::Month => { ListSplit::Month => {
view.month_list.add(&viewep.container); view.month_list.add(&viewep.container);
view.month_list.add(&sep)
} }
ListSplit::Rest => { ListSplit::Rest => {
view.rest_list.add(&viewep.container); view.rest_list.add(&viewep.container);
view.rest_list.add(&sep)
} }
} }
sep.show()
}); });
if view.today_list.get_children().is_empty() { if view.today_list.get_children().is_empty() {

View File

@ -305,13 +305,6 @@ pub fn episodes_listbox(pd: &Podcast) -> Result<gtk::ListBox> {
episodes.into_iter().for_each(|mut ep| { episodes.into_iter().for_each(|mut ep| {
let widget = EpisodeWidget::new(&mut ep); let widget = EpisodeWidget::new(&mut ep);
list.add(&widget.container); list.add(&widget.container);
let sep = gtk::Separator::new(gtk::Orientation::Vertical);
sep.set_sensitive(false);
sep.set_can_focus(false);
list.add(&sep);
sep.show()
}); });
list.set_vexpand(false); list.set_vexpand(false);