mirror of
				https://github.com/MindWorkAI/AI-Studio.git
				synced 2025-11-04 05:40:21 +00:00 
			
		
		
		
	Add command to copy text to the clipboard
This commit is contained in:
		
							parent
							
								
									7db5b6758e
								
							
						
					
					
						commit
						6f9326a827
					
				
							
								
								
									
										215
									
								
								runtime/Cargo.lock
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										215
									
								
								runtime/Cargo.lock
									
									
									
										generated
									
									
									
								
							@ -74,6 +74,24 @@ version = "1.0.81"
 | 
			
		||||
source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
			
		||||
checksum = "0952808a6c2afd1aa8947271f3a60f1a6763c7b912d210184c5149b5cf147247"
 | 
			
		||||
 | 
			
		||||
[[package]]
 | 
			
		||||
name = "arboard"
 | 
			
		||||
version = "3.4.0"
 | 
			
		||||
source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
			
		||||
checksum = "9fb4009533e8ff8f1450a5bcbc30f4242a1d34442221f72314bea1f5dc9c7f89"
 | 
			
		||||
dependencies = [
 | 
			
		||||
 "clipboard-win",
 | 
			
		||||
 "core-graphics 0.23.2",
 | 
			
		||||
 "image 0.25.1",
 | 
			
		||||
 "log",
 | 
			
		||||
 "objc2",
 | 
			
		||||
 "objc2-app-kit",
 | 
			
		||||
 "objc2-foundation",
 | 
			
		||||
 "parking_lot",
 | 
			
		||||
 "windows-sys 0.48.0",
 | 
			
		||||
 "x11rb",
 | 
			
		||||
]
 | 
			
		||||
 | 
			
		||||
[[package]]
 | 
			
		||||
name = "async-broadcast"
 | 
			
		||||
version = "0.5.1"
 | 
			
		||||
@ -351,6 +369,15 @@ version = "0.2.1"
 | 
			
		||||
source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
			
		||||
checksum = "8d696c370c750c948ada61c69a0ee2cbbb9c50b1019ddb86d9317157a99c2cae"
 | 
			
		||||
 | 
			
		||||
[[package]]
 | 
			
		||||
name = "block2"
 | 
			
		||||
version = "0.5.0"
 | 
			
		||||
source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
			
		||||
checksum = "43ff7d91d3c1d568065b06c899777d1e48dcf76103a672a0adbc238a7f247f1e"
 | 
			
		||||
dependencies = [
 | 
			
		||||
 "objc2",
 | 
			
		||||
]
 | 
			
		||||
 | 
			
		||||
[[package]]
 | 
			
		||||
name = "blocking"
 | 
			
		||||
version = "1.5.1"
 | 
			
		||||
@ -526,6 +553,15 @@ dependencies = [
 | 
			
		||||
 "generic-array",
 | 
			
		||||
]
 | 
			
		||||
 | 
			
		||||
[[package]]
 | 
			
		||||
name = "clipboard-win"
 | 
			
		||||
version = "5.3.1"
 | 
			
		||||
source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
			
		||||
checksum = "79f4473f5144e20d9aceaf2972478f06ddf687831eafeeb434fbaf0acc4144ad"
 | 
			
		||||
dependencies = [
 | 
			
		||||
 "error-code",
 | 
			
		||||
]
 | 
			
		||||
 | 
			
		||||
[[package]]
 | 
			
		||||
name = "cocoa"
 | 
			
		||||
version = "0.24.1"
 | 
			
		||||
@ -536,8 +572,8 @@ dependencies = [
 | 
			
		||||
 "block",
 | 
			
		||||
 "cocoa-foundation",
 | 
			
		||||
 "core-foundation",
 | 
			
		||||
 "core-graphics",
 | 
			
		||||
 "foreign-types",
 | 
			
		||||
 "core-graphics 0.22.3",
 | 
			
		||||
 "foreign-types 0.3.2",
 | 
			
		||||
 "libc",
 | 
			
		||||
 "objc",
 | 
			
		||||
]
 | 
			
		||||
