fix(styling): fullscreen kraft paper bg, persistence preset refresh, reader cleanup
This commit is contained in:
46
src/app.rs
46
src/app.rs
@@ -178,6 +178,26 @@ impl App {
|
||||
|
||||
impl eframe::App for App {
|
||||
fn update(&mut self, ctx: &egui::Context, _frame: &mut eframe::Frame) {
|
||||
let use_kraft = self.settings.use_kraft_bg;
|
||||
|
||||
// 牛皮纸模式:全窗口绘制纹理 + 面板透明
|
||||
if use_kraft {
|
||||
if let Some(texture) = &self.kraft_texture {
|
||||
ctx.style_mut(|s| {
|
||||
s.visuals.panel_fill = egui::Color32::TRANSPARENT;
|
||||
s.visuals.window_fill = egui::Color32::TRANSPARENT;
|
||||
s.visuals.faint_bg_color = egui::Color32::TRANSPARENT;
|
||||
});
|
||||
let viewport_rect =
|
||||
ctx.input(|i| i.screen_rect());
|
||||
crate::texture::draw_tiled_bg(
|
||||
&ctx.layer_painter(egui::LayerId::background()),
|
||||
viewport_rect,
|
||||
texture,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
if self.state.book.is_none() {
|
||||
self.welcome_view(ctx);
|
||||
return;
|
||||
@@ -190,24 +210,22 @@ impl eframe::App for App {
|
||||
|
||||
let mut style = self.active_profile().clone();
|
||||
let theme_copy = self.settings.theme;
|
||||
let use_kraft = self.settings.use_kraft_bg;
|
||||
let profile_names: Vec<String> = self.settings.profiles.iter().map(|p| p.name.clone()).collect();
|
||||
|
||||
egui::CentralPanel::default().show(ctx, |ui| {
|
||||
let book = self.state.book.as_mut().unwrap();
|
||||
let action = crate::reader::reading_view(
|
||||
ui,
|
||||
book,
|
||||
&mut self.state.current_section,
|
||||
&mut self.state.current_page,
|
||||
&mut self.state.sidebar_open,
|
||||
&mut style,
|
||||
&theme_copy,
|
||||
&file_path,
|
||||
self.kraft_texture.as_ref(),
|
||||
use_kraft,
|
||||
&profile_names,
|
||||
);
|
||||
let action = crate::reader::reading_view(
|
||||
ui,
|
||||
book,
|
||||
&mut self.state.current_section,
|
||||
&mut self.state.current_page,
|
||||
&mut self.state.sidebar_open,
|
||||
&mut style,
|
||||
&theme_copy,
|
||||
use_kraft,
|
||||
&file_path,
|
||||
&profile_names,
|
||||
);
|
||||
|
||||
if action.go_back {
|
||||
self.save_reading_position();
|
||||
|
||||
Reference in New Issue
Block a user