Browse Source

Allow the QR code in the receive tab to be variable size

patch-4
ThomasV 3 years ago
parent
commit
0431cd825e
  1. 22
      electrum/gui/qt/main_window.py
  2. 7
      electrum/gui/qt/util.py

22
electrum/gui/qt/main_window.py

@ -1212,22 +1212,20 @@ class ElectrumWindow(QMainWindow, MessageBoxMixin, Logger):
self.receive_lightning_help = QWidget()
self.receive_lightning_help.setVisible(False)
self.receive_lightning_help.setLayout(vbox)
self.receive_address_qr = QRCodeWidget()
self.receive_URI_qr = QRCodeWidget()
self.receive_lightning_qr = QRCodeWidget()
fixedSize = 200
min_size = QSize(200, 200)
for e in [self.receive_address_e, self.receive_URI_e, self.receive_lightning_e]:
e.setFont(QFont(MONOSPACE_FONT))
e.addCopyButton(self.app)
e.setReadOnly(True)
e.setFixedSize(fixedSize, fixedSize)
e.setMinimumSize(min_size)
for w in [self.receive_address_help, self.receive_lightning_help]:
w.setFixedSize(fixedSize, fixedSize)
self.receive_address_qr = QRCodeWidget()
self.receive_URI_qr = QRCodeWidget()
self.receive_lightning_qr = QRCodeWidget()
w.setMinimumSize(min_size)
for w in [self.receive_address_qr, self.receive_URI_qr, self.receive_lightning_qr]:
w.setFixedSize(fixedSize, fixedSize)
w.setMinimumSize(min_size)
self.receive_lightning_e.textChanged.connect(self.update_receive_widgets)
@ -1291,11 +1289,11 @@ class ElectrumWindow(QMainWindow, MessageBoxMixin, Logger):
w.searchable_list = self.request_list
vbox = QVBoxLayout(w)
vbox.addLayout(hbox)
vbox.addStretch(1)
vbox.addStretch()
vbox.addWidget(self.receive_requests_label)
vbox.addWidget(self.request_list)
vbox.setStretchFactor(self.request_list, 1000)
vbox.setStretchFactor(hbox, 40)
vbox.setStretchFactor(self.request_list, 60)
self.request_list.update() # after parented and put into a layout, can update without flickering
return w

7
electrum/gui/qt/util.py

@ -1428,6 +1428,13 @@ class VTabWidget(QtWidgets.QTabWidget):
self.setTabBar(VTabBar(self))
self.setTabPosition(QtWidgets.QTabWidget.West)
def resizeEvent(self, e):
# keep square aspect ratio when resized
size = e.size()
w = self.tabBar().width() + size.height()
self.setFixedWidth(w)
return super().resizeEvent(e)
if __name__ == "__main__":
app = QApplication([])

Loading…
Cancel
Save