docs: fix mermaid architecture diagram syntax and license badge/link (fixes #80) #81
@@ -5,7 +5,7 @@
|
|||||||
[](https://git.i3omb.com/gronod/ICCery)
|
[](https://git.i3omb.com/gronod/ICCery)
|
||||||
[](https://git.i3omb.com/gronod/ICCery)
|
[](https://git.i3omb.com/gronod/ICCery)
|
||||||
[](https://tauri.app)
|
[](https://tauri.app)
|
||||||
[](LICENSE)
|
[](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).
|
||||||
|
|||||||
@@ -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)]
|
||||||
|
|||||||
@@ -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
@@ -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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user