Browse Source

init sqlite connection

master
yggverse 2 months ago
parent
commit
043661282c
  1. 5
      Cargo.toml
  2. 4
      src/browser/mod.rs
  3. 22
      src/main.rs

5
Cargo.toml

@ -9,7 +9,10 @@ keywords = ["gemini", "gemini-protocol", "browser", "client", "1965"] @@ -9,7 +9,10 @@ keywords = ["gemini", "gemini-protocol", "browser", "client", "1965"]
repository = "https://github.com/YGGverse/Yoda/tree/Rust-GTK4"
homepage = "https://yggverse.github.io"
[dependencies]
sqlite = "0.36.1"
[dependencies.gtk]
package = "gtk4"
version = "0.9.1"
features = ["v4_8"]
features = ["v4_8"]

4
src/browser/mod.rs

@ -7,7 +7,9 @@ use gtk::{ @@ -7,7 +7,9 @@ use gtk::{
Application, ApplicationWindow,
};
pub fn new(app: &Application, width: i32, height: i32) -> ApplicationWindow {
use sqlite::Connection;
pub fn new(app: &Application, db: &Connection, width: i32, height: i32) -> ApplicationWindow {
// Init browser window
let browser = ApplicationWindow::builder()
.default_width(width)

22
src/main.rs

@ -10,15 +10,25 @@ fn main() -> glib::ExitCode { @@ -10,15 +10,25 @@ fn main() -> glib::ExitCode {
// Init meta
const APP_ID: &str = "io.github.yggverse.Yoda";
// Init config location
let mut config = gtk::glib::user_config_dir();
// Init profile directory
let mut fs = gtk::glib::user_config_dir();
config.push(APP_ID);
fs.push(APP_ID);
if let Err(e) = fs::create_dir_all(config) {
if let Err(e) = fs::create_dir_all(&fs) {
panic!("Failed to create profile directory: {e}")
}
// Init profile database
let mut db = fs.clone();
db.push("database.sqlite3");
let db = match sqlite::open(db) {
Ok(db) => db,
Err(e) => panic!("Failed to connect profile database: {e}"),
};
// Init app
let app = Application::builder().application_id(APP_ID).build();
@ -29,8 +39,8 @@ fn main() -> glib::ExitCode { @@ -29,8 +39,8 @@ fn main() -> glib::ExitCode {
app.set_accels_for_action("win.quit", &["<Ctrl>Escape"]);
// Create new window
app.connect_activate(|app| {
browser::new(app, 640, 480).present();
app.connect_activate(move |app| {
browser::new(&app, &db, 640, 480).present();
});
// Start

Loading…
Cancel
Save