first pass of merging in warp (doesn't build)
This commit is contained in:
@@ -1,41 +1,37 @@
|
||||
use galaxy_core::ui::theme::Fill;
|
||||
use itertools::Itertools;
|
||||
|
||||
use pathfinder_geometry::vector::vec2f;
|
||||
use serde::Serialize;
|
||||
use settings::Setting as _;
|
||||
use galaxyui::elements::{
|
||||
Align, Border, ChildAnchor, ChildView, Clipped, ConstrainedBox, Container, CornerRadius,
|
||||
CrossAxisAlignment, Empty, Flex, Hoverable, MainAxisAlignment, MainAxisSize, MouseStateHandle,
|
||||
OffsetPositioning, ParentAnchor, ParentElement, ParentOffsetBounds, Radius, Stack,
|
||||
};
|
||||
use galaxyui::keymap::FixedBinding;
|
||||
use galaxyui::platform::Cursor;
|
||||
use galaxyui::ui_components::button::ButtonVariant;
|
||||
use galaxyui::ui_components::components::{Coords, UiComponent, UiComponentStyles};
|
||||
use pathfinder_geometry::vector::vec2f;
|
||||
use serde::Serialize;
|
||||
|
||||
use galaxyui::{
|
||||
AppContext, Element, Entity, SingletonEntity, TypedActionView, View, ViewContext, ViewHandle,
|
||||
};
|
||||
|
||||
use crate::appearance::AppearanceEvent;
|
||||
use crate::chip_configurator::{ChipConfigurator, ChipConfiguratorAction, ChipConfiguratorLayout};
|
||||
use crate::context_chips::prompt::{Prompt, PromptConfiguration, PromptSelection};
|
||||
use crate::context_chips::renderer::Renderer as ContextChipRenderer;
|
||||
use crate::context_chips::{
|
||||
available_chips, ChipAvailability, ChipRuntimeCapabilities, ContextChipKind,
|
||||
};
|
||||
|
||||
use crate::server::telemetry::{PromptChoice, TelemetryEvent};
|
||||
use crate::settings::{FontSettings, WarpPromptSeparator};
|
||||
use crate::terminal::blockgrid_element::BlockGridElement;
|
||||
use crate::terminal::SizeInfo;
|
||||
use settings::Setting as _;
|
||||
|
||||
use crate::terminal::model::blockgrid::BlockGrid;
|
||||
use crate::terminal::model::ObfuscateSecrets;
|
||||
use crate::terminal::session_settings::SessionSettings;
|
||||
use crate::terminal::SizeInfo;
|
||||
use crate::view_components::{Dropdown, DropdownItem};
|
||||
use crate::Appearance;
|
||||
use crate::{report_if_error, send_telemetry_from_ctx};
|
||||
use galaxyui::elements::{
|
||||
Align, Border, ChildAnchor, ChildView, Clipped, ConstrainedBox, Container, CornerRadius,
|
||||
CrossAxisAlignment, Empty, Flex, Hoverable, MainAxisAlignment, MainAxisSize, MouseStateHandle,
|
||||
OffsetPositioning, ParentAnchor, ParentElement, ParentOffsetBounds, Radius, Stack,
|
||||
};
|
||||
use crate::{report_if_error, send_telemetry_from_ctx, Appearance};
|
||||
|
||||
const MODAL_WIDTH: f32 = 700.;
|
||||
const BORDER_WIDTH: f32 = 1.;
|
||||
@@ -152,7 +148,7 @@ impl PromptType {
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Clone, Copy, Debug)]
|
||||
#[derive(Clone, Copy, Debug, PartialEq)]
|
||||
pub enum EditorModalAction {
|
||||
Cancel,
|
||||
Save,
|
||||
@@ -222,6 +218,25 @@ impl EditorModal {
|
||||
dropdown
|
||||
});
|
||||
|
||||
// Context-chip colors are theme-derived, so rebuild the chips when the
|
||||
// theme changes to keep an open editor in sync (preserving the current
|
||||
// used-chip selection).
|
||||
ctx.subscribe_to_model(&Appearance::handle(ctx), |me, _, event, ctx| {
|
||||
if matches!(event, AppearanceEvent::ThemeChanged)
|
||||
&& me.chip_configurator.current_dragging_state.is_none()
|
||||
&& me.chip_configurator.has_items()
|
||||
{
|
||||
let used_chips = me
|
||||
.chip_configurator
|
||||
.used_chips
|
||||
.iter()
|
||||
.filter_map(|r| r.chip_kind().cloned())
|
||||
.collect();
|
||||
me.update_used_chips(used_chips, ctx);
|
||||
ctx.notify();
|
||||
}
|
||||
});
|
||||
|
||||
Self {
|
||||
mouse_state_handles: Default::default(),
|
||||
ps1_grid_info: None,
|
||||
|
||||
Reference in New Issue
Block a user