use std::borrow::Borrow; use std::cell::RefCell; use std::fs; use std::sync::{Arc, Mutex}; use std::io::ErrorKind; use std::path::Path; use std::rc::Rc; use crate::card::Card; use crate::db::*; use crate::ui::cards::new::*; use crate::widgets::card_entry::CardEntry; use glib::subclass::InitializingObject; use gtk::gio::ListStore; use gtk::glib::object::ObjectExt; use gtk::glib::{clone, closure_local, Object}; use gtk::prelude::WidgetExt; use gtk::subclass::prelude::*; use gtk::{ gio, glib, Button, CompositeTemplate, ListView, NoSelection, ScrolledWindow, SearchEntry, Switch, Window, }; use gtk::{prelude::*, FileDialog}; use gtk::{ListItem, SignalListItemFactory}; use rusqlite::Connection; use sha256::try_digest; #[derive(CompositeTemplate, Default)] #[template(resource = "/org/foxarmy/learn-hieroglyph/cards/edit/ui.xml")] pub struct MemoryCardsEditScene { #[template_child] pub search_entry: TemplateChild, #[template_child] pub add_button: TemplateChild