|
|
|
|
@ -2,7 +2,7 @@ import click, re
|
|
|
|
|
from typing import List
|
|
|
|
|
|
|
|
|
|
from textual.screen import Screen
|
|
|
|
|
from textual.widgets import Header, Footer, Static, Button, Input, DataTable
|
|
|
|
|
from textual.widgets import Header, Footer, Static, Button, Input, DataTable, TextArea
|
|
|
|
|
from textual.containers import Grid
|
|
|
|
|
|
|
|
|
|
from ffx.model.pattern import Pattern
|
|
|
|
|
@ -40,7 +40,7 @@ class PatternDetailsScreen(Screen):
|
|
|
|
|
|
|
|
|
|
Grid {
|
|
|
|
|
grid-size: 7 13;
|
|
|
|
|
grid-rows: 2 2 2 2 2 2 8 2 2 8 2 2 2 2;
|
|
|
|
|
grid-rows: 2 2 2 2 2 2 6 2 2 8 2 2 8 2 2 2 2;
|
|
|
|
|
grid-columns: 25 25 25 25 25 25 25;
|
|
|
|
|
height: 100%;
|
|
|
|
|
width: 100%;
|
|
|
|
|
@ -89,6 +89,12 @@ class PatternDetailsScreen(Screen):
|
|
|
|
|
column-span: 7;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.four_box {
|
|
|
|
|
min-height: 6;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.box {
|
|
|
|
|
height: 100%;
|
|
|
|
|
border: solid green;
|
|
|
|
|
@ -258,6 +264,9 @@ class PatternDetailsScreen(Screen):
|
|
|
|
|
if self.__pattern and self.__pattern.quality:
|
|
|
|
|
self.query_one("#quality_input", Input).value = str(self.__pattern.quality)
|
|
|
|
|
|
|
|
|
|
if self.__pattern and self.__pattern.notes:
|
|
|
|
|
self.query_one("#notes_textarea", Input).value = str(self.__pattern.notes)
|
|
|
|
|
|
|
|
|
|
self.updateTags()
|
|
|
|
|
self.updateTracks()
|
|
|
|
|
|
|
|
|
|
@ -305,12 +314,29 @@ class PatternDetailsScreen(Screen):
|
|
|
|
|
# 3
|
|
|
|
|
yield Static(" ", classes="seven")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# 4
|
|
|
|
|
yield Static("Quality")
|
|
|
|
|
yield Input(type="integer", id="quality_input")
|
|
|
|
|
yield Static(' ', classes="five")
|
|
|
|
|
|
|
|
|
|
# 4
|
|
|
|
|
|
|
|
|
|
# 5
|
|
|
|
|
yield Static(" ", classes="seven")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# 6
|
|
|
|
|
yield Static("Notes")
|
|
|
|
|
yield Static(" ", classes="six")
|
|
|
|
|
|
|
|
|
|
# 7
|
|
|
|
|
yield TextArea(id="notes_textarea", classes="four_box seven")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# 4 -> 8
|
|
|
|
|
yield Static(" ", classes="seven")
|
|
|
|
|
|
|
|
|
|
# 5
|
|
|
|
|
@ -381,6 +407,9 @@ class PatternDetailsScreen(Screen):
|
|
|
|
|
return int(self.query_one("#quality_input", Input).value)
|
|
|
|
|
except ValueError:
|
|
|
|
|
return 0
|
|
|
|
|
|
|
|
|
|
def getNotesFromInput(self):
|
|
|
|
|
return str(self.query_one("#notes_textarea", Input).value)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def getSelectedTrackDescriptor(self):
|
|
|
|
|
@ -443,6 +472,7 @@ class PatternDetailsScreen(Screen):
|
|
|
|
|
patternDescriptor['show_id'] = self.__showDescriptor.getId()
|
|
|
|
|
patternDescriptor['pattern'] = self.getPatternFromInput()
|
|
|
|
|
patternDescriptor['quality'] = self.getQualityFromInput()
|
|
|
|
|
patternDescriptor['notes'] = self.getNotesFromInput()
|
|
|
|
|
|
|
|
|
|
if self.__pattern is not None:
|
|
|
|
|
|
|
|
|
|
|