mirror of
https://github.com/Frooodle/Stirling-PDF.git
synced 2025-11-16 01:21:16 +01:00
Only read commandline args on startup
This commit is contained in:
parent
2f71e67781
commit
85934e4625
@ -14,23 +14,11 @@ pub fn add_opened_file(file_path: String) {
|
|||||||
// Command to get opened file paths (if app was launched with files)
|
// Command to get opened file paths (if app was launched with files)
|
||||||
#[tauri::command]
|
#[tauri::command]
|
||||||
pub async fn get_opened_files() -> Result<Vec<String>, String> {
|
pub async fn get_opened_files() -> Result<Vec<String>, String> {
|
||||||
let mut all_files: Vec<String> = Vec::new();
|
// Get all files from the OPENED_FILES store
|
||||||
|
// Command line args are processed in setup() callback and added to this store
|
||||||
// Get files from command line arguments (Windows/Linux 'Open With Stirling' behaviour)
|
// Additional files from second instances or events are also added here
|
||||||
let args: Vec<String> = std::env::args().collect();
|
|
||||||
let pdf_files: Vec<String> = args.iter()
|
|
||||||
.skip(1)
|
|
||||||
.filter(|arg| std::path::Path::new(arg).exists())
|
|
||||||
.cloned()
|
|
||||||
.collect();
|
|
||||||
|
|
||||||
all_files.extend(pdf_files);
|
|
||||||
|
|
||||||
// Add any files sent via events or other instances (macOS 'Open With Stirling' behaviour, also Windows/Linux extra files)
|
|
||||||
{
|
|
||||||
let opened_files = OPENED_FILES.lock().unwrap();
|
let opened_files = OPENED_FILES.lock().unwrap();
|
||||||
all_files.extend(opened_files.clone());
|
let all_files = opened_files.clone();
|
||||||
}
|
|
||||||
|
|
||||||
add_log(format!("📂 Returning {} opened file(s)", all_files.len()));
|
add_log(format!("📂 Returning {} opened file(s)", all_files.len()));
|
||||||
Ok(all_files)
|
Ok(all_files)
|
||||||
|
|||||||
@ -45,6 +45,16 @@ pub fn run() {
|
|||||||
}))
|
}))
|
||||||
.setup(|_app| {
|
.setup(|_app| {
|
||||||
add_log("🚀 Tauri app setup started".to_string());
|
add_log("🚀 Tauri app setup started".to_string());
|
||||||
|
|
||||||
|
// Process command line arguments on first launch
|
||||||
|
let args: Vec<String> = std::env::args().collect();
|
||||||
|
for arg in args.iter().skip(1) {
|
||||||
|
if std::path::Path::new(arg).exists() {
|
||||||
|
add_log(format!("📂 Initial file from command line: {}", arg));
|
||||||
|
add_opened_file(arg.clone());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
add_log("🔍 DEBUG: Setup completed".to_string());
|
add_log("🔍 DEBUG: Setup completed".to_string());
|
||||||
Ok(())
|
Ok(())
|
||||||
})
|
})
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user