automatic window title

This commit is contained in:
Penwing 2024-01-24 23:10:26 +01:00
parent 6dcd9ed7df
commit d53edc92e9
6 changed files with 37 additions and 6 deletions

1
Cargo.lock generated
View file

@ -579,6 +579,7 @@ dependencies = [
"rfd", "rfd",
"serde", "serde",
"serde_json", "serde_json",
"toml",
] ]
[[package]] [[package]]

View file

@ -6,6 +6,7 @@ edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies] [dependencies]
toml = "0.8.8"
eframe = "0.25.0" eframe = "0.25.0"
rfd = "0.12.1" rfd = "0.12.1"
egui_extras = "0.25.0" egui_extras = "0.25.0"

View file

@ -8,10 +8,19 @@ use std::{path::Path, sync::Arc, time, thread};
use calcifer::code_editor::themes::DEFAULT_THEMES; use calcifer::code_editor::themes::DEFAULT_THEMES;
#[cfg(debug_assertions)] #[cfg(debug_assertions)]
const SAVE_PATH : &str = "/home/penwing/Documents/.saves/debug/calcifer_save.json"; mod build {
pub const SAVE_PATH : &str = "/home/penwing/Documents/.saves/debug/calcifer_save.json";
pub const TITLE: &str = " debug";
}
#[cfg(not(debug_assertions))] #[cfg(not(debug_assertions))]
const SAVE_PATH : &str = "/home/penwing/Documents/.saves/calcifer_save.json"; mod build {
pub const SAVE_PATH : &str = "/home/penwing/Documents/.saves/calcifer_save.json";
pub const TITLE: &str = "";
}
use build::SAVE_PATH;
use build::TITLE;
const TERMINAL_HEIGHT : f32 = 200.0; const TERMINAL_HEIGHT : f32 = 200.0;
const RED : egui::Color32 = egui::Color32::from_rgb(235, 108, 99); const RED : egui::Color32 = egui::Color32::from_rgb(235, 108, 99);
@ -43,7 +52,7 @@ fn main() -> Result<(), eframe::Error> {
} }
eframe::run_native( eframe::run_native(
"Calcifer v1.0.4", &format!("Calcifer v{}{}", tools::version(), TITLE),
options, options,
Box::new(move |_cc| Box::from(Calcifer::from_app_state(app_state))), Box::new(move |_cc| Box::from(Calcifer::from_app_state(app_state))),
) )
@ -180,5 +189,4 @@ impl eframe::App for Calcifer {
fn on_exit(&mut self, _gl : std::option::Option<&eframe::glow::Context>) { fn on_exit(&mut self, _gl : std::option::Option<&eframe::glow::Context>) {
self.save_state(); self.save_state();
} }
} }

View file

@ -0,0 +1 @@
{"tabs":["/home/penwing/Documents/projects/rust/calcifer/src/tools/mod.rs","/home/penwing/Documents/projects/rust/calcifer/src/tools/tabs.rs","/home/penwing/Documents/projects/rust/calcifer/README.md","/home/penwing/Documents/projects/rust/calcifer/src/tools/terminal.rs","/home/penwing/Documents/projects/rust/calcifer/src/main.rs","/home/penwing/Documents/projects/rust/calcifer/src/calcifer.rs","/home/penwing/Documents/projects/rust/calcifer/src/calcifer/app_base.rs","/home/penwing/Documents/projects/rust/calcifer/Cargo.toml","/home/penwing/Documents/projects/rust/calcifer/src/tools/confirm.rs"],"theme":5}

View file

@ -40,7 +40,7 @@ impl ConfirmWindow {
self.proceed = true; self.proceed = true;
} }
if ui.add(egui::Button::new("Cancel")).clicked() { if ui.add(egui::Button::new("No")).clicked() {
self.visible = false; self.visible = false;
} }
}); });

View file

@ -3,6 +3,7 @@ use crate::calcifer::code_editor::Syntax;
use eframe::egui; use eframe::egui;
use serde::{Serialize, Deserialize}; use serde::{Serialize, Deserialize};
use crate::DISPLAY_PATH_DEPTH; use crate::DISPLAY_PATH_DEPTH;
use toml::Value;
//my tools; //my tools;
pub mod search; pub mod search;
@ -108,6 +109,25 @@ pub fn format_path(path: &Path) -> String {
format!("{}>", components.iter().rev().map(|&c| c.to_string_lossy()).collect::<Vec<_>>().join("/")) format!("{}>", components.iter().rev().map(|&c| c.to_string_lossy()).collect::<Vec<_>>().join("/"))
} }
pub fn version() -> String {
// Read the contents of the Cargo.toml file
let toml_content = fs::read_to_string("Cargo.toml").expect("Failed to read Cargo.toml");
// Parse the TOML content
let toml: Value = toml::from_str(&toml_content).expect("Failed to parse TOML");
// Extract version information
if let Some(package) = toml.get("package") {
if let Some(version) = package.get("version") {
if let Some(version_string) = version.as_str() {
println!("Version: {}", version_string);
return version_string.to_string()
}
}
}
return "".to_string()
}
#[cfg(test)] #[cfg(test)]
mod tests; mod tests;