Obtain all required vectors; Quick draft for project

This commit is contained in:
Jaby 2025-03-18 21:54:25 +01:00
parent 6a1b87cdb1
commit 602fb3a5c2
7 changed files with 45 additions and 12 deletions

View File

@ -65,8 +65,12 @@ pub(super) fn on_load_project_clicked() -> impl FnMut(&mut FileTab, &MainWindow)
}
}
pub(super) fn on_save_project_clicked() -> impl FnMut(&mut FileTab, &MainWindow) -> Result<(), Error> + 'static {
move |_file_tab, _main_window| {
pub(super) fn on_save_project_clicked(tim_manager: MutexTIMManager) -> impl FnMut(&mut FileTab, &MainTab, &MainWindow) -> Result<(), Error> + 'static {
move |_file_tab, main_tab, _main_window| {
let _tim_info = tim_manager.lock().expect("VRAM already locked").clone_added_tims();
let _vram_info = main_tab.clone_vram_info();
Err(Error::not_implemented("on_save_project_clicked"))
}
}

View File

@ -65,9 +65,9 @@ impl FileTab {
}
});
let (cloned_object, cloned_main_window, mut function) = (object.clone(), main_window.clone(), callbacks::on_add_image(tim_manager.clone()));
let (cloned_object, cloned_main_tab, cloned_main_window, mut function) = (object.clone(), main_tab.clone(), main_window.clone(), callbacks::on_add_image(tim_manager.clone()));
main_window.borrow().on_file_tab_add_convert_image(move || {
if let Err(error) = function(&mut cloned_object.borrow_mut(), &mut main_tab.borrow_mut(), &cloned_main_window.borrow()) {
if let Err(error) = function(&mut cloned_object.borrow_mut(), &mut cloned_main_tab.borrow_mut(), &cloned_main_window.borrow()) {
display_error("Adding file failed", &error.to_string());
}
});
@ -80,9 +80,9 @@ impl FileTab {
}
});
let (cloned_object, cloned_main_window, mut function) = (object.clone(), main_window.clone(), callbacks::on_save_project_clicked());
let (cloned_object, cloned_main_tab, cloned_main_window, mut function) = (object.clone(), main_tab.clone(), main_window.clone(), callbacks::on_save_project_clicked(tim_manager.clone()));
main_window.borrow().on_project_widget_save_project_clicked (move || {
if let Err(error) = function(&mut cloned_object.borrow_mut(), &cloned_main_window.borrow()) {
if let Err(error) = function(&mut cloned_object.borrow_mut(), &cloned_main_tab.borrow(), &cloned_main_window.borrow()) {
display_error("Saving project failed", &error.to_string());
}
});

View File

@ -155,13 +155,13 @@ impl MainTab {
}
}
/*pub fn _clone_vram_images(&self) -> Vec<VRAMInfo> {
pub fn clone_vram_info(&self) -> Vec<VRAMInfo> {
let vram_data = self.vram.lock().expect("VRAM already locked");
let mut images = Vec::new();
let mut infos = Vec::new();
for image in vram_data.image_list.iter() {
images.push(image.clone());
for vram_data in vram_data.info.iter() {
infos.push(vram_data.info.clone());
}
images
}*/
infos
}
}

View File

@ -1,3 +1,4 @@
pub mod project;
pub mod tim;
pub mod tim_mgr;

View File

@ -0,0 +1,22 @@
use std::path::PathBuf;
struct Job {
name: String,
file_path: PathBuf,
}
impl Job {
pub fn new(name: String, file_path: PathBuf) -> Job {
Job{name, file_path}
}
}
struct Project {
jobs: Vec<Job>
}
impl Project {
pub fn new(jobs: Vec<Job>) -> Project {
Project{jobs}
}
}

View File

@ -5,6 +5,7 @@ use slint::{Rgba8Pixel, SharedPixelBuffer};
use tool_helper::Error;
use types::Encoding;
#[derive(Clone)]
pub struct TIMInfo {
_path: PathBuf,
image_data: SharedPixelBuffer<Rgba8Pixel>,
@ -119,6 +120,7 @@ impl TIMInfo {
}
}
#[derive(Clone)]
struct PaletteInfo {
data: Vec<Rgba8Pixel>,
width: u32,

View File

@ -69,4 +69,8 @@ impl TIMManager {
Ok(None)
}
}
pub fn clone_added_tims(&self) -> Vec<Option<TIMInfo>> {
self.added_tims.clone()
}
}