def sizeHint(self, option, index):

        options = QStyleOptionViewItem(option)
        self.initStyleOption(options, index)

        doc = QTextDocument()
        doc.setHtml(options.text)
        doc.setTextWidth(options.rect.width())
        return QSize(doc.idealWidth(), doc.size().height())
Ejemplo n.º 2
0
 def sizeHint(self, option, index):
     transaction_type = index.data(Qt.DisplayRole)
     fontMetrics = option.fontMetrics
     document = QTextDocument("W")
     option.font.setWeight(QFont.Bold)
     document.setDefaultFont(option.font)
     w = document.idealWidth()
     h = fontMetrics.height()
     if (transaction_type
             == TransactionType.Dividend) or (transaction_type
                                              == TransactionType.Trade):
         h = h * 2
     return QSize(w, h)
Ejemplo n.º 3
0
class DetailsDialog(QWidget):
    '''Dialog showing mod details'''
    def __init__(self, parent: QWidget, mod: Mod):
        super().__init__(parent)

        self.setWindowFlags(QtCore.Qt.Window)
        self.setObjectName("Details")
        self.resize(700, 800)
        self.setMinimumSize(600, 600)
        self.layout = QHBoxLayout(self)
        self.layout.setObjectName("layout")
        self.document = QTextDocument()
        self.document.setPlainText(str(mod))
        self.text = QTextEdit(self)
        self.text.setObjectName("text")
        self.text.setDocument(self.document)
        self.text.setAutoFormatting(QTextEdit.AutoAll)
        self.text.setReadOnly(True)
        self.text.setLineWrapMode(QTextEdit.NoWrap)
        self.layout.addWidget(self.text)

        self.setWindowTitle(mod.name + " " + TRANSLATE("Details", "Details"))
        QtCore.QMetaObject.connectSlotsByName(self)

    def adjustWidth(self):
        '''Fits size to content'''
        self.resize(
            self.document.idealWidth() + self.text.contentsMargins().left() +
            self.text.contentsMargins().right() +
            self.contentsMargins().left() + self.contentsMargins().right() +
            50, self.height())

    def showEvent(self, event):
        '''Qt show event'''
        super().showEvent(event)
        self.adjustWidth()

    def keyPressEvent(self, event):
        '''Qt KeyPressEvent override'''
        if event.key() == QtCore.Qt.Key_Escape:
            self.close()