mirror of
https://codeberg.org/unspeaker/tek.git
synced 2025-12-07 12:16: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 {
|
command!(|self: TrackCommand, app: Tek|match self {
|
||||||
Self::Add => {
|
Self::Add => {
|
||||||
use Selection::*;
|
use Selection::*;
|
||||||
let index = app.track_add(None, None, &[], &[])?.0 + 1;
|
let index = app.track_add(None, None, &[], &[])?.0;
|
||||||
app.selected = match app.selected {
|
app.selected = match app.selected {
|
||||||
Track(t) => Track(index),
|
Track(t) => Track(index),
|
||||||
Clip(t, s) => Clip(index, s),
|
Clip(t, s) => Clip(index, s),
|
||||||
|
|
@ -296,7 +296,7 @@ atom_command!(SceneCommand: |app: Tek| {
|
||||||
command!(|self: SceneCommand, app: Tek|match self {
|
command!(|self: SceneCommand, app: Tek|match self {
|
||||||
Self::Add => {
|
Self::Add => {
|
||||||
use Selection::*;
|
use Selection::*;
|
||||||
let index = app.scene_add(None, None)?.0 + 1;
|
let index = app.scene_add(None, None)?.0;
|
||||||
app.selected = match app.selected {
|
app.selected = match app.selected {
|
||||||
Scene(s) => Scene(index),
|
Scene(s) => Scene(index),
|
||||||
Clip(t, s) => Clip(t, index),
|
Clip(t, s) => Clip(t, index),
|
||||||
|
|
|
||||||
|
|
@ -18,6 +18,7 @@ impl Tek {
|
||||||
data})}
|
data})}
|
||||||
pub fn view_scenes (&self) -> impl Content<TuiOut> + use<'_> {
|
pub fn view_scenes (&self) -> impl Content<TuiOut> + use<'_> {
|
||||||
let w_full = self.w();
|
let w_full = self.w();
|
||||||
|
let w = self.w_tracks_area();
|
||||||
let h = self.h_tracks_area();
|
let h = self.h_tracks_area();
|
||||||
let editing = self.is_editing();
|
let editing = self.is_editing();
|
||||||
let selected_track = self.selected().track();
|
let selected_track = self.selected().track();
|
||||||
|
|
@ -29,8 +30,8 @@ impl Tek {
|
||||||
let scene_clips = self.per_track(move|t, track|Map::new(
|
let scene_clips = self.per_track(move|t, track|Map::new(
|
||||||
move||self.scenes_with_track_colors(editing, h, t),
|
move||self.scenes_with_track_colors(editing, h, t),
|
||||||
move|(s, scene, y1, y2, prev): SceneColor, _|self.view_scene_clip(
|
move|(s, scene, y1, y2, prev): SceneColor, _|self.view_scene_clip(
|
||||||
(1 + y2 - y1) as u16, y1 as u16,
|
w, (1 + y2 - y1) as u16, y1 as u16,
|
||||||
scene, prev, s, t, editing, selected_track == Some(t+1), selected_scene)));
|
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, ())) }
|
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<'_> {
|
fn scenes_with_colors (&self, editing: bool, h: u16) -> impl ScenesColors<'_> {
|
||||||
self.scenes_sizes(editing, 2, 15).map_while(
|
self.scenes_sizes(editing, 2, 15).map_while(
|
||||||
|
|
@ -49,7 +50,7 @@ impl Tek {
|
||||||
let fg = scene.color.lightest.rgb;
|
let fg = scene.color.lightest.rgb;
|
||||||
let name = Some(scene.name.clone());
|
let name = Some(scene.name.clone());
|
||||||
let cell = self.view_scene_cell(true, s, &bg, prev, name, " ⯈ ", fg);
|
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<'_> {
|
fn scenes_with_track_colors (&self, editing: bool, h: u16, t: usize) -> impl ScenesColors<'_> {
|
||||||
self.scenes_sizes(editing, 2, 15).map_while(
|
self.scenes_sizes(editing, 2, 15).map_while(
|
||||||
move|(s, scene, y1, y2)|if y2 as u16 > h {
|
move|(s, scene, y1, y2)|if y2 as u16 > h {
|
||||||
|
|
@ -62,7 +63,7 @@ impl Tek {
|
||||||
.unwrap_or(ItemPalette::G[32]))
|
.unwrap_or(ItemPalette::G[32]))
|
||||||
})) }) }
|
})) }) }
|
||||||
fn view_scene_clip (
|
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,
|
scene: &Scene, prev: Option<ItemPalette>, s: usize, t: usize,
|
||||||
editing: bool, same_track: bool, selected_scene: Option<usize>
|
editing: bool, same_track: bool, selected_scene: Option<usize>
|
||||||
) -> impl Content<TuiOut> + use<'_> {
|
) -> impl Content<TuiOut> + use<'_> {
|
||||||
|
|
@ -87,8 +88,8 @@ impl Tek {
|
||||||
fg: Color,
|
fg: Color,
|
||||||
) -> impl Content<TuiOut> + use<'a> {
|
) -> impl Content<TuiOut> + use<'a> {
|
||||||
let selected_scene = self.selected().scene();
|
let selected_scene = self.selected().scene();
|
||||||
let selected = same_track && selected_scene == Some(scene+1);
|
let selected = same_track && selected_scene == Some(scene);
|
||||||
let neighbor = 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 is_last = scene == self.scenes.len().saturating_sub(1);
|
||||||
let colors = Self::colors(color, prev, selected, neighbor, is_last);
|
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)))));
|
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