tcompletion support for destination addresses. - electrum - Electrum Bitcoin wallet HTML git clone https://git.parazyd.org/electrum DIR Log DIR Files DIR Refs DIR Submodules --- DIR commit 690908ddce50dec74c935d6d5c7e071cff1b5789 DIR parent f2b8837fbcd3ee9672cb85322047d9675dff93dc HTML Author: Amir Taaki <genjix@riseup.net> Date: Mon, 2 Jul 2012 21:49:14 +0200 completion support for destination addresses. Diffstat: M lib/gui_lite.py | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) --- DIR diff --git a/lib/gui_lite.py b/lib/gui_lite.py t@@ -44,6 +44,7 @@ class ElectrumGui: timer = Timer() timer.start() self.expert = gui_qt.ElectrumWindow(self.wallet) + self.expert.app = self.app self.expert.connect_slots(timer) self.expert.update_wallet() t@@ -100,7 +101,6 @@ class MiniWindow(QDialog): self.connect(copy_button, SIGNAL("clicked()"), self.actuator.copy_address) - # Use QCompleter self.address_input = TextedLineEdit(_("Enter a Bitcoin address...")) self.address_input.setObjectName("address_input") self.connect(self.address_input, SIGNAL("textEdited(QString)"), t@@ -109,6 +109,13 @@ class MiniWindow(QDialog): self.address_input.setMinimumWidth( metrics.width("1E4vM9q25xsyDwWwdqHUWnwshdWC9PykmL")) + self.address_completions = QStringListModel() + address_completer = QCompleter(self.address_input) + address_completer.setCaseSensitivity(False) + address_completer.setModel(self.address_completions) + self.address_input.setCompleter(address_completer) + self.address_completions.setStringList(["1brmlab", "hello"]) + self.valid_address = QCheckBox() self.valid_address.setObjectName("valid_address") self.valid_address.setEnabled(False) t@@ -223,6 +230,9 @@ class MiniWindow(QDialog): else: self.valid_address.setChecked(False) + def update_completions(self, completions): + self.address_completions.setStringList(completions) + def show_about(self): QMessageBox.about(self, "Electrum", _("Electrum's focus is speed, with low resource usage and simplifying Bitcoin. You do not need to perform regular backups, because your wallet can be recovered from a secret phrase that you can memorize or write on paper. Startup times are instant because it operates in conjuction with high-performance servers that handle the most complicated parts of the Bitcoin system.")) t@@ -462,6 +472,7 @@ class MiniDriver(QObject): if self.wallet.up_to_date: self.update_balance() + self.update_completions() def initializing(self): if self.state == self.INITIALIZING: t@@ -492,6 +503,14 @@ class MiniDriver(QObject): balance = D(conf_balance + unconf_balance) self.window.set_balances(balance) + def update_completions(self): + completions = [] + for addr, label in self.wallet.labels.items(): + if addr in self.wallet.addressbook: + completions.append("%s <%s>" % (label, addr)) + completions = completions + self.wallet.aliases.keys() + self.window.update_completions(completions) + if __name__ == "__main__": app = QApplication(sys.argv) with open("data/style.css") as style_file: