address_field in sweep dialog
This commit is contained in:
@@ -1905,9 +1905,12 @@ class ElectrumWindow(QMainWindow):
|
|||||||
|
|
||||||
private_keys = {}
|
private_keys = {}
|
||||||
addresses = self.wallet.addresses(True)
|
addresses = self.wallet.addresses(True)
|
||||||
|
done = False
|
||||||
def privkeys_thread():
|
def privkeys_thread():
|
||||||
for addr in addresses:
|
for addr in addresses:
|
||||||
time.sleep(0.1)
|
time.sleep(0.1)
|
||||||
|
if done:
|
||||||
|
break
|
||||||
private_keys[addr] = "\n".join(self.wallet.get_private_key(addr, password))
|
private_keys[addr] = "\n".join(self.wallet.get_private_key(addr, password))
|
||||||
d.emit(SIGNAL('computing_privkeys'))
|
d.emit(SIGNAL('computing_privkeys'))
|
||||||
d.emit(SIGNAL('show_privkeys'))
|
d.emit(SIGNAL('show_privkeys'))
|
||||||
@@ -1922,6 +1925,7 @@ class ElectrumWindow(QMainWindow):
|
|||||||
threading.Thread(target=privkeys_thread).start()
|
threading.Thread(target=privkeys_thread).start()
|
||||||
|
|
||||||
if not d.exec_():
|
if not d.exec_():
|
||||||
|
done = True
|
||||||
return
|
return
|
||||||
|
|
||||||
filename = filename_e.text()
|
filename = filename_e.text()
|
||||||
@@ -2028,6 +2032,7 @@ class ElectrumWindow(QMainWindow):
|
|||||||
def sweep_key_dialog(self):
|
def sweep_key_dialog(self):
|
||||||
d = QDialog(self)
|
d = QDialog(self)
|
||||||
d.setWindowTitle(_('Sweep private keys'))
|
d.setWindowTitle(_('Sweep private keys'))
|
||||||
|
d.setMinimumSize(600, 300)
|
||||||
|
|
||||||
vbox = QVBoxLayout(d)
|
vbox = QVBoxLayout(d)
|
||||||
vbox.addWidget(QLabel(_("Enter private keys")))
|
vbox.addWidget(QLabel(_("Enter private keys")))
|
||||||
@@ -2035,20 +2040,33 @@ class ElectrumWindow(QMainWindow):
|
|||||||
keys_e = QTextEdit()
|
keys_e = QTextEdit()
|
||||||
keys_e.setTabChangesFocus(True)
|
keys_e.setTabChangesFocus(True)
|
||||||
vbox.addWidget(keys_e)
|
vbox.addWidget(keys_e)
|
||||||
|
|
||||||
|
h, address_e = address_field(self.wallet.addresses())
|
||||||
|
vbox.addLayout(h)
|
||||||
|
|
||||||
vbox.addStretch(1)
|
vbox.addStretch(1)
|
||||||
hbox, button = ok_cancel_buttons2(d, _('Sweep'))
|
hbox, button = ok_cancel_buttons2(d, _('Sweep'))
|
||||||
vbox.addLayout(hbox)
|
vbox.addLayout(hbox)
|
||||||
button.setEnabled(False)
|
button.setEnabled(False)
|
||||||
|
|
||||||
keys_e.textChanged.connect(lambda: button.setEnabled(Wallet.is_private_key(str(keys_e.toPlainText()).strip())))
|
def get_address():
|
||||||
|
addr = str(address_e.text())
|
||||||
|
if bitcoin.is_address(addr):
|
||||||
|
return addr
|
||||||
|
|
||||||
|
def get_pk():
|
||||||
|
pk = str(keys_e.toPlainText()).strip()
|
||||||
|
if Wallet.is_private_key(pk):
|
||||||
|
return pk.split()
|
||||||
|
|
||||||
|
f = lambda: button.setEnabled(get_address() is not None and get_pk() is not None)
|
||||||
|
keys_e.textChanged.connect(f)
|
||||||
|
address_e.textChanged.connect(f)
|
||||||
if not d.exec_():
|
if not d.exec_():
|
||||||
return
|
return
|
||||||
|
|
||||||
text = str(keys_e.toPlainText()).strip()
|
|
||||||
privkeys = text.split()
|
|
||||||
to_address = self.wallet.addresses()[0]
|
|
||||||
fee = self.wallet.fee
|
fee = self.wallet.fee
|
||||||
tx = Transaction.sweep(privkeys, self.network, to_address, fee)
|
tx = Transaction.sweep(get_pk(), self.network, get_address(), fee)
|
||||||
self.show_transaction(tx)
|
self.show_transaction(tx)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -78,6 +78,27 @@ def text_dialog(parent, title, label, ok_label, default=None):
|
|||||||
return unicode(txt.toPlainText())
|
return unicode(txt.toPlainText())
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
def address_field(addresses):
|
||||||
|
hbox = QHBoxLayout()
|
||||||
|
address_e = QLineEdit()
|
||||||
|
if addresses:
|
||||||
|
address_e.setText(addresses[0])
|
||||||
|
def func():
|
||||||
|
i = addresses.index(str(address_e.text())) + 1
|
||||||
|
i = i % len(addresses)
|
||||||
|
address_e.setText(addresses[i])
|
||||||
|
button = QPushButton(_('Address'))
|
||||||
|
button.clicked.connect(func)
|
||||||
|
hbox.addWidget(button)
|
||||||
|
hbox.addWidget(address_e)
|
||||||
|
return hbox, address_e
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class MyTreeWidget(QTreeWidget):
|
class MyTreeWidget(QTreeWidget):
|
||||||
def __init__(self, parent):
|
def __init__(self, parent):
|
||||||
QTreeWidget.__init__(self, parent)
|
QTreeWidget.__init__(self, parent)
|
||||||
|
|||||||
Reference in New Issue
Block a user