util/gettext: Parse unicode escape sequences
Closes #351 Part-of: <https://gitlab.gnome.org/GNOME/loupe/-/merge_requests/426>
This commit is contained in:
parent
3ad5560e2c
commit
0b33553144
12 changed files with 208 additions and 113 deletions
110
src/main.rs
110
src/main.rs
|
|
@ -1,5 +1,5 @@
|
|||
// Copyright (c) 2020-2022 Christopher Davis
|
||||
// Copyright (c) 2023-2024 Sophie Herold
|
||||
// Copyright (c) 2020 Christopher Davis
|
||||
// Copyright (c) 2024 Sophie Herold
|
||||
//
|
||||
// This program is free software: you can redistribute it and/or modify
|
||||
// it under the terms of the GNU General Public License as published by
|
||||
|
|
@ -16,107 +16,7 @@
|
|||
//
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
#![allow(clippy::new_without_default)]
|
||||
|
||||
/*!
|
||||
# Loupe Image Viewer
|
||||
|
||||
Code documentation
|
||||
|
||||
# Widget Structure
|
||||
|
||||
Simplified widget arrangement including the most important widgets.
|
||||
|
||||
- [`LpWindow`]
|
||||
- [`AdwFlap`]
|
||||
- [`LpPropertiesView`]
|
||||
- [`LpImageView`]
|
||||
- [`LpSlidingView`]
|
||||
- [`LpImagePage`]
|
||||
- [`GtkScrolledWindow`]
|
||||
- [`LpImage`]
|
||||
- …
|
||||
|
||||
[`AdwFlap`]: adw::Flap
|
||||
[`GtkScrolledWindow`]: gtk::ScrolledWindow
|
||||
[`LpImagePage`]: widgets::LpImagePage
|
||||
[`LpImageView`]: widgets::LpImageView
|
||||
[`LpImage`]: widgets::LpImage
|
||||
[`LpPropertiesView`]: widgets::LpPropertiesView
|
||||
[`LpSlidingView`]: widgets::LpSlidingView
|
||||
[`LpWindow`]: window::LpWindow
|
||||
*/
|
||||
|
||||
use gettextrs::*;
|
||||
use gtk::gio::prelude::*;
|
||||
use gtk::gio::{self};
|
||||
|
||||
mod about;
|
||||
mod application;
|
||||
mod config;
|
||||
mod decoder;
|
||||
mod editing;
|
||||
mod file_model;
|
||||
mod metadata;
|
||||
mod util;
|
||||
mod widgets;
|
||||
mod window;
|
||||
|
||||
mod deps {
|
||||
pub use gtk::{cairo, gdk, gio, glib, graphene, gsk};
|
||||
}
|
||||
|
||||
use application::LpApplication;
|
||||
use deps::*;
|
||||
use tracing_subscriber::layer::*;
|
||||
use tracing_subscriber::util::*;
|
||||
|
||||
static GRESOURCE_BYTES: &[u8] =
|
||||
gvdb_macros::include_gresource_from_dir!("/org/gnome/Loupe", "data/resources");
|
||||
|
||||
fn main() -> glib::ExitCode {
|
||||
// Don't use ngl renderer by default due to performance reasons
|
||||
// <https://gitlab.gnome.org/GNOME/gtk/-/issues/6411>
|
||||
if std::env::var("GSK_RENDERER").map_or(true, |x| x.is_empty()) {
|
||||
std::env::set_var("GSK_RENDERER", "gl");
|
||||
}
|
||||
|
||||
// Don't use gl renderer does not properly support fractional scaling
|
||||
// <https://gitlab.gnome.org/GNOME/loupe/-/issues/346>
|
||||
if std::env::var("GDK_DEBUG").is_err() {
|
||||
std::env::set_var("GDK_DEBUG", "gl-no-fractional");
|
||||
}
|
||||
|
||||
// Follow G_MESSAGES_DEBUG env variable
|
||||
let default_level =
|
||||
if !glib::log_writer_default_would_drop(glib::LogLevel::Debug, Some("loupe")) {
|
||||
tracing_subscriber::filter::LevelFilter::DEBUG
|
||||
} else {
|
||||
tracing_subscriber::filter::LevelFilter::ERROR
|
||||
};
|
||||
|
||||
tracing_subscriber::registry()
|
||||
.with(
|
||||
tracing_subscriber::EnvFilter::builder()
|
||||
.with_default_directive(default_level.into())
|
||||
.from_env_lossy(),
|
||||
)
|
||||
.with(tracing_subscriber::fmt::Layer::default().compact())
|
||||
.init();
|
||||
|
||||
log::debug!("Logger initialized");
|
||||
|
||||
setlocale(LocaleCategory::LcAll, "");
|
||||
bindtextdomain("loupe", config::LOCALEDIR).unwrap();
|
||||
textdomain("loupe").unwrap();
|
||||
|
||||
log::trace!("gettext initialized");
|
||||
|
||||
gio::resources_register(
|
||||
&gio::Resource::from_data(&glib::Bytes::from_static(GRESOURCE_BYTES)).unwrap(),
|
||||
);
|
||||
|
||||
log::trace!("Gio resources registered");
|
||||
|
||||
LpApplication::new().run()
|
||||
use gtk::glib;
|
||||
pub fn main() -> glib::ExitCode {
|
||||
loupe::main()
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue