fixing lots of bugs
This commit is contained in:
parent
da735aa00b
commit
0ba3e7588b
24 changed files with 781 additions and 486 deletions
|
@ -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!()
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue