chgksuite_qt 0.0.4__py3-none-any.whl → 0.0.5__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
chgksuite_qt/gui.py CHANGED
@@ -14,7 +14,7 @@ import urllib.request
14
14
 
15
15
  try:
16
16
  from PyQt6 import QtWidgets, QtGui
17
- from PyQt6.QtCore import QTimer, pyqtSignal, QObject
17
+ from PyQt6.QtCore import QTimer, pyqtSignal, QObject, QThread
18
18
 
19
19
  PYQT = True
20
20
  except ImportError:
@@ -87,6 +87,16 @@ def check_for_updates():
87
87
  return False, current, None
88
88
 
89
89
 
90
+ class UpdateChecker(QObject):
91
+ """Worker to check for updates in background thread."""
92
+
93
+ finished = pyqtSignal(object, object, object) # has_update, details, error
94
+
95
+ def run(self):
96
+ has_update, details, error = check_for_updates()
97
+ self.finished.emit(has_update, details, error)
98
+
99
+
90
100
  LANGS = ["by", "by_tar", "en", "kz_cyr", "ru", "sr", "ua", "uz", "uz_cyr"] + ["custom"]
91
101
 
92
102
  debug = False
@@ -312,15 +322,14 @@ class ParserWrapper(object):
312
322
  self.update_button.setEnabled(False)
313
323
  self.update_button.setText("Проверка обновлений...")
314
324
 
315
- # Check for updates in a thread to avoid blocking UI
316
- def check_thread():
317
- has_update, details, error = check_for_updates()
318
- # Schedule UI update on main thread
319
- QTimer.singleShot(
320
- 0, lambda: self._handle_update_check(has_update, details, error)
321
- )
322
-
323
- threading.Thread(target=check_thread, daemon=True).start()
325
+ # Check for updates in a QThread to safely update UI
326
+ self._update_thread = QThread()
327
+ self._update_checker = UpdateChecker()
328
+ self._update_checker.moveToThread(self._update_thread)
329
+ self._update_thread.started.connect(self._update_checker.run)
330
+ self._update_checker.finished.connect(self._handle_update_check)
331
+ self._update_checker.finished.connect(self._update_thread.quit)
332
+ self._update_thread.start()
324
333
 
325
334
  def _handle_update_check(self, has_update, details, error):
326
335
  """Handle update check result on main thread."""
chgksuite_qt/version.py CHANGED
@@ -1 +1 @@
1
- __version__ = "0.0.4"
1
+ __version__ = "0.0.5"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: chgksuite_qt
3
- Version: 0.0.4
3
+ Version: 0.0.5
4
4
  Summary: A GUI wrapper for chgksuite using PyQt6
5
5
  Author-email: Alexander Pecheny <ap@pecheny.me>
6
6
  License-Expression: MIT
@@ -0,0 +1,9 @@
1
+ chgksuite_qt/__main__.py,sha256=RujA7mxQMHCQBIRpkcCV7n96qsF4SOw8KnODbfaWP-A,143
2
+ chgksuite_qt/gui.py,sha256=uJa4KYRXmsAqlhwJd-YpWenLlYb-TJY5q8VzGcGlH0w,22043
3
+ chgksuite_qt/version.py,sha256=S7u1lbuWmM3A3ajykBialmPoJUK6Jg-WmNqM-9OZFdk,22
4
+ chgksuite_qt-0.0.5.dist-info/licenses/LICENSE.txt,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
5
+ chgksuite_qt-0.0.5.dist-info/METADATA,sha256=cCD1zUnWWMyECUiud6N9Ap8OuaLv5Oiy1IGgWID9rpA,571
6
+ chgksuite_qt-0.0.5.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
7
+ chgksuite_qt-0.0.5.dist-info/entry_points.txt,sha256=-CJKDdxNqsUSAPWDPAqFX76__c5ZcDIkCZOERijAY_4,53
8
+ chgksuite_qt-0.0.5.dist-info/top_level.txt,sha256=macEIOXf4jYgtYr0E6pq_FKmDsvXXdzX46olPHFBpOQ,13
9
+ chgksuite_qt-0.0.5.dist-info/RECORD,,
@@ -1,9 +0,0 @@
1
- chgksuite_qt/__main__.py,sha256=RujA7mxQMHCQBIRpkcCV7n96qsF4SOw8KnODbfaWP-A,143
2
- chgksuite_qt/gui.py,sha256=aIfs0u2WvQMKU8UnWUPP3IIQvepBkPHnkobezgaR72g,21659
3
- chgksuite_qt/version.py,sha256=1mptEzQihbdyqqzMgdns_j5ZGK9gz7hR2bsgA_TnjO4,22
4
- chgksuite_qt-0.0.4.dist-info/licenses/LICENSE.txt,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
5
- chgksuite_qt-0.0.4.dist-info/METADATA,sha256=oH19v0LxRKdBjQNoz6ybseN56wSweXqx3y_qwCZ-leQ,571
6
- chgksuite_qt-0.0.4.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
7
- chgksuite_qt-0.0.4.dist-info/entry_points.txt,sha256=-CJKDdxNqsUSAPWDPAqFX76__c5ZcDIkCZOERijAY_4,53
8
- chgksuite_qt-0.0.4.dist-info/top_level.txt,sha256=macEIOXf4jYgtYr0E6pq_FKmDsvXXdzX46olPHFBpOQ,13
9
- chgksuite_qt-0.0.4.dist-info/RECORD,,