refactored channels data into `ChannelsData` struct
Dependencies
- [2]
6M4YFQEBadded command-line argument to specify repository path - [3]
V3SZ2LL2refactored UI update logic into discrete functions - [4]
6ECOC7L5parsed `pijul channel` text blob into individual UI components - [5]
IQY5LHENadd GUI element to display simple `pijul log` results - [6]
XERTHGSYconsolidated `pijul log` UI elements into their own component - [7]
4RPYR65Cconnect GUI to pijul to display simple channel list - [8]
PL4TK55Oadded command-line argument to specify executable path - [9]
3W2E3DX2added counter for pending diff files - [10]
BD456SZFadded diff view - [11]
HZV5P57Ychanged channel and log views to use `ListView` (looks much cleaner) - [12]
M5HBKVCEadd selection callback to channel list UI (& fix deselect) - [13]
NSE6BLWAinit slint project from https://github.com/slint-ui/slint-rust-template - [14]
G2CHQAOPparsed `pijul log` text blob into individual entries & fields - [15]
ZGSCV5DIsplit channel labels into discrete component - [16]
F6YAQWVDadded UI for `pijul change` - [*]
NCRTU7M4cargo init
Change contents
- edit in ui/app-window.slint at line 10
}export struct ChannelsData {names: [string],active: int, - replacement in ui/app-window.slint at line 205
in-out property <[string]> channels;in-out property <int> active;in-out property <ChannelsData> data; - replacement in ui/app-window.slint at line 220
for ch[index] in channels: ChannelEntry {for ch[index] in data.names: ChannelEntry { - replacement in ui/app-window.slint at line 222
active: active == index;active: data.active == index; - replacement in ui/app-window.slint at line 244
in-out property <[string]> channels <=> chs.channels;in-out property <int> active-channel <=> chs.active;in-out property <ChannelsData> channels <=> chs.data; - replacement in ui/app-window.slint at line 261
root.request-changes-log(chs.channels[chs.selected]);root.request-diff-summary(chs.channels[chs.selected]);root.request-changes-log(chs.data.names[chs.selected]);root.request-diff-summary(chs.data.names[chs.selected]); - replacement in ui/app-window.slint at line 269
root.request-diff-delta(chs.channels[chs.selected])root.request-diff-delta(chs.data.names[chs.selected]) - replacement in src/main.rs at line 48
ui.set_channels((&channel_strs[..]).into());ui.set_active_channel(i32::try_from(channel_list.active).unwrap_or(-1));ui.set_channels(ChannelsData {names: (&channel_strs[..]).into(),active: i32::try_from(channel_list.active).unwrap_or(-1),});