From b8859ee5c112c4954f76b2c1d7e8483871349384 Mon Sep 17 00:00:00 2001 From: svatantrya Date: Tue, 3 Feb 2026 13:56:47 -0400 Subject: [PATCH] qt thread panic heirs import wizard --- bal.py | 8 ++--- qt.py | 79 +++++++++++++++++++++++++++++------------------- willexecutors.py | 40 ++++++++++++------------ 3 files changed, 72 insertions(+), 55 deletions(-) diff --git a/bal.py b/bal.py index 6e55d97..0e04e6b 100644 --- a/bal.py +++ b/bal.py @@ -96,10 +96,10 @@ class BalPlugin(BasePlugin): self.PREVIEW = BalConfig(config, "bal_preview", True) self.SAVE_TXS = BalConfig(config, "bal_save_txs", True) self.WILLEXECUTORS = BalConfig(config, "bal_willexecutors", True) - self.PING_WILLEXECUTORS = BalConfig(config, "bal_ping_willexecutors", True) - self.ASK_PING_WILLEXECUTORS = BalConfig( - config, "bal_ask_ping_willexecutors", True - ) + #self.PING_WILLEXECUTORS = BalConfig(config, "bal_ping_willexecutors", True) + #self.ASK_PING_WILLEXECUTORS = BalConfig( + # config, "bal_ask_ping_willexecutors", True + #) self.NO_WILLEXECUTOR = BalConfig(config, "bal_no_willexecutor", True) self.HIDE_REPLACED = BalConfig(config, "bal_hide_replaced", True) self.HIDE_INVALIDATED = BalConfig(config, "bal_hide_invalidated", True) diff --git a/qt.py b/qt.py index 5aaa4dd..b9d1e6d 100644 --- a/qt.py +++ b/qt.py @@ -327,27 +327,27 @@ class Plugin(BalPlugin, Logger): 2, "Hide invalidated transactions from will detail and list", ) - add_widget( - grid, - "Ping Willexecutors", - heir_ping_willexecutors, - 3, - "Ping willexecutors to get payment info before compiling will", - ) - add_widget( - grid, - " - Ask before", - heir_ask_ping_willexecutors, - 4, - "Ask before to ping willexecutor", - ) - add_widget( - grid, - "Backup Transaction", - heir_no_willexecutor, - 5, - "Add transactions without willexecutor", - ) + #add_widget( + # grid, + # "Ping Willexecutors", + # heir_ping_willexecutors, + # 3, + # "Ping willexecutors to get payment info before compiling will", + #) + #add_widget( + # grid, + # " - Ask before", + # heir_ask_ping_willexecutors, + # 4, + # "Ask before to ping willexecutor", + #) + #add_widget( + # grid, + # "Backup Transaction", + # heir_no_willexecutor, + # 5, + # "Add transactions without willexecutor", + #) # add_widget(grid,"Enable Multiverse(EXPERIMENTAL/BROKEN)",heir_enable_multiverse,6,"enable multiple locktimes, will import.... ") grid.addWidget(heir_repush, 7, 0) grid.addWidget( @@ -656,16 +656,17 @@ class BalWindow(Logger): Will.normalize_will(self.willitems, self.wallet) def build_will(self, ignore_duplicate=True, keep_original=True): - + print("aa") will = {} willtodelete = [] willtoappend = {} try: self.init_class_variables() + print("bb") self.willexecutors = Willexecutors.get_willexecutors( self.bal_plugin, update=False, bal_window=self ) - + print("cc") if not self.no_willexecutor: f = False @@ -1578,9 +1579,13 @@ class BalWizardDialog(BalDialog): ) def on_next_we(self): - close_window = BalBuildWillDialog(self.bal_window, self) + print("a") + close_window = BalBuildWillDialog(self.bal_window) + print("b") close_window.build_will_task() + print("c") self.close() + print("d") # self.next_widget(BalWizardLocktimeAndFeeWidget(self.bal_window,self,self.on_next_locktimeandfee,self.on_next_wedonwload,self.on_next_wedonwload.on_cancel_heir)) def on_next_locktimeandfee(self): @@ -1688,7 +1693,7 @@ class BalWizardHeirsWidget(BalWizardWidget): button_import = QPushButton(_("Import")) button_import.clicked.connect(self.import_from_file) button_export = QPushButton(_("Export")) - button_import.clicked.connect(self.export_to_file) + button_export.clicked.connect(self.export_to_file) widget = QWidget() vbox = QVBoxLayout(widget) vbox.addWidget(self.heirs_list) @@ -1760,7 +1765,7 @@ class BalWizardWEDownloadWidget(BalWizardWidget): def on_success(willexecutors): self.bal_window.willexecutors.update(willexecutors) - self.bal_window.ping_willexecutors(self.bal_window.willexecutors,self) + self.bal_window.ping_willexecutors(self.bal_window.willexecutors,False) if index < 1: for we in self.bal_window.willexecutors: if self.bal_window.willexecutors[we]["status"] == 200: @@ -2029,6 +2034,7 @@ class BalBuildWillDialog(BalDialog): if not parent: parent = bal_window.window BalDialog.__init__(self, parent, bal_window.bal_plugin, "Building Will") + self.parent=parent self.updatemessage.connect(self.update) self.bal_window = bal_window self.message_label = QLabel("Building Will:") @@ -2051,15 +2057,21 @@ class BalBuildWillDialog(BalDialog): pass def build_will_task(self): + print("1") _logger.debug("build will task to be started") + print("2") self.thread.add( self.task_phase1, on_success=self.on_success_phase1, on_done=self.on_accept, on_error=self.on_error_phase1, ) + print(self.parent) + print("3") self.show() + print("4") self.exec() + print("5") def task_phase1(self): _logger.debug("close plugin phase 1 started") @@ -3275,8 +3287,13 @@ class WillExecutorList(MyTreeView): self.Columns.INFO, ], ) - self.parent = parent - self.setModel(QStandardItemModel(self)) + self.parent=parent + try: + self.setModel(QStandardItemModel(self)) + self.sortByColumn(self.Columns.SELECTED, Qt.SortOrder.AscendingOrder) + self.setSelectionMode(QAbstractItemView.SelectionMode.ExtendedSelection) + except Exception: + pass self.setSortingEnabled(True) self.std_model = self.model() self.config = parent.bal_plugin.config @@ -3490,9 +3507,9 @@ class WillExecutorWidget(QWidget, MessageBoxMixin): b.clicked.connect(self.export_file) buttonbox.addWidget(b) - b = QPushButton(_("Ping All")) - b.clicked.connect(self.update_willexecutors) - buttonbox.addWidget(b) + #b = QPushButton(_("Ping All")) + #b.clicked.connect(self.update_willexecutors) + #buttonbox.addWidget(b) vbox.addLayout(buttonbox) self.willexecutor_list.update() diff --git a/willexecutors.py b/willexecutors.py index 07f42a1..3a3686b 100644 --- a/willexecutors.py +++ b/willexecutors.py @@ -42,27 +42,27 @@ class Willexecutors: if not bal_url in willexecutors: _logger.debug(f"force add {bal_url} willexecutor") willexecutors[bal_url] = bal_executor - if update: - found = False - for url, we in willexecutors.items(): - if Willexecutors.is_selected(we): - found = True - if found or force: - if bal_plugin.PING_WILLEXECUTORS.get() or force: - ping_willexecutors = True - if bal_plugin.ASK_PING_WILLEXECUTORS.get() and not force: - if bal_window: - ping_willexecutors = bal_window.window.question( - _( - "Contact willexecutors servers to update payment informations?" - ) - ) + #if update: + # found = False + # for url, we in willexecutors.items(): + # if Willexecutors.is_selected(we): + # found = True + # if found or force: + # if bal_plugin.PING_WILLEXECUTORS.get() or force: + # ping_willexecutors = True + # if bal_plugin.ASK_PING_WILLEXECUTORS.get() and not force: + # if bal_window: + # ping_willexecutors = bal_window.window.question( + # _( + # "Contact willexecutors servers to update payment informations?" + # ) + # ) - if ping_willexecutors: - if task: - bal_window.ping_willexecutors(willexecutors, task) - else: - bal_window.ping_willexecutors_task(willexecutors) + # if ping_willexecutors: + # if task: + # bal_window.ping_willexecutors(willexecutors, task) + # else: + # bal_window.ping_willexecutors_task(willexecutors) w_sorted = dict( sorted( willexecutors.items(), key=lambda w: w[1].get("sort", 0), reverse=True