From 6377182ab3bc28b9101e408582821ca0fabb3721 Mon Sep 17 00:00:00 2001 From: Chris Cochrun Date: Fri, 31 Mar 2023 15:21:28 -0500 Subject: [PATCH] add enum Role This will make it easier to ensure we are always using the appropriate data type in the DataChanged signal since we won't need to hand pass i32s around and instead define them once in the function get_role. --- src/rust/slide_model.rs | 30 +++++++++++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/src/rust/slide_model.rs b/src/rust/slide_model.rs index 13e73fb..bd7b5fb 100644 --- a/src/rust/slide_model.rs +++ b/src/rust/slide_model.rs @@ -106,6 +106,24 @@ mod slide_model { ActiveChanged, } + enum Role { + ActiveRole, + SelectedRole, + LoopingRole, + TextRole, + } + + // impl Role { + // pub fn get_role(&self) -> i32 { + // match self { + // Role::ActiveRole => 12, + // Role::SelectedRole => 13, + // Role::LoopingRole => 14, + // Role::TextRole => 1, + // } + // } + // } + impl qobject::SlideyMod { // #[qinvokable] // pub fn add(self: Pin<&mut Self>) { @@ -662,7 +680,7 @@ mod slide_model { let tl = &self.as_ref().index(0, 0, &QModelIndex::default()); let br = &self.as_ref().index(rc, 0, &QModelIndex::default()); let mut vector_roles = QVector_i32::default(); - vector_roles.append(12); + vector_roles.append(self.get_role(Role::ActiveRole)); for slide in self.as_mut().slides_mut().iter_mut() { // println!("slide is deactivating {:?}", i); slide.active = false; @@ -682,6 +700,16 @@ mod slide_model { false } } + + fn get_role(&self, role: Role) -> i32 { + match role { + Role::ActiveRole => 12, + Role::SelectedRole => 13, + Role::LoopingRole => 14, + Role::TextRole => 1, + _ => 0, + } + } } // Create Rust bindings for C++ functions of the base class (QAbstractItemModel)