starting on #3
This commit is contained in:
parent
9c756f3550
commit
46e4030f46
59
src/main.rs
59
src/main.rs
@ -12,6 +12,8 @@ use iced::{
|
||||
},
|
||||
};
|
||||
|
||||
use std::fs::{File, OpenOptions};
|
||||
use std::io::{BufWriter, Write};
|
||||
use std::{env, fs, path::PathBuf};
|
||||
use texts::*;
|
||||
|
||||
@ -69,6 +71,7 @@ enum Message {
|
||||
SetErrorMessage(usize, String),
|
||||
RecievedEvent(Event),
|
||||
NoteInput(usize, text_editor::Action),
|
||||
Save,
|
||||
}
|
||||
|
||||
impl Message {
|
||||
@ -197,10 +200,49 @@ impl State {
|
||||
}
|
||||
// match normal messages
|
||||
match msg {
|
||||
Message::Save => {
|
||||
let opt = OpenOptions::new()
|
||||
// create if doesn't already exist
|
||||
.create(true)
|
||||
.append(false)
|
||||
// clear existing file
|
||||
.truncate(true)
|
||||
.write(true)
|
||||
.open("save.md")
|
||||
;
|
||||
match opt {
|
||||
Ok(file) => {
|
||||
let mut buffer = BufWriter::new(file);
|
||||
|
||||
for col in &self.states {
|
||||
// start code block
|
||||
let _ = buffer.write_all("```\n".as_bytes());
|
||||
// write header
|
||||
if let Some(bible) = &col.bible_selected {
|
||||
let translation = &bible.translation_name;
|
||||
let location = &col.bible_search;
|
||||
|
||||
let _ = buffer.write_all(format!("{translation} {location}\n").as_bytes());
|
||||
}
|
||||
if let Some(scripture) = &col.scripture_body {
|
||||
let _ = buffer.write_all(parse(scripture).as_bytes());
|
||||
}
|
||||
// end code block
|
||||
let _ = buffer.write_all("```\n".as_bytes());
|
||||
|
||||
let _ = buffer.write_all(&col.notes.text().as_bytes());
|
||||
}
|
||||
let _ = buffer.flush();
|
||||
},
|
||||
Err(err) => {
|
||||
eprintln!("{err}");
|
||||
}
|
||||
}
|
||||
},
|
||||
Message::NoteInput(i, action) => {
|
||||
let notes = &mut self.states[i].notes;
|
||||
notes.perform(action);
|
||||
}
|
||||
},
|
||||
Message::CycleTheme => {
|
||||
let len = self.themes.len();
|
||||
let i = &mut self.theme_idx;
|
||||
@ -344,10 +386,17 @@ impl State {
|
||||
fn view(&self) -> Element<Message> {
|
||||
// Header bar, static, doesn't scroll
|
||||
column![
|
||||
button("Cycle Themes")
|
||||
.on_press(Message::CycleTheme)
|
||||
.style(button::secondary),
|
||||
scrollable(
|
||||
row![
|
||||
button("Cycle Themes")
|
||||
.on_press(Message::CycleTheme)
|
||||
.style(button::secondary)
|
||||
,
|
||||
button("Save")
|
||||
.on_press(Message::Save)
|
||||
.style(button::secondary)
|
||||
,
|
||||
],
|
||||
scrollable(
|
||||
row![
|
||||
row((0..self.states.len()).map(|col_index| {
|
||||
column![
|
||||
|
Loading…
x
Reference in New Issue
Block a user