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.
This commit is contained in:
Chris Cochrun 2023-03-31 15:21:28 -05:00
parent 0f0f16e069
commit 6377182ab3

View file

@ -106,6 +106,24 @@ mod slide_model {
ActiveChanged, 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 { impl qobject::SlideyMod {
// #[qinvokable] // #[qinvokable]
// pub fn add(self: Pin<&mut Self>) { // 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 tl = &self.as_ref().index(0, 0, &QModelIndex::default());
let br = &self.as_ref().index(rc, 0, &QModelIndex::default()); let br = &self.as_ref().index(rc, 0, &QModelIndex::default());
let mut vector_roles = QVector_i32::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() { for slide in self.as_mut().slides_mut().iter_mut() {
// println!("slide is deactivating {:?}", i); // println!("slide is deactivating {:?}", i);
slide.active = false; slide.active = false;
@ -682,6 +700,16 @@ mod slide_model {
false 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) // Create Rust bindings for C++ functions of the base class (QAbstractItemModel)