Loupe/src/main.rs

100 lines
2.6 KiB
Rust
Raw Normal View History

// Copyright (c) 2020-2022 Christopher Davis
// Copyright (c) 2023 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
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
//
// SPDX-License-Identifier: GPL-3.0-or-later
2023-12-25 20:18:26 +01:00
#![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::*;
2023-11-29 21:15:36 +01:00
use gtk::gio::prelude::*;
use gtk::gio::{self};
2023-07-08 22:33:44 +02:00
mod about;
mod application;
mod config;
mod decoder;
mod file_model;
mod metadata;
mod util;
mod widgets;
mod window;
mod deps {
2023-12-25 21:34:18 +01:00
pub use gtk::{cairo, gdk, gio, glib, graphene, gsk};
}
use application::LpApplication;
2023-02-12 02:07:42 +01:00
use deps::*;
static GRESOURCE_BYTES: &[u8] =
gvdb_macros::include_gresource_from_dir!("/org/gnome/Loupe", "data/resources");
2023-02-12 02:07:42 +01:00
fn main() -> glib::ExitCode {
let mut log_builder = env_logger::builder();
log_builder.format_timestamp_millis();
if !glib::log_writer_default_would_drop(glib::LogLevel::Debug, Some("loupe")) {
log_builder.filter_module("loupe", log::LevelFilter::Debug);
}
log_builder.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");
2023-02-12 02:07:42 +01:00
LpApplication::new().run()
}