2025-03-29 16:55:26 -04:00
|
|
|
// TODO: Header
|
2025-03-29 08:01:13 -04:00
|
|
|
|
2025-03-30 11:20:21 -04:00
|
|
|
use cxx_qt_lib::QString;
|
2025-04-13 09:35:55 -04:00
|
|
|
use std::env;
|
|
|
|
|
use std::error::Error;
|
|
|
|
|
use std::process::exit;
|
2025-03-30 11:20:21 -04:00
|
|
|
|
|
|
|
|
pub mod colors;
|
2025-03-30 13:14:58 -04:00
|
|
|
pub mod filesystem;
|
2025-03-29 08:01:13 -04:00
|
|
|
|
2025-04-13 09:35:55 -04:00
|
|
|
fn run_gui() -> Result<(), Box<dyn Error>> {
|
2025-03-29 08:01:13 -04:00
|
|
|
use cxx_qt_lib::{QGuiApplication, QQmlApplicationEngine, QUrl};
|
|
|
|
|
|
|
|
|
|
let mut app = QGuiApplication::new();
|
|
|
|
|
let mut engine = QQmlApplicationEngine::new();
|
|
|
|
|
|
2025-03-30 11:20:21 -04:00
|
|
|
if let Some(engine) = engine.as_mut() {
|
|
|
|
|
engine.add_import_path(&QString::from("qml/"));
|
|
|
|
|
}
|
2025-03-29 08:01:13 -04:00
|
|
|
if let Some(engine) = engine.as_mut() {
|
|
|
|
|
engine.load(&QUrl::from("qml/main.qml"));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if let Some(app) = app.as_mut() {
|
|
|
|
|
app.exec();
|
|
|
|
|
}
|
2025-04-13 09:35:55 -04:00
|
|
|
|
|
|
|
|
Ok(())
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
fn run_tui() -> Result<(), Box<dyn Error>> {
|
|
|
|
|
println!("Starting TUI editor...");
|
|
|
|
|
// Your cursive logic here, like:
|
|
|
|
|
// let mut siv = cursive::default();
|
|
|
|
|
// siv.add_layer(...);
|
|
|
|
|
// siv.run();
|
|
|
|
|
Ok(())
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
fn print_help() {
|
|
|
|
|
println!("Usage: app_launcher [OPTION]");
|
|
|
|
|
println!("Options:");
|
|
|
|
|
println!(" gui Launch the QML GUI application");
|
|
|
|
|
println!(" tui Launch the TUI text editor (cursive-based)");
|
|
|
|
|
println!(" help Show this help message");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
fn main() {
|
|
|
|
|
let args: Vec<String> = env::args().collect();
|
|
|
|
|
|
|
|
|
|
if args.len() < 2 {
|
|
|
|
|
if let Err(e) = run_gui() {
|
|
|
|
|
eprintln!("Error launching GUI: {}", e);
|
|
|
|
|
exit(1);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
match args.get(1).map(|s| s.as_str()) {
|
|
|
|
|
Some("gui") => {
|
|
|
|
|
if let Err(e) = run_gui() {
|
|
|
|
|
eprintln!("Error launching GUI: {}", e);
|
|
|
|
|
exit(1);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
Some("tui") => {
|
|
|
|
|
if let Err(e) = run_tui() {
|
|
|
|
|
eprintln!("Error launching TUI: {}", e);
|
|
|
|
|
exit(1);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
Some("help") | None => {
|
|
|
|
|
print_help();
|
|
|
|
|
}
|
|
|
|
|
Some(arg) => {
|
|
|
|
|
eprintln!("Unknown argument: {}", arg);
|
|
|
|
|
print_help();
|
|
|
|
|
exit(1);
|
|
|
|
|
}
|
|
|
|
|
}
|
2025-03-29 08:01:13 -04:00
|
|
|
}
|