Browse Source

move save method to the application construct event

master
yggverse 2 months ago
parent
commit
caee762103
  1. 68
      src/app.rs

68
src/app.rs

@ -7,7 +7,6 @@ use browser::Browser; @@ -7,7 +7,6 @@ use browser::Browser;
use database::Database;
use gtk::{
// gio::SimpleAction,
glib::ExitCode,
prelude::{ActionExt, ApplicationExt, ApplicationExtManual, GtkApplicationExt, GtkWindowExt},
Application,
@ -24,7 +23,7 @@ pub struct App { @@ -24,7 +23,7 @@ pub struct App {
// Components
// browser: Arc<Browser>,
// Extras
database: Arc<Database>,
// database: Arc<Database>,
// GTK
app: Application,
}
@ -100,6 +99,14 @@ impl App { @@ -100,6 +99,14 @@ impl App {
let browser = browser.clone();
move |this| {
// @TODO restore previous session from DB
match database.records() {
Ok(records) => {
for record in records {
println!("{:?}", record.id) // @TODO
}
}
Err(e) => panic!("{e}"),
}
// Activate events
browser.widget().set_application(Some(this));
@ -112,8 +119,35 @@ impl App { @@ -112,8 +119,35 @@ impl App {
}
});
// @TODO save session to DB
// self.app.connect_window_removed(|_, _| todo!());
// Save current session to DB
// app.connect_window_added()
/*
app.connect_window_removed({
let database = database.clone();
move |_, _| {
// Cleanup previous record
match database.records() {
Ok(_) => {
// Delegate clean action to children components
// self.browser.clean(app_id) @TODO
// ..
// Create new record
match database.add() {
Ok(_) => {
// let app_id = self.database.last_insert_id();
// Delegate save action to children components
// self.browser.save(app_id) @TODO
// ..
}
Err(error) => panic!("{error}"), // @TODO
}
}
Err(error) => panic!("{error}"), // @TODO
}
}
});*/
// Return activated App struct
Self {
@ -122,7 +156,7 @@ impl App { @@ -122,7 +156,7 @@ impl App {
// Components
// browser,
// Extras
database,
// database,
// GTK
app,
}
@ -132,28 +166,4 @@ impl App { @@ -132,28 +166,4 @@ impl App {
pub fn run(&self) -> ExitCode {
self.app.run()
}
pub fn save(&self) {
// Cleanup previous record
match self.database.clean() {
Ok(_) => {
// Delegate clean action to children components
// self.browser.clean(app_id) @TODO
// ..
// Create new record
match self.database.add() {
Ok(_) => {
// let app_id = self.database.last_insert_id();
// Delegate save action to children components
// self.browser.save(app_id) @TODO
// ..
}
Err(error) => panic!("{error}"), // @TODO
}
}
Err(error) => panic!("{error}"), // @TODO
}
}
}

Loading…
Cancel
Save