adding file select

This commit is contained in:
2024-02-18 19:51:53 +01:00
parent 035d72fd56
commit ea2f60f3c2
10 changed files with 1632 additions and 46 deletions

View File

@ -1,22 +1,64 @@
// Prevents additional console window on Windows in release, DO NOT REMOVE!!
#![cfg_attr(not(debug_assertions), windows_subsystem = "windows")]
// Learn more about Tauri commands at https://tauri.app/v1/guides/features/command
/*#[tauri::command]
fn greet(name: &str) -> String {
format!("Hello, {}! You've been greeted from Rust!", name)
use native_dialog::FileDialog;
use tauri::{AppHandle, Manager};
use std::sync::Mutex;
#[macro_use]
extern crate lazy_static;
// define file and folder path variable, don't know if it's the right way of doing it
lazy_static! {
static ref FILE_PATH: Mutex<String> = Mutex::new("".to_string());
static ref FOLDER_PATH: Mutex<String> = Mutex::new("".to_string());
}
#[derive(Clone, serde::Serialize)]
struct Payload {
message: String,
}
// Learn more about Tauri commands at https://tauri.app/v1/guides/features/command
#[tauri::command]
async fn select_file_button(app: tauri::AppHandle) {
let _ = app.emit_all("my_event", ());
FILE_PATH.lock().unwrap().replace_range(.., &choose_file());
println!("{}",FILE_PATH.lock().unwrap());
}
*/
#[tauri::command]
fn slice() {
println!("I was invoked from JS!");
async fn select_folder_button() {
FOLDER_PATH.lock().unwrap().replace_range(.., &choose_folder());
println!("{}",FOLDER_PATH.lock().unwrap());
}
#[tauri::command]
fn debug_call(message: &str){
println!("[DBG] {}", message);
}
// prompt user file chooser using native_dialogue crate
fn choose_file() -> String{
println!("Let's choose a file !");
let path = FileDialog::new()
.show_open_single_file()
.unwrap();
format!("{:?}", path) // turn the FileDialog into a string
}
fn choose_folder() -> String{
println!("Let's choose a folder !");
let path = FileDialog::new()
.show_open_single_dir()
.unwrap();
format!("{:?}", path) // turn the FileDialog into a string
}
fn main() {
println!("launched");
// generate the tauri app
tauri::Builder::default()
//.invoke_handler(tauri::generate_handler![greet])
.invoke_handler(tauri::generate_handler![select_file_button, select_folder_button, debug_call])
.run(tauri::generate_context!())
.expect("error while running tauri application");
}