feat(core): overwrite modulo icon

This commit is contained in:
Federico Terzi 2021-05-22 12:05:28 +02:00
parent 0e5e308e9f
commit a7c51fe803
9 changed files with 23 additions and 15 deletions

View File

@ -19,8 +19,9 @@
use clap::{ArgMatches};
use espanso_modulo::form::*;
use crate::icon::IconPaths;
pub fn form_main(matches: &ArgMatches) -> i32 {
pub fn form_main(matches: &ArgMatches, _icon_paths: &IconPaths) -> i32 {
let as_json: bool = matches.is_present("json");
let input_file = matches
@ -42,6 +43,8 @@ pub fn form_main(matches: &ArgMatches) -> i32 {
} else {
serde_json::from_str(&data).expect("unable to parse form configuration")
};
// TODO: inject the icon on Windows
let form = generator::generate(config);
let values = show(form);

View File

@ -39,13 +39,14 @@ pub fn new() -> CliModule {
fn modulo_main(args: CliModuleArgs) -> i32 {
let paths = args.paths.expect("missing paths in modulo main");
let cli_args = args.cli_args.expect("missing cli_args in modulo main");
let icon_paths = crate::icon::load_icon_paths(&paths.runtime).expect("unable to load icon paths");
if let Some(matches) = cli_args.subcommand_matches("form") {
return form::form_main(matches);
return form::form_main(matches, &icon_paths);
}
if let Some(matches) = cli_args.subcommand_matches("search") {
return search::search_main(matches);
return search::search_main(matches, &icon_paths);
}
0

View File

@ -20,8 +20,9 @@
use std::collections::HashMap;
use clap::{ArgMatches};
use espanso_modulo::search::*;
use crate::icon::IconPaths;
pub fn search_main(matches: &ArgMatches) -> i32 {
pub fn search_main(matches: &ArgMatches, icon_paths: &IconPaths) -> i32 {
let as_json: bool = matches.is_present("json");
let input_file = matches
@ -38,12 +39,15 @@ pub fn search_main(matches: &ArgMatches) -> i32 {
std::fs::read_to_string(input_file).expect("unable to read input file")
};
let config: config::SearchConfig = if !as_json {
let mut config: config::SearchConfig = if !as_json {
serde_yaml::from_str(&data).expect("unable to parse search configuration")
} else {
serde_json::from_str(&data).expect("unable to parse search configuration")
};
// Overwrite the icon
config.icon = icon_paths.logo.as_deref().map(|path| path.to_string_lossy().to_string());
let algorithm = algorithm::get_algorithm(&config.algorithm);
let search = generator::generate(config);

View File

@ -29,7 +29,7 @@ use ui::selector::MatchSelectorAdapter;
use crate::{cli::worker::engine::{matcher::regex::RegexMatcherAdapterOptions, path::PathProviderAdapter}, engine::event::ExitMode};
use super::ui::icon::IconPaths;
use crate::icon::IconPaths;
pub mod executor;
pub mod match_cache;

View File

@ -69,7 +69,7 @@ fn worker_main(args: CliModuleArgs) -> i32 {
.expect("missing match store in worker main");
let icon_paths =
self::ui::icon::load_icon_paths(&paths.runtime).expect("unable to initialize icons");
crate::icon::load_icon_paths(&paths.runtime).expect("unable to initialize icons");
let (remote, mut eventloop) = espanso_ui::create_ui(espanso_ui::UIOptions {
// TODO: handle show icon

View File

@ -17,5 +17,4 @@
* along with espanso. If not, see <https://www.gnu.org/licenses/>.
*/
pub mod icon;
pub mod util;

View File

@ -19,7 +19,7 @@
use espanso_ui::icons::TrayIcon;
use super::icon::IconPaths;
use crate::icon::IconPaths;
// TODO: test
pub fn convert_icon_paths_to_tray_vec(icon_paths: &IconPaths) -> Vec<(TrayIcon, String)> {

View File

@ -21,20 +21,20 @@ use anyhow::Result;
use log::{debug, info};
use std::path::{Path, PathBuf};
const ICON_BINARY: &[u8] = include_bytes!("../../../res/icon.png");
const ICON_BINARY: &[u8] = include_bytes!("res/icon.png");
#[cfg(target_os = "windows")]
const WINDOWS_ICO_BINARY: &[u8] = include_bytes!("../../../res/windows/espanso.ico");
const WINDOWS_ICO_BINARY: &[u8] = include_bytes!("res/windows/espanso.ico");
#[cfg(target_os = "windows")]
const WINDOWS_RED_ICO_BINARY: &[u8] = include_bytes!("../../../res/windows/espansored.ico");
const WINDOWS_RED_ICO_BINARY: &[u8] = include_bytes!("res/windows/espansored.ico");
#[cfg(target_os = "macos")]
const MAC_BINARY: &[u8] = include_bytes!("../../../res/macos/icon.png");
const MAC_BINARY: &[u8] = include_bytes!("res/macos/icon.png");
#[cfg(target_os = "macos")]
const MAC_DISABLED_BINARY: &[u8] = include_bytes!("../../../res/macos/icondisabled.png");
const MAC_DISABLED_BINARY: &[u8] = include_bytes!("res/macos/icondisabled.png");
#[cfg(target_os = "macos")]
const MAC_SYSTEM_DISABLED_BINARY: &[u8] = include_bytes!("../../../res/macos/iconsystemdisabled.png");
const MAC_SYSTEM_DISABLED_BINARY: &[u8] = include_bytes!("res/macos/iconsystemdisabled.png");
#[derive(Debug, Default)]
pub struct IconPaths {

View File

@ -39,6 +39,7 @@ mod cli;
mod engine;
mod exit_code;
mod gui;
mod icon;
mod ipc;
mod lock;
mod logging;