diff --git a/res/ui/window.ui b/res/ui/window.ui
index d8076d9..02f95d8 100644
--- a/res/ui/window.ui
+++ b/res/ui/window.ui
@@ -88,57 +88,21 @@
800
566
-
diff --git a/src/backend.rs b/src/backend.rs
index 4713ad8..a9db728 100644
--- a/src/backend.rs
+++ b/src/backend.rs
@@ -1,10 +1,16 @@
use super::database::*;
-use anyhow::Result;
-use futures_channel::oneshot;
+use anyhow::{anyhow, Result};
use futures_channel::oneshot::Sender;
+use futures_channel::{mpsc, oneshot};
use std::cell::RefCell;
use std::path::PathBuf;
+pub enum BackendState {
+ NoMusicLibrary,
+ Loading,
+ Ready,
+}
+
enum BackendAction {
UpdatePerson(Person, Sender>),
GetPerson(i64, Sender>),
@@ -28,24 +34,229 @@ enum BackendAction {
GetRecordingsForPerson(i64, Sender>>),
GetRecordingsForEnsemble(i64, Sender>>),
GetRecordingsForWork(i64, Sender>>),
+ Stop,
}
use BackendAction::*;
pub struct Backend {
- action_sender: std::sync::mpsc::Sender,
+ pub state_stream: RefCell>,
+ state_sender: RefCell>,
+ action_sender: RefCell