Source code for puzzlestream.ui.nameedit

# -*- coding: utf-8 -*-
"""Name edit module.

contains PSNameEdit, a subclass of QLineEdit
"""

from PyQt5 import QtCore, QtGui, QtWidgets


[docs]class PSNameEdit(QtWidgets.QLineEdit): nameChanged = QtCore.pyqtSignal(object) def __init__(self, text: str, inactiveColor: QtGui.QColor, parent: QtCore.QObject = None): super().__init__(text, parent) self.returnPressed.connect(self.__leaveEdit) self.__activeColor = self.palette().color(self.backgroundRole()) self.__inactiveColor = inactiveColor self.__setInactiveColors() font = self.font() font.setPixelSize(15) self.setFont(font)
[docs] def mouseDoubleClickEvent(self, *args): self.setReadOnly(False) self.setClearButtonEnabled(True) self.__setActiveColors() super().mouseDoubleClickEvent(*args)
[docs] def setReadOnly(self, readonly: bool): super().setReadOnly(readonly)
def __leaveEdit(self): self.setReadOnly(True) self.clearFocus() self.__setInactiveColors() self.setClearButtonEnabled(False) self.nameChanged.emit(self.text()) def __setInactiveColors(self): palette = self.palette() palette.setColor(self.backgroundRole(), self.__inactiveColor) self.setPalette(palette) def __setActiveColors(self): palette = self.palette() palette.setColor(self.backgroundRole(), self.__activeColor) self.setPalette(palette)
[docs] def focusOutEvent(self, event): self.__leaveEdit() super().focusOutEvent(event)