@ -612,7 +648,20 @@ dependencies = [
 | 
			
		||||
 "bitflags 1.3.2",
 | 
			
		||||
 "core-foundation",
 | 
			
		||||
 "core-graphics-types",
 | 
			
		||||
 "foreign-types",
 | 
			
		||||
 "foreign-types 0.3.2",
 | 
			
		||||
 "libc",
 | 
			
		||||
]
 | 
			
		||||
 | 
			
		||||
[[package]]
 | 
			
		||||
name = "core-graphics"
 | 
			
		||||
version = "0.23.2"
 | 
			
		||||
source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
			
		||||
checksum = "c07782be35f9e1140080c6b96f0d44b739e2278479f64e02fdab4e32dfd8b081"
 | 
			
		||||
dependencies = [
 | 
			
		||||
 "bitflags 1.3.2",
 | 
			
		||||
 "core-foundation",
 | 
			
		||||
 "core-graphics-types",
 | 
			
		||||
 "foreign-types 0.5.0",
 | 
			
		||||
 "libc",
 | 
			
		||||
]
 | 
			
		||||
 | 
			
		||||
@ -920,6 +969,12 @@ dependencies = [
 | 
			
		||||
 "windows-sys 0.52.0",
 | 
			
		||||
]
 | 
			
		||||
 | 
			
		||||
[[package]]
 | 
			
		||||
name = "error-code"
 | 
			
		||||
version = "3.2.0"
 | 
			
		||||
source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
			
		||||
checksum = "a0474425d51df81997e2f90a21591180b38eccf27292d755f3e30750225c175b"
 | 
			
		||||
 | 
			
		||||
[[package]]
 | 
			
		||||
name = "event-listener"
 | 
			
		||||
version = "2.5.3"
 | 
			
		||||
@ -1047,7 +1102,28 @@ version = "0.3.2"
 | 
			
		||||
source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
			
		||||
checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1"
 | 
			
		||||
dependencies = [
 | 
			
		||||
 "foreign-types-shared",
 | 
			
		||||
 "foreign-types-shared 0.1.1",
 | 
			
		||||
]
 | 
			
		||||
 | 
			
		||||
[[package]]
 | 
			
		||||
name = "foreign-types"
 | 
			
		||||
version = "0.5.0"
 | 
			
		||||
source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
			
		||||
checksum = "d737d9aa519fb7b749cbc3b962edcf310a8dd1f4b67c91c4f83975dbdd17d965"
 | 
			
		||||
dependencies = [
 | 
			
		||||
 "foreign-types-macros",
 | 
			
		||||
 "foreign-types-shared 0.3.1",
 | 
			
		||||
]
 | 
			
		||||
 | 
			
		||||
[[package]]
 | 
			
		||||
name = "foreign-types-macros"
 | 
			
		||||
version = "0.2.3"
 | 
			
		||||
source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
			
		||||
checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742"
 | 
			
		||||
dependencies = [
 | 
			
		||||
 "proc-macro2",
 | 
			
		||||
 "quote",
 | 
			
		||||
 "syn 2.0.55",
 | 
			
		||||
]
 | 
			
		||||
 | 
			
		||||
[[package]]
 | 
			
		||||
@ -1056,6 +1132,12 @@ version = "0.1.1"
 | 
			
		||||
source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
			
		||||
checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b"
 | 
			
		||||
 | 
			
		||||
[[package]]
 | 
			
		||||
name = "foreign-types-shared"
 | 
			
		||||
version = "0.3.1"
 | 
			
		||||
source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
			
		||||
checksum = "aa9a19cbb55df58761df49b23516a86d432839add4af60fc256da840f66ed35b"
 | 
			
		||||
 | 
			
		||||
[[package]]
 | 
			
		||||
name = "form_urlencoded"
 | 
			
		||||
version = "1.2.1"
 | 
			
		||||
@ -1293,6 +1375,16 @@ dependencies = [
 | 
			
		||||
 "version_check",
 | 
			
		||||
]
 | 
			
		||||
 | 
			
		||||
[[package]]
 | 
			
		||||
name = "gethostname"
 | 
			
		||||
version = "0.4.3"
 | 
			
		||||
source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
			
		||||
checksum = "0176e0459c2e4a1fe232f984bca6890e681076abb9934f6cea7c326f3fc47818"
 | 
			
		||||
dependencies = [
 | 
			
		||||
 "libc",
 | 
			
		||||
 "windows-targets 0.48.5",
 | 
			
		||||
]
 | 
			
		||||
 | 
			
		||||
[[package]]
 | 
			
		||||
name = "getrandom"
 | 
			
		||||
version = "0.1.16"
 | 
			
		||||
@ -1652,6 +1744,19 @@ dependencies = [
 | 
			
		||||
 "num-traits",
 | 
			
		||||
]
 | 
			
		||||
 | 
			
		||||
[[package]]
 | 
			
		||||
name = "image"
 | 
			
		||||
version = "0.25.1"
 | 
			
		||||
source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
			
		||||
checksum = "fd54d660e773627692c524beaad361aca785a4f9f5730ce91f42aabe5bce3d11"
 | 
			
		||||
dependencies = [
 | 
			
		||||
 "bytemuck",
 | 
			
		||||
 "byteorder",
 | 
			
		||||
 "num-traits",
 | 
			
		||||
 "png",
 | 
			
		||||
 "tiff",
 | 
			
		||||
]
 | 
			
		||||
 | 
			
		||||
[[package]]
 | 
			
		||||
name = "indexmap"
 | 
			
		||||
version = "1.9.3"
 | 
			
		||||
@ -1758,6 +1863,12 @@ version = "0.3.0"
 | 
			
		||||
source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
			
		||||
checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130"
 | 
			
		||||
 | 
			
		||||
[[package]]
 | 
			
		||||
name = "jpeg-decoder"
 | 
			
		||||
version = "0.3.1"
 | 
			
		||||
source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
			
		||||
checksum = "f5d4a7da358eff58addd2877a45865158f0d78c911d43a5784ceb7bbf52833b0"
 | 
			
		||||
 | 
			
		||||
[[package]]
 | 
			
		||||
name = "js-sys"
 | 
			
		||||
version = "0.3.69"
 | 
			
		||||
@ -1960,6 +2071,7 @@ dependencies = [
 | 
			
		||||
name = "mindwork-ai-studio"
 | 
			
		||||
version = "0.1.0"
 | 
			
		||||
dependencies = [
 | 
			
		||||
 "arboard",
 | 
			
		||||
 "keyring",
 | 
			
		||||
 "serde",
 | 
			
		||||
 "serde_json",
 | 
			
		||||
@ -2161,6 +2273,61 @@ dependencies = [
 | 
			
		||||
 "objc_exception",
 | 
			
		||||
]
 | 
			
		||||
 | 
			
		||||
[[package]]
 | 
			
		||||
name = "objc-sys"
 | 
			
		||||
version = "0.3.3"
 | 
			
		||||
source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
			
		||||
checksum = "da284c198fb9b7b0603f8635185e85fbd5b64ee154b1ed406d489077de2d6d60"
 | 
			
		||||
 | 
			
		||||
[[package]]
 | 
			
		||||
name = "objc2"
 | 
			
		||||
version = "0.5.1"
 | 
			
		||||
source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
			
		||||
checksum = "b4b25e1034d0e636cd84707ccdaa9f81243d399196b8a773946dcffec0401659"
 | 
			
		||||
dependencies = [
 | 
			
		||||
 "objc-sys",
 | 
			
		||||
 "objc2-encode",
 | 
			
		||||
]
 | 
			
		||||
 | 
			
		||||
[[package]]
 | 
			
		||||
name = "objc2-app-kit"
 | 
			
		||||
version = "0.2.0"
 | 
			
		||||
source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
			
		||||
checksum = "fb79768a710a9a1798848179edb186d1af7e8a8679f369e4b8d201dd2a034047"
 | 
			
		||||
dependencies = [
 | 
			
		||||
 "block2",
 | 
			
		||||
 "objc2",
 | 
			
		||||
 "objc2-core-data",
 | 
			
		||||
 "objc2-foundation",
 | 
			
		||||
]
 | 
			
		||||
 | 
			
		||||
[[package]]
 | 
			
		||||
name = "objc2-core-data"
 | 
			
		||||
version = "0.2.0"
 | 
			
		||||
source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
			
		||||
checksum = "6e092bc42eaf30a08844e6a076938c60751225ec81431ab89f5d1ccd9f958d6c"
 | 
			
		||||
dependencies = [
 | 
			
		||||
 "block2",
 | 
			
		||||
 "objc2",
 | 
			
		||||
 "objc2-foundation",
 | 
			
		||||
]
 | 
			
		||||
 | 
			
		||||
[[package]]
 | 
			
		||||
name = "objc2-encode"
 | 
			
		||||
version = "4.0.1"
 | 
			
		||||
source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
			
		||||
checksum = "88658da63e4cc2c8adb1262902cd6af51094df0488b760d6fd27194269c0950a"
 | 
			
		||||
 | 
			
		||||
[[package]]
 | 
			
		||||
name = "objc2-foundation"
 | 
			
		||||
version = "0.2.0"
 | 
			
		||||
source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
			
		||||
checksum = "cfaefe14254871ea16c7d88968c0ff14ba554712a20d76421eec52f0a7fb8904"
 | 
			
		||||
dependencies = [
 | 
			
		||||
 "block2",
 | 
			
		||||
 "objc2",
 | 
			
		||||
]
 | 
			
		||||
 | 
			
		||||
[[package]]
 | 
			
		||||
name = "objc_exception"
 | 
			
		||||
version = "0.1.2"
 | 
			
		||||
@ -3232,7 +3399,7 @@ dependencies = [
 | 
			
		||||
 "cc",
 | 
			
		||||
 "cocoa",
 | 
			
		||||
 "core-foundation",
 | 
			
		||||
 "core-graphics",
 | 
			
		||||
 "core-graphics 0.22.3",
 | 
			
		||||
 "crossbeam-channel",
 | 
			
		||||
 "dispatch",
 | 
			
		||||
 "gdk",
 | 
			
		||||
@ -3244,7 +3411,7 @@ dependencies = [
 | 
			
		||||
 "glib",
 | 
			
		||||
 "glib-sys",
 | 
			
		||||
 "gtk",
 | 
			
		||||
 "image",
 | 
			
		||||
 "image 0.24.9",
 | 
			
		||||
 "instant",
 | 
			
		||||
 "jni",
 | 
			
		||||
 "lazy_static",
 | 
			
		||||
@ -3543,6 +3710,17 @@ dependencies = [
 | 
			
		||||
 "once_cell",
 | 
			
		||||
]
 | 
			
		||||
 | 
			
		||||
[[package]]
 | 
			
		||||
name = "tiff"
 | 
			
		||||
version = "0.9.1"
 | 
			
		||||
source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
			
		||||
checksum = "ba1310fcea54c6a9a4fd1aad794ecc02c31682f6bfbecdf460bf19533eed1e3e"
 | 
			
		||||
dependencies = [
 | 
			
		||||
 "flate2",
 | 
			
		||||
 "jpeg-decoder",
 | 
			
		||||
 "weezl",
 | 
			
		||||
]
 | 
			
		||||
 | 
			
		||||
[[package]]
 | 
			
		||||
name = "time"
 | 
			
		||||
version = "0.3.34"
 | 
			
		||||
@ -4021,6 +4199,12 @@ dependencies = [
 | 
			
		||||
 "windows-metadata",
 | 
			
		||||
]
 | 
			
		||||
 | 
			
		||||
[[package]]
 | 
			
		||||
name = "weezl"
 | 
			
		||||
version = "0.1.8"
 | 
			
		||||
source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
			
		||||
checksum = "53a85b86a771b1c87058196170769dd264f66c0782acf1ae6cc51bfd64b39082"
 | 
			
		||||
 | 
			
		||||
[[package]]
 | 
			
		||||
name = "winapi"
 | 
			
		||||
version = "0.3.9"
 | 
			
		||||
@ -4381,7 +4565,7 @@ dependencies = [
 | 
			
		||||
 "base64 0.13.1",
 | 
			
		||||
 "block",
 | 
			
		||||
 "cocoa",
 | 
			
		||||
 "core-graphics",
 | 
			
		||||
 "core-graphics 0.22.3",
 | 
			
		||||
 "crossbeam-channel",
 | 
			
		||||
 "dunce",
 | 
			
		||||
 "gdk",
 | 
			
		||||
@ -4431,6 +4615,23 @@ dependencies = [
 | 
			
		||||
 "pkg-config",
 | 
			
		||||
]
 | 
			
		||||
 | 
			
		||||
[[package]]
 | 
			
		||||
name = "x11rb"
 | 
			
		||||
version = "0.13.0"
 | 
			
		||||
source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
			
		||||
checksum = "f8f25ead8c7e4cba123243a6367da5d3990e0d3affa708ea19dce96356bd9f1a"
 | 
			
		||||
dependencies = [
 | 
			
		||||
 "gethostname",
 | 
			
		||||
 "rustix 0.38.32",
 | 
			
		||||
 "x11rb-protocol",
 | 
			
		||||
]
 | 
			
		||||
 | 
			
		||||
[[package]]
 | 
			
		||||
name = "x11rb-protocol"
 | 
			
		||||
version = "0.13.0"
 | 
			
		||||
source = "registry+https://github.com/rust-lang/crates.io-index"
 | 
			
		||||
checksum = "e63e71c4b8bd9ffec2c963173a4dc4cbde9ee96961d4fcb4429db9929b606c34"
 | 
			
		||||
 | 
			
		||||
[[package]]
 | 
			
		||||
name = "xattr"
 | 
			
		||||
version = "1.3.1"
 | 
			
		||||
 | 
			
		||||
@ -13,6 +13,7 @@ tauri = { version = "1.6", features = [ "path-all", "shell-open"] }
 | 
			
		||||
serde = { version = "1.0", features = ["derive"] }
 | 
			
		||||
serde_json = "1.0"
 | 
			
		||||
keyring = "2"
 | 
			
		||||
arboard = "3.4.0"
 | 
			
		||||
 | 
			
		||||
[features]
 | 
			
		||||
# this feature is used for production builds or when `devPath` points to the filesystem
 | 
			
		||||
 | 
			
		||||
@ -1,12 +1,13 @@
 | 
			
		||||
// Prevents additional console window on Windows in release, DO NOT REMOVE!!
 | 
			
		||||
#![cfg_attr(not(debug_assertions), windows_subsystem = "windows")]
 | 
			
		||||
 | 
			
		||||
use arboard::Clipboard;
 | 
			
		||||
use keyring::Entry;
 | 
			
		||||
use serde::Serialize;
 | 
			
		||||
 | 
			
		||||
fn main() {
 | 
			
		||||
    tauri::Builder::default()
 | 
			
		||||
        .invoke_handler(tauri::generate_handler![store_secret, get_secret, delete_secret])
 | 
			
		||||
        .invoke_handler(tauri::generate_handler![store_secret, get_secret, delete_secret, set_clipboard])
 | 
			
		||||
        .run(tauri::generate_context!())
 | 
			
		||||
        .expect("error while running tauri application");
 | 
			
		||||
}
 | 
			
		||||
@ -82,3 +83,34 @@ struct DeleteSecretResponse {
 | 
			
		||||
    success: bool,
 | 
			
		||||
    issue: String,
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#[tauri::command]
 | 
			
		||||
fn set_clipboard(text: String) -> SetClipboardResponse {
 | 
			
		||||
    let clipboard_result = Clipboard::new();
 | 
			
		||||
    let mut clipboard = match clipboard_result {
 | 
			
		||||
        Ok(clipboard) => clipboard,
 | 
			
		||||
        Err(e) => return SetClipboardResponse {
 | 
			
		||||
            success: false,
 | 
			
		||||
            issue: e.to_string(),
 | 
			
		||||
        },
 | 
			
		||||
    };
 | 
			
		||||
    
 | 
			
		||||
    let set_text_result = clipboard.set_text(text);
 | 
			
		||||
    match set_text_result {
 | 
			
		||||
        Ok(_) => SetClipboardResponse {
 | 
			
		||||
            success: true,
 | 
			
		||||
            issue: String::from(""),
 | 
			
		||||
        },
 | 
			
		||||
        
 | 
			
		||||
        Err(e) => SetClipboardResponse {
 | 
			
		||||
            success: false,
 | 
			
		||||
            issue: e.to_string(),
 | 
			
		||||
        },
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#[derive(Serialize)]
 | 
			
		||||
struct SetClipboardResponse {
 | 
			
		||||
    success: bool,
 | 
			
		||||
    issue: String,
 | 
			
		||||
}
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user