37 lines
739 B
Rust
37 lines
739 B
Rust
|
mod collection ;
|
||
|
mod persistence ;
|
||
|
mod ui ;
|
||
|
mod utility ;
|
||
|
|
||
|
use {
|
||
|
gtk4 :: { gio :: spawn_blocking , glib :: * } ,
|
||
|
libadwaita :: { * , prelude :: * } ,
|
||
|
} ;
|
||
|
|
||
|
use crate :: { persistence :: * , ui :: * } ;
|
||
|
|
||
|
|
||
|
|
||
|
fn main () -> ExitCode {
|
||
|
let application = Application :: builder ()
|
||
|
. application_id ("com.kernelmaft.zoodex")
|
||
|
. build () ;
|
||
|
application . connect_activate (on_activate) ;
|
||
|
application . run ()
|
||
|
}
|
||
|
|
||
|
fn on_activate ( app : & Application ) {
|
||
|
let mut ui = UI :: new (app) ;
|
||
|
|
||
|
let collection_handle = spawn_blocking ( ||
|
||
|
read_collection_file () . unwrap ()
|
||
|
) ;
|
||
|
|
||
|
ui . show_window () ;
|
||
|
|
||
|
spawn_future_local ( async move {
|
||
|
let collection = collection_handle . await . unwrap () ;
|
||
|
ui . render_collection (collection) ;
|
||
|
} ) ;
|
||
|
}
|