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_disposition import TrackDisposition
|
||||||
from ffx.track_descriptor import TrackDescriptor
|
from ffx.track_descriptor import TrackDescriptor
|
||||||
|
from ffx.show_descriptor import ShowDescriptor
|
||||||
|
|
||||||
from textual.widgets._data_table import CellDoesNotExist
|
from textual.widgets._data_table import CellDoesNotExist
|
||||||
|
|
||||||
@@ -456,7 +457,7 @@ class MediaDetailsScreen(Screen):
|
|||||||
return None
|
return None
|
||||||
|
|
||||||
|
|
||||||
def getSelectedShow(self):
|
def getSelectedShowDescriptor(self):
|
||||||
|
|
||||||
try:
|
try:
|
||||||
# Fetch the currently selected row when 'Enter' is pressed
|
# 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)
|
selected_row_data = self.showsTable.get_row(row_key)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
#TODO: Put in a ShowDescriptor and harmonize with PatternController.addPattern()
|
kwargs = {}
|
||||||
# and ShowDetailsScreen.getShowDescriptorFromInput()
|
|
||||||
selectedShow = {}
|
kwargs[ShowDescriptor.ID_KEY] = int(selected_row_data[0])
|
||||||
selectedShow['id'] = int(selected_row_data[0])
|
kwargs[ShowDescriptor.NAME_KEY] = str(selected_row_data[1])
|
||||||
selectedShow['name'] = str(selected_row_data[1])
|
kwargs[ShowDescriptor.YEAR_KEY] = int(selected_row_data[2])
|
||||||
selectedShow['year'] = int(selected_row_data[2])
|
|
||||||
return selectedShow
|
return ShowDescriptor(**kwargs)
|
||||||
|
|
||||||
except ValueError:
|
except ValueError:
|
||||||
return {}
|
return None
|
||||||
|
|
||||||
except CellDoesNotExist:
|
except CellDoesNotExist:
|
||||||
return None
|
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))
|
self.showsTable.add_row(*map(str, show))
|
||||||
|
|
||||||
showRowIndex = self.getRowIndexFromShowId(screenResult['id'])
|
showRowIndex = self.getRowIndexFromShowId(showDescriptor.getId())
|
||||||
if showRowIndex is not None:
|
if showRowIndex is not None:
|
||||||
self.showsTable.move_cursor(row=showRowIndex)
|
self.showsTable.move_cursor(row=showRowIndex)
|
||||||
|
|
||||||
patternDescriptor = {}
|
patternDescriptor = {}
|
||||||
patternDescriptor['show_id'] = screenResult['id']
|
patternDescriptor['show_id'] = showDescriptor.getId()
|
||||||
patternDescriptor['pattern'] = self.getPatternFromInput()
|
patternDescriptor['pattern'] = self.getPatternFromInput()
|
||||||
self.__pc.addPattern(patternDescriptor)
|
self.__pc.addPattern(patternDescriptor)
|
||||||
|
|
||||||
@@ -505,14 +507,14 @@ class MediaDetailsScreen(Screen):
|
|||||||
if not self.__currentMediaDescriptor.checkDefaultAndForcedDispositions():
|
if not self.__currentMediaDescriptor.checkDefaultAndForcedDispositions():
|
||||||
return
|
return
|
||||||
|
|
||||||
selectedShow = self.getSelectedShow()
|
selectedShowDescriptor = self.getSelectedShowDescriptor()
|
||||||
|
|
||||||
#HINT: Callback is invoked after this method has exited. As a workaround the callback is executed directly
|
#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.
|
# 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)
|
self.app.push_screen(ShowDetailsScreen(), self.handle_new_pattern)
|
||||||
else:
|
else:
|
||||||
self.handle_new_pattern(selectedShow)
|
self.handle_new_pattern(selectedShowDescriptor)
|
||||||
|
|
||||||
|
|
||||||
def action_update_pattern(self):
|
def action_update_pattern(self):
|
||||||
@@ -522,7 +524,7 @@ class MediaDetailsScreen(Screen):
|
|||||||
inputPattern = self.getPatternFromInput()
|
inputPattern = self.getPatternFromInput()
|
||||||
if self.__currentPattern.getPattern() != inputPattern:
|
if self.__currentPattern.getPattern() != inputPattern:
|
||||||
patternDescriptor = {}
|
patternDescriptor = {}
|
||||||
patternDescriptor['show_id'] = self.getSelectedShow()['id']
|
patternDescriptor['show_id'] = self.getSelectedShowDescriptor().getId()
|
||||||
patternDescriptor['pattern'] = inputPattern
|
patternDescriptor['pattern'] = inputPattern
|
||||||
self.__pc.updatePattern(self.__currentPattern.getId(), patternDescriptor)
|
self.__pc.updatePattern(self.__currentPattern.getId(), patternDescriptor)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user