From 78b2a1a272d45ac54ba69260a1ecf5ec00bcb16f Mon Sep 17 00:00:00 2001 From: leca Date: Thu, 25 Apr 2024 01:13:54 +0300 Subject: [PATCH] fix is_learning switch --- src/ui/cards/edit/imp.rs | 10 ++++++++-- src/widgets/card_entry/mod.rs | 4 ++++ 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/src/ui/cards/edit/imp.rs b/src/ui/cards/edit/imp.rs index e93b290..256933f 100644 --- a/src/ui/cards/edit/imp.rs +++ b/src/ui/cards/edit/imp.rs @@ -15,8 +15,7 @@ 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, - Window, + gio, glib, Button, CompositeTemplate, ListView, NoSelection, ScrolledWindow, SearchEntry, Switch, Window }; use gtk::{prelude::*, FileDialog}; use gtk::{ListItem, SignalListItemFactory}; @@ -125,6 +124,13 @@ impl MemoryCardsEditScene { .and_downcast::() .unwrap(); + card_object_to_display.get_is_learning_switch_widget().connect_closure("state-set", false, closure_local!(@strong card_object as card => move |s: &Switch, is_enabled: bool| { + let connection = Connection::open(get_db_path()).unwrap(); + let is_learning = is_enabled; + let hieroglyph = card.hieroglyph(); + connection.execute("UPDATE cards SET is_learning = ?1 WHERE hieroglyph = ?2", (&is_learning, &hieroglyph)).unwrap(); + glib::Propagation::Proceed + })); card_object_to_display.get_delete_button_widget().connect_closure("clicked", false, closure_local!(@strong card_object as card, @strong self_binding => move |_b: &Button| { let connection = Connection::open(get_db_path()).unwrap(); let imagepath = &card.imagepath(); diff --git a/src/widgets/card_entry/mod.rs b/src/widgets/card_entry/mod.rs index 0abad1f..384fad0 100644 --- a/src/widgets/card_entry/mod.rs +++ b/src/widgets/card_entry/mod.rs @@ -53,6 +53,10 @@ impl CardEntry { self.imp().edit_button.as_ref() } + pub fn get_is_learning_switch_widget(&self) -> &Switch { + self.imp().is_learning_switch.as_ref() + } + pub fn update_file_for_image(&self) { let image_binding: &Image = self.imp().image.as_ref(); let path: &str = &*self.imp().imagepath.borrow().clone().to_string();