changeset 17: |
e4c9ec452eb6 |
author: |
ellis <ellis@rwest.io> |
date: |
Sat, 27 May 2023 21:07:55 -0400 |
permissions: |
-rw-r--r-- |
description: |
ui work |
3 #[cfg(target_arch = "wasm32")] 4 use wasm_bindgen::prelude::*; 6 slint::include_modules!(); 10 use slint::{Model, StandardListViewItem, VecModel}; 12 #[cfg_attr(target_arch = "wasm32", wasm_bindgen(start))] 14 // This provides better error messages in debug mode. 15 // It's disabled in release mode so it doesn't bloat up the file size. 16 #[cfg(all(debug_assertions, target_arch = "wasm32"))] 17 console_error_panic_hook::set_once(); 19 let app = App::new().unwrap(); 21 let row_data: Rc<VecModel<slint::ModelRc<StandardListViewItem>>> = Rc::new(VecModel::default()); 24 let items = Rc::new(VecModel::default()); 27 items.push(slint::format!("Item {r}.{c}").into()); 30 row_data.push(items.into()); 33 app.global::<TableViewPageAdapter>().set_row_data(row_data.clone().into()); 35 app.global::<TableViewPageAdapter>().on_sort_ascending({ 36 let app_weak = app.as_weak(); 37 let row_data = row_data.clone(); 39 let row_data = row_data.clone(); 41 let sort_model = Rc::new(row_data.sort_by(move |r_a, r_b| { 42 let c_a = r_a.row_data(index as usize).unwrap(); 43 let c_b = r_b.row_data(index as usize).unwrap(); 45 c_a.text.cmp(&c_b.text) 48 app_weak.unwrap().global::<TableViewPageAdapter>().set_row_data(sort_model.into()); 52 app.global::<TableViewPageAdapter>().on_sort_descending({ 53 let app_weak = app.as_weak(); 55 let row_data = row_data.clone(); 57 let sort_model = Rc::new(row_data.sort_by(move |r_a, r_b| { 58 let c_a = r_a.row_data(index as usize).unwrap(); 59 let c_b = r_b.row_data(index as usize).unwrap(); 61 c_b.text.cmp(&c_a.text) 64 app_weak.unwrap().global::<TableViewPageAdapter>().set_row_data(sort_model.into());