def create_menu(self, position): menu = QMenu() selected = self.selectedItems() multi_select = len(selected) > 1 if not selected: menu.addAction(_("Add Token"), lambda: self.parent.token_add_dialog()) elif not multi_select: item = selected[0] name = item.text(0) bind_addr = item.text(1) contract_addr = item.data(0, Qt.UserRole) key = '{}_{}'.format(contract_addr, bind_addr) token = self.parent.tokens.get(key, None) column = self.currentColumn() column_title = self.headerItem().text(column) column_data = '\n'.join([item.text(column) for item in selected]) menu.addAction( _("Copy %s") % column_title, lambda: self.parent.app.clipboard().setText(column_data)) menu.addAction(_("View Info"), lambda: self.parent.token_view_dialog(token)) menu.addAction(_("Send"), lambda: self.parent.token_send_dialog(token)) menu.addAction(_("Delete"), lambda: self.parent.delete_token(key)) URL = block_explorer_URL(self.config, { 'addr': bind_addr, 'token': contract_addr }) if URL: menu.addAction(_("View on block explorer"), lambda: open_browser(URL)) run_hook('create_tokens_menu', menu, selected) menu.exec_(self.viewport().mapToGlobal(position))
def create_menu(self, position): self.selectedIndexes() item = self.currentItem() if not item: return column = self.currentColumn() tx_hash = item.data(0, Qt.UserRole) if not tx_hash: return tx = self.wallet.transactions.get(tx_hash) if not tx: return if column is 0: column_title = "ID" column_data = tx_hash else: column_title = self.headerItem().text(column) column_data = item.text(column) tx_URL = block_explorer_URL(self.config, {'tx': tx_hash}) height = self.wallet.get_tx_height(tx_hash).height is_relevant, is_mine, v, fee = self.wallet.get_wallet_delta(tx) is_unconfirmed = height <= 0 pr_key = self.wallet.invoices.paid.get(tx_hash) menu = QMenu() if height == TX_HEIGHT_LOCAL: menu.addAction(_("Remove"), lambda: self.remove_local_tx(tx_hash)) menu.addAction( _("Copy %s") % column_title, lambda: self.parent.app.clipboard().setText(column_data)) if column in self.editable_columns: menu.addAction( _("Edit %s") % column_title, lambda: self.editItem(item, column)) menu.addAction(_("Details"), lambda: self.parent.show_transaction(tx)) if is_unconfirmed and tx: # note: the current implementation of RBF *needs* the old tx fee rbf = is_mine and not tx.is_final() and fee is not None if rbf: menu.addAction(_("Increase fee"), lambda: self.parent.bump_fee_dialog(tx)) else: child_tx = self.wallet.cpfp(tx, 0) if child_tx: menu.addAction(_("Child pays for parent"), lambda: self.parent.cpfp(tx, child_tx)) if pr_key: menu.addAction(read_QIcon("seal"), _("View invoice"), lambda: self.parent.show_invoice(pr_key)) if tx_URL: menu.addAction(_("View on block explorer"), lambda: open_browser(tx_URL)) menu.addAction(_("Copy raw transaction"), lambda: self.parent.app.clipboard().setText(str(tx))) menu.exec_(self.viewport().mapToGlobal(position))
def create_menu(self, position): menu = QMenu() selected = self.selectedItems() multi_select = len(selected) > 1 if not selected: menu.addAction(_("Add contract"), lambda: self.parent.contract_add_dialog()) menu.addAction(_("Create contract"), lambda: self.parent.contract_create_dialog()) elif not multi_select: item = selected[0] name = item.text(0) address = item.text(1) column = self.currentColumn() column_title = self.headerItem().text(column) column_data = '\n'.join([item.text(column) for item in selected]) menu.addAction( _("Copy %s") % column_title, lambda: self.parent.app.clipboard().setText(column_data)) menu.addAction(_("Edit"), lambda: self.parent.contract_edit_dialog(address)) menu.addAction(_("Function"), lambda: self.parent.contract_func_dialog(address)) menu.addAction(_("Delete"), lambda: self.parent.delete_samart_contact(address)) URL = block_explorer_URL(self.config, {'contract': address}) if URL: menu.addAction(_("View on block explorer"), lambda: open_browser(URL)) run_hook('create_smart_contract_menu', menu, selected) menu.exec_(self.viewport().mapToGlobal(position))
def create_menu(self, position): from qtum_electrum.wallet import Multisig_Wallet is_multisig = isinstance(self.wallet, Multisig_Wallet) can_delete = self.wallet.can_delete_address() selected = self.selectedItems() multi_select = len(selected) > 1 addrs = [item.text(0) for item in selected] if not addrs: return if not multi_select: item = self.itemAt(position) col = self.currentColumn() if not item: return addr = addrs[0] if not is_address(addr): item.setExpanded(not item.isExpanded()) return menu = QMenu() if not multi_select: column_title = self.headerItem().text(col) menu.addAction(_("Copy %s")%column_title, lambda: self.parent.app.clipboard().setText(item.text(col))) menu.addAction(_('Details'), lambda: self.parent.show_address(addr)) if col in self.editable_columns: menu.addAction(_("Edit %s")%column_title, lambda: self.editItem(item, col)) menu.addAction(_("Request payment"), lambda: self.parent.receive_at(addr)) if self.wallet.can_export(): menu.addAction(_("Private key"), lambda: self.parent.show_private_key(addr)) if not is_multisig and not self.wallet.is_watching_only(): menu.addAction(_("Sign/verify message"), lambda: self.parent.sign_verify_message(addr)) menu.addAction(_("Encrypt/decrypt message"), lambda: self.parent.encrypt_message(addr)) if can_delete: menu.addAction(_("Remove from wallet"), lambda: self.parent.remove_address(addr)) addr_URL = block_explorer_URL(self.config, 'addr', addr) if addr_URL: menu.addAction(_("View on block explorer"), lambda: open_browser(addr_URL)) if not self.wallet.is_frozen(addr): menu.addAction(_("Freeze"), lambda: self.parent.set_frozen_state([addr], True)) else: menu.addAction(_("Unfreeze"), lambda: self.parent.set_frozen_state([addr], False)) coins = self.wallet.get_utxos(addrs) if coins: menu.addAction(_("Spend from"), lambda: self.parent.spend_coins(coins)) run_hook('receive_menu', menu, addrs, self.wallet) menu.exec_(self.viewport().mapToGlobal(position))
def create_menu(self, position): menu = QMenu() selected = self.selectedItems() multi_select = len(selected) > 1 if not selected: pass elif not multi_select: item = selected[0] txid = item.data(0, Qt.UserRole) column = self.currentColumn() column_title = self.headerItem().text(column) column_data = '\n'.join([item.text(column) for item in selected]) menu.addAction(_("Copy %s") % column_title, lambda: self.parent.app.clipboard().setText(column_data)) menu.addAction(_("Copy Transaction ID"), lambda: self.parent.app.clipboard().setText(txid)) URL = block_explorer_URL(self.config, {'tx': txid}) if URL: menu.addAction(_("View on block explorer"), lambda: open_browser(URL)) run_hook('create_token_hist_menu', menu, selected) menu.exec_(self.viewport().mapToGlobal(position))