refactor(editor): sink remaining agent-settings cards to jian Card

MCP server card + ACP agent card + 2 built-in provider cards (muted fill + border, r8/r10) now route through jian Card, looks preserved. The whole agent-settings card cluster (7 cards) now shares the canonical primitive.
This commit is contained in:
Kayshen-X 2026-06-20 10:07:58 +08:00
parent 07e1101eb0
commit ed4154d91c
3 changed files with 27 additions and 8 deletions

View file

@ -14,6 +14,7 @@ use crate::widgets::icons::{draw_icon, Icon};
use crate::widgets::PaintCx;
use crate::{Color, Point2D, Rect, TextLayout};
use jian_widgets::components::button::{Button, ButtonVariant};
use jian_widgets::components::card::Card;
use op_editor_core::agent_settings::{
AcpAgentConfig, AcpAgentConnectPhase, AcpAgentField, AcpConnectionType, AgentSettings,
SettingsFocus,
@ -388,8 +389,12 @@ fn paint_acp_form(
card: Rect,
now_ms: u64,
) {
cx.backend.fill_round_rect(card, 10.0, theme.muted);
cx.backend.stroke_round_rect(card, 10.0, theme.border, 1.0);
Card {
fill: Some(theme.muted),
border: Some(theme.border),
radius: 10.0,
}
.paint(cx.backend, card, &tokens_from_theme(theme));
draw_text(
cx,
t_settings(ui, "acp.connectionType"),

View file

@ -18,9 +18,11 @@ use crate::widgets::agent_settings_i18n::t as t_settings;
use crate::widgets::agent_settings_switch::paint_settings_switch;
use crate::widgets::brand_icons::{paint_brand_logo, BrandLogo};
use crate::widgets::button::paint_ghost_button_feedback;
use crate::widgets::button::tokens_from_theme;
use crate::widgets::icons::{draw_icon, Icon};
use crate::widgets::PaintCx;
use crate::{Color, Point2D, Rect, TextLayout};
use jian_widgets::components::card::Card;
use op_editor_core::agent_settings::{
AgentSettings, BuiltinAgentConfig, BuiltinAgentField, BuiltinAgentKind,
BuiltinAgentPresetMenuTarget, SettingsFocus,
@ -442,8 +444,12 @@ fn paint_builtin_agent_form(
card: Rect,
now_ms: u64,
) {
cx.backend.fill_round_rect(card, 10.0, theme.muted);
cx.backend.stroke_round_rect(card, 10.0, theme.border, 1.0);
Card {
fill: Some(theme.muted),
border: Some(theme.border),
radius: 10.0,
}
.paint(cx.backend, card, &tokens_from_theme(theme));
let avatar = Rect {
origin: Point2D::new(card.origin.x + 12.0, card.origin.y + 10.0),
size: Point2D::new(28.0, 28.0),
@ -544,8 +550,12 @@ fn paint_compact_builtin_agent_card(
card: Rect,
) {
if agent.enabled {
cx.backend.fill_round_rect(card, 8.0, theme.muted);
cx.backend.stroke_round_rect(card, 8.0, theme.border, 1.0);
Card {
fill: Some(theme.muted),
border: Some(theme.border),
radius: 8.0,
}
.paint(cx.backend, card, &tokens_from_theme(theme));
}
let avatar = Rect {
origin: Point2D::new(card.origin.x + 12.0, card.origin.y + 12.0),

View file

@ -234,8 +234,12 @@ fn paint_server_card(
now_ms: u64,
) {
let card = server_card_rect(content);
cx.backend.fill_round_rect(card, 10.0, theme.muted);
cx.backend.stroke_round_rect(card, 10.0, theme.border, 1.0);
Card {
fill: Some(theme.muted),
border: Some(theme.border),
radius: 10.0,
}
.paint(cx.backend, card, &tokens_from_theme(theme));
let running = settings.mcp_server.running;
let mid_y = card.origin.y + SERVER_CARD_H / 2.0;
let dot = Rect {