changeset 29: |
7e640cebeada |
parent: |
ba323d8c0f93
|
author: |
ellis <ellis@rwest.io> |
date: |
Thu, 15 Jun 2023 21:42:39 -0400 |
permissions: |
-rw-r--r-- |
description: |
containerfile, refactoring |
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()); 34 .global::<TableViewPageAdapter>() 35 .set_row_data(row_data.clone().into()); 37 app.global::<TableViewPageAdapter>().on_sort_ascending({ 38 let app_weak = app.as_weak(); 39 let row_data = row_data.clone(); 41 let row_data = row_data.clone(); 43 let sort_model = Rc::new(row_data.sort_by(move |r_a, r_b| { 44 let c_a = r_a.row_data(index as usize).unwrap(); 45 let c_b = r_b.row_data(index as usize).unwrap(); 47 c_a.text.cmp(&c_b.text) 52 .global::<TableViewPageAdapter>() 53 .set_row_data(sort_model.into()); 57 app.global::<TableViewPageAdapter>().on_sort_descending({ 58 let app_weak = app.as_weak(); 60 let row_data = row_data.clone(); 62 let sort_model = Rc::new(row_data.sort_by(move |r_a, r_b| { 63 let c_a = r_a.row_data(index as usize).unwrap(); 64 let c_b = r_b.row_data(index as usize).unwrap(); 66 c_b.text.cmp(&c_a.text) 71 .global::<TableViewPageAdapter>() 72 .set_row_data(sort_model.into());