mirror of https://github.com/wayvr-org/wayvr.git
palette selector improvements
This commit is contained in:
parent
952b6e10b6
commit
fd8a327395
|
|
@ -1,8 +1,8 @@
|
|||
<layout>
|
||||
<!-- id, text -->
|
||||
<template name="ColorPaletteButton">
|
||||
<Button id="${id}" width="350" flex_direction="column" justify_content="space_around"
|
||||
color="${background}" hover_color="${background_variant}" border_color="${outline}" hover_border_color="${highlight}" padding="16" >
|
||||
<Button id="${id}" width="350" flex_direction="column" justify_content="space_around" tooltip="${tooltip}" tooltip_side="bottom"
|
||||
color="${background}" hover_color="${background_variant}" border_color="${outline}" hover_border_color="${highlight}" padding="16" margin="4" >
|
||||
<label text="${text}" size="24" weight="bold" color="${on_background}" parent_color="ignore"/>
|
||||
<div flex_direction="row" width="100%" justify_content="space_evenly" padding_top="16" >
|
||||
<rectangle round="100%" width="32" height="32" color="${primary}" border="2" border_color="${on_primary}" />
|
||||
|
|
|
|||
|
|
@ -185,7 +185,12 @@
|
|||
"WHISPER_MODEL_HELP": "Zu verwendendes Whisper-Modell.\nGrößere Modelle liefern genauere\nErgebnisse, verbrauchen jedoch mehr VRAM.",
|
||||
"DEFAULT_OVERLAY_SCALE": "Standardgröße des Overlays",
|
||||
"DEFAULT_OVERLAY_SCALE_HELP": "Neue Overlays werden in dieser Skalierung erstellt.",
|
||||
"COLOR_PALETTE": "Farbpalette"
|
||||
"COLOR_PALETTE": "Farbpalette",
|
||||
"COLOR_PALETTES": "Farbpaletten",
|
||||
"COLOR_PALETTE_CURRENT": "Derzeit aktives Thema.",
|
||||
"COLOR_PALETTE_ACTIVATE": "Klicken Sie hier, um dieses Thema zu verwenden.",
|
||||
"APPLY_CHANGES_RESTART": "WayVR neu starten, um die Änderungen zu übernehmen?",
|
||||
"COLOR_PALETTE_HELP": "Klicken, um Farbpaletten zu durchsuchen.\nUm eigene zu erstellen, besuche die Webseite!"
|
||||
},
|
||||
"HELLO": "Hallo!",
|
||||
"AUDIO": {
|
||||
|
|
|
|||
|
|
@ -97,7 +97,10 @@
|
|||
"CAPTURE_METHOD_HELP": "Try changing this if you are\nexperiencing black or glitchy screens",
|
||||
"COLOR_KEYING": "Color keying",
|
||||
"COLOR_PALETTE": "Color palette",
|
||||
"COLOR_PALETTE_HELP": "Click to browse color palettes.\nTo create custom ones, see website!",
|
||||
"COLOR_PALETTES": "Color palettes",
|
||||
"COLOR_PALETTE_CURRENT": "Currently active theme.",
|
||||
"COLOR_PALETTE_ACTIVATE": "Click to use this theme.",
|
||||
"APPLY_CHANGES_RESTART": "Restart WayVR to apply changes?",
|
||||
"CLEAR_PIPEWIRE_TOKENS": "Clear PipeWire tokens",
|
||||
"CLEAR_PIPEWIRE_TOKENS_HELP": "Prompt for screen selection on next start",
|
||||
|
|
|
|||
|
|
@ -185,7 +185,12 @@
|
|||
"WHISPER_MODEL_HELP": "Modelo de Whisper a utilizar.\nLos modelos más grandes producen\nresultados más precisos, pero consumen más VRAM.",
|
||||
"DEFAULT_OVERLAY_SCALE": "Tamaño de la superposición predeterminado",
|
||||
"DEFAULT_OVERLAY_SCALE_HELP": "Genera nuevas capas de superposición con esta escala.",
|
||||
"COLOR_PALETTE": "Paleta de colores"
|
||||
"COLOR_PALETTE": "Paleta de colores",
|
||||
"COLOR_PALETTES": "Paletas de colores",
|
||||
"COLOR_PALETTE_CURRENT": "Tema actualmente activo.",
|
||||
"COLOR_PALETTE_ACTIVATE": "Haz clic para usar este tema.",
|
||||
"APPLY_CHANGES_RESTART": "¿Reiniciar WayVR para aplicar los cambios?",
|
||||
"COLOR_PALETTE_HELP": "Haz clic para explorar paletas de colores.\nPara crear paletas personalizadas, ¡visita el sitio web!"
|
||||
},
|
||||
"HELLO": "¡Hola!",
|
||||
"AUDIO": {
|
||||
|
|
|
|||
|
|
@ -206,7 +206,12 @@
|
|||
"WHISPER_MODEL_HELP": "Modello Whisper da utilizzare.\nI modelli più grandi producono risultati\npiù accurati, ma consumano più VRAM.",
|
||||
"DEFAULT_OVERLAY_SCALE": "Dimensioni overlay predefinite",
|
||||
"DEFAULT_OVERLAY_SCALE_HELP": "Genera nuovi overlay con questa scala.",
|
||||
"COLOR_PALETTE": "Tavolozza colori"
|
||||
"COLOR_PALETTE": "Tavolozza colori",
|
||||
"COLOR_PALETTES": "Tavolozze colori",
|
||||
"COLOR_PALETTE_CURRENT": "Tema attualmente attivo.",
|
||||
"COLOR_PALETTE_ACTIVATE": "Clicca per usare questo tema.",
|
||||
"APPLY_CHANGES_RESTART": "Riavviare WayVR per applicare le modifiche?",
|
||||
"COLOR_PALETTE_HELP": "Clicca per sfogliare le palette di colori.\nPer crearne di personalizzate, visita il sito web!"
|
||||
},
|
||||
"APPLICATION_LAUNCHER": "Lanciatore applicazioni",
|
||||
"APPLICATION_STARTED": "Applicazione avviata",
|
||||
|
|
|
|||
|
|
@ -185,7 +185,12 @@
|
|||
"WHISPER_MODEL_HELP": "使用するWhisperモデル。\nモデルが大きいほど精度は向上しますが、\nVRAMの消費量が増加します。",
|
||||
"DEFAULT_OVERLAY_SCALE": "デフォルトのオーバーレイサイズ",
|
||||
"DEFAULT_OVERLAY_SCALE_HELP": "新しいオーバーレイをこのスケールで生成します。",
|
||||
"COLOR_PALETTE": "カラーパレット"
|
||||
"COLOR_PALETTE": "カラーパレット",
|
||||
"COLOR_PALETTES": "カラーパレット",
|
||||
"COLOR_PALETTE_CURRENT": "現在有効なテーマ。",
|
||||
"COLOR_PALETTE_ACTIVATE": "クリックしてこのテーマを適用します。",
|
||||
"APPLY_CHANGES_RESTART": "変更を適用するためにWayVRを再起動しますか?",
|
||||
"COLOR_PALETTE_HELP": "クリックしてカラーパレットを選択してください。\nカスタムパレットの作成については、ウェブサイトを参照してください!"
|
||||
},
|
||||
"HELLO": "こんにちは!",
|
||||
"AUDIO": {
|
||||
|
|
|
|||
|
|
@ -180,7 +180,12 @@
|
|||
"WHISPER_MODEL_HELP": "Model Whisper do wykorzystania.\nWiększe modele dają dokładniejsze\nwyniki, ale zużywają więcej pamięci VRAM.",
|
||||
"DEFAULT_OVERLAY_SCALE": "Domyślny rozmiar nakładki",
|
||||
"DEFAULT_OVERLAY_SCALE_HELP": "Twórz nowe nakładki w tej skali.",
|
||||
"COLOR_PALETTE": "Paleta kolorów"
|
||||
"COLOR_PALETTE": "Paleta kolorów",
|
||||
"COLOR_PALETTES": "Palety kolorów",
|
||||
"COLOR_PALETTE_CURRENT": "Obecnie aktywny motyw.",
|
||||
"COLOR_PALETTE_ACTIVATE": "Kliknij, aby użyć tego motywu.",
|
||||
"APPLY_CHANGES_RESTART": "Zrestartować WayVR, aby zastosować zmiany?",
|
||||
"COLOR_PALETTE_HELP": "Kliknij, aby przeglądać palety kolorów.\nAby stworzyć własne, odwiedź stronę internetową!"
|
||||
},
|
||||
"APPLICATION_LAUNCHER": "Uruchamiacz aplikacji",
|
||||
"APPLICATIONS": "Aplikacje",
|
||||
|
|
|
|||
|
|
@ -206,7 +206,12 @@
|
|||
"WHISPER_MODEL_HELP": "要使用的 Whisper 模型。\n模型越大,结果越准确,\n但消耗的显存 (VRAM) 越多。",
|
||||
"DEFAULT_OVERLAY_SCALE": "默认叠加层大小",
|
||||
"DEFAULT_OVERLAY_SCALE_HELP": "以该比例生成新的叠加层。",
|
||||
"COLOR_PALETTE": "调色板"
|
||||
"COLOR_PALETTE": "调色板",
|
||||
"COLOR_PALETTES": "配色方案",
|
||||
"COLOR_PALETTE_CURRENT": "当前激活的主题。",
|
||||
"COLOR_PALETTE_ACTIVATE": "点击以使用此主题。",
|
||||
"APPLY_CHANGES_RESTART": "重启 WayVR 以应用更改吗?",
|
||||
"COLOR_PALETTE_HELP": "点击浏览配色方案。\n如需创建自定义配色,请参阅网站!"
|
||||
},
|
||||
"APPLICATION_LAUNCHER": "应用启动器",
|
||||
"APPLICATION_STARTED": "应用已启动",
|
||||
|
|
|
|||
|
|
@ -43,7 +43,7 @@ mod tab_space_drag;
|
|||
mod tab_troubleshooting;
|
||||
|
||||
#[derive(Clone)]
|
||||
enum TabNameEnum {
|
||||
pub(crate) enum TabNameEnum {
|
||||
AutostartApps,
|
||||
Controls,
|
||||
Features,
|
||||
|
|
@ -291,7 +291,7 @@ impl<T> Tab<T> for TabSettings<T> {
|
|||
// Sorted alphabetically
|
||||
#[allow(clippy::enum_variant_names)]
|
||||
#[derive(Clone, Copy, Eq, PartialEq, AsRefStr, EnumString)]
|
||||
enum SettingType {
|
||||
pub(crate) enum SettingType {
|
||||
AllowSliding,
|
||||
BlockGameInput,
|
||||
BlockGameInputIgnoreWatch,
|
||||
|
|
|
|||
|
|
@ -44,6 +44,7 @@ impl SettingsTab for State {
|
|||
self.globals.clone(),
|
||||
self.popup_color_palettes.clone(),
|
||||
self.settings_tasks.clone(),
|
||||
par.general_config.color_palette.clone(),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,7 +2,6 @@ use std::{marker::PhantomData, rc::Rc};
|
|||
|
||||
use wgui::{
|
||||
assets::AssetPath,
|
||||
color::WguiColorName,
|
||||
components::button::ComponentButton,
|
||||
globals::WguiGlobals,
|
||||
layout::{Layout, WidgetID},
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
use std::rc::Rc;
|
||||
use std::{rc::Rc, sync::Arc};
|
||||
use wgui::{
|
||||
assets::AssetPath,
|
||||
color::WguiColorName,
|
||||
|
|
@ -32,6 +32,7 @@ pub struct Params<'a> {
|
|||
pub parent_id: WidgetID,
|
||||
pub frontend_tasks: &'a FrontendTasks,
|
||||
pub settings_tasks: Tasks<SettingsTask>,
|
||||
pub current_palette: Arc<str>,
|
||||
}
|
||||
|
||||
pub struct View {
|
||||
|
|
@ -40,6 +41,7 @@ pub struct View {
|
|||
globals: WguiGlobals,
|
||||
popup_dialog: PopupHolder<views::dialog_box::View>,
|
||||
settings_tasks: Tasks<SettingsTask>,
|
||||
chosen_palette: Option<Arc<str>>,
|
||||
}
|
||||
|
||||
impl ViewTrait for View {
|
||||
|
|
@ -49,9 +51,7 @@ impl ViewTrait for View {
|
|||
for task in self.tasks.drain() {
|
||||
match task {
|
||||
Task::SelectPalette(profile) => {
|
||||
par.general_config.color_palette = profile.into();
|
||||
par.config_change_kind.replace(ConfigChangeKind::WguiThemeChange);
|
||||
|
||||
self.chosen_palette = Some(profile.into());
|
||||
self.show_restart_dialog_box()?;
|
||||
}
|
||||
Task::Cancel => {
|
||||
|
|
@ -59,6 +59,11 @@ impl ViewTrait for View {
|
|||
close_dialog();
|
||||
}
|
||||
Task::Restart => {
|
||||
if let Some(palette) = self.chosen_palette.take() {
|
||||
par.general_config.color_palette = palette;
|
||||
par.config_change_kind.replace(ConfigChangeKind::WguiThemeChange);
|
||||
}
|
||||
|
||||
self.settings_tasks.push(SettingsTask::RestartSoftware);
|
||||
}
|
||||
}
|
||||
|
|
@ -74,13 +79,12 @@ macro_rules! insert_colors {
|
|||
$( $key:literal => $color:ident ),* $(,)?
|
||||
) => {
|
||||
$(
|
||||
$params.insert(
|
||||
$params.insert_str(
|
||||
$key,
|
||||
WguiColorName::$color
|
||||
.to_wgui_color()
|
||||
.resolve($palette)
|
||||
.to_hex()
|
||||
.as_str()
|
||||
);
|
||||
)*
|
||||
};
|
||||
|
|
@ -103,10 +107,19 @@ impl View {
|
|||
|
||||
for (idx, (name, palette)) in PALETTES.iter().enumerate() {
|
||||
let id = format!("profile_btn_{idx}");
|
||||
let is_current = &*params.current_palette == *name;
|
||||
|
||||
let mut cell_params = TemplateParams::new();
|
||||
cell_params.insert("id", &id);
|
||||
cell_params.insert("text", name);
|
||||
|
||||
if is_current {
|
||||
cell_params.insert_str("text", format!("{name} ✅"));
|
||||
cell_params.insert("tooltip", "APP_SETTINGS.COLOR_PALETTE_CURRENT");
|
||||
} else {
|
||||
cell_params.insert("text", name);
|
||||
cell_params.insert("tooltip", "APP_SETTINGS.COLOR_PALETTE_ACTIVATE");
|
||||
}
|
||||
|
||||
insert_colors!(
|
||||
cell_params,
|
||||
palette,
|
||||
|
|
@ -133,14 +146,16 @@ impl View {
|
|||
cell_params,
|
||||
)?;
|
||||
|
||||
let btn = parser_state.fetch_component_as::<ComponentButton>(&id)?;
|
||||
let tasks_clone = tasks.clone();
|
||||
btn.on_click(Rc::new({
|
||||
move |_common, _e| {
|
||||
tasks_clone.push(Task::SelectPalette(name.to_string()));
|
||||
Ok(())
|
||||
}
|
||||
}));
|
||||
if !is_current {
|
||||
let btn = parser_state.fetch_component_as::<ComponentButton>(&id)?;
|
||||
let tasks_clone = tasks.clone();
|
||||
btn.on_click(Rc::new({
|
||||
move |_common, _e| {
|
||||
tasks_clone.push(Task::SelectPalette(name.to_string()));
|
||||
Ok(())
|
||||
}
|
||||
}));
|
||||
}
|
||||
}
|
||||
|
||||
Ok(Self {
|
||||
|
|
@ -149,6 +164,7 @@ impl View {
|
|||
globals: params.globals.clone(),
|
||||
popup_dialog,
|
||||
settings_tasks: params.settings_tasks,
|
||||
chosen_palette: None,
|
||||
})
|
||||
}
|
||||
|
||||
|
|
@ -197,6 +213,7 @@ pub fn mount_popup(
|
|||
globals: WguiGlobals,
|
||||
popup: PopupHolder<View>,
|
||||
settings_tasks: Tasks<SettingsTask>,
|
||||
current_palette: Arc<str>,
|
||||
) {
|
||||
frontend_tasks
|
||||
.clone()
|
||||
|
|
@ -209,6 +226,7 @@ pub fn mount_popup(
|
|||
parent_id: data.id_content,
|
||||
frontend_tasks: &frontend_tasks,
|
||||
settings_tasks,
|
||||
current_palette,
|
||||
})?;
|
||||
|
||||
popup.set_view(data.handle, view, None);
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
use std::{cell::RefCell, rc::Rc};
|
||||
|
||||
use cosmic_text::{Attrs, AttrsList, BorrowedWithFontSystem, Buffer, Metrics, Scroll, Shaping, Wrap};
|
||||
use cosmic_text::{Attrs, AttrsList, BorrowedWithFontSystem, Buffer, Metrics, Shaping, Wrap};
|
||||
use slotmap::Key;
|
||||
use taffy::AvailableSpace;
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue