mirror of
https://codeberg.org/unspeaker/tek.git
synced 2025-12-06 19:56:42 +01:00
fix weird alignments in selections
This commit is contained in:
parent
863c028047
commit
29f09a2556
2 changed files with 9 additions and 8 deletions
|
|
@ -241,7 +241,7 @@ atom_command!(TrackCommand: |app: Tek| {
|
|||
command!(|self: TrackCommand, app: Tek|match self {
|
||||
Self::Add => {
|
||||
use Selection::*;
|
||||
let index = app.track_add(None, None, &[], &[])?.0 + 1;
|
||||
let index = app.track_add(None, None, &[], &[])?.0;
|
||||
app.selected = match app.selected {
|
||||
Track(t) => Track(index),
|
||||
Clip(t, s) => Clip(index, s),
|
||||
|
|
@ -296,7 +296,7 @@ atom_command!(SceneCommand: |app: Tek| {
|
|||
command!(|self: SceneCommand, app: Tek|match self {
|
||||
Self::Add => {
|
||||
use Selection::*;
|
||||
let index = app.scene_add(None, None)?.0 + 1;
|
||||
let index = app.scene_add(None, None)?.0;
|
||||
app.selected = match app.selected {
|
||||
Scene(s) => Scene(index),
|
||||
Clip(t, s) => Clip(t, index),
|
||||
|
|
|
|||
|
|
@ -18,6 +18,7 @@ impl Tek {
|
|||
data})}
|
||||
pub fn view_scenes (&self) -> impl Content<TuiOut> + use<'_> {
|
||||
let w_full = self.w();
|
||||
let w = self.w_tracks_area();
|
||||
let h = self.h_tracks_area();
|
||||
let editing = self.is_editing();
|
||||
let selected_track = self.selected().track();
|
||||
|
|
@ -29,8 +30,8 @@ impl Tek {
|
|||
let scene_clips = self.per_track(move|t, track|Map::new(
|
||||
move||self.scenes_with_track_colors(editing, h, t),
|
||||
move|(s, scene, y1, y2, prev): SceneColor, _|self.view_scene_clip(
|
||||
(1 + y2 - y1) as u16, y1 as u16,
|
||||
scene, prev, s, t, editing, selected_track == Some(t+1), selected_scene)));
|
||||
w, (1 + y2 - y1) as u16, y1 as u16,
|
||||
scene, prev, s, t, editing, selected_track == Some(t), selected_scene)));
|
||||
Tui::bg(Black, self.row_top(self.w_tracks_area(), h, scene_names, scene_clips, ())) }
|
||||
fn scenes_with_colors (&self, editing: bool, h: u16) -> impl ScenesColors<'_> {
|
||||
self.scenes_sizes(editing, 2, 15).map_while(
|
||||
|
|
@ -49,7 +50,7 @@ impl Tek {
|
|||
let fg = scene.color.lightest.rgb;
|
||||
let name = Some(scene.name.clone());
|
||||
let cell = self.view_scene_cell(true, s, &bg, prev, name, " ⯈ ", fg);
|
||||
Fixed::x(width, map_south(offset, height, Fixed::y(height, cell))) }
|
||||
map_south(offset, height, Fixed::y(height, cell)) }
|
||||
fn scenes_with_track_colors (&self, editing: bool, h: u16, t: usize) -> impl ScenesColors<'_> {
|
||||
self.scenes_sizes(editing, 2, 15).map_while(
|
||||
move|(s, scene, y1, y2)|if y2 as u16 > h {
|
||||
|
|
@ -62,7 +63,7 @@ impl Tek {
|
|||
.unwrap_or(ItemPalette::G[32]))
|
||||
})) }) }
|
||||
fn view_scene_clip (
|
||||
&self, height: u16, offset: u16,
|
||||
&self, width: u16, height: u16, offset: u16,
|
||||
scene: &Scene, prev: Option<ItemPalette>, s: usize, t: usize,
|
||||
editing: bool, same_track: bool, selected_scene: Option<usize>
|
||||
) -> impl Content<TuiOut> + use<'_> {
|
||||
|
|
@ -87,8 +88,8 @@ impl Tek {
|
|||
fg: Color,
|
||||
) -> impl Content<TuiOut> + use<'a> {
|
||||
let selected_scene = self.selected().scene();
|
||||
let selected = same_track && selected_scene == Some(scene+1);
|
||||
let neighbor = same_track && selected_scene == Some(scene);
|
||||
let selected = same_track && selected_scene == Some(scene);
|
||||
let neighbor = same_track && scene > 0 && selected_scene == Some(scene - 1);
|
||||
let is_last = scene == self.scenes.len().saturating_sub(1);
|
||||
let colors = Self::colors(color, prev, selected, neighbor, is_last);
|
||||
let content = Fill::x(Align::w(Tui::fg(fg, Tui::bold(true, Bsp::e(icon, name)))));
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue