fixing lots of bugs

This commit is contained in:
Chris Cochrun 2025-03-10 23:18:30 -05:00
parent da735aa00b
commit 0ba3e7588b
24 changed files with 781 additions and 486 deletions

View file

@ -271,7 +271,12 @@ mod service_item_model {
}
}
use self::service_item_model::{
QHash_i32_QByteArray, QMap_QString_QVariant, QVector_i32,
ServiceRoles,
};
use crate::service_item_model::service_item_model::QList_QString;
use crate::slide_types::SlideType;
use crate::songs::song_model::{get_song, Song};
use crate::{image_model, presentation_model, video_model};
use cxx_qt::{CxxQtType, Threading};
@ -279,6 +284,7 @@ use cxx_qt_lib::{
QByteArray, QModelIndex, QString, QStringList, QUrl, QVariant,
};
use dirs;
// use lumina_core::service_items::ServiceItem as SI;
use serde_json::{json, Value};
use std::iter;
use std::path::{Path, PathBuf};
@ -288,12 +294,6 @@ use std::{fs, println};
use tar::{Archive, Builder};
use tracing::{debug, error};
use zstd::{Decoder, Encoder};
use self::service_item_model::{
QHash_i32_QByteArray, QMap_QString_QVariant, QVector_i32,
ServiceRoles,
};
use crate::slide_types::SlideType;
use lumina_core::service_items::ServiceItem as SI;
use super::service_item_model::service_item_model::ServiceItemModel;
@ -377,7 +377,9 @@ impl service_item_model::ServiceItemModel {
pub fn remove_items(mut self: Pin<&mut Self>) {
let mut indices = vec![];
let mut items = self.service_items.clone();
for (index, _item) in items.iter_mut().enumerate().filter(|(_y, x)| x.selected) {
for (index, _item) in
items.iter_mut().enumerate().filter(|(_y, x)| x.selected)
{
let index = index as i32;
indices.push(index);
}
@ -436,7 +438,10 @@ impl service_item_model::ServiceItemModel {
self.as_mut().end_insert_rows();
}
debug!("ADDING: {:?}", &service_item);
self.as_mut().item_added(&service_item.database_id.unwrap_or_default(), &QString::from(&service_item.ty.to_string()));
self.as_mut().item_added(
&service_item.database_id.unwrap_or_default(),
&QString::from(&service_item.ty.to_string()),
);
}
pub fn insert_item(
@ -475,7 +480,11 @@ impl service_item_model::ServiceItemModel {
self.as_mut().end_insert_rows();
}
debug!("ADDING: {:?}", &service_item);
self.as_mut().item_inserted(&index, &service_item.database_id.unwrap_or_default(), &QString::from(&service_item.ty.to_string()));
self.as_mut().item_inserted(
&index,
&service_item.database_id.unwrap_or_default(),
&QString::from(&service_item.ty.to_string()),
);
}
pub fn get_item(
@ -876,8 +885,7 @@ impl service_item_model::ServiceItemModel {
Some(name) => {
println!("audio: {:?}", &name);
if name.to_str().unwrap() != "temp" {
flat_audio =
name.to_str().unwrap()
flat_audio = name.to_str().unwrap()
} else {
flat_audio = "";
}
@ -961,12 +969,18 @@ impl service_item_model::ServiceItemModel {
debug!(time = ?now.elapsed(), "file written");
std::thread::spawn(move || {
debug!(time = ?now.elapsed(), "idk");
let dir = fs::read_dir(&temp_dir).expect("idk");
let dir = fs::read_dir(&temp_dir)
.expect("idk");
for (index, file) in dir.enumerate() {
if let Ok(file) = file {
let file_name = file.file_name();
let file_name =
file.file_name();
debug!(?file, ?file_name);
let mut file = std::fs::File::open(file.path()).expect("missing file");
let mut file =
std::fs::File::open(
file.path(),
)
.expect("missing file");
tar.append_file(file_name, &mut file).expect("Error in moving file to tar");
thread.queue(move |mut service| {
service
@ -977,10 +991,11 @@ impl service_item_model::ServiceItemModel {
)
}).expect("Problem queuing on cxx thread");
}
}
if let Ok(encoder) = tar.into_inner() {
if let Ok(done) = encoder.finish() {
if let Ok(encoder) = tar.into_inner()
{
if let Ok(done) = encoder.finish()
{
debug!(time = ?now.elapsed(), ?done, "tar finished");
thread.queue(move |mut service| {
service.as_mut().set_save_progress(100.0);
@ -1000,9 +1015,7 @@ impl service_item_model::ServiceItemModel {
}
} else {
fs::remove_dir_all(&temp_dir)
.expect(
"error in removal",
);
.expect("error in removal");
false
}
});
@ -1058,7 +1071,9 @@ impl service_item_model::ServiceItemModel {
if !file_path.exists() {
match file.unpack_in(&datadir) {
Ok(_t) => (),
Err(e) => error!("Error unpacking archive: {}", e),
Err(e) => {
error!("Error unpacking archive: {}", e)
}
}
}
}
@ -1341,7 +1356,9 @@ impl service_item_model::ServiceItemModel {
let mut vector_roles = QVector_i32::default();
vector_roles.append(self.as_ref().get_role(role));
if let Some(index) =
self.as_ref().service_items.iter().position(|x| x.database_id.unwrap_or_default() == item_id)
self.as_ref().service_items.iter().position(|x| {
x.database_id.unwrap_or_default() == item_id
})
{
let model_index = self.as_ref().index(
index as i32,
@ -1355,7 +1372,6 @@ impl service_item_model::ServiceItemModel {
}
}
pub fn load_last_saved(self: Pin<&mut Self>) -> bool {
todo!();
// Don't actually need
@ -1394,9 +1410,9 @@ impl service_item_model::ServiceItemModel {
ServiceRoles::Name => {
QVariant::from(&service_item.name)
}
ServiceRoles::Type => {
QVariant::from(&QString::from(&service_item.ty.clone().to_string()))
}
ServiceRoles::Type => QVariant::from(&QString::from(
&service_item.ty.clone().to_string(),
)),
ServiceRoles::Audio => {
QVariant::from(&service_item.audio)
}
@ -1433,9 +1449,9 @@ impl service_item_model::ServiceItemModel {
ServiceRoles::VideoEndTime => {
QVariant::from(&service_item.video_end_time)
}
ServiceRoles::Id => {
QVariant::from(&service_item.database_id.unwrap_or_default())
}
ServiceRoles::Id => QVariant::from(
&service_item.database_id.unwrap_or_default(),
),
_ => QVariant::default(),
};
}
@ -1503,22 +1519,21 @@ impl service_item_model::ServiceItemModel {
ServiceRoles::VideoEndTime.repr,
QByteArray::from("videoEndTime"),
);
roles.insert(
ServiceRoles::Id.repr,
QByteArray::from("id"),
);
roles.insert(ServiceRoles::Id.repr, QByteArray::from("id"));
roles
}
pub fn row_count(&self, _parent: &QModelIndex) -> i32 {
// println!("row count is {cnt}");
self.service_items.len() as i32
}
}
impl ServiceItemModelRust {
pub fn save(_model: Pin<&mut ServiceItemModel>, _file: QUrl) -> bool {
pub fn save(
_model: Pin<&mut ServiceItemModel>,
_file: QUrl,
) -> bool {
todo!()
}
}