v1.4.0: Auto-compact streaming, Bedrock summarization support, subagent orchestration, and Galaxy rebrand continuation
Major features: - Auto-compact: triggers conversation summarization when context window >= 85%, compacts Bedrock message history to a summary pair, and tracks live context tokens - Bedrock summarization: plumbs `is_summarization` flag through translator/client/response pipeline, handles SummarizeConversation input type, and marks `summarized` in metadata - Session restore: rebuilds bedrock_message_history from persisted task messages via newly-public `convert_proto_message`, preventing empty history on reconnect - Subagent orchestration: adds SubagentQuestion/Answer/CompletionSummary event types, parent-child question routing with depth limits, retry counting, and drain methods - Summarization UI: inline SummarizationView in AI blocks with progress/finished states Refactors: - Rename WarpTheme → GalaxyTheme across ~100 files (rebrand continuation) - Rename warp_home_config_dir → galaxy_home_config_dir and related path functions - Predefined rules: replace "System Defined Rule #N" with descriptive names (e.g. "Correctness Over Speed", "Never Guess") and add lookup helpers - Usage view: replace cumulative input/output token display with live context tokens, cache hit rate calculation, and separate cache read/write stats - Telemetry: remove verbose doc comments, simplify trait definitions - Facts view: simplify delete permission check (always allow local deletion) - Remove warp_managed_paths_watcher.rs (dead code) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.6
parent
eaa2ddc75e
commit
6f54e2cb30
@@ -3,7 +3,7 @@ use galaxy_core::ui::{
|
||||
color::{blend::Blend, coloru_with_opacity, OPAQUE},
|
||||
theme::{
|
||||
color::CustomDetails, AnsiColor, AnsiColors, Details, Fill, HorizontalGradient, Image,
|
||||
TerminalColors, VerticalGradient, WarpTheme,
|
||||
TerminalColors, VerticalGradient, GalaxyTheme,
|
||||
},
|
||||
};
|
||||
use pathfinder_color::ColorU;
|
||||
@@ -308,8 +308,8 @@ pub(super) fn samsung_light_colors() -> TerminalColors {
|
||||
}
|
||||
|
||||
/// Default bundled themes
|
||||
pub fn dark_theme() -> WarpTheme {
|
||||
WarpTheme::new(
|
||||
pub fn dark_theme() -> GalaxyTheme {
|
||||
GalaxyTheme::new(
|
||||
Fill::Solid(ColorU::from_u32(0x000000FF)),
|
||||
ColorU::from_u32(0xffffffff),
|
||||
Fill::Solid(ColorU::from_u32(0x19AAD8FF)),
|
||||
@@ -321,8 +321,8 @@ pub fn dark_theme() -> WarpTheme {
|
||||
)
|
||||
}
|
||||
|
||||
pub fn light_theme() -> WarpTheme {
|
||||
WarpTheme::new(
|
||||
pub fn light_theme() -> GalaxyTheme {
|
||||
GalaxyTheme::new(
|
||||
Fill::Solid(ColorU::white()),
|
||||
ColorU::new(17, 17, 17, OPAQUE),
|
||||
Fill::Solid(ColorU::from_u32(0x00c2ffff)),
|
||||
@@ -334,8 +334,8 @@ pub fn light_theme() -> WarpTheme {
|
||||
)
|
||||
}
|
||||
|
||||
pub(super) fn dracula() -> WarpTheme {
|
||||
WarpTheme::new(
|
||||
pub(super) fn dracula() -> GalaxyTheme {
|
||||
GalaxyTheme::new(
|
||||
Fill::Solid(ColorU::from_u32(0x282A36FF)),
|
||||
ColorU::from_u32(0xF8F8F2FF),
|
||||
Fill::Solid(ColorU::from_u32(0xFF79C6FF)),
|
||||
@@ -347,8 +347,8 @@ pub(super) fn dracula() -> WarpTheme {
|
||||
)
|
||||
}
|
||||
|
||||
pub(super) fn solarized_light() -> WarpTheme {
|
||||
WarpTheme::new(
|
||||
pub(super) fn solarized_light() -> GalaxyTheme {
|
||||
GalaxyTheme::new(
|
||||
Fill::Solid(ColorU::from_u32(0xFDF6E3FF)),
|
||||
ColorU::from_u32(0x586E75FF),
|
||||
Fill::Solid(ColorU::from_u32(0x66B5A9FF)),
|
||||
@@ -360,8 +360,8 @@ pub(super) fn solarized_light() -> WarpTheme {
|
||||
)
|
||||
}
|
||||
|
||||
pub(super) fn solarized_dark() -> WarpTheme {
|
||||
WarpTheme::new(
|
||||
pub(super) fn solarized_dark() -> GalaxyTheme {
|
||||
GalaxyTheme::new(
|
||||
Fill::Solid(ColorU::from_u32(0x002B36FF)),
|
||||
ColorU::from_u32(0xF8F8F2FF),
|
||||
Fill::Solid(ColorU::from_u32(0xCB4B16FF)),
|
||||
@@ -373,8 +373,8 @@ pub(super) fn solarized_dark() -> WarpTheme {
|
||||
)
|
||||
}
|
||||
|
||||
pub(super) fn gruvbox_dark() -> WarpTheme {
|
||||
WarpTheme::new(
|
||||
pub(super) fn gruvbox_dark() -> GalaxyTheme {
|
||||
GalaxyTheme::new(
|
||||
Fill::Solid(ColorU::from_u32(0x282828FF)),
|
||||
ColorU::from_u32(0xEBDBB2FF),
|
||||
Fill::Solid(ColorU::from_u32(0xFC802DFF)),
|
||||
@@ -386,8 +386,8 @@ pub(super) fn gruvbox_dark() -> WarpTheme {
|
||||
)
|
||||
}
|
||||
|
||||
pub(super) fn gruvbox_light() -> WarpTheme {
|
||||
WarpTheme::new(
|
||||
pub(super) fn gruvbox_light() -> GalaxyTheme {
|
||||
GalaxyTheme::new(
|
||||
Fill::Solid(ColorU::from_u32(0xFBF1C7FF)),
|
||||
ColorU::from_u32(0x3C3836FF),
|
||||
Fill::Solid(ColorU::from_u32(0xAD3B14FF)),
|
||||
@@ -400,8 +400,8 @@ pub(super) fn gruvbox_light() -> WarpTheme {
|
||||
}
|
||||
|
||||
/// Bundled gradient themes
|
||||
pub(super) fn cyber_wave() -> WarpTheme {
|
||||
WarpTheme::new(
|
||||
pub(super) fn cyber_wave() -> GalaxyTheme {
|
||||
GalaxyTheme::new(
|
||||
Fill::VerticalGradient(VerticalGradient::new(
|
||||
ColorU::black().blend(&coloru_with_opacity(ColorU::from_u32(0x00C2FFFF), 20)),
|
||||
ColorU::black(),
|
||||
@@ -419,8 +419,8 @@ pub(super) fn cyber_wave() -> WarpTheme {
|
||||
)
|
||||
}
|
||||
|
||||
pub(super) fn willow_dream() -> WarpTheme {
|
||||
WarpTheme::new(
|
||||
pub(super) fn willow_dream() -> GalaxyTheme {
|
||||
GalaxyTheme::new(
|
||||
Fill::VerticalGradient(VerticalGradient::new(
|
||||
ColorU::from_u32(0x206169FF),
|
||||
ColorU::from_u32(0x022F27FF),
|
||||
@@ -438,8 +438,8 @@ pub(super) fn willow_dream() -> WarpTheme {
|
||||
)
|
||||
}
|
||||
|
||||
pub(super) fn fancy_dracula() -> WarpTheme {
|
||||
WarpTheme::new(
|
||||
pub(super) fn fancy_dracula() -> GalaxyTheme {
|
||||
GalaxyTheme::new(
|
||||
Fill::VerticalGradient(VerticalGradient::new(
|
||||
ColorU::from_u32(0x252630FF),
|
||||
ColorU::from_u32(0x3D3F4FFF),
|
||||
@@ -457,8 +457,8 @@ pub(super) fn fancy_dracula() -> WarpTheme {
|
||||
)
|
||||
}
|
||||
|
||||
pub(super) fn phenomenon() -> WarpTheme {
|
||||
WarpTheme::new(
|
||||
pub(super) fn phenomenon() -> GalaxyTheme {
|
||||
GalaxyTheme::new(
|
||||
Fill::Solid(ColorU::from_u32(0x121212FF)),
|
||||
ColorU::from_u32(0xFAF9F6FF),
|
||||
Fill::Solid(ColorU::from_u32(0x2E5D9EFF)),
|
||||
@@ -474,8 +474,8 @@ pub(super) fn phenomenon() -> WarpTheme {
|
||||
}
|
||||
|
||||
/// Bundled themes with background images
|
||||
pub(super) fn jellyfish() -> WarpTheme {
|
||||
WarpTheme::new(
|
||||
pub(super) fn jellyfish() -> GalaxyTheme {
|
||||
GalaxyTheme::new(
|
||||
Fill::Solid(ColorU::from_u32(0x1B1718FF)),
|
||||
ColorU::white(),
|
||||
Fill::Solid(ColorU::from_u32(0x538682FF)),
|
||||
@@ -490,8 +490,8 @@ pub(super) fn jellyfish() -> WarpTheme {
|
||||
)
|
||||
}
|
||||
|
||||
pub(super) fn koi() -> WarpTheme {
|
||||
WarpTheme::new(
|
||||
pub(super) fn koi() -> GalaxyTheme {
|
||||
GalaxyTheme::new(
|
||||
Fill::Solid(ColorU::from_u32(0x211719FF)),
|
||||
ColorU::white(),
|
||||
Fill::Solid(ColorU::from_u32(0xFF3131FF)),
|
||||
@@ -506,8 +506,8 @@ pub(super) fn koi() -> WarpTheme {
|
||||
)
|
||||
}
|
||||
|
||||
pub(super) fn leafy() -> WarpTheme {
|
||||
WarpTheme::new(
|
||||
pub(super) fn leafy() -> GalaxyTheme {
|
||||
GalaxyTheme::new(
|
||||
Fill::Solid(ColorU::black()),
|
||||
ColorU::white(),
|
||||
Fill::Solid(ColorU::from_u32(0x55972DFF)),
|
||||
@@ -522,8 +522,8 @@ pub(super) fn leafy() -> WarpTheme {
|
||||
)
|
||||
}
|
||||
|
||||
pub(super) fn marble() -> WarpTheme {
|
||||
WarpTheme::new(
|
||||
pub(super) fn marble() -> GalaxyTheme {
|
||||
GalaxyTheme::new(
|
||||
Fill::Solid(ColorU::from_u32(0xE3E3E3FF)),
|
||||
ColorU::black(),
|
||||
Fill::Solid(ColorU::from_u32(0x585858FF)),
|
||||
@@ -538,11 +538,11 @@ pub(super) fn marble() -> WarpTheme {
|
||||
)
|
||||
}
|
||||
|
||||
pub(super) fn pink_city() -> WarpTheme {
|
||||
pub(super) fn pink_city() -> GalaxyTheme {
|
||||
let details = CustomDetails {
|
||||
..CustomDetails::lighter_details()
|
||||
};
|
||||
WarpTheme::new(
|
||||
GalaxyTheme::new(
|
||||
Fill::Solid(ColorU::from_u32(0xFBEFF6FF)),
|
||||
ColorU::black(),
|
||||
Fill::Solid(ColorU::from_u32(0xE10087FF)),
|
||||
@@ -557,8 +557,8 @@ pub(super) fn pink_city() -> WarpTheme {
|
||||
)
|
||||
}
|
||||
|
||||
pub(super) fn snowy() -> WarpTheme {
|
||||
WarpTheme::new(
|
||||
pub(super) fn snowy() -> GalaxyTheme {
|
||||
GalaxyTheme::new(
|
||||
Fill::VerticalGradient(VerticalGradient::new(
|
||||
ColorU::from_u32(0xFFFFFFFF),
|
||||
ColorU::from_u32(0xDEE6EBFF),
|
||||
@@ -576,8 +576,8 @@ pub(super) fn snowy() -> WarpTheme {
|
||||
)
|
||||
}
|
||||
|
||||
pub(super) fn red_rock() -> WarpTheme {
|
||||
WarpTheme::new(
|
||||
pub(super) fn red_rock() -> GalaxyTheme {
|
||||
GalaxyTheme::new(
|
||||
Fill::VerticalGradient(VerticalGradient::new(
|
||||
ColorU::from_u32(0x211719FF)
|
||||
.blend(&coloru_with_opacity(ColorU::from_u32(0x4C3435FF), 45)),
|
||||
@@ -597,8 +597,8 @@ pub(super) fn red_rock() -> WarpTheme {
|
||||
)
|
||||
}
|
||||
|
||||
pub(super) fn dark_city() -> WarpTheme {
|
||||
WarpTheme::new(
|
||||
pub(super) fn dark_city() -> GalaxyTheme {
|
||||
GalaxyTheme::new(
|
||||
Fill::VerticalGradient(VerticalGradient::new(
|
||||
ColorU::from_u32(0x01181FFF)
|
||||
.blend(&coloru_with_opacity(ColorU::from_u32(0x1A363FFF), 45)),
|
||||
@@ -618,8 +618,8 @@ pub(super) fn dark_city() -> WarpTheme {
|
||||
)
|
||||
}
|
||||
|
||||
pub(super) fn sent_referral_reward() -> WarpTheme {
|
||||
WarpTheme::new(
|
||||
pub(super) fn sent_referral_reward() -> GalaxyTheme {
|
||||
GalaxyTheme::new(
|
||||
Fill::Solid(ColorU::from_u32(0x334567FF)),
|
||||
ColorU::white(),
|
||||
Fill::Solid(ColorU::from_u32(0xCD51FFFF)),
|
||||
@@ -634,8 +634,8 @@ pub(super) fn sent_referral_reward() -> WarpTheme {
|
||||
)
|
||||
}
|
||||
|
||||
pub(super) fn solar_flare() -> WarpTheme {
|
||||
WarpTheme::new(
|
||||
pub(super) fn solar_flare() -> GalaxyTheme {
|
||||
GalaxyTheme::new(
|
||||
Fill::Solid(ColorU::from_u32(0x1B1C18FF)),
|
||||
ColorU::from_u32(0xDDE6EEFF),
|
||||
Fill::Solid(ColorU::from_u32(0x34895CFF)),
|
||||
@@ -650,8 +650,8 @@ pub(super) fn solar_flare() -> WarpTheme {
|
||||
)
|
||||
}
|
||||
|
||||
pub(super) fn adeberry() -> WarpTheme {
|
||||
WarpTheme::new(
|
||||
pub(super) fn adeberry() -> GalaxyTheme {
|
||||
GalaxyTheme::new(
|
||||
Fill::Solid(ColorU::from_u32(0x1D2022FF)),
|
||||
ColorU::from_u32(0xE4EEF5FF),
|
||||
Fill::Solid(ColorU::from_u32(0x6C96B4FF)),
|
||||
@@ -663,8 +663,8 @@ pub(super) fn adeberry() -> WarpTheme {
|
||||
)
|
||||
}
|
||||
|
||||
pub(super) fn samsung_dark() -> WarpTheme {
|
||||
WarpTheme::new(
|
||||
pub(super) fn samsung_dark() -> GalaxyTheme {
|
||||
GalaxyTheme::new(
|
||||
Fill::Solid(ColorU::from_u32(0x0C0F16FF)),
|
||||
ColorU::from_u32(0xEEF2FAFF),
|
||||
Fill::Solid(ColorU::from_u32(0x1F6FFFFF)),
|
||||
@@ -676,8 +676,8 @@ pub(super) fn samsung_dark() -> WarpTheme {
|
||||
)
|
||||
}
|
||||
|
||||
pub(super) fn samsung_light() -> WarpTheme {
|
||||
WarpTheme::new(
|
||||
pub(super) fn samsung_light() -> GalaxyTheme {
|
||||
GalaxyTheme::new(
|
||||
Fill::Solid(ColorU::from_u32(0xF7F9FCFF)),
|
||||
ColorU::from_u32(0x10131BFF),
|
||||
Fill::Solid(ColorU::from_u32(0x034AE5FF)),
|
||||
@@ -688,8 +688,8 @@ pub(super) fn samsung_light() -> WarpTheme {
|
||||
Some("Samsung Light".to_string()),
|
||||
)
|
||||
}
|
||||
pub(super) fn received_referral_reward() -> WarpTheme {
|
||||
WarpTheme::new(
|
||||
pub(super) fn received_referral_reward() -> GalaxyTheme {
|
||||
GalaxyTheme::new(
|
||||
Fill::Solid(ColorU::from_u32(0xFFFFFFFF)),
|
||||
ColorU::black(),
|
||||
Fill::Solid(ColorU::from_u32(0xCD51FFFF)),
|
||||
|
||||
@@ -7,9 +7,9 @@ pub mod theme_creator_modal;
|
||||
pub mod theme_deletion_body;
|
||||
pub mod theme_deletion_modal;
|
||||
|
||||
use galaxy_core::ui::theme::WarpTheme;
|
||||
use galaxy_core::ui::theme::GalaxyTheme;
|
||||
|
||||
pub fn onboarding_theme_picker_themes() -> [WarpTheme; 4] {
|
||||
pub fn onboarding_theme_picker_themes() -> [GalaxyTheme; 4] {
|
||||
[
|
||||
default_themes::phenomenon(),
|
||||
default_themes::dark_theme(),
|
||||
|
||||
+14
-14
@@ -254,7 +254,7 @@ impl InMemoryThemeOptions {
|
||||
self.path = path;
|
||||
}
|
||||
|
||||
pub fn theme(&self) -> WarpTheme {
|
||||
pub fn theme(&self) -> GalaxyTheme {
|
||||
let bg_color = self.chosen_bg_color();
|
||||
let fg_color = pick_foreground_color(bg_color);
|
||||
let possible_accent_colors: Vec<ColorU> = self
|
||||
@@ -273,7 +273,7 @@ impl InMemoryThemeOptions {
|
||||
(Details::Lighter, light_mode_colors())
|
||||
};
|
||||
|
||||
WarpTheme::new(
|
||||
GalaxyTheme::new(
|
||||
bg_color.into(),
|
||||
fg_color,
|
||||
accent_color.into(),
|
||||
@@ -293,14 +293,14 @@ impl InMemoryThemeOptions {
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone)]
|
||||
pub struct WarpThemeConfig {
|
||||
theme_map: HashMap<ThemeKind, WarpTheme>,
|
||||
pub struct GalaxyThemeConfig {
|
||||
theme_map: HashMap<ThemeKind, GalaxyTheme>,
|
||||
}
|
||||
|
||||
impl WarpThemeConfig {
|
||||
impl GalaxyThemeConfig {
|
||||
pub fn new() -> Self {
|
||||
// preload with built-in themes
|
||||
let theme_map: HashMap<ThemeKind, WarpTheme> = HashMap::from_iter([
|
||||
let theme_map: HashMap<ThemeKind, GalaxyTheme> = HashMap::from_iter([
|
||||
(ThemeKind::SentReferralReward, sent_referral_reward()),
|
||||
(
|
||||
ThemeKind::ReceivedReferralReward,
|
||||
@@ -330,10 +330,10 @@ impl WarpThemeConfig {
|
||||
(ThemeKind::SamsungDark, samsung_dark()),
|
||||
(ThemeKind::SamsungLight, samsung_light()),
|
||||
]);
|
||||
WarpThemeConfig { theme_map }
|
||||
GalaxyThemeConfig { theme_map }
|
||||
}
|
||||
|
||||
pub fn add_new_theme(&mut self, theme_name: ThemeKind, theme: WarpTheme) {
|
||||
pub fn add_new_theme(&mut self, theme_name: ThemeKind, theme: GalaxyTheme) {
|
||||
self.theme_map.insert(theme_name, theme);
|
||||
}
|
||||
|
||||
@@ -341,16 +341,16 @@ impl WarpThemeConfig {
|
||||
CustomTheme::new(name, path).into()
|
||||
}
|
||||
|
||||
pub fn theme_items(&self) -> impl Iterator<Item = (&ThemeKind, &WarpTheme)> {
|
||||
pub fn theme_items(&self) -> impl Iterator<Item = (&ThemeKind, &GalaxyTheme)> {
|
||||
self.theme_map.iter()
|
||||
}
|
||||
|
||||
pub fn theme(&self, name: &ThemeKind) -> WarpTheme {
|
||||
pub fn theme(&self, name: &ThemeKind) -> GalaxyTheme {
|
||||
self.theme_map.get(name).cloned().unwrap_or_else(dark_theme)
|
||||
}
|
||||
}
|
||||
|
||||
impl Default for WarpThemeConfig {
|
||||
impl Default for GalaxyThemeConfig {
|
||||
fn default() -> Self {
|
||||
Self::new()
|
||||
}
|
||||
@@ -419,8 +419,8 @@ pub struct PromptColors {
|
||||
pub input_prompt_ssh: ColorU,
|
||||
}
|
||||
|
||||
impl From<WarpTheme> for PromptColors {
|
||||
fn from(theme: WarpTheme) -> Self {
|
||||
impl From<GalaxyTheme> for PromptColors {
|
||||
fn from(theme: GalaxyTheme) -> Self {
|
||||
PromptColors {
|
||||
input_prompt_conversation_management: theme.terminal_colors().normal.white.into(),
|
||||
input_prompt_pwd: theme.terminal_colors().normal.magenta.into(),
|
||||
@@ -443,7 +443,7 @@ impl From<WarpTheme> for PromptColors {
|
||||
}
|
||||
|
||||
pub fn render_preview(
|
||||
theme: &WarpTheme,
|
||||
theme: &GalaxyTheme,
|
||||
font_family: FamilyId,
|
||||
form_factor: Option<f32>,
|
||||
) -> Box<dyn Element> {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
use galaxy_editor::editor::NavigationKey;
|
||||
use galaxyui::{
|
||||
accessibility::{AccessibilityContent, WarpA11yRole},
|
||||
accessibility::{AccessibilityContent, GalaxyA11yRole},
|
||||
elements::{
|
||||
Align, ChildAnchor, ConstrainedBox, Container, CornerRadius, CrossAxisAlignment,
|
||||
DispatchEventResult, Element, Empty, EventHandler, Fill, Flex, Hoverable, Icon,
|
||||
@@ -22,7 +22,7 @@ use pathfinder_color::ColorU;
|
||||
use settings::Setting as _;
|
||||
|
||||
use crate::resource_center::{mark_feature_used_and_write_to_user_defaults, Tip, TipAction};
|
||||
use crate::themes::theme::{RespectSystemTheme, ThemeKind, WarpTheme};
|
||||
use crate::themes::theme::{RespectSystemTheme, ThemeKind, GalaxyTheme};
|
||||
use crate::util::traffic_lights::traffic_light_data;
|
||||
use crate::workspace::PANEL_HEADER_HEIGHT;
|
||||
use crate::{
|
||||
@@ -34,7 +34,7 @@ use crate::{
|
||||
report_if_error,
|
||||
settings::{respect_system_theme, ThemeSettings},
|
||||
themes::theme::SelectedSystemThemes,
|
||||
user_config::{load_theme_configs, themes_dir, WarpConfig, WarpConfigUpdateEvent},
|
||||
user_config::{load_theme_configs, themes_dir, GalaxyConfig, GalaxyConfigUpdateEvent},
|
||||
util::traffic_lights::{TrafficLightData, TrafficLightSide},
|
||||
window_settings::WindowSettings,
|
||||
};
|
||||
@@ -44,7 +44,7 @@ use crate::{
|
||||
server::telemetry::TelemetryEvent, ui_components::window_focus_dimming::WindowFocusDimming,
|
||||
};
|
||||
use crate::{
|
||||
themes::theme::WarpThemeConfig,
|
||||
themes::theme::GalaxyThemeConfig,
|
||||
ui_components::buttons::{close_button, icon_button},
|
||||
ui_components::icons,
|
||||
};
|
||||
@@ -177,7 +177,7 @@ pub fn init(app: &mut AppContext) {
|
||||
|
||||
fn theme_chooser_items(
|
||||
referral_theme_status: &ReferralThemeStatus,
|
||||
theme_config: &WarpThemeConfig,
|
||||
theme_config: &GalaxyThemeConfig,
|
||||
) -> Vec<ThemeChooserItem> {
|
||||
let sent_referral_theme_active = referral_theme_status.sent_referral_theme_active();
|
||||
let received_referral_theme_active = referral_theme_status.received_referral_theme_active();
|
||||
@@ -224,9 +224,9 @@ impl ThemeChooser {
|
||||
me.update_themes(ctx);
|
||||
});
|
||||
|
||||
let warp_config_handle = WarpConfig::handle(ctx);
|
||||
let warp_config_handle = GalaxyConfig::handle(ctx);
|
||||
ctx.subscribe_to_model(&warp_config_handle, |me, _, event, ctx| {
|
||||
if let WarpConfigUpdateEvent::Themes = event {
|
||||
if let GalaxyConfigUpdateEvent::Themes = event {
|
||||
me.update_themes(ctx);
|
||||
ctx.notify();
|
||||
}
|
||||
@@ -247,7 +247,7 @@ impl ThemeChooser {
|
||||
|
||||
let themes = theme_chooser_items(
|
||||
referral_theme_status.as_ref(ctx),
|
||||
WarpConfig::as_ref(ctx).theme_config(),
|
||||
GalaxyConfig::as_ref(ctx).theme_config(),
|
||||
);
|
||||
|
||||
Self {
|
||||
@@ -311,7 +311,7 @@ impl ThemeChooser {
|
||||
ctx.spawn(
|
||||
async move { load_theme_configs(&themes_dir()) },
|
||||
move |theme_chooser, loaded_themes, ctx| {
|
||||
ctx.update_model(&WarpConfig::handle(ctx), move |warp_config, ctx| {
|
||||
ctx.update_model(&GalaxyConfig::handle(ctx), move |warp_config, ctx| {
|
||||
warp_config.update_theme_config(loaded_themes, ctx);
|
||||
});
|
||||
theme_chooser.update_themes(ctx);
|
||||
@@ -324,7 +324,7 @@ impl ThemeChooser {
|
||||
ctx.spawn(
|
||||
async move { load_theme_configs(&themes_dir()) },
|
||||
move |theme_chooser, loaded_themes, ctx| {
|
||||
ctx.update_model(&WarpConfig::handle(ctx), move |warp_config, ctx| {
|
||||
ctx.update_model(&GalaxyConfig::handle(ctx), move |warp_config, ctx| {
|
||||
warp_config.update_theme_config(loaded_themes, ctx);
|
||||
});
|
||||
theme_chooser.update_themes(ctx);
|
||||
@@ -518,7 +518,7 @@ impl ThemeChooser {
|
||||
fn update_themes(&mut self, ctx: &mut ViewContext<Self>) {
|
||||
*self.themes = theme_chooser_items(
|
||||
self.referral_theme_status.as_ref(ctx),
|
||||
WarpConfig::as_ref(ctx).theme_config(),
|
||||
GalaxyConfig::as_ref(ctx).theme_config(),
|
||||
);
|
||||
}
|
||||
|
||||
@@ -848,7 +848,7 @@ impl View for ThemeChooser {
|
||||
Some(AccessibilityContent::new(
|
||||
"Theme chooser. Unfortunately, theme chooser window isn't compatible with screen readers yet.",
|
||||
"Press escape to close.",
|
||||
WarpA11yRole::WindowRole,
|
||||
GalaxyA11yRole::WindowRole,
|
||||
))
|
||||
}
|
||||
|
||||
@@ -878,12 +878,12 @@ impl View for ThemeChooser {
|
||||
#[derive(Clone)]
|
||||
struct ThemeChooserItem {
|
||||
pub kind: ThemeKind,
|
||||
warp_theme: WarpTheme,
|
||||
warp_theme: GalaxyTheme,
|
||||
mouse_state: MouseStateHandle,
|
||||
}
|
||||
|
||||
impl ThemeChooserItem {
|
||||
pub fn new(kind: ThemeKind, warp_theme: WarpTheme) -> Self {
|
||||
pub fn new(kind: ThemeKind, warp_theme: GalaxyTheme) -> Self {
|
||||
Self {
|
||||
kind,
|
||||
warp_theme,
|
||||
|
||||
@@ -7,7 +7,7 @@ use crate::{
|
||||
send_telemetry_from_ctx, server::telemetry::TelemetryEvent, themes::theme::CustomTheme,
|
||||
};
|
||||
#[cfg(feature = "local_fs")]
|
||||
use galaxy_core::ui::theme::WarpTheme;
|
||||
use galaxy_core::ui::theme::GalaxyTheme;
|
||||
use galaxyui::elements::{
|
||||
Border, ConstrainedBox, Container, CornerRadius, CrossAxisAlignment, DispatchEventResult,
|
||||
EventHandler, Fill, Flex, Icon, MainAxisAlignment, MainAxisSize, MouseStateHandle,
|
||||
@@ -220,7 +220,7 @@ impl ThemeCreatorBody {
|
||||
/// Note: the image option should be (original_theme_image_path, theme_name, image_extension).
|
||||
#[cfg(feature = "local_fs")]
|
||||
pub fn write_theme<T>(
|
||||
theme: &WarpTheme,
|
||||
theme: &GalaxyTheme,
|
||||
dir: PathBuf,
|
||||
theme_yaml_file_name: String,
|
||||
image_option: Option<(PathBuf, String, &str)>,
|
||||
|
||||
@@ -2,7 +2,7 @@ use crate::appearance::Appearance;
|
||||
use crate::send_telemetry_from_ctx;
|
||||
use crate::server::telemetry::TelemetryEvent;
|
||||
use crate::settings::{active_theme_kind, ThemeSettings};
|
||||
use crate::themes::theme::{ThemeKind, WarpTheme};
|
||||
use crate::themes::theme::{ThemeKind, GalaxyTheme};
|
||||
use crate::user_config;
|
||||
use crate::user_config::util::from_yaml;
|
||||
use galaxyui::assets::asset_cache::AssetSource;
|
||||
@@ -77,7 +77,7 @@ impl ThemeDeletionBody {
|
||||
// Check if the theme directory exists
|
||||
if fs::metadata(&dir).is_ok() {
|
||||
if let Some(ThemeKind::Custom(custom_theme)) = &self.theme_kind {
|
||||
if let Ok(theme_from_yaml) = from_yaml::<WarpTheme>(custom_theme.path()) {
|
||||
if let Ok(theme_from_yaml) = from_yaml::<GalaxyTheme>(custom_theme.path()) {
|
||||
// If theme has an image
|
||||
if let Some(image) = theme_from_yaml.background_image() {
|
||||
// Only delete the image if it is in the ./warp/themes directory.
|
||||
|
||||
@@ -23,7 +23,7 @@ fn in_memory_theme_generation_test() {
|
||||
let mountains_bg_path_string = mountains_bg_path.to_str().unwrap_or_default().to_owned();
|
||||
assert_eq!(
|
||||
in_memory_theme.theme(),
|
||||
WarpTheme::new(
|
||||
GalaxyTheme::new(
|
||||
// the theme defaults to the 0th bg color
|
||||
ColorU::new(35, 31, 44, OPAQUE).into(),
|
||||
// this background color makes it a "dark" theme, so the foreground is white
|
||||
@@ -47,7 +47,7 @@ fn in_memory_theme_generation_test() {
|
||||
|
||||
assert_eq!(
|
||||
in_memory_theme.theme(),
|
||||
WarpTheme::new(
|
||||
GalaxyTheme::new(
|
||||
// now the background is the 2nd one
|
||||
ColorU::new(229, 142, 113, OPAQUE).into(),
|
||||
// changing the background color made this a light theme
|
||||
|
||||
Reference in New Issue
Block a user