kivy: fix delete_wallet
This commit is contained in:
parent
8886e5098a
commit
ccd0deb600
|
@ -371,7 +371,6 @@ BoxLayout:
|
||||||
text: app.status
|
text: app.status
|
||||||
font_size: '22dp'
|
font_size: '22dp'
|
||||||
minimum_width: '1dp'
|
minimum_width: '1dp'
|
||||||
disabled: app.wallet is None
|
|
||||||
on_release: app.popup_dialog('status')
|
on_release: app.popup_dialog('status')
|
||||||
|
|
||||||
ActionOverflow:
|
ActionOverflow:
|
||||||
|
|
|
@ -181,12 +181,6 @@ class ElectrumWindow(App):
|
||||||
:data:`ui_mode` is a read only `AliasProperty` Defaults to 'phone'
|
:data:`ui_mode` is a read only `AliasProperty` Defaults to 'phone'
|
||||||
'''
|
'''
|
||||||
|
|
||||||
wallet = ObjectProperty(None)
|
|
||||||
'''Holds the electrum wallet
|
|
||||||
|
|
||||||
:attr:`wallet` is a `ObjectProperty` defaults to None.
|
|
||||||
'''
|
|
||||||
|
|
||||||
def __init__(self, **kwargs):
|
def __init__(self, **kwargs):
|
||||||
# initialize variables
|
# initialize variables
|
||||||
self._clipboard = Clipboard
|
self._clipboard = Clipboard
|
||||||
|
@ -194,6 +188,7 @@ class ElectrumWindow(App):
|
||||||
self.nfcscanner = None
|
self.nfcscanner = None
|
||||||
self.tabs = None
|
self.tabs = None
|
||||||
self.is_exit = False
|
self.is_exit = False
|
||||||
|
self.wallet = None
|
||||||
|
|
||||||
super(ElectrumWindow, self).__init__(**kwargs)
|
super(ElectrumWindow, self).__init__(**kwargs)
|
||||||
|
|
||||||
|
@ -426,6 +421,7 @@ class ElectrumWindow(App):
|
||||||
def stop_wallet(self):
|
def stop_wallet(self):
|
||||||
if self.wallet:
|
if self.wallet:
|
||||||
self.wallet.stop_threads()
|
self.wallet.stop_threads()
|
||||||
|
self.wallet = None
|
||||||
|
|
||||||
def on_key_down(self, instance, key, keycode, codepoint, modifiers):
|
def on_key_down(self, instance, key, keycode, codepoint, modifiers):
|
||||||
if 'ctrl' in modifiers:
|
if 'ctrl' in modifiers:
|
||||||
|
@ -513,7 +509,6 @@ class ElectrumWindow(App):
|
||||||
interests = ['updated', 'status', 'new_transaction', 'verified']
|
interests = ['updated', 'status', 'new_transaction', 'verified']
|
||||||
self.network.register_callback(self.on_network, interests)
|
self.network.register_callback(self.on_network, interests)
|
||||||
|
|
||||||
#self.wallet = None
|
|
||||||
self.tabs = self.root.ids['tabs']
|
self.tabs = self.root.ids['tabs']
|
||||||
|
|
||||||
def on_network(self, event, *args):
|
def on_network(self, event, *args):
|
||||||
|
@ -744,18 +739,33 @@ class ElectrumWindow(App):
|
||||||
else:
|
else:
|
||||||
apply(f, args + (None,))
|
apply(f, args + (None,))
|
||||||
|
|
||||||
def delete_wallet(self, name):
|
def delete_wallet(self):
|
||||||
basename = os.path.basename(name)
|
from uix.dialogs.question import Question
|
||||||
def f(pw):
|
basename = os.path.basename(self.wallet.storage.path)
|
||||||
if self.wallet.use_encryption:
|
d = Question(_('Delete wallet?') + '\n' + basename, self._delete_wallet)
|
||||||
try:
|
d.open()
|
||||||
self.wallet.check_password(old_password)
|
|
||||||
except:
|
def _delete_wallet(self):
|
||||||
self.show_error("Invalid PIN")
|
basename = os.path.basename(self.wallet.storage.path)
|
||||||
return
|
self.protected(_("Enter your PIN code to confirm deletion of %s") % basename, self.__delete_wallet, ())
|
||||||
os.unlink, (name,)
|
|
||||||
self.show_error("File %s removed."%basename)
|
def __delete_wallet(self, pw):
|
||||||
self.protected(_("Enter your PIN code to delete %s") % basename, f, ())
|
wallet_path = self.get_wallet_path()
|
||||||
|
dirname = os.path.dirname(wallet_path)
|
||||||
|
basename = os.path.basename(wallet_path)
|
||||||
|
if self.wallet.use_encryption:
|
||||||
|
try:
|
||||||
|
self.wallet.check_password(pw)
|
||||||
|
except:
|
||||||
|
self.show_error("Invalid PIN")
|
||||||
|
return
|
||||||
|
self.stop_wallet()
|
||||||
|
os.unlink(wallet_path)
|
||||||
|
self.show_error("Wallet removed:" + basename)
|
||||||
|
d = os.listdir(dirname)
|
||||||
|
name = 'default_wallet'
|
||||||
|
new_path = os.path.join(dirname, name)
|
||||||
|
self.load_wallet_by_name(new_path)
|
||||||
|
|
||||||
def show_seed(self, label):
|
def show_seed(self, label):
|
||||||
self.protected(_("Enter your PIN code in order to decrypt your seed"), self._show_seed, (label,))
|
self.protected(_("Enter your PIN code in order to decrypt your seed"), self._show_seed, (label,))
|
||||||
|
@ -805,4 +815,3 @@ class ElectrumWindow(App):
|
||||||
self._password_dialog = PasswordDialog()
|
self._password_dialog = PasswordDialog()
|
||||||
self._password_dialog.init(msg, callback)
|
self._password_dialog.init(msg, callback)
|
||||||
self._password_dialog.open()
|
self._password_dialog.open()
|
||||||
|
|
||||||
|
|
|
@ -48,15 +48,6 @@ Builder.load_string('''
|
||||||
on_release:
|
on_release:
|
||||||
popup.dismiss()
|
popup.dismiss()
|
||||||
root.open_wallet(app)
|
root.open_wallet(app)
|
||||||
Button:
|
|
||||||
id: open_button
|
|
||||||
size_hint: 0.1, None
|
|
||||||
height: '48dp'
|
|
||||||
text: _('Delete')
|
|
||||||
disabled: not wallet_selector.selection
|
|
||||||
on_release:
|
|
||||||
popup.dismiss()
|
|
||||||
root.delete_wallet(app)
|
|
||||||
''')
|
''')
|
||||||
|
|
||||||
class WalletDialog(Factory.Popup):
|
class WalletDialog(Factory.Popup):
|
||||||
|
@ -71,8 +62,3 @@ class WalletDialog(Factory.Popup):
|
||||||
def open_wallet(self, app):
|
def open_wallet(self, app):
|
||||||
app.load_wallet_by_name(self.ids.wallet_selector.selection[0])
|
app.load_wallet_by_name(self.ids.wallet_selector.selection[0])
|
||||||
|
|
||||||
def delete_wallet(self, app):
|
|
||||||
from question import Question
|
|
||||||
name = self.ids.wallet_selector.selection[0]
|
|
||||||
d = Question(_('Delete wallet?') + '\n' + os.path.basename(name), lambda: app.delete_wallet(name))
|
|
||||||
d.open()
|
|
||||||
|
|
|
@ -70,5 +70,7 @@ Popup:
|
||||||
Button:
|
Button:
|
||||||
size_hint: 0.5, None
|
size_hint: 0.5, None
|
||||||
height: '48dp'
|
height: '48dp'
|
||||||
text: _('Close')
|
text: _('Delete')
|
||||||
on_release: root.dismiss()
|
on_release:
|
||||||
|
root.dismiss()
|
||||||
|
app.delete_wallet()
|
||||||
|
|
Loading…
Reference in New Issue