def showImageDialog(self, callBack): fname, _ = QtGui.QFileDialog.getOpenFileName( self, localizer.translate( 'classSettingsWidget', 'chooseBackground'), '~', localizer.translate( 'classSettingsWidget', 'chooseBackgroundFiles') ) if (len(fname) != 0): callBack(fname)
def showMusicDialog(self, callBack): fname, _ = QtGui.QFileDialog.getOpenFileName( self, localizer.translate( 'classSettingsWidget', 'showMusicDialogChoose'), '~', localizer.translate( 'classSettingsWidget', 'showMusicDialogFiles') ) if (len(fname) != 0): self.musicTextEdit.setText(fname.split("/")[-1]) callBack(fname)
def setItemUseType(self, typeIndex): self.useTypeCombo.setCurrentIndex(typeIndex) self.updateUseTargetCombobox(typeIndex, self.useTargetCombo) # Show extra options when selecting use on other object if (typeIndex == 1): self.useConsumeCheckbox.setText( localizer.translate( 'classSettingsWidget', 'vanishDuringUse') ) self.useConsumeCheckbox.show() self.outcomeLabel.show() self.outcomeCombobox.show() else: self.useConsumeCheckbox.hide() self.outcomeLabel.hide() self.outcomeCombobox.hide() # When no use, hide and clear elements if (typeIndex == 0): self.useTargetCombo.hide() self.useTextLabel.hide() self.useTextEdit.hide() self.useTextEdit.clear() self.changeUseText() self.allTextsButton.hide() self.currentObject.clearTarget() else: self.useTargetCombo.show() self.useTextLabel.show() self.useTextEdit.show() self.allTextsButton.show()
def updateOutcomeCombobox(self): self.updateItemCombobox( self.outcomeCombobox, localizer.translate( 'classSettingsWidget', 'notSelected'), ("object", "item"), ("object", "item"), noChoiceMethod=self.clearOutcome, connectTo=self.changeOutcome)
def __init__(self, parent=None): super(SettingsWidget, self).__init__(parent) self.currentObject = None self.lastObjectType = None ## TODO: change to translation file self.useTypes = { 0: localizer.translate('classSettingsWidget', 'noUse'), 1: localizer.translate('classSettingsWidget', 'useToOtherObject'), 2: localizer.translate('classSettingsWidget', 'openSth'), 3: localizer.translate('classSettingsWidget', 'putSmwh'), 4: localizer.translate('classSettingsWidget', 'deleteObstacle') } self.fadeTypes = {0: localizer.translate( 'classSettingsWidget', 'instantly'), 1: localizer.translate( 'classSettingsWidget', 'fade')} self.layout = QtGui.QVBoxLayout() self.setLayout(self.layout) self.setSizePolicy(QtGui.QSizePolicy( QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed)) self.editor = parent self.imageCache = ImageCache() self.createOptionFields()
def __init__(self, titleLabelText, nameLabelText, canBeLocked=False, lockedText=None, parent=None): super(ObjectImageSettings, self).__init__(parent) self.layout = QtGui.QVBoxLayout() self.setLayout(self.layout) self.parent = parent self.labelLine = self.parent.createSeparator() self.titleLabel = QtGui.QLabel(titleLabelText) self.nameLabel = QtGui.QLabel(nameLabelText) self.nameEdit = QtGui.QLineEdit() self.nameEdit.focusOutEvent = lambda s: self.changeNameEdit() self.image = QtGui.QLabel(self) self.image.mousePressEvent = lambda s: self.parent.showImageDialog( lambda imagePath: self.changeImage(imagePath) ) # self.clickLabel = QtGui.QLabel("Teksti klikatessa") self.clickLabel = QtGui.QLabel(localizer.translate("ObjectImageSettings", "textAsClicked")) self.clickEdit = QtGui.QTextEdit() self.clickEdit.setMaximumHeight(50) self.clickEdit.focusOutEvent = lambda s: self.changeClickEdit() self.layout.addWidget(self.labelLine) self.layout.addWidget(self.titleLabel) self.canBeLocked = canBeLocked if self.canBeLocked: # TODO: Texts need to be set from outside self.lockedCheckbox = QtGui.QCheckBox(lockedText) self.lockedCheckbox.clicked.connect(self.changeLocked) self.keyLabel = QtGui.QLabel(localizer.translate("ObjectImageSettings", "whatOpens")) self.keyCombo = self.parent.createCombobox() self.layout.addWidget(self.lockedCheckbox) self.layout.addWidget(self.keyLabel) self.layout.addWidget(self.keyCombo) self.layout.addWidget(self.nameLabel) self.layout.addWidget(self.nameEdit) self.layout.addWidget(self.image) self.layout.addWidget(self.clickLabel) self.layout.addWidget(self.clickEdit)
def populateRoomCombobox(self, combobox, addChoice=True): if (addChoice): imgPixmap = self.imageCache.createPixmap(self.editor.newIconPath) combobox.addItem(imgPixmap, localizer.translate( 'classSettingsWidget', 'addRoom')) for room in self.editor.getRoomObjects(): # TODO model to eliminate redundancy from getName/roomName patterns roomName = room.getName() if not (roomName): roomName = localizer.translate( 'classSettingsWidget', 'roomHasNoName') imgPixmap = self.imageCache.createPixmap( room.getRepresentingImage().getRepresentingImage() .absoluteImagePath) roomIcon = QtGui.QIcon(imgPixmap) combobox.addItem(roomIcon, roomName, userData=room)
def updateComboboxes(self, objectType): objectType = objectType.lower() if objectType == "item": self.parent.updateItemCombobox( self.keyCombo, localizer.translate("ObjectImageSettings", "keyWasNotSelected"), ("item",), ("item",), self.clearKey, self.changeKey, )
def changeName(self, textEdit=None, gameObject=None): if not (gameObject): gameObject = self.currentObject if (textEdit): text = textEdit.text() else: text = self.objectNameEdit.text() if (len(text) == 0): text = localizer.translate( 'classSettingsWidget', 'objectHasNoName') gameObject.setName(text) self.updateParent()
def updateUseTargetCombobox(self, useType, combobox): if (useType == 0): objectTypes = () elif (useType == 1): objectTypes = ("item", "object") elif (useType == 2): objectTypes = ("door", "container") elif (useType == 3): objectTypes = ("container",) elif (useType == 4): objectTypes = ("obstacle",) self.populateCombobox( objectTypes, combobox, localizer.translate( 'classSettingsWidget', 'notSelected'), objectTypes, self.clearUseTarget)
def setObjectName(self, gameObject=None, textStart="Object", textEdit=None, overrideText=None): if not (gameObject): gameObject = self.currentObject if (overrideText): name = overrideText else: # Given image may be None try: name = gameObject.getName() except AttributeError: name = "" if (name is None): name = localizer.translate( 'classSettingsWidget', 'objectHasNoName') # If textEdit is defined, set its text instead if (textEdit): textEdit.setText(name) else: self.objectNameEdit.setText(name)
def updateWhatComesCombo(self): self.updateItemCombobox( self.whatComesCombo, localizer.translate( 'classSettingsWidget', 'noNothing'), ("item",), ("item",), connectTo=self.changeWhatComes)
def updateObstacleBlocksCombo(self): self.updateItemCombobox( self.obstacleBlocksCombo, localizer.translate( 'classSettingsWidget', 'noNothing'), ("door",), ("door",), noChoiceMethod=self.clearObstacleBlock, connectTo=self.changeObstacleBlock)
def updateDoorTransitionCombo(self): self.updateItemCombobox( self.doorTransitionCombo, localizer.translate( 'classSettingsWidget', 'notAnywhere'), "room", connectTo=self.changeDoorTransition)
def populateCombobox(self, objectTypes, combobox, noChoiceText=None, addChoices=None, noChoiceMethod=None): combobox.clear() itemCounter = 0 # Add the given string as the first item if (noChoiceText): imgPixmap = self.imageCache.createPixmap( self.editor.noChoiceIconPath) combobox.addItem(imgPixmap, noChoiceText, userData=noChoiceMethod) itemCounter = 1 # Add items to add given types of objects if (addChoices): imgPixmap = self.imageCache.createPixmap(self.editor.newIconPath) for choice in addChoices: combobox.addItem( imgPixmap, localizer.translate( 'classSettingsWidget', 'addNewChoice'), userData=choice) itemCounter += 1 for objType in objectTypes: objRooms = self.editor.getObjectsByType(objType) # Combobox has rooms with their obstacles under them for room in objRooms: roomObject = room["room"] roomName = roomObject.getName() if not (roomName): roomName = localizer.translate( 'classSettingsWidget', 'roomHasNoName') imgPixmap = self.imageCache.createPixmap( roomObject.getRepresentingImage().getRepresentingImage() .absoluteImagePath) roomIcon = QtGui.QIcon(imgPixmap) # Add room to the combobox and disallow choosing it combobox.addItem(roomIcon, roomName) combobox.setItemData(itemCounter, 0, QtCore.Qt.UserRole - 1) itemCounter += 1 # TODO: Indendation of objects in the combobox # Add objects under the room for obj in room["objects"]: # Don't display the triggering item itself if (obj == self.currentObject): continue if (obj.getClassname() == "Text"): continue imageObject = obj.getRepresentingImage()\ .getRepresentingImage() imgPixmap = self.imageCache.createPixmap( imageObject.absoluteImagePath) targetIcon = QtGui.QIcon(imgPixmap) objectName = obj.getName() if not (objectName): objectName = localizer.translate( 'classSettingsWidget', 'objectHasNoName') combobox.addItem(targetIcon, objectName, userData=obj) itemCounter += 1
def createOptionFields(self): # Name self.nameLabel = QtGui.QLabel(localizer.translate( 'classSettingsWidget', 'name')) self.objectNameEdit = QtGui.QLineEdit() self.objectNameEdit.editingFinished.connect(self.changeName) # General image self.imgTextLabel = QtGui.QLabel(localizer.translate( 'classSettingsWidget', 'image')) self.objectImage = QtGui.QLabel(self) self.objectImage.mousePressEvent =\ lambda s: self.showImageDialog(self.changeObjectImage) self.useTextEdit = QtGui.QTextEdit() self.useTextEdit.setMaximumHeight(50) self.useTextEdit.focusOutEvent = lambda s: self.changeUseText() # Ending checkbox self.endingCheckbox = QtGui.QCheckBox() # Set text afterwards self.endingCheckbox.setText(localizer.translate( 'classSettingsWidget', 'gameEndsIfClicked')) self.endingCheckbox.stateChanged.connect(self.changeEndingCheckbox) # Music self.musicLabel = QtGui.QLabel(localizer.translate( 'classSettingsWidget', 'music')) self.musicBtn = QtGui.QPushButton(localizer.translate( 'classSettingsWidget', 'browse'), self) self.musicBtn.setToolTip(localizer.translate( 'classSettingsWidget', 'chooseMusicFile')) self.musicBtn.resize(self.musicBtn.sizeHint()) self.musicBtn.clicked.connect( lambda: self.showMusicDialog(self.changeMusic)) self.musicTextEdit = QtGui.QLineEdit() self.musicTextEdit.setReadOnly(True) self.musicClear = QtGui.QPushButton(localizer.translate( 'classSettingsWidget', 'noMusic'), self) self.musicClear.clicked.connect(self.clearMusic) # Where from dropdown box # self.whereFromLabel = QtGui.QLabel( # "Mistä kulkureiteistä tänne pääsee?") # TODO: whereFromCombo self.examineTextLabel = QtGui.QLabel(localizer.translate( 'classSettingsWidget', 'textAsClicked')) self.examineTextEdit = QtGui.QTextEdit() self.examineTextEdit.setMaximumHeight(50) self.examineTextEdit.focusOutEvent = lambda s: self.changeExamineText() # Pickup text section self.pickupLabel = QtGui.QLabel(localizer.translate( 'classSettingsWidget', 'picked')) self.pickupLabelLine = self.createSeparator() self.pickupLabelLine.setFrameStyle( QtGui.QFrame.HLine | QtGui.QFrame.Raised) self.pickupTextLabel = QtGui.QLabel(localizer.translate( 'classSettingsWidget', 'textIfPicked')) self.pickupTextEdit = QtGui.QTextEdit() self.pickupTextEdit.setMaximumHeight(50) self.pickupTextEdit.focusOutEvent = lambda s: self.changePickupText() # Object usage self.useLabel = QtGui.QLabel(localizer.translate( 'classSettingsWidget', 'usage')) self.useLabelLine = self.createSeparator() # Object type of usage self.useTypeCombo = QtGui.QComboBox(self) for i in self.useTypes: self.useTypeCombo.addItem(self.useTypes[i]) self.useTypeCombo.activated.connect(self.changeItemUseType) self.useTextLabel = QtGui.QLabel(localizer.translate( 'classSettingsWidget', 'textIfUsed')) # Use target self.useTargetCombo = self.createCombobox() self.updateUseTargetCombo() self.allTextsButton = QtGui.QPushButton(localizer.translate( 'classSettingsWidget', 'theseAndOtherTexts')) self.allTextsButton.clicked.connect(self.showAllTexts) # Door widgets self.doorTransitionLabel = QtGui.QLabel(localizer.translate( 'classSettingsWidget', 'whereItGoes')) self.doorTransitionCombo = self.createCombobox() self.updateDoorTransitionCombo() self.doorInitialStateLabel = QtGui.QLabel(localizer.translate( 'classSettingsWidget', 'spaceAtStart')) self.doorInitialStateCombo = QtGui.QComboBox(self) self.doorInitialStateCombo.addItem(localizer.translate( 'classSettingsWidget', 'shut')) self.doorInitialStateCombo.addItem(localizer.translate( 'classSettingsWidget', 'open')) self.doorInitialStateCombo.activated.connect( lambda s: self.objectComboboxHandler( self.doorInitialStateCombo, self.changeDoorInitialState)) self.openDoorImage = ObjectImageSettings( localizer.translate( 'classSettingsWidget', 'openDoor'), localizer.translate('classSettingsWidget', 'openDoorName'), parent=self) self.closedDoorImage = ObjectImageSettings( localizer.translate( 'classSettingsWidget', 'closedDoor'), localizer.translate( 'classSettingsWidget', 'closedDoorName'), parent=self) self.lockedDoorImage = ObjectImageSettings( localizer.translate( 'classSettingsWidget', 'lockedDoor'), localizer.translate( 'classSettingsWidget', 'lockedDoorName'), True, localizer.translate('classSettingsWidget', 'locked'), parent=self) # Container widgets self.lockedContainerImage = ObjectImageSettings( localizer.translate( 'classSettingsWidget', 'lockedContainer'), localizer.translate( 'classSettingsWidget', 'lockedContainerName'), True, localizer.translate( 'classSettingsWidget', 'locked'), parent=self) self.fullContainerImage = ObjectImageSettings( localizer.translate( 'classSettingsWidget', 'openContainer'), localizer.translate( 'classSettingsWidget', 'openContainerName'), parent=self) self.emptyContainerImage = ObjectImageSettings( localizer.translate( 'classSettingsWidget', 'emptyContainer'), localizer.translate( 'classSettingsWidget', 'emptyContainerName'), parent=self) # Obstacle widgets self.obstacleImage = ObjectImageSettings( None, localizer.translate( 'classSettingsWidget', 'whatObstructs'), False, parent=self) self.obstacleBlocksLabel = QtGui.QLabel(localizer.translate( 'classSettingsWidget', 'whatObstructs')) self.obstacleBlocksCombo = self.createCombobox() self.updateObstacleBlocksCombo() self.whatGoesLabel = QtGui.QLabel(localizer.translate( 'classSettingsWidget', 'whatGoesToContainer')) self.whatGoesCombo = self.createCombobox() self.updateWhatGoesCombo() self.whatComesLabel = QtGui.QLabel(localizer.translate( 'classSettingsWidget', 'whatComesFromContainer') ) self.whatComesCombo = self.createCombobox() self.updateWhatComesCombo() self.useConsumeCheckbox = QtGui.QCheckBox() # Set text afterwards self.useConsumeCheckbox.stateChanged.connect(self.changeUseConsume) self.outcomeLabel = QtGui.QLabel(localizer.translate( 'classSettingsWidget', 'endResult') ) self.outcomeCombobox = self.createCombobox() self.updateOutcomeCombobox() # Sequence self.sequenceTimeLabel = QtGui.QLabel( localizer.translate( 'classSettingsWidget', 'imageShowTime')) self.sequenceTimeEdit = QtGui.QLineEdit() self.sequenceTimeEdit.setInputMask("9,9") self.sequenceTimeEdit.focusOutEvent =\ lambda s: self.changeSequenceTime() self.sequenceFadeLabel = QtGui.QLabel(localizer.translate( 'classSettingsWidget', 'fadeType')) self.sequenceFadeCombo = QtGui.QComboBox(self) for i in self.fadeTypes: self.sequenceFadeCombo.addItem(self.fadeTypes[i]) self.sequenceFadeCombo.activated.connect(self.changeSequenceFadeCombo) # End self.textObjectTextLabel = QtGui.QLabel(localizer.translate( 'classSettingsWidget', 'text')) self.textObjectTextEdit = QtGui.QLineEdit() self.textObjectTextEdit.focusOutEvent =\ lambda s: self.changeTextObjectText() self.layout.addWidget(self.textObjectTextLabel) self.layout.addWidget(self.textObjectTextEdit) self.layout.addWidget(self.nameLabel) self.layout.addWidget(self.objectNameEdit) self.layout.addWidget(self.imgTextLabel) self.layout.addWidget(self.objectImage) self.layout.addWidget(self.musicLabel) self.layout.addWidget(self.musicTextEdit) self.layout.addWidget(self.musicBtn) self.layout.addWidget(self.musicClear) #self.layout.addWidget(self.whereFromLabel) self.layout.addWidget(self.endingCheckbox) self.layout.addWidget(self.examineTextLabel) self.layout.addWidget(self.examineTextEdit) self.layout.addWidget(self.pickupLabelLine) self.layout.addWidget(self.pickupLabel) self.layout.addWidget(self.pickupTextLabel) self.layout.addWidget(self.pickupTextEdit) self.layout.addWidget(self.useLabelLine) self.layout.addWidget(self.useLabel) self.layout.addWidget(self.useTypeCombo) self.layout.addWidget(self.useTargetCombo) self.layout.addWidget(self.useConsumeCheckbox) self.layout.addWidget(self.outcomeLabel) self.layout.addWidget(self.outcomeCombobox) self.layout.addWidget(self.useTextLabel) self.layout.addWidget(self.useTextEdit) self.layout.addWidget(self.allTextsButton) #self.layout.addWidget(self.doorTransitionLabelLine) self.layout.addWidget(self.doorTransitionLabel) self.layout.addWidget(self.doorTransitionCombo) self.layout.addWidget(self.doorInitialStateLabel) self.layout.addWidget(self.doorInitialStateCombo) self.layout.addWidget(self.openDoorImage) self.layout.addWidget(self.lockedDoorImage) self.layout.addWidget(self.closedDoorImage) self.layout.addWidget(self.whatGoesLabel) self.layout.addWidget(self.whatGoesCombo) self.layout.addWidget(self.whatComesLabel) self.layout.addWidget(self.whatComesCombo) self.layout.addWidget(self.fullContainerImage) self.layout.addWidget(self.lockedContainerImage) self.layout.addWidget(self.emptyContainerImage) self.layout.addWidget(self.obstacleBlocksLabel) self.layout.addWidget(self.obstacleBlocksCombo) self.layout.addWidget(self.obstacleImage) self.layout.addWidget(self.sequenceTimeLabel) self.layout.addWidget(self.sequenceTimeEdit) self.layout.addWidget(self.sequenceFadeLabel) self.layout.addWidget(self.sequenceFadeCombo) # Removebuttons self.removeObjectButton = QtGui.QPushButton( localizer.translate( 'classSettingsWidget', 'removeObject')) self.layout.addWidget(self.removeObjectButton) self.removeObjectButton.clicked.connect(lambda: self.removeObject()) self.removeViewButton = QtGui.QPushButton( localizer.translate( 'classSettingsWidget', 'removeView')) self.layout.addWidget(self.removeViewButton) self.removeViewButton.clicked.connect(lambda: self.removeView()) # Which widgets are shown with each object self.itemSettings = { "Room": [ self.imgTextLabel, self.objectImage, self.nameLabel, self.objectNameEdit, self.musicLabel, self.musicTextEdit, self.musicBtn, self.musicClear, self.removeViewButton #self.whereFromLabel # TODO: doorCombo for "where from" values ], "Sequence": [ self.nameLabel, self.objectNameEdit, self.musicLabel, self.musicTextEdit, self.musicBtn, self.musicClear, self.removeViewButton ], "SequenceImage": [ self.imgTextLabel, self.objectImage, self.sequenceTimeLabel, self.sequenceTimeEdit, self.sequenceFadeLabel, self.sequenceFadeCombo, self.removeViewButton ], "End": [ self.imgTextLabel, self.objectImage, self.nameLabel, self.objectNameEdit, self.musicLabel, self.musicTextEdit, self.musicBtn, self.musicClear, ], "Text": [ self.textObjectTextLabel, self.textObjectTextEdit ], "BeginningImage": [ self.imgTextLabel, self.objectImage, ], "JSONImage": [ self.imgTextLabel, self.objectImage, ], "Start": [ self.musicLabel, self.musicTextEdit, self.musicBtn, self.musicClear, ], "MenuImage": [ self.imgTextLabel, self.objectImage, ], "Item": [ self.nameLabel, self.objectNameEdit, self.imgTextLabel, self.objectImage, self.examineTextLabel, self.examineTextEdit, self.pickupLabelLine, self.pickupLabel, self.pickupTextLabel, self.pickupTextEdit, self.useLabelLine, self.useLabel, self.useTypeCombo, self.useTargetCombo, self.useTextLabel, self.useTextEdit, self.allTextsButton, self.useConsumeCheckbox, self.outcomeLabel, self.outcomeCombobox, self.removeObjectButton ], "Object": [ self.nameLabel, self.objectNameEdit, self.imgTextLabel, self.objectImage, self.endingCheckbox, self.examineTextLabel, self.examineTextEdit, self.removeObjectButton ], "Door": [ #self.doorTransitionLabelLine, self.doorTransitionLabel, self.doorTransitionCombo, self.doorInitialStateLabel, self.doorInitialStateCombo, self.openDoorImage, self.closedDoorImage, self.lockedDoorImage, self.removeObjectButton ], "Container": [ self.lockedContainerImage, self.fullContainerImage, self.emptyContainerImage, self.whatGoesLabel, self.whatGoesCombo, self.whatComesLabel, self.whatComesCombo, self.removeObjectButton ], "Obstacle": [ self.obstacleImage, self.obstacleBlocksLabel, self.obstacleBlocksCombo, self.removeObjectButton ] } # Hide every widget for key in self.itemSettings: for item in self.itemSettings[key]: item.hide()
def updateUseTargetCombo(self): self.updateItemCombobox( self.useTargetCombo, localizer.translate( 'classSettingsWidget', 'notSelected'), connectTo=self.changeUseTarget)
def createOptionFields(self): # Name self.nameLabel = QtGui.QLabel( localizer.translate('classSettingsWidget', 'name')) self.objectNameEdit = QtGui.QLineEdit() self.objectNameEdit.editingFinished.connect(self.changeName) # General image self.imgTextLabel = QtGui.QLabel( localizer.translate('classSettingsWidget', 'image')) self.objectImage = QtGui.QLabel(self) self.objectImage.mousePressEvent =\ lambda s: self.showImageDialog(self.changeObjectImage) self.useTextEdit = QtGui.QTextEdit() self.useTextEdit.setMaximumHeight(50) self.useTextEdit.focusOutEvent = lambda s: self.changeUseText() # Ending checkbox self.endingCheckbox = QtGui.QCheckBox() # Set text afterwards self.endingCheckbox.setText( localizer.translate('classSettingsWidget', 'gameEndsIfClicked')) self.endingCheckbox.stateChanged.connect(self.changeEndingCheckbox) # Music self.musicLabel = QtGui.QLabel( localizer.translate('classSettingsWidget', 'music')) self.musicBtn = QtGui.QPushButton( localizer.translate('classSettingsWidget', 'browse'), self) self.musicBtn.setToolTip( localizer.translate('classSettingsWidget', 'chooseMusicFile')) self.musicBtn.resize(self.musicBtn.sizeHint()) self.musicBtn.clicked.connect( lambda: self.showMusicDialog(self.changeMusic)) self.musicTextEdit = QtGui.QLineEdit() self.musicTextEdit.setReadOnly(True) self.musicClear = QtGui.QPushButton( localizer.translate('classSettingsWidget', 'noMusic'), self) self.musicClear.clicked.connect(self.clearMusic) # Where from dropdown box # self.whereFromLabel = QtGui.QLabel( # "Mistä kulkureiteistä tänne pääsee?") # TODO: whereFromCombo self.examineTextLabel = QtGui.QLabel( localizer.translate('classSettingsWidget', 'textAsClicked')) self.examineTextEdit = QtGui.QTextEdit() self.examineTextEdit.setMaximumHeight(50) self.examineTextEdit.focusOutEvent = lambda s: self.changeExamineText() # Pickup text section self.pickupLabel = QtGui.QLabel( localizer.translate('classSettingsWidget', 'picked')) self.pickupLabelLine = self.createSeparator() self.pickupLabelLine.setFrameStyle(QtGui.QFrame.HLine | QtGui.QFrame.Raised) self.pickupTextLabel = QtGui.QLabel( localizer.translate('classSettingsWidget', 'textIfPicked')) self.pickupTextEdit = QtGui.QTextEdit() self.pickupTextEdit.setMaximumHeight(50) self.pickupTextEdit.focusOutEvent = lambda s: self.changePickupText() # Object usage self.useLabel = QtGui.QLabel( localizer.translate('classSettingsWidget', 'usage')) self.useLabelLine = self.createSeparator() # Object type of usage self.useTypeCombo = QtGui.QComboBox(self) for i in self.useTypes: self.useTypeCombo.addItem(self.useTypes[i]) self.useTypeCombo.activated.connect(self.changeItemUseType) self.useTextLabel = QtGui.QLabel( localizer.translate('classSettingsWidget', 'textIfUsed')) # Use target self.useTargetCombo = self.createCombobox() self.updateUseTargetCombo() self.allTextsButton = QtGui.QPushButton( localizer.translate('classSettingsWidget', 'theseAndOtherTexts')) self.allTextsButton.clicked.connect(self.showAllTexts) # Door widgets self.doorTransitionLabel = QtGui.QLabel( localizer.translate('classSettingsWidget', 'whereItGoes')) self.doorTransitionCombo = self.createCombobox() self.updateDoorTransitionCombo() self.doorInitialStateLabel = QtGui.QLabel( localizer.translate('classSettingsWidget', 'spaceAtStart')) self.doorInitialStateCombo = QtGui.QComboBox(self) self.doorInitialStateCombo.addItem( localizer.translate('classSettingsWidget', 'shut')) self.doorInitialStateCombo.addItem( localizer.translate('classSettingsWidget', 'open')) self.doorInitialStateCombo.activated.connect( lambda s: self.objectComboboxHandler(self.doorInitialStateCombo, self.changeDoorInitialState)) self.openDoorImage = ObjectImageSettings( localizer.translate('classSettingsWidget', 'openDoor'), localizer.translate('classSettingsWidget', 'openDoorName'), parent=self) self.closedDoorImage = ObjectImageSettings( localizer.translate('classSettingsWidget', 'closedDoor'), localizer.translate('classSettingsWidget', 'closedDoorName'), parent=self) self.lockedDoorImage = ObjectImageSettings( localizer.translate('classSettingsWidget', 'lockedDoor'), localizer.translate('classSettingsWidget', 'lockedDoorName'), True, localizer.translate('classSettingsWidget', 'locked'), parent=self) # Container widgets self.lockedContainerImage = ObjectImageSettings( localizer.translate('classSettingsWidget', 'lockedContainer'), localizer.translate('classSettingsWidget', 'lockedContainerName'), True, localizer.translate('classSettingsWidget', 'locked'), parent=self) self.fullContainerImage = ObjectImageSettings( localizer.translate('classSettingsWidget', 'openContainer'), localizer.translate('classSettingsWidget', 'openContainerName'), parent=self) self.emptyContainerImage = ObjectImageSettings( localizer.translate('classSettingsWidget', 'emptyContainer'), localizer.translate('classSettingsWidget', 'emptyContainerName'), parent=self) # Obstacle widgets self.obstacleImage = ObjectImageSettings(None, localizer.translate( 'classSettingsWidget', 'whatObstructs'), False, parent=self) self.obstacleBlocksLabel = QtGui.QLabel( localizer.translate('classSettingsWidget', 'whatObstructs')) self.obstacleBlocksCombo = self.createCombobox() self.updateObstacleBlocksCombo() self.whatGoesLabel = QtGui.QLabel( localizer.translate('classSettingsWidget', 'whatGoesToContainer')) self.whatGoesCombo = self.createCombobox() self.updateWhatGoesCombo() self.whatComesLabel = QtGui.QLabel( localizer.translate('classSettingsWidget', 'whatComesFromContainer')) self.whatComesCombo = self.createCombobox() self.updateWhatComesCombo() self.useConsumeCheckbox = QtGui.QCheckBox() # Set text afterwards self.useConsumeCheckbox.stateChanged.connect(self.changeUseConsume) self.outcomeLabel = QtGui.QLabel( localizer.translate('classSettingsWidget', 'endResult')) self.outcomeCombobox = self.createCombobox() self.updateOutcomeCombobox() # Sequence self.sequenceTimeLabel = QtGui.QLabel( localizer.translate('classSettingsWidget', 'imageShowTime')) self.sequenceTimeEdit = QtGui.QLineEdit() self.sequenceTimeEdit.setInputMask("9,9") self.sequenceTimeEdit.focusOutEvent =\ lambda s: self.changeSequenceTime() self.sequenceFadeLabel = QtGui.QLabel( localizer.translate('classSettingsWidget', 'fadeType')) self.sequenceFadeCombo = QtGui.QComboBox(self) for i in self.fadeTypes: self.sequenceFadeCombo.addItem(self.fadeTypes[i]) self.sequenceFadeCombo.activated.connect(self.changeSequenceFadeCombo) # End self.textObjectTextLabel = QtGui.QLabel( localizer.translate('classSettingsWidget', 'text')) self.textObjectTextEdit = QtGui.QLineEdit() self.textObjectTextEdit.focusOutEvent =\ lambda s: self.changeTextObjectText() self.layout.addWidget(self.textObjectTextLabel) self.layout.addWidget(self.textObjectTextEdit) self.layout.addWidget(self.nameLabel) self.layout.addWidget(self.objectNameEdit) self.layout.addWidget(self.imgTextLabel) self.layout.addWidget(self.objectImage) self.layout.addWidget(self.musicLabel) self.layout.addWidget(self.musicTextEdit) self.layout.addWidget(self.musicBtn) self.layout.addWidget(self.musicClear) #self.layout.addWidget(self.whereFromLabel) self.layout.addWidget(self.endingCheckbox) self.layout.addWidget(self.examineTextLabel) self.layout.addWidget(self.examineTextEdit) self.layout.addWidget(self.pickupLabelLine) self.layout.addWidget(self.pickupLabel) self.layout.addWidget(self.pickupTextLabel) self.layout.addWidget(self.pickupTextEdit) self.layout.addWidget(self.useLabelLine) self.layout.addWidget(self.useLabel) self.layout.addWidget(self.useTypeCombo) self.layout.addWidget(self.useTargetCombo) self.layout.addWidget(self.useConsumeCheckbox) self.layout.addWidget(self.outcomeLabel) self.layout.addWidget(self.outcomeCombobox) self.layout.addWidget(self.useTextLabel) self.layout.addWidget(self.useTextEdit) self.layout.addWidget(self.allTextsButton) #self.layout.addWidget(self.doorTransitionLabelLine) self.layout.addWidget(self.doorTransitionLabel) self.layout.addWidget(self.doorTransitionCombo) self.layout.addWidget(self.doorInitialStateLabel) self.layout.addWidget(self.doorInitialStateCombo) self.layout.addWidget(self.openDoorImage) self.layout.addWidget(self.lockedDoorImage) self.layout.addWidget(self.closedDoorImage) self.layout.addWidget(self.whatGoesLabel) self.layout.addWidget(self.whatGoesCombo) self.layout.addWidget(self.whatComesLabel) self.layout.addWidget(self.whatComesCombo) self.layout.addWidget(self.fullContainerImage) self.layout.addWidget(self.lockedContainerImage) self.layout.addWidget(self.emptyContainerImage) self.layout.addWidget(self.obstacleBlocksLabel) self.layout.addWidget(self.obstacleBlocksCombo) self.layout.addWidget(self.obstacleImage) self.layout.addWidget(self.sequenceTimeLabel) self.layout.addWidget(self.sequenceTimeEdit) self.layout.addWidget(self.sequenceFadeLabel) self.layout.addWidget(self.sequenceFadeCombo) # Removebuttons self.removeObjectButton = QtGui.QPushButton( localizer.translate('classSettingsWidget', 'removeObject')) self.layout.addWidget(self.removeObjectButton) self.removeObjectButton.clicked.connect(lambda: self.removeObject()) self.removeViewButton = QtGui.QPushButton( localizer.translate('classSettingsWidget', 'removeView')) self.layout.addWidget(self.removeViewButton) self.removeViewButton.clicked.connect(lambda: self.removeView()) # Which widgets are shown with each object self.itemSettings = { "Room": [ self.imgTextLabel, self.objectImage, self.nameLabel, self.objectNameEdit, self.musicLabel, self.musicTextEdit, self.musicBtn, self.musicClear, self.removeViewButton #self.whereFromLabel # TODO: doorCombo for "where from" values ], "Sequence": [ self.nameLabel, self.objectNameEdit, self.musicLabel, self.musicTextEdit, self.musicBtn, self.musicClear, self.removeViewButton ], "SequenceImage": [ self.imgTextLabel, self.objectImage, self.sequenceTimeLabel, self.sequenceTimeEdit, self.sequenceFadeLabel, self.sequenceFadeCombo, self.removeViewButton ], "End": [ self.imgTextLabel, self.objectImage, self.nameLabel, self.objectNameEdit, self.musicLabel, self.musicTextEdit, self.musicBtn, self.musicClear, ], "Text": [self.textObjectTextLabel, self.textObjectTextEdit], "BeginningImage": [ self.imgTextLabel, self.objectImage, ], "JSONImage": [ self.imgTextLabel, self.objectImage, ], "Start": [ self.musicLabel, self.musicTextEdit, self.musicBtn, self.musicClear, ], "MenuImage": [ self.imgTextLabel, self.objectImage, ], "Item": [ self.nameLabel, self.objectNameEdit, self.imgTextLabel, self.objectImage, self.examineTextLabel, self.examineTextEdit, self.pickupLabelLine, self.pickupLabel, self.pickupTextLabel, self.pickupTextEdit, self.useLabelLine, self.useLabel, self.useTypeCombo, self.useTargetCombo, self.useTextLabel, self.useTextEdit, self.allTextsButton, self.useConsumeCheckbox, self.outcomeLabel, self.outcomeCombobox, self.removeObjectButton ], "Object": [ self.nameLabel, self.objectNameEdit, self.imgTextLabel, self.objectImage, self.endingCheckbox, self.examineTextLabel, self.examineTextEdit, self.removeObjectButton ], "Door": [ #self.doorTransitionLabelLine, self.doorTransitionLabel, self.doorTransitionCombo, self.doorInitialStateLabel, self.doorInitialStateCombo, self.openDoorImage, self.closedDoorImage, self.lockedDoorImage, self.removeObjectButton ], "Container": [ self.lockedContainerImage, self.fullContainerImage, self.emptyContainerImage, self.whatGoesLabel, self.whatGoesCombo, self.whatComesLabel, self.whatComesCombo, self.removeObjectButton ], "Obstacle": [ self.obstacleImage, self.obstacleBlocksLabel, self.obstacleBlocksCombo, self.removeObjectButton ] } # Hide every widget for key in self.itemSettings: for item in self.itemSettings[key]: item.hide()