Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
667 changes: 652 additions & 15 deletions Cargo.lock

Large diffs are not rendered by default.

8 changes: 8 additions & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,3 +1,11 @@
[workspace]
resolver = "2"
members = ["aardvark-app", "aardvark-doc", "aardvark-node"]

[patch."https://github.com/p2panda/p2panda"]
p2panda-core = { git = "https://github.com/jsparber/p2panda.git", rev = "dd9088a33d30014e9a11cbb3600278cfa2a2d889" }
p2panda-discovery = { git = "https://github.com/jsparber/p2panda.git", rev = "dd9088a33d30014e9a11cbb3600278cfa2a2d889", features = ["mdns"] }
p2panda-net = { git = "https://github.com/jsparber/p2panda.git", rev = "dd9088a33d30014e9a11cbb3600278cfa2a2d889" }
p2panda-store = { git = "https://github.com/jsparber/p2panda.git", rev = "dd9088a33d30014e9a11cbb3600278cfa2a2d889", features = ["sqlite"] }
p2panda-stream = { git = "https://github.com/jsparber/p2panda.git", rev = "dd9088a33d30014e9a11cbb3600278cfa2a2d889" }
p2panda-sync = { git = "https://github.com/jsparber/p2panda.git", rev = "dd9088a33d30014e9a11cbb3600278cfa2a2d889", features = ["log-sync"] }
8 changes: 7 additions & 1 deletion aardvark-app/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,15 @@ sourceview = { package = "sourceview5", version = "0.9" }
tracing = "0.1"
tracing-subscriber = { version = "0.3.18", features = ["env-filter"] }
ashpd = { version = "0.9", default-features = false, features = ["tracing", "async-std"] }
thiserror = { version = "2.0" }
futures-util = "0.3"
oo7 = { version = "0.4", default-features = false, features = [
"openssl_crypto",
"async-std",
"tracing",
] }

[dependencies.adw]
package = "libadwaita"
version = "0.7"
features = ["v1_6"]
features = ["v1_6"]
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 2 additions & 0 deletions aardvark-app/data/resources/resources.gresource.xml
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<gresources>
<gresource prefix="/org/p2panda/aardvark">
<file preprocess="xml-stripblanks">icons/scalable/actions/down-smaller-symbolic.svg</file>
<file preprocess="xml-stripblanks">icons/scalable/actions/join-document-symbolic.svg</file>
</gresource>
</gresources>
30 changes: 26 additions & 4 deletions aardvark-app/src/application.rs
Original file line number Diff line number Diff line change
Expand Up @@ -23,9 +23,12 @@ use adw::prelude::*;
use adw::subclass::prelude::*;
use gettextrs::gettext;
use gtk::{gio, glib, glib::Properties};
use std::{cell::OnceCell, fs};
use tracing::error;

use crate::AardvarkWindow;
use crate::config;
use crate::secret;
use crate::system_settings::SystemSettings;

mod imp {
Expand All @@ -35,7 +38,7 @@ mod imp {
#[properties(wrapper_type = super::AardvarkApplication)]
pub struct AardvarkApplication {
#[property(get)]
pub service: Service,
pub service: OnceCell<Service>,
#[property(get)]
pub system_settings: SystemSettings,
}
Expand All @@ -55,17 +58,36 @@ mod imp {
obj.setup_gactions();
obj.set_accels_for_action("app.quit", &["<primary>q"]);
obj.set_accels_for_action("app.new-window", &["<control>n"]);

// FIXME: Don't block on loading the identity
glib::MainContext::new().block_on(async move {
let private_key = secret::get_or_create_identity()
.await
.expect("Unable to get or create identity");

let mut data_path = glib::user_data_dir();
data_path.push("Aardvark");
data_path.push(private_key.public_key().to_string());
if let Err(error) = fs::create_dir_all(&data_path) {
error!("Failed to create data directory: {error}");
}
let data_dir = gio::File::for_path(data_path);

self.service
.set(Service::new(&private_key, &data_dir))
.unwrap();
});
}
}

impl ApplicationImpl for AardvarkApplication {
fn startup(&self) {
self.service.startup();
self.obj().service().startup();
self.parent_startup();
}

fn shutdown(&self) {
self.service.shutdown();
self.obj().service().shutdown();
self.parent_shutdown();
}

Expand Down Expand Up @@ -116,7 +138,7 @@ impl AardvarkApplication {
}

fn new_window(&self) {
let window = AardvarkWindow::new(self, &self.imp().service);
let window = AardvarkWindow::new(self, &self.service());
window.present();
}

Expand Down
5 changes: 5 additions & 0 deletions aardvark-app/src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,8 @@ mod components;
mod config;
mod connection_popover;
mod open_dialog;
mod open_popover;
mod secret;
mod system_settings;
mod textbuffer;
mod window;
Expand All @@ -37,9 +39,12 @@ use tracing_subscriber::prelude::*;
use self::application::AardvarkApplication;
use self::config::*;
use self::connection_popover::ConnectionPopover;
use self::open_popover::OpenPopover;
use self::textbuffer::AardvarkTextBuffer;
use self::window::AardvarkWindow;

pub use self::config::APP_ID;

fn main() -> glib::ExitCode {
setup_logging();

Expand Down
Loading