Polish provider setup and local-first settings

This commit is contained in:
2026-08-21 20:06:50 -05:00
parent be1dbb600a
commit 1f1d0737a9
21 changed files with 388 additions and 523 deletions
+50 -7
View File
@@ -1,6 +1,11 @@
use galaxyui::elements::{
Align, CacheOption, ConstrainedBox, Container, CrossAxisAlignment, Element, Flex,
FormattedTextElement, Image, Padding, ParentElement, Text,
};
use galaxyui::fonts::Weight;
use galaxyui::text_layout::TextAlignment;
use galaxyui::{AppContext, Entity, SingletonEntity, View, ViewContext, ViewHandle};
use warpui::assets::asset_cache::AssetSource;
use warpui::elements::{Align, CacheOption, ConstrainedBox, Element, Image};
use super::settings_page::{
MatchData, PageType, SettingsPageEvent, SettingsPageMeta, SettingsPageViewHandle,
@@ -48,7 +53,7 @@ impl SettingsWidget for AboutPageWidget {
fn render(
&self,
_view: &AboutPageView,
_appearance: &Appearance,
appearance: &Appearance,
app: &AppContext,
) -> Box<dyn Element> {
let icon_file =
@@ -62,16 +67,54 @@ impl SettingsWidget for AboutPageWidget {
_ => "bundled/png/galaxy.png",
};
let icon = ConstrainedBox::new(
Image::new(
AssetSource::Bundled { path: image_path },
CacheOption::BySize,
)
.finish(),
)
.with_max_height(144.)
.with_max_width(144.)
.finish();
let title = FormattedTextElement::from_str("Galaxy", appearance.ui_font_family(), 28.)
.with_weight(Weight::Bold)
.with_color(appearance.theme().active_ui_text_color().into_solid())
.with_alignment(TextAlignment::Center)
.finish();
let version = Text::new(
format!("Version {}", env!("CARGO_PKG_VERSION")),
appearance.ui_font_family(),
12.,
)
.with_color(appearance.theme().nonactive_ui_text_color().into())
.finish();
let description = FormattedTextElement::from_str(
"Galaxy is a local-first terminal and AI workspace built for developers. Your settings, terminal data, conversations, and Galaxy Drive content stay on this machine in your Galaxy directory. Galaxy sends request data only to the AI providers you configure.",
appearance.ui_font_family(),
14.,
)
.with_color(appearance.theme().nonactive_ui_text_color().into_solid())
.with_alignment(TextAlignment::Center)
.with_line_height_ratio(1.35)
.finish();
Align::new(
ConstrainedBox::new(
Image::new(
AssetSource::Bundled { path: image_path },
CacheOption::BySize,
Container::new(
Flex::column()
.with_cross_axis_alignment(CrossAxisAlignment::Center)
.with_spacing(12.)
.with_child(icon)
.with_child(title)
.with_child(version)
.with_child(description)
.finish(),
)
.with_padding(Padding::uniform(24.))
.finish(),
)
.with_max_height(144.)
.with_max_width(144.)
.with_max_width(560.)
.finish(),
)
.finish()