docs: fix mermaid architecture diagram syntax and license badge/link (fixes #80) #81

Merged
gronod merged 3 commits from development into main 2026-08-25 12:18:45 +01:00
4 changed files with 9 additions and 77 deletions
+3 -3
View File
@@ -5,7 +5,7 @@
[![Release](https://img.shields.io/badge/version-v0.2.0-blue.svg)](https://git.i3omb.com/gronod/ICCery) [![Release](https://img.shields.io/badge/version-v0.2.0-blue.svg)](https://git.i3omb.com/gronod/ICCery)
[![Platform](https://img.shields.io/badge/platform-Windows%20%7C%20Linux-lightgrey.svg)](https://git.i3omb.com/gronod/ICCery) [![Platform](https://img.shields.io/badge/platform-Windows%20%7C%20Linux-lightgrey.svg)](https://git.i3omb.com/gronod/ICCery)
[![Framework](https://img.shields.io/badge/framework-Tauri%20v2%20%2B%20Rust-orange.svg)](https://tauri.app) [![Framework](https://img.shields.io/badge/framework-Tauri%20v2%20%2B%20Rust-orange.svg)](https://tauri.app)
[![License](https://img.shields.io/badge/license-MIT-green.svg)](LICENSE) [![License](https://img.shields.io/badge/license-Proprietary%20%2F%20EULA-blue.svg)](LICENCE.md)
**ICCery** is a native GUI frontend designed to make creating custom ICC/ICM printer profiles seamless, visual, and reliable. It wraps the powerful color management capabilities of [ArgyllCMS](https://www.argyllcms.com/) within an intuitive, artefact-gated 5-stage wizard. **ICCery** is a native GUI frontend designed to make creating custom ICC/ICM printer profiles seamless, visual, and reliable. It wraps the powerful color management capabilities of [ArgyllCMS](https://www.argyllcms.com/) within an intuitive, artefact-gated 5-stage wizard.
@@ -35,7 +35,7 @@ flowchart TD
UI[Wizard UI & Swatch Grid] UI[Wizard UI & Swatch Grid]
ThreeJS[3D CIELAB Gamut Viewer] ThreeJS[3D CIELAB Gamut Viewer]
State[Wizard State & Artefact Verifier] State[Wizard State & Artefact Verifier]
PrintEngine[Raw Print Subsystem (GDI / CUPS)] PrintEngine["Raw Print Subsystem (GDI / CUPS)"]
ProcMgr[Async Subprocess IPC Manager] ProcMgr[Async Subprocess IPC Manager]
UI <--> State UI <--> State
@@ -95,4 +95,4 @@ npm run tauri build
## Licence ## Licence
ICCery is licensed under the [MIT Licence](LICENSE). ArgyllCMS binaries and source code are licensed under the GNU Affero General Public License (AGPLv3). The ICCery GUI application is proprietary software licensed under the terms of the [EULA](LICENCE.md). ArgyllCMS binaries and source code are licensed under the GNU Affero General Public License (AGPLv3).
-63
View File
@@ -490,69 +490,6 @@ pub async fn run_profcheck(
state.spawn(app, id, binary, args, cwd).await state.spawn(app, id, binary, args, cwd).await
} }
#[tauri::command]
pub async fn get_windows_printers() -> Result<Vec<String>, String> {
#[cfg(windows)]
{
crate::print::windows::get_printers().map(|list| list.into_iter().map(|p| p.name).collect())
}
#[cfg(not(windows))]
{
Err("Windows native printing is only supported on Windows.".to_string())
}
}
#[tauri::command]
pub async fn print_target_windows(
state: State<'_, crate::print::PrinterDevModeStore>,
printer_name: String,
tiff_path: String,
options: Option<crate::print::PrintOptions>,
) -> Result<(), String> {
#[cfg(windows)]
{
crate::print::windows::print_target(&printer_name, &tiff_path, options.as_ref(), Some(&state))
}
#[cfg(not(windows))]
{
let _ = (state, printer_name, tiff_path, options);
Err("Windows native printing is only supported on Windows.".to_string())
}
}
#[tauri::command]
pub async fn get_cups_printers() -> Result<Vec<crate::print::Printer>, String> {
#[cfg(unix)]
{
crate::print::unix::get_printers()
}
#[cfg(not(unix))]
{
Err("CUPS printing is only supported on macOS and Linux.".to_string())
}
}
#[tauri::command]
pub async fn print_target_cups(
printer_name: String,
tiff_path: String,
options: Option<crate::print::PrintOptions>,
) -> Result<(), String> {
#[cfg(unix)]
{
crate::print::unix::print_target(
&printer_name,
&tiff_path,
options.as_ref(),
)
}
#[cfg(not(unix))]
{
let _ = (printer_name, tiff_path, options);
Err("CUPS printing is only supported on macOS and Linux.".to_string())
}
}
#[tauri::command] #[tauri::command]
pub async fn get_printers() -> Result<Vec<crate::print::Printer>, String> { pub async fn get_printers() -> Result<Vec<crate::print::Printer>, String> {
#[cfg(windows)] #[cfg(windows)]
-4
View File
@@ -28,10 +28,6 @@ pub fn run() {
commands::run_chartread, commands::run_chartread,
commands::run_colprof, commands::run_colprof,
commands::run_profcheck, commands::run_profcheck,
commands::get_windows_printers,
commands::print_target_windows,
commands::get_cups_printers,
commands::print_target_cups,
commands::get_printers, commands::get_printers,
commands::get_printer_capabilities, commands::get_printer_capabilities,
commands::show_printer_properties, commands::show_printer_properties,
+6 -7
View File
@@ -477,14 +477,13 @@ export function initPrinttarg() {
*/ */
function extractManifest(stdout) { function extractManifest(stdout) {
try { try {
const jsonStart = stdout.lastIndexOf('{\n "event": "manifest"'); const match = stdout.match(/\{[\s\S]*?"event"\s*:\s*"manifest"[\s\S]*?\n\}/);
if (jsonStart === -1) return null; if (match) {
const jsonEnd = stdout.indexOf('\n}', jsonStart); return JSON.parse(match[0]);
if (jsonEnd === -1) return null; }
const jsonStr = stdout.substring(jsonStart, jsonEnd + 2); return null;
return JSON.parse(jsonStr);
} catch (e) { } catch (e) {
console.error("Failed to parse printtarg manifest:", e); console.error("Failed to parse printtarg manifest JSON:", e);
return null; return null;
} }
} }