diff --git a/dist/screener_gui.py b/dist/screener_gui.py index 061f264..020cb02 100644 --- a/dist/screener_gui.py +++ b/dist/screener_gui.py @@ -466,13 +466,6 @@ class _SidebarButton(QWidget): self.setAttribute(Qt.WA_StyledBackground, True) self.setStyleSheet("background:#111111;") - # Left accent bar — absolutely positioned, shown when active - self._bar = QFrame(self) - self._bar.setFixedSize(3, 64) - self._bar.move(0, 0) - self._bar.setStyleSheet("background:#ffffff; border:none;") - self._bar.hide() - lay = QVBoxLayout(self) lay.setContentsMargins(0, 10, 0, 10) lay.setSpacing(4) @@ -502,11 +495,6 @@ class _SidebarButton(QWidget): def set_active(self, active): self._active = active self._set_colors(active) - if active: - self._bar.show() - self._bar.raise_() - else: - self._bar.hide() def mousePressEvent(self, e): self.clicked_idx.emit(self._idx) @@ -2026,8 +2014,9 @@ class ScreenerPage(QWidget): self._pending_df_raw = df_raw self._pending_df_scored = df_scored self._pending_sector_stats = sector_stats - signals.done.emit(len(df_scored)) - _log("done signal emitted") + _log("invoking _on_done on main thread") + QMetaObject.invokeMethod(self, "_on_done", Qt.QueuedConnection, Q_ARG(int, len(df_scored))) + _log("invoke call returned") except Exception as exc: _log(f"EXCEPTION: {_tb.format_exc()}") signals.error.emit(str(exc)) @@ -2047,6 +2036,14 @@ class ScreenerPage(QWidget): @Slot(int) def _on_done(self, total): + import os as _os2 + _lp2 = _os2.path.join(_os2.environ.get("TEMP", _os2.path.expanduser("~")), "screener_run.log") + try: + with open(_lp2, "a") as _lf2: + from datetime import datetime as _dt2 + _lf2.write(f"[{_dt2.now().strftime('%H:%M:%S')}] _on_done called, total={total}\n") + except Exception: + pass df_raw = getattr(self, "_pending_df_raw", None) df_scored = getattr(self, "_pending_df_scored", None) sector_stats = getattr(self, "_pending_sector_stats", {}) diff --git a/updater.py b/updater.py index 65b29f6..6f715ef 100644 --- a/updater.py +++ b/updater.py @@ -19,7 +19,7 @@ import requests # --------------------------------------------------------------------------- # Current app version — kept in sync by push_update.py before each build. # --------------------------------------------------------------------------- -APP_VERSION = "1.4.7" +APP_VERSION = "1.4.8" def _exe_dir() -> str: