From 8103874f6e0cbc9e65f61e0f33142ff097623ba5 Mon Sep 17 00:00:00 2001 From: mailchuck Date: Mon, 9 Nov 2015 18:22:38 +0100 Subject: [PATCH] Allow deleting channels Fixes #96 --- src/bitmessageqt/__init__.py | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/src/bitmessageqt/__init__.py b/src/bitmessageqt/__init__.py index 1831f5a2..fae731b6 100644 --- a/src/bitmessageqt/__init__.py +++ b/src/bitmessageqt/__init__.py @@ -226,6 +226,9 @@ class MyForm(settingsmixin.SMainWindow): # Actions self.actionNew = self.ui.addressContextMenuToolbar.addAction(_translate( "MainWindow", "New"), self.on_action_YourIdentitiesNew) + self.actionDelete = self.ui.addressContextMenuToolbar.addAction( + _translate("MainWindow", "Delete"), + self.on_action_YourIdentitiesDelete) self.actionEnable = self.ui.addressContextMenuToolbar.addAction( _translate( "MainWindow", "Enable"), self.on_action_Enable) @@ -459,7 +462,10 @@ class MyForm(settingsmixin.SMainWindow): widgets = {} for i in range (0, treeWidget.topLevelItemCount()): widget = treeWidget.topLevelItem(i) - toAddress = widget.address + if widget is not None: + toAddress = widget.address + else: + toAddress = None if not toAddress in db: treeWidget.takeTopLevelItem(i) @@ -3561,6 +3567,24 @@ class MyForm(settingsmixin.SMainWindow): def on_action_YourIdentitiesNew(self): self.click_NewAddressDialog() + def on_action_YourIdentitiesDelete(self): + account = self.getCurrentItem() + if account.type == "normal": + return # maybe in the future + elif account.type == "chan": + if QtGui.QMessageBox.question(self, "Delete channel?", _translate("MainWindow", "If you delete the channel, messages that you already received will become inaccessible. Maybe you can consider disabling the channel instead. Disabled channels will not receive new messages, but you can still view messages you already received.\n\nAre you sure you want to delete the channel?"), QMessageBox.Yes|QMessageBox.No) == QMessageBox.Yes: + shared.config.remove_section(str(account.address)) + else: + return + else: + return + shared.writeKeysFile() + shared.reloadMyAddressHashes() + if account.type == "normal": + self.rerenderTabTreeMessages() + elif account.type == "chan": + self.rerenderTabTreeChans() + def on_action_Enable(self): addressAtCurrentRow = self.getCurrentAccount() self.enableIdentity(addressAtCurrentRow) @@ -3697,6 +3721,7 @@ class MyForm(settingsmixin.SMainWindow): def on_context_menuChan(self, point): self.popMenu = QtGui.QMenu(self) self.popMenu.addAction(self.actionNew) + self.popMenu.addAction(self.actionDelete) self.popMenu.addSeparator() self.popMenu.addAction(self.actionClipboard) self.popMenu.addSeparator()