Scale down icons size, add RHS icons theory code
parent
6ac092d618
commit
3de4b9afbb
|
@ -157,12 +157,33 @@ class FontScaledDelegate(QStyledItemDelegate):
|
|||
else:
|
||||
return super().sizeHint(option, index)
|
||||
|
||||
# NOTE: hack to display icons on RHS
|
||||
# TODO: is there a way to set this stype option once?
|
||||
def paint(self, painter, option, index):
|
||||
# display icons on RHS
|
||||
# https://stackoverflow.com/a/39943629
|
||||
option.decorationPosition = QtGui.QStyleOptionViewItem.Right
|
||||
super().paint(painter, option, index)
|
||||
# def paint(self, painter, option, index):
|
||||
# # display icons on RHS
|
||||
# # https://stackoverflow.com/a/39943629
|
||||
# option.decorationPosition = QtGui.QStyleOptionViewItem.Right
|
||||
# option.decorationAlignment = Qt.AlignRight | Qt.AlignVCenter
|
||||
# QStyledItemDelegate.paint(self, painter, option, index)
|
||||
|
||||
|
||||
# NOTE: in theory we can put icons on the RHS side with this hackery:
|
||||
# https://stackoverflow.com/a/64256969
|
||||
# class ComboBox(QComboBox):
|
||||
# def __init__(
|
||||
# self,
|
||||
# parent=None,
|
||||
# ) -> None:
|
||||
# super().__init__(parent=parent)
|
||||
|
||||
# def showPopup(self):
|
||||
# print('show')
|
||||
# QComboBox.showPopup(self)
|
||||
|
||||
# def hidePopup(self):
|
||||
# # self.setItemDelegate(FontScaledDelegate(self.parent()))
|
||||
# print('hide')
|
||||
# QComboBox.hidePopup(self)
|
||||
|
||||
|
||||
# slew of resources which helped get this where it is:
|
||||
|
@ -171,7 +192,6 @@ class FontScaledDelegate(QStyledItemDelegate):
|
|||
# https://stackoverflow.com/questions/6337589/qlistwidget-adjust-size-to-content#6370892
|
||||
# https://stackoverflow.com/questions/25304267/qt-resize-of-qlistview
|
||||
# https://stackoverflow.com/questions/28227406/how-to-set-qlistview-rows-height-permanently
|
||||
|
||||
class FieldsForm(QWidget):
|
||||
|
||||
vbox: QVBoxLayout
|
||||
|
@ -287,7 +307,6 @@ class FieldsForm(QWidget):
|
|||
label = self.add_field_label(label_name)
|
||||
|
||||
select = QComboBox(self)
|
||||
|
||||
select._key = key
|
||||
select._items: dict[str, int] = {}
|
||||
|
||||
|
@ -313,6 +332,7 @@ class FieldsForm(QWidget):
|
|||
)
|
||||
view = select.view()
|
||||
view.setUniformItemSizes(True)
|
||||
|
||||
# TODO: this doesn't seem to work for the currently selected item?
|
||||
select.setItemDelegate(FontScaledDelegate(self))
|
||||
|
||||
|
@ -323,7 +343,8 @@ class FieldsForm(QWidget):
|
|||
br = _font.boundingRect(str(values[-1]))
|
||||
_, h = br.width(), br.height()
|
||||
|
||||
select.setIconSize(QSize(h, h))
|
||||
icon_size = round(h * 0.75)
|
||||
select.setIconSize(QSize(icon_size, icon_size))
|
||||
|
||||
# TODO: something better then this monkey patch
|
||||
# view._max_item_size = w, h
|
||||
|
@ -647,8 +668,7 @@ def mk_order_pane_layout(
|
|||
|
||||
) -> FieldsForm:
|
||||
|
||||
# font_size: int = _font_small.px_size - 2
|
||||
font_size: int = _font.px_size - 2
|
||||
font_size: int = _font.px_size - 1
|
||||
accounts = config.load_accounts()
|
||||
|
||||
# TODO: maybe just allocate the whole fields form here
|
||||
|
|
Loading…
Reference in New Issue