class QuestionFrontend:
def userChoose (self, title, choices, returns, fallback):
raise Exception("The abstract method 'userChoose' has not been implemented by %s"%str(self.__class__))
+
def selectResolution(self, displayname, availablemodes):
modedescs = list(map(str, availablemodes))
return self.userChoose("Select resolution for %s"%displayname, modedescs, availablemodes, None)
+
def setup (self, situation):
+ if situation.previousSetup:
+ applyPrevious = self.userChoose("This display is known. The last setup for it was like this:\n%s.\nApply the last used configuration?" % str(situation.previousSetup), ("Apply last setup", "Enter different setup"), (True,False), None)
+ if applyPrevious is None:
+ return None
+ if applyPrevious is True:
+ return situation.previousSetup
+ assert applyPrevious is False
operationmodes = list(OperationMode)
operationmodedescs = list(map(lambda x: x.text, operationmodes))
operationmode = self.userChoose ("Display setup", operationmodedescs, operationmodes, None)
if operationmode is None:
return None
elif operationmode is OperationMode.INTERNAL_ONLY:
- intres = self.selectResolution("the internal screen", situation.internalResolutions())
+ intres = self.selectResolution("the internal screen", situation.internalConnector.getResolutionList())
if intres is None:
return None
else:
return ScreenSetup(intres, None, None, False)
elif operationmode is OperationMode.EXTERNAL_ONLY:
- extres = self.selectResolution("the external screen", situation.externalResolutions())
+ extres = self.selectResolution("the external screen", situation.externalConnector.getResolutionList())
if extres is None:
return None
else:
return None
return ScreenSetup(commonres,commonres,relpos,False)
# select resolutions independently
- intres = self.selectResolution("the internal screen", situation.internalResolutions())
+ intres = self.selectResolution("the internal screen", situation.internalConnector.getResolutionList())
if intres is None:
return None
- extres = self.selectResolution("the external screen", situation.externalResolutions())
+ extres = self.selectResolution("the external screen", situation.externalConnector.getResolutionList())
if extres is None:
return None
extprim = self.userChoose("Select primary screen", ["Internal screen is primary","External screen is primary"], [False,True], None)