diff --git a/Cargo.lock b/Cargo.lock index c79e8bd..675d999 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -389,10 +389,9 @@ checksum = "7ccac4b00700875e6a07c6cde370d44d32fa01c5a65cdd2fca6858c479d28bb3" [[package]] name = "lorem" -version = "0.1.1" +version = "0.2.0" dependencies = [ "gdk", - "gio", "glib", "gtk", "rand", diff --git a/Cargo.toml b/Cargo.toml index ed7a841..71d5aea 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "lorem" -description = "Lorem Ipsun generator" -version = "0.1.1" +description = "Lorem Ipsum generator" +version = "0.2.0" authors = ["alt-art "] repository="https://github.com/alt-art/lorem" license = "GPL-3.0-or-later" @@ -15,7 +15,6 @@ rand = "0.8.4" glib = "0.14.2" gtk = "0.14.0" gdk = "0.14.0" -gio = "0.14.0" [package.metadata.deb] maintainer = "Pedro Mendes " diff --git a/src/lorem/mod.rs b/src/lorem/mod.rs index 8613f57..b68f7ee 100644 --- a/src/lorem/mod.rs +++ b/src/lorem/mod.rs @@ -31,7 +31,7 @@ impl Lorem { } } - pub fn get_phrase(self, min: u32, max: u32) -> String { + pub fn get_phrase(self, min: u32, max: u32, output_type: &str) -> String { let mut rng = rand::thread_rng(); let count:u32; if min >= max { @@ -43,6 +43,9 @@ impl Lorem { let quantity = Uniform::from(10..20); let mut phrase = String::new(); for _ in 0..count { + if output_type == "HTML" { + phrase.push_str("

"); + } for _ in 0..sentences.sample(&mut rng) { let mut first_word = self.get_words(1); first_word = first_word.first_to_uppper_case(); @@ -52,6 +55,10 @@ impl Lorem { phrase = phrase.trim_matches(',').to_string(); phrase.push_str(". "); } + if output_type == "HTML" { + phrase.pop(); + phrase.push_str("

"); + } phrase.push_str("\n\n") } phrase.trim().to_string() diff --git a/src/main.rs b/src/main.rs index cf96f1b..5d8b300 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,19 +1,14 @@ -extern crate gio; -extern crate gtk; -extern crate gdk; -extern crate glib; - use gtk::prelude::*; use glib::clone; -use gtk::{ApplicationWindow, Builder, Label, Button, Adjustment, Clipboard}; +use gtk::{ApplicationWindow, Builder, Label, Button, Adjustment, Clipboard, ComboBoxText}; mod lorem; use lorem::Lorem; -fn generate(label: gtk::Label, min: u32, max: u32) { +fn generate(label: gtk::Label, min: u32, max: u32, output_type: &str) { let lorem = Lorem::new(); - label.set_text(&lorem.get_phrase(min, max)); + label.set_text(&lorem.get_phrase(min, max, output_type)); } fn build_ui(application: >k::Application) { @@ -25,16 +20,22 @@ fn build_ui(application: >k::Application) { let label: Label = builder.object("label").expect("Cound't get Label"); let min_adjustment: Adjustment = builder.object("min_adjust").expect("Cound't get Adjustment"); let max_adjustment: Adjustment = builder.object("max_adjust").expect("Cound't get Adjustment"); + let output_type: ComboBoxText = builder.object("output_type").expect("Cound't get ComboBoxText"); let gen_button: Button = builder.object("gen").expect("Cound't get Button"); gen_button.connect_clicked(clone!(@weak label => move |_| { - generate(label, min_adjustment.value() as u32, max_adjustment.value() as u32); + generate( + label, + min_adjustment.value() as u32, + max_adjustment.value() as u32, + output_type.active_text().unwrap().as_str() + ); })); let copy_button: Button = builder.object("copy").expect("Cound't get Button"); copy_button.connect_clicked(clone!(@weak label => move |_| { let clipboard = Clipboard::get(&gdk::SELECTION_CLIPBOARD); clipboard.set_text(&label.text()); })); - generate(label, 2, 3); + generate(label, 2, 3, "Text"); window.set_application(Some(application)); window.show_all(); } diff --git a/src/resources/lorem.glade b/src/resources/lorem.glade index 0b92757..6ef2b28 100644 --- a/src/resources/lorem.glade +++ b/src/resources/lorem.glade @@ -97,7 +97,7 @@ Author: alt-art 1 - + True False @@ -169,6 +169,27 @@ Author: alt-art + + 2 + + + + + True + False + 1 + 1 + + HTML + Text + + + + 3 + + + +