diff --git a/src/ffx/audio_layout.py b/src/ffx/audio_layout.py index 99e8ab8..efb28a1 100644 --- a/src/ffx/audio_layout.py +++ b/src/ffx/audio_layout.py @@ -30,6 +30,15 @@ class AudioLayout(Enum): except: return AudioLayout.LAYOUT_UNDEFINED + # @staticmethod + # def fromIndex(index : int): + # try: + # target_index = int(index) + # except (TypeError, ValueError): + # return AudioLayout.LAYOUT_UNDEFINED + # return next((a for a in AudioLayout if a.value['index'] == target_index), + # AudioLayout.LAYOUT_UNDEFINED) + @staticmethod def fromIndex(index : int): try: diff --git a/src/ffx/model/pattern.py b/src/ffx/model/pattern.py index ac1584a..c612cc5 100644 --- a/src/ffx/model/pattern.py +++ b/src/ffx/model/pattern.py @@ -31,9 +31,11 @@ class Pattern(Base): tracks = relationship('Track', back_populates='pattern', cascade="all, delete", lazy='joined') - media_tags = relationship('MediaTag', back_populates='pattern', cascade="all, delete", lazy='joined') + quality = Column(Integer, default=0) + + def getId(self): return int(self.id) diff --git a/src/ffx/pattern_controller.py b/src/ffx/pattern_controller.py index ae3c560..956cf76 100644 --- a/src/ffx/pattern_controller.py +++ b/src/ffx/pattern_controller.py @@ -49,6 +49,7 @@ class PatternController(): pattern.show_id = int(patternObj['show_id']) pattern.pattern = str(patternObj['pattern']) + pattern.quality = str(patternObj['quality']) s.commit() return True diff --git a/src/ffx/pattern_details_screen.py b/src/ffx/pattern_details_screen.py index 955d91c..5e78330 100644 --- a/src/ffx/pattern_details_screen.py +++ b/src/ffx/pattern_details_screen.py @@ -40,7 +40,7 @@ class PatternDetailsScreen(Screen): Grid { grid-size: 7 13; - grid-rows: 2 2 2 2 2 8 2 2 8 2 2 2 2; + grid-rows: 2 2 2 2 2 2 8 2 2 8 2 2 2 2; grid-columns: 25 25 25 25 25 25 25; height: 100%; width: 100%; @@ -255,6 +255,9 @@ class PatternDetailsScreen(Screen): self.query_one("#pattern_input", Input).value = str(self.__pattern.getPattern()) + if self.__pattern and self.__pattern.quality: + self.query_one("#quality_input", Input).value = str(self.__pattern.quality) + self.updateTags() self.updateTracks() @@ -301,6 +304,12 @@ class PatternDetailsScreen(Screen): # 3 yield Static(" ", classes="seven") + + # 4 + yield Static("Quality") + yield Input(type="integer", id="quality_input") + yield Static(' ', classes="five") + # 4 yield Static(" ", classes="seven") @@ -367,6 +376,11 @@ class PatternDetailsScreen(Screen): def getPatternFromInput(self): return str(self.query_one("#pattern_input", Input).value) + def getQualityFromInput(self): + try: + return int(self.query_one("#quality_input", Input).value) + except ValueError: + return 0 def getSelectedTrackDescriptor(self): @@ -428,6 +442,7 @@ class PatternDetailsScreen(Screen): patternDescriptor = {} patternDescriptor['show_id'] = self.__showDescriptor.getId() patternDescriptor['pattern'] = self.getPatternFromInput() + patternDescriptor['quality'] = self.getQualityFromInput() if self.__pattern is not None: