ff
This commit is contained in:
@@ -24,6 +24,7 @@ from ffx.model.track import Track
|
||||
|
||||
from ffx.track_disposition import TrackDisposition
|
||||
from ffx.track_descriptor import TrackDescriptor
|
||||
from ffx.show_descriptor import ShowDescriptor
|
||||
|
||||
from textual.widgets._data_table import CellDoesNotExist
|
||||
|
||||
@@ -456,7 +457,7 @@ class MediaDetailsScreen(Screen):
|
||||
return None
|
||||
|
||||
|
||||
def getSelectedShow(self):
|
||||
def getSelectedShowDescriptor(self):
|
||||
|
||||
try:
|
||||
# Fetch the currently selected row when 'Enter' is pressed
|
||||
@@ -467,31 +468,32 @@ class MediaDetailsScreen(Screen):
|
||||
selected_row_data = self.showsTable.get_row(row_key)
|
||||
|
||||
try:
|
||||
#TODO: Put in a ShowDescriptor and harmonize with PatternController.addPattern()
|
||||
# and ShowDetailsScreen.getShowDescriptorFromInput()
|
||||
selectedShow = {}
|
||||
selectedShow['id'] = int(selected_row_data[0])
|
||||
selectedShow['name'] = str(selected_row_data[1])
|
||||
selectedShow['year'] = int(selected_row_data[2])
|
||||
return selectedShow
|
||||
kwargs = {}
|
||||
|
||||
kwargs[ShowDescriptor.ID_KEY] = int(selected_row_data[0])
|
||||
kwargs[ShowDescriptor.NAME_KEY] = str(selected_row_data[1])
|
||||
kwargs[ShowDescriptor.YEAR_KEY] = int(selected_row_data[2])
|
||||
|
||||
return ShowDescriptor(**kwargs)
|
||||
|
||||
except ValueError:
|
||||
return {}
|
||||
return None
|
||||
|
||||
except CellDoesNotExist:
|
||||
return None
|
||||
|
||||
|
||||
def handle_new_pattern(self, screenResult):
|
||||
def handle_new_pattern(self, showDescriptor: ShowDescriptor):
|
||||
|
||||
show = (screenResult['id'], screenResult['name'], screenResult['year'])
|
||||
show = (showDescriptor.getId(), showDescriptor.getName(), showDescriptor.getYear())
|
||||
self.showsTable.add_row(*map(str, show))
|
||||
|
||||
showRowIndex = self.getRowIndexFromShowId(screenResult['id'])
|
||||
showRowIndex = self.getRowIndexFromShowId(showDescriptor.getId())
|
||||
if showRowIndex is not None:
|
||||
self.showsTable.move_cursor(row=showRowIndex)
|
||||
|
||||
patternDescriptor = {}
|
||||
patternDescriptor['show_id'] = screenResult['id']
|
||||
patternDescriptor['show_id'] = showDescriptor.getId()
|
||||
patternDescriptor['pattern'] = self.getPatternFromInput()
|
||||
self.__pc.addPattern(patternDescriptor)
|
||||
|
||||
@@ -505,14 +507,14 @@ class MediaDetailsScreen(Screen):
|
||||
if not self.__currentMediaDescriptor.checkDefaultAndForcedDispositions():
|
||||
return
|
||||
|
||||
selectedShow = self.getSelectedShow()
|
||||
selectedShowDescriptor = self.getSelectedShowDescriptor()
|
||||
|
||||
#HINT: Callback is invoked after this method has exited. As a workaround the callback is executed directly
|
||||
# from here with a mock-up screen result containing the necessary part of keys to perform correctly.
|
||||
if not selectedShow:
|
||||
if selectedShowDescriptor is None:
|
||||
self.app.push_screen(ShowDetailsScreen(), self.handle_new_pattern)
|
||||
else:
|
||||
self.handle_new_pattern(selectedShow)
|
||||
self.handle_new_pattern(selectedShowDescriptor)
|
||||
|
||||
|
||||
def action_update_pattern(self):
|
||||
@@ -522,7 +524,7 @@ class MediaDetailsScreen(Screen):
|
||||
inputPattern = self.getPatternFromInput()
|
||||
if self.__currentPattern.getPattern() != inputPattern:
|
||||
patternDescriptor = {}
|
||||
patternDescriptor['show_id'] = self.getSelectedShow()['id']
|
||||
patternDescriptor['show_id'] = self.getSelectedShowDescriptor().getId()
|
||||
patternDescriptor['pattern'] = inputPattern
|
||||
self.__pc.updatePattern(self.__currentPattern.getId(), patternDescriptor)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user