Johann Galle: 4 update cursive clean up text wrapping clean up text wrapping highlight full width 6 files changed, 211 insertions(+), 129 deletions(-)
Copy & paste the following snippet into your terminal to import this patchset into git:
curl -s https://lists.sr.ht/~julienxx/asuka/patches/19444/mbox | git am -3Learn more about email & git
From: Johann150 <johann.galle@protonmail.com> --- Cargo.lock | 258 +++++++++++++++++++++++++++++++++++----------------- Cargo.toml | 2 +- src/main.rs | 44 +++++---- 3 files changed, 198 insertions(+), 106 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 4491151..532db48 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1,5 +1,23 @@ # This file is automatically @generated by Cargo. # It is not intended for manual editing. +[[package]] +name = "ahash" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e8fd72866655d1904d6b0997d0b07ba561047d070fbe29de039031c641b61217" +dependencies = [ + "const-random", +] + +[[package]] +name = "ahash" +version = "0.4.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "739f4a8db6605981345c5654f3a85b056ce52f37a39d34da03f25bf2151ea16e" +dependencies = [ + "const-random", +] + [[package]] name = "aho-corasick" version = "0.7.13" @@ -90,6 +108,12 @@ version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822" +[[package]] +name = "cfg-if" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" + [[package]] name = "chrono" version = "0.4.13" @@ -101,6 +125,28 @@ dependencies = [ "time", ] +[[package]] +name = "const-random" +version = "0.1.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f590d95d011aa80b063ffe3253422ed5aa462af4e9867d43ce8337562bac77c4" +dependencies = [ + "const-random-macro", + "proc-macro-hack", +] + +[[package]] +name = "const-random-macro" +version = "0.1.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "615f6e27d000a2bffbc7f2f6a8669179378fa27ee4d0a509e985dfc0a7defb40" +dependencies = [ + "getrandom 0.2.1", + "lazy_static", + "proc-macro-hack", + "tiny-keccak", +] + [[package]] name = "constant_time_eq" version = "0.1.5" @@ -109,9 +155,9 @@ checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc" [[package]] name = "core-foundation" -version = "0.7.0" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57d24c7a13c43e870e37c1556b74555437870a04514f7685f5b354e090567171" +checksum = "0a89e2ae426ea83155dccf10c0fa6b1463ef6d5fcb44cee0b224a408fa640a62" dependencies = [ "core-foundation-sys", "libc", @@ -119,62 +165,76 @@ dependencies = [ [[package]] name = "core-foundation-sys" -version = "0.7.0" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3a71ab494c0b5b860bdc8407ae08978052417070c2ced38573a9157ad75b8ac" +checksum = "ea221b5284a47e40033bf9b66f35f984ec0ea2931eb03505246cd27a963f981b" [[package]] name = "crossbeam-channel" -version = "0.3.9" +version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8ec7fcd21571dc78f96cc96243cab8d8f035247c3efd16c687be154c3fa9efa" +checksum = "b153fe7cbef478c567df0f972e02e6d736db11affe43dfc9c56a9374d1adfb87" dependencies = [ - "crossbeam-utils 0.6.6", + "crossbeam-utils", + "maybe-uninit", ] [[package]] name = "crossbeam-utils" -version = "0.6.6" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04973fa96e96579258a5091af6003abde64af786b860f18622b82e026cca60e6" +checksum = "c3c7c73a2d1e9fc0886a08b93e98eb643461230d5f1925e4036204d5f2e261a8" dependencies = [ - "cfg-if", + "autocfg", + "cfg-if 0.1.10", "lazy_static", ] [[package]] -name = "crossbeam-utils" -version = "0.7.2" +name = "crunchy" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3c7c73a2d1e9fc0886a08b93e98eb643461230d5f1925e4036204d5f2e261a8" +checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" + +[[package]] +name = "cursive" +version = "0.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a9f12332ab2bca26979ef00cfef9a1c2e287db03b787a83d892ad9961f81374" dependencies = [ - "autocfg", - "cfg-if", + "ahash 0.3.8", + "cfg-if 0.1.10", + "crossbeam-channel", + "cursive_core", + "enumset", "lazy_static", + "libc", + "log", + "maplit", + "ncurses", + "signal-hook", + "term_size", + "unicode-segmentation", + "unicode-width", ] [[package]] -name = "cursive" -version = "0.13.0" +name = "cursive_core" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6261747aa936aab19fc4ac3a2c1a8eee8fb5862ba96fb1e524ee56cb520d9caf" +checksum = "85fc5b6a8ba2f1bc743892068bde466438f78d6247197e2dc094bfd53fdea4b7" dependencies = [ - "cfg-if", + "ahash 0.4.7", "chrono", "crossbeam-channel", "enum-map", "enumset", - "hashbrown", "lazy_static", "libc", "log", - "maplit", - "ncurses", "num", "owning_ref", "signal-hook", - "term_size", - "toml", "unicode-segmentation", "unicode-width", "xi-unicode", @@ -258,9 +318,9 @@ dependencies = [ [[package]] name = "enumset" -version = "0.4.5" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93182dcb6530c757e5879b22ebc5cfbd034861585b442819389614e223ac1c47" +checksum = "959a80a2062fedd66ed41d99736212de987b3a8c83a4c2cef243968075256bd1" dependencies = [ "enumset_derive", "num-traits", @@ -268,9 +328,9 @@ dependencies = [ [[package]] name = "enumset_derive" -version = "0.4.4" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "751a786cfcc7d5ceb9e0fe06f0e911da6ce3a3044633e029df4c370193c86a62" +checksum = "74bef436ac71820c5cf768d7af9ba33121246b09a00e09a55d94ef8095a875ac" dependencies = [ "darling", "proc-macro2", @@ -299,22 +359,37 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" +[[package]] +name = "form_urlencoded" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ece68d15c92e84fa4f19d3780f1294e5ca82a78a6d515f1efaabcc144688be00" +dependencies = [ + "matches", + "percent-encoding", +] + [[package]] name = "getrandom" version = "0.1.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7abc8dd8451921606d809ba32e95b6111925cd2906060d2dcc29c070220503eb" dependencies = [ - "cfg-if", + "cfg-if 0.1.10", "libc", - "wasi", + "wasi 0.9.0+wasi-snapshot-preview1", ] [[package]] -name = "hashbrown" -version = "0.5.0" +name = "getrandom" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1de41fb8dba9714efd92241565cdff73f78508c95697dd56787d3cba27e2353" +checksum = "4060f4657be78b8e766215b02b18a2e862d83745545de804638e2b545e81aee6" +dependencies = [ + "cfg-if 1.0.0", + "libc", + "wasi 0.10.1+wasi-snapshot-preview1", +] [[package]] name = "ident_case" @@ -357,7 +432,7 @@ version = "0.4.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "14b6052be84e6b71ab17edffc2eeabf5c2c3ae1fdb464aae35ac50c67a44e1f7" dependencies = [ - "cfg-if", + "cfg-if 0.1.10", ] [[package]] @@ -372,6 +447,12 @@ version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7ffc5c5338469d4d3ea17d269fa8ea3512ad247247c30bd2df69e68309ed0a08" +[[package]] +name = "maybe-uninit" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "60302e4db3a61da70c0cb7991976248362f30319e88850c487b9b95bbf059e00" + [[package]] name = "memchr" version = "2.3.3" @@ -380,9 +461,9 @@ checksum = "3728d817d99e5ac407411fa471ff9800a778d88a24685968b36824eaf4bee400" [[package]] name = "native-tls" -version = "0.2.4" +version = "0.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b0d88c06fe90d5ee94048ba40409ef1d9315d86f6f38c2efdaad4fb50c58b2d" +checksum = "b8d96b2e1c8da3957d58100b09f102c6d9cfdfced01b7ec5a8974044bb09dbd4" dependencies = [ "lazy_static", "libc", @@ -409,9 +490,9 @@ dependencies = [ [[package]] name = "num" -version = "0.2.1" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8536030f9fea7127f841b45bb6243b27255787fb4eb83958aa1ef9d2fdc0c36" +checksum = "8b7a8e9be5e039e2ff869df49155f1c06bd01ade2117ec783e56ab0932b67a8f" dependencies = [ "num-complex", "num-integer", @@ -422,19 +503,18 @@ dependencies = [ [[package]] name = "num-complex" -version = "0.2.4" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6b19411a9719e753aff12e5187b74d60d3dc449ec3f4dc21e3989c3f554bc95" +checksum = "747d632c0c558b87dbabbe6a82f3b4ae03720d0646ac5b7b4dae89394be5f2c5" dependencies = [ - "autocfg", "num-traits", ] [[package]] name = "num-integer" -version = "0.1.43" +version = "0.1.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d59457e662d541ba17869cf51cf177c0b5f0cbf476c66bdc90bf1edac4f875b" +checksum = "d2cc698a63b549a70bc047073d2949cce27cd1c7b0a4a862d08a8031bc2801db" dependencies = [ "autocfg", "num-traits", @@ -442,9 +522,9 @@ dependencies = [ [[package]] name = "num-iter" -version = "0.1.41" +version = "0.1.42" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a6e6b7c748f995c4c29c5f5ae0248536e04a5739927c74ec0fa564805094b9f" +checksum = "b2021c8337a54d21aca0d59a92577a029af9431cb59b909b03252b9c164fad59" dependencies = [ "autocfg", "num-integer", @@ -453,9 +533,9 @@ dependencies = [ [[package]] name = "num-rational" -version = "0.2.4" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c000134b5dbf44adc5cb772486d335293351644b801551abe8f75c84cfa4aef" +checksum = "12ac428b1cb17fce6f731001d307d351ec70a6d202fc2e60f7d4c5e42d8f4f07" dependencies = [ "autocfg", "num-integer", @@ -464,9 +544,9 @@ dependencies = [ [[package]] name = "num-traits" -version = "0.2.12" +version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac267bcc07f48ee5f8935ab0d24f316fb722d7a1292e2913f0cc196b29ffd611" +checksum = "9a64b1ec5cda2586e284722486d802acf1f7dbdc623e2bfc57e65ca1cd099290" dependencies = [ "autocfg", ] @@ -487,7 +567,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8d575eff3665419f9b83678ff2815858ad9d11567e082f5ac1814baba4e2bcb4" dependencies = [ "bitflags", - "cfg-if", + "cfg-if 0.1.10", "foreign-types", "lazy_static", "libc", @@ -540,6 +620,12 @@ version = "0.2.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "237a5ed80e274dbc66f86bd59c1e25edc039660be53194b5fe0a482e0f2612ea" +[[package]] +name = "proc-macro-hack" +version = "0.5.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dbf0c48bc1d91375ae5c3cd81e3722dff1abcf81a30960240640d223f59fe0e5" + [[package]] name = "proc-macro2" version = "1.0.18" @@ -564,7 +650,7 @@ version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" dependencies = [ - "getrandom", + "getrandom 0.1.14", "libc", "rand_chacha", "rand_core", @@ -587,7 +673,7 @@ version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" dependencies = [ - "getrandom", + "getrandom 0.1.14", ] [[package]] @@ -611,16 +697,16 @@ version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09b23093265f8d200fa7b4c2c76297f47e681c655f6f1285a8780d6a022f7431" dependencies = [ - "getrandom", + "getrandom 0.1.14", "redox_syscall", "rust-argon2", ] [[package]] name = "regex" -version = "1.3.9" +version = "1.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c3780fcf44b193bc4d09f36d2a3c87b251da4a046c87795a0d35f4f927ad8e6" +checksum = "d9251239e129e16308e70d853559389de218ac275b515068abc96829d05b948a" dependencies = [ "aho-corasick", "memchr", @@ -630,9 +716,9 @@ dependencies = [ [[package]] name = "regex-syntax" -version = "0.6.18" +version = "0.6.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26412eb97c6b088a6997e05f69403a802a92d520de2f8e63c2b65f9e0f47c4e8" +checksum = "b5eb417147ba9860a96cfe72a0b93bf88fee1744b5636ec99ab20c1aa9376581" [[package]] name = "remove_dir_all" @@ -652,7 +738,7 @@ dependencies = [ "base64", "blake2b_simd", "constant_time_eq", - "crossbeam-utils 0.7.2", + "crossbeam-utils", ] [[package]] @@ -667,9 +753,9 @@ dependencies = [ [[package]] name = "security-framework" -version = "0.4.4" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64808902d7d99f78eaddd2b4e2509713babc3dc3c85ad6f4c447680f3c01e535" +checksum = "c1759c2e3c8580017a484a7ac56d3abc5a6c1feadf88db2f3633f12ae4268c69" dependencies = [ "bitflags", "core-foundation", @@ -680,20 +766,14 @@ dependencies = [ [[package]] name = "security-framework-sys" -version = "0.4.3" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17bf11d99252f512695eb468de5516e5cf75455521e69dfe343f3b74e4748405" +checksum = "f99b9d5e26d2a71633cc4f2ebae7cc9f874044e0c351a27e17892d76dce5678b" dependencies = [ "core-foundation-sys", "libc", ] -[[package]] -name = "serde" -version = "1.0.114" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5317f7588f0a5078ee60ef675ef96735a1442132dc645eb1d12c018620ed8cd3" - [[package]] name = "signal-hook" version = "0.1.16" @@ -714,6 +794,12 @@ dependencies = [ "libc", ] +[[package]] +name = "smawk" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1bc737c97d093feb72e67f4926d9b22d717ce8580cd25f0ce86d74e859c466d" + [[package]] name = "stable_deref_trait" version = "1.1.1" @@ -743,7 +829,7 @@ version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7a6e24d9338a0a5be79593e2fa15a648add6138caa803e2d5bc782c371732ca9" dependencies = [ - "cfg-if", + "cfg-if 0.1.10", "libc", "rand", "redox_syscall", @@ -763,10 +849,11 @@ dependencies = [ [[package]] name = "textwrap" -version = "0.12.1" +version = "0.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "203008d98caf094106cfaba70acfed15e18ed3ddb7d94e49baec153a2b462789" +checksum = "3cdcf6b66102d38821c33eea2bf1e8b7bd738072171cbf8a0683fbb46fcb8b0b" dependencies = [ + "smawk", "unicode-width", ] @@ -790,19 +877,19 @@ dependencies = [ ] [[package]] -name = "tinyvec" -version = "0.3.3" +name = "tiny-keccak" +version = "2.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53953d2d3a5ad81d9f844a32f14ebb121f50b650cd59d0ee2a07cf13c617efed" +checksum = "2c9d3793400a45f954c52e73d068316d76b6f4e36977e3fcebb13a2721e80237" +dependencies = [ + "crunchy", +] [[package]] -name = "toml" -version = "0.5.6" +name = "tinyvec" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffc92d160b1eef40665be3a05630d003936a3bc7da7421277846c2613e92c71a" -dependencies = [ - "serde", -] +checksum = "53953d2d3a5ad81d9f844a32f14ebb121f50b650cd59d0ee2a07cf13c617efed" [[package]] name = "unicode-bidi" @@ -842,10 +929,11 @@ checksum = "f7fe0bb3479651439c9112f72b6c505038574c9fbb575ed1bf3b797fa39dd564" [[package]] name = "url" -version = "2.1.1" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "829d4a8476c35c9bf0bbce5a3b23f4106f79728039b726d292bb93bc106787cb" +checksum = "5909f2b0817350449ed73e8bcd81c8c3c8d9a7a5d8acba4b27db277f1868976e" dependencies = [ + "form_urlencoded", "idna", "matches", "percent-encoding", @@ -863,6 +951,12 @@ version = "0.9.0+wasi-snapshot-preview1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" +[[package]] +name = "wasi" +version = "0.10.1+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93c6c3420963c5c64bca373b25e77acb562081b9bb4dd5bb864187742186cea9" + [[package]] name = "winapi" version = "0.3.9" diff --git a/Cargo.toml b/Cargo.toml index 8f678e8..80d46d2 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -5,7 +5,7 @@ authors = ["Julien Blanchard <julien@typed-hole.org>"] edition = "2018" [dependencies] -cursive = "0.13" +cursive = "0.15" native-tls = "*" url = "*" regex = "*" diff --git a/src/main.rs b/src/main.rs index d1e3d63..4a05250 100644 --- a/src/main.rs +++ b/src/main.rs @@ -8,9 +8,9 @@ use cursive::align::HAlign; use cursive::theme::{BaseColor, Color, Effect, PaletteColor, Style, Theme}; use cursive::traits::*; use cursive::utils::markup::StyledString; -use cursive::view::Scrollable; +use cursive::view::{Margins, Scrollable}; use cursive::views::{Dialog, EditView, Panel, SelectView}; -use cursive::Cursive; +use cursive::{Cursive, CursiveExt}; use json::object; use regex::Regex; @@ -56,7 +56,7 @@ fn main() { siv.add_fullscreen_layer( Dialog::around(Panel::new( - select.with_id("main").scrollable().full_screen(), + select.with_name("main").scrollable().full_screen(), )) .title("Asuka Browser") .h_align(HAlign::Center) @@ -65,7 +65,7 @@ fn main() { .button("Bookmarks (B)", |s| show_bookmarks(s)) .button("Reload (r)", |s| reload_page(s)) .button("Quit (q)", |s| s.quit()) - .with_id("container"), + .with_name("container"), ); if args.len() > 1 { @@ -99,10 +99,9 @@ fn prompt_for_url(s: &mut Cursive) { s.add_layer( Dialog::new() .title("Enter URL") - // Padding is (left, right, top, bottom) - .padding((1, 1, 1, 0)) + .padding(Margins::lrtb(1, 1, 1, 0)) .content(EditView::new().on_submit(goto_url).fixed_width(20)) - .with_id("url_popup"), + .with_name("url_popup"), ); } @@ -110,8 +109,7 @@ fn prompt_for_answer(s: &mut Cursive, url: Url, message: String) { s.add_layer( Dialog::new() .title(message) - // Padding is (left, right, top, bottom) - .padding((1, 1, 1, 0)) + .padding(Margins::lrtb(1, 1, 1, 0)) .content( EditView::new() .on_submit(move |s, response| { @@ -121,7 +119,7 @@ fn prompt_for_answer(s: &mut Cursive, url: Url, message: String) { }) .fixed_width(60), ) - .with_id("url_query"), + .with_name("url_query"), ); } @@ -129,8 +127,7 @@ fn prompt_for_secret_answer(s: &mut Cursive, url: Url, message: String) { s.add_layer( Dialog::new() .title(message) - // Padding is (left, right, top, bottom) - .padding((1, 1, 1, 0)) + .padding(Margins::lrtb(1, 1, 1, 0)) .content( EditView::new() .secret() @@ -141,7 +138,7 @@ fn prompt_for_secret_answer(s: &mut Cursive, url: Url, message: String) { }) .fixed_width(60), ) - .with_id("url_query"), + .with_name("url_query"), ); } @@ -172,7 +169,7 @@ fn add_bookmark(s: &mut Cursive) { fn show_bookmarks(s: &mut Cursive) { // Hide popup when pressing B on an opened popup - if s.find_id::<Dialog>("bookmarks_popup").is_some() { + if s.find_name::<Dialog>("bookmarks_popup").is_some() { s.pop_layer(); return; } @@ -192,7 +189,7 @@ fn show_bookmarks(s: &mut Cursive) { s.add_layer( Dialog::around(select.scrollable().fixed_size((50, 10))) .title("Bookmarks") - .with_id("bookmarks_popup"), + .with_name("bookmarks_popup"), ); } @@ -214,7 +211,7 @@ fn reload_page(s: &mut Cursive) { fn visit_url(s: &mut Cursive, url: &Url) { // Close URL popup if any - if s.find_id::<Dialog>("url_popup").is_some() { + if s.find_name::<Dialog>("url_popup").is_some() { s.pop_layer(); } @@ -287,10 +284,9 @@ fn handle_response_status( fn draw_content(s: &mut Cursive, url: &Url, content: Option<Vec<u8>>) { if let Some(data) = content { - let mut main_view = match s.find_id::<SelectView>("main") { - Some(view) => view, - None => panic!("Can't find main view."), - }; + let mut main_view = s + .find_name::<SelectView>("main") + .expect("Can't find main view."); // set title and clear old content set_title(s, url.as_str()); @@ -382,7 +378,7 @@ fn draw_content(s: &mut Cursive, url: &Url, content: Option<Vec<u8>>) { let l = caps.get(1).map_or("", |m| m.as_str()); (l.to_string(), true) } - None => (line, false) + None => (line, false), }; let max_size = screen_size.x - 10 - if quoted { 2 } else { 0 }; @@ -410,7 +406,7 @@ fn draw_content(s: &mut Cursive, url: &Url, content: Option<Vec<u8>>) { } fn set_title(s: &mut Cursive, text: &str) { - let mut container = match s.find_id::<Dialog>("container") { + let mut container = match s.find_name::<Dialog>("container") { Some(view) => view, None => panic!("Can't find container view."), }; @@ -423,7 +419,9 @@ fn follow_line(s: &mut Cursive, line: &str) { if let Ok(data) = parsed { if link::is_gemini(&data) { let current_url = history::get_current_url().unwrap(); - let next_url = current_url.join(&data["url"].to_string()).expect("Not a URL"); + let next_url = current_url + .join(&data["url"].to_string()) + .expect("Not a URL"); visit_url(s, &next_url) } else { open::that(data["url"].to_string()).unwrap(); -- 2.20.1
From: Johann150 <johann.galle@protonmail.com> fixed the width calculation, forgot to account for the scroll bar --- src/main.rs | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/src/main.rs b/src/main.rs index 4a05250..2481e85 100644 --- a/src/main.rs +++ b/src/main.rs @@ -381,18 +381,13 @@ fn draw_content(s: &mut Cursive, url: &Url, content: Option<Vec<u8>>) { None => (line, false), }; - let max_size = screen_size.x - 10 - if quoted { 2 } else { 0 }; - let lines = if line.len() > max_size { - textwrap::fill(&line, max_size) - } else { - line - }; + let max_size = screen_size.x - 8; + let mut options = textwrap::Options::new(max_size); + if quoted { + options = options.initial_indent("> ").subsequent_indent("> "); + } - let lines = if quoted { - textwrap::indent(&lines.as_str(), "> ") - } else { - lines - }; + let lines = textwrap::fill(&line, options); if lines.is_empty() { main_view.add_item("", String::from("0")); -- 2.20.1
From: Johann150 <johann.galle@protonmail.com> --- src/main.rs | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/src/main.rs b/src/main.rs index 4a05250..441df85 100644 --- a/src/main.rs +++ b/src/main.rs @@ -381,18 +381,13 @@ fn draw_content(s: &mut Cursive, url: &Url, content: Option<Vec<u8>>) { None => (line, false), }; - let max_size = screen_size.x - 10 - if quoted { 2 } else { 0 }; - let lines = if line.len() > max_size { - textwrap::fill(&line, max_size) - } else { - line - }; + let max_size = screen_size.x - 6; + let mut options = textwrap::Options::new(max_size); + if quoted { + options = options.initial_indent("> ").subsequent_indent("> "); + } - let lines = if quoted { - textwrap::indent(&lines.as_str(), "> ") - } else { - lines - }; + let lines = textwrap::fill(&line, options); if lines.is_empty() { main_view.add_item("", String::from("0")); -- 2.20.1
From: Johann150 <johann.galle@protonmail.com> --- src/main.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main.rs b/src/main.rs index 441df85..3447184 100644 --- a/src/main.rs +++ b/src/main.rs @@ -56,7 +56,7 @@ fn main() { siv.add_fullscreen_layer( Dialog::around(Panel::new( - select.with_name("main").scrollable().full_screen(), + select.with_name("main").full_width().scrollable().full_screen(), )) .title("Asuka Browser") .h_align(HAlign::Center) -- 2.20.1