From: Nil Gradisnik Date: Fri, 8 Dec 2017 03:08:11 +0000 (-0800) Subject: Moved more logic to utils X-Git-Url: https://git.ozva.co.uk/?a=commitdiff_plain;h=5aa27a68e65d9eedb1e6d6040a719af1c2edb4a0;p=gn-editor Moved more logic to utils --- diff --git a/src/main.rs b/src/main.rs index d0e433f..30eaff4 100644 --- a/src/main.rs +++ b/src/main.rs @@ -11,15 +11,12 @@ mod preview; mod utils; use std::env::args; -use std::fs::File; -use std::io::prelude::*; -use std::io::BufReader; use gio::prelude::*; use gtk::prelude::*; use gtk::Builder; -use utils::{buffer_to_string, set_title, configure_sourceview}; +use utils::{buffer_to_string, open_file, set_title, configure_sourceview}; const NAME: &str = env!("CARGO_PKG_NAME"); const VERSION: &str = env!("CARGO_PKG_VERSION"); @@ -83,17 +80,9 @@ fn build_ui(application: >k::Application) { if file_chooser.run() == gtk::ResponseType::Ok.into() { let filename = file_chooser.get_filename().expect("Couldn't get filename"); - let file = File::open(&filename).expect("Couldn't open file"); - - let mut reader = BufReader::new(file); - let mut contents = String::new(); - let _ = reader.read_to_string(&mut contents); + let contents = open_file(&filename); set_title(&header_bar, &filename); - if let Some(parent) = filename.parent() { - let subtitle: &str = &parent.to_string_lossy(); - header_bar.set_subtitle(subtitle); - } text_buffer.set_text(&contents); markdown_view.get_buffer().unwrap().set_text(&preview::render(&contents)); diff --git a/src/utils.rs b/src/utils.rs index 21a9210..964291a 100644 --- a/src/utils.rs +++ b/src/utils.rs @@ -1,11 +1,21 @@ + +use std::fs::File; +use std::io::prelude::*; +use std::io::BufReader; + use gtk::*; use sourceview::*; -use std::path::Path; +use std::path::{PathBuf}; -pub fn set_title(headerbar: &HeaderBar, path: &Path) { - if let Some(filename) = path.file_name() { - let filename: &str = &filename.to_string_lossy(); - headerbar.set_title(filename); +pub fn set_title(header_bar: &HeaderBar, path: &PathBuf) { + if let Some(file_name) = path.file_name() { + let file_name: &str = &file_name.to_string_lossy(); + header_bar.set_title(file_name); + + if let Some(parent) = path.parent() { + let subtitle: &str = &parent.to_string_lossy(); + header_bar.set_subtitle(subtitle); + } } } @@ -14,6 +24,16 @@ pub fn buffer_to_string(buffer: &Buffer) -> Option { buffer.get_text(&start, &end, false) } +pub fn open_file(filename: &PathBuf) -> String { + let file = File::open(&filename).expect("Couldn't open file"); + + let mut reader = BufReader::new(file); + let mut contents = String::new(); + let _ = reader.read_to_string(&mut contents); + + contents +} + pub fn configure_sourceview(buff: &Buffer) { LanguageManager::new() .get_language("markdown")