keymap editor: Make table denser (#35236)
Hopefully, this will make it a bit easier to parse as a whole. Release Notes: - Made the keymap editor denser, improving how easy you can parse it at a glance.
This commit is contained in:
parent
7ccf8c2f8c
commit
f3dc842ce6
2 changed files with 16 additions and 10 deletions
|
@ -1690,7 +1690,7 @@ impl Render for KeymapEditor {
|
|||
move |window, cx| this.read(cx).render_no_matches_hint(window, cx)
|
||||
})
|
||||
.column_widths([
|
||||
DefiniteLength::Absolute(AbsoluteLength::Pixels(px(40.))),
|
||||
DefiniteLength::Absolute(AbsoluteLength::Pixels(px(36.))),
|
||||
DefiniteLength::Fraction(0.25),
|
||||
DefiniteLength::Fraction(0.20),
|
||||
DefiniteLength::Fraction(0.14),
|
||||
|
@ -1765,6 +1765,7 @@ impl Render for KeymapEditor {
|
|||
},
|
||||
)
|
||||
.into_any_element();
|
||||
|
||||
let keystrokes = binding.ui_key_binding().cloned().map_or(
|
||||
binding
|
||||
.keystroke_text()
|
||||
|
@ -1773,6 +1774,7 @@ impl Render for KeymapEditor {
|
|||
.into_any_element(),
|
||||
IntoElement::into_any_element,
|
||||
);
|
||||
|
||||
let action_arguments = match binding.action().arguments.clone()
|
||||
{
|
||||
Some(arguments) => arguments.into_any_element(),
|
||||
|
@ -1785,6 +1787,7 @@ impl Render for KeymapEditor {
|
|||
}
|
||||
}
|
||||
};
|
||||
|
||||
let context = binding.context().cloned().map_or(
|
||||
gpui::Empty.into_any_element(),
|
||||
|context| {
|
||||
|
@ -1809,11 +1812,13 @@ impl Render for KeymapEditor {
|
|||
.into_any_element()
|
||||
},
|
||||
);
|
||||
|
||||
let source = binding
|
||||
.keybind_source()
|
||||
.map(|source| source.name())
|
||||
.unwrap_or_default()
|
||||
.into_any_element();
|
||||
|
||||
Some([
|
||||
icon.into_any_element(),
|
||||
action,
|
||||
|
|
|
@ -17,7 +17,7 @@ use ui::{
|
|||
StyledTypography, Window, div, example_group_with_title, h_flex, px, single_example, v_flex,
|
||||
};
|
||||
|
||||
const RESIZE_COLUMN_WIDTH: f32 = 5.0;
|
||||
const RESIZE_COLUMN_WIDTH: f32 = 8.0;
|
||||
|
||||
#[derive(Debug)]
|
||||
struct DraggedColumn(usize);
|
||||
|
@ -214,6 +214,7 @@ impl TableInteractionState {
|
|||
let mut column_ix = 0;
|
||||
let resizable_columns_slice = *resizable_columns;
|
||||
let mut resizable_columns = resizable_columns.into_iter();
|
||||
|
||||
let dividers = intersperse_with(spacers, || {
|
||||
window.with_id(column_ix, |window| {
|
||||
let mut resize_divider = div()
|
||||
|
@ -221,9 +222,9 @@ impl TableInteractionState {
|
|||
.id(column_ix)
|
||||
.relative()
|
||||
.top_0()
|
||||
.w_0p5()
|
||||
.w_px()
|
||||
.h_full()
|
||||
.bg(cx.theme().colors().border.opacity(0.5));
|
||||
.bg(cx.theme().colors().border.opacity(0.8));
|
||||
|
||||
let mut resize_handle = div()
|
||||
.id("column-resize-handle")
|
||||
|
@ -237,9 +238,11 @@ impl TableInteractionState {
|
|||
.is_some_and(ResizeBehavior::is_resizable)
|
||||
{
|
||||
let hovered = window.use_state(cx, |_window, _cx| false);
|
||||
|
||||
resize_divider = resize_divider.when(*hovered.read(cx), |div| {
|
||||
div.bg(cx.theme().colors().border_focused)
|
||||
});
|
||||
|
||||
resize_handle = resize_handle
|
||||
.on_hover(move |&was_hovered, _, cx| hovered.write(cx, was_hovered))
|
||||
.cursor_col_resize()
|
||||
|
@ -269,12 +272,11 @@ impl TableInteractionState {
|
|||
})
|
||||
});
|
||||
|
||||
div()
|
||||
h_flex()
|
||||
.id("resize-handles")
|
||||
.h_flex()
|
||||
.absolute()
|
||||
.w_full()
|
||||
.inset_0()
|
||||
.w_full()
|
||||
.children(dividers)
|
||||
.into_any_element()
|
||||
}
|
||||
|
@ -896,7 +898,6 @@ fn base_cell_style(width: Option<Length>) -> Div {
|
|||
.px_1p5()
|
||||
.when_some(width, |this, width| this.w(width))
|
||||
.when(width.is_none(), |this| this.flex_1())
|
||||
.justify_start()
|
||||
.whitespace_nowrap()
|
||||
.text_ellipsis()
|
||||
.overflow_hidden()
|
||||
|
@ -941,7 +942,7 @@ pub fn render_row<const COLS: usize>(
|
|||
.map(IntoElement::into_any_element)
|
||||
.into_iter()
|
||||
.zip(column_widths)
|
||||
.map(|(cell, width)| base_cell_style_text(width, cx).px_1p5().py_1().child(cell)),
|
||||
.map(|(cell, width)| base_cell_style_text(width, cx).px_1().py_0p5().child(cell)),
|
||||
);
|
||||
|
||||
let row = if let Some(map_row) = table_context.map_row {
|
||||
|
@ -950,7 +951,7 @@ pub fn render_row<const COLS: usize>(
|
|||
row.into_any_element()
|
||||
};
|
||||
|
||||
div().h_full().w_full().child(row).into_any_element()
|
||||
div().size_full().child(row).into_any_element()
|
||||
}
|
||||
|
||||
pub fn render_header<const COLS: usize>(
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue