Temporary exposed download cleaner into the gui.

This commit is contained in:
Jordan Petridis
2017-10-28 08:51:59 +03:00
parent eb8fdb2edb
commit 1cdae2b8b0
5 changed files with 55 additions and 19 deletions
+22 -2
View File
@@ -15,11 +15,12 @@ extern crate open;
use log::LogLevel;
use hammond_data::index_feed;
use hammond_data::dbcheckup;
use std::sync::{Arc, Mutex};
use gtk::prelude::*;
use gio::ApplicationExt;
use gio::{ActionMapExt, ApplicationExt, MenuExt, SimpleActionExt};
mod views;
mod widgets;
@@ -36,6 +37,11 @@ THIS IS STILL A PROTOTYPE.
fn build_ui(app: &gtk::Application) {
let db = Arc::new(Mutex::new(hammond_data::establish_connection()));
let menu = gio::Menu::new();
menu.append("Quit", "app.quit");
menu.append("Checkup", "app.check");
app.set_app_menu(&menu);
// Get the main window
let window = gtk::ApplicationWindow::new(app);
window.set_default_size(1050, 600);
@@ -48,10 +54,24 @@ fn build_ui(app: &gtk::Application) {
Inhibit(false)
});
let quit = gio::SimpleAction::new("quit", None);
let window2 = window.clone();
quit.connect_activate(move |_, _| {
window2.destroy();
});
app.add_action(&quit);
let db2 = db.clone();
let check = gio::SimpleAction::new("check", None);
check.connect_activate(move |_, _| {
let _ = dbcheckup::run(&db2);
});
app.add_action(&check);
// Get the headerbar
let header = headerbar::get_headerbar(&db, &stack);
// TODO: add delay, cause else theres lock contention for the db obj.
// TODO: add delay, cause else there's lock contention for the db obj.
// utils::refresh_db(db.clone(), stack.clone());
window.set_titlebar(&header);
+3 -2
View File
@@ -4,7 +4,7 @@ use hammond_data::dbqueries;
use hammond_data::models::Episode;
use hammond_downloader::downloader;
use hammond_data::index_feed::Database;
use hammond_data::dbcheckup::delete_local_content;
use hammond_data::dbcheckup::*;
use dissolve::strip_html_tags;
@@ -81,8 +81,9 @@ fn epidose_widget(db: &Database, episode: &mut Episode, pd_title: &str) -> gtk::
delete_button.show();
}
play_button.connect_clicked(clone!(episode, db => move |_| {
play_button.connect_clicked(clone!(db, episode => move |_| {
on_play_bttn_clicked(&db, episode.id());
let _ = set_watched(&db, &mut episode.clone());
}));
delete_button.connect_clicked(