MTGProxyPrinter

Timeline
Login

Timeline

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

50 most recent check-ins

2025-08-04
21:05
Split reading card data from a file out of the DatabaseImportTask. Leaf check-in: e111cf116b user: thomas tags: refactor_async_tasks
19:57
Fix Qt warning regarding parent/child relations across threads. _open_url() no longer sets the MeteredSeekableHTTPFile parent attribute. check-in: 2693ecc613 user: thomas tags: refactor_async_tasks
19:56
runner.py: Improve logging in cancel_all_tasks(): Log the inner task, instead of the AsyncTaskRunner running it. check-in: 7af7609f3c user: thomas tags: refactor_async_tasks
19:49
MeteredSeekableHTTPFile: Do not emit io_begin, if the ui_hint is empty check-in: 2dbd460491 user: thomas tags: refactor_async_tasks
19:44
DatabaseImportTask: Emit task_completed signal to update the UI when the import finishes check-in: a68bd93edb user: thomas tags: refactor_async_tasks
19:43
Use the proper queue type for multi-threaded queues. WIP implementation that uses 2 tasks to import card data from Scryfall. The ApiStreamTask pushes the batched bulk card data into a queue, and DatabaseImportTask consumes it. check-in: 5dc3297b93 user: thomas tags: refactor_async_tasks
19:04
Implemented draft DatabaseImportTask.run(). Add the data source StreamTask as a new __init__() parameter. run() receives a stream of de-serialized JSON cards via the StreamTasks queue, and calls populate_database() using that. check-in: 471fe0702e user: thomas tags: refactor_async_tasks
18:42
Prepare to move data aquisition out of DatabaseImportTask. check-in: c94e6d6355 user: thomas tags: refactor_async_tasks
17:33
Merge fork Leaf check-in: c3509a6eae user: thomas tags: trunk
14:59
Renamed DatabaseImportWorker to DatabaseImportTask. Add docstrings and deprecation notices to AsyncTask subclasses. check-in: 4b2d0c5c1f user: thomas tags: refactor_async_tasks
14:27
DatabaseImportWorker: Use AsyncTask as the base class, replacing DownloadWorker. The class no longer performs network-related tasks, so the capability to download data is no longer needed. check-in: f2917414ce user: thomas tags: refactor_async_tasks
14:25
DownloaderBase: Removed progress-reporting Qt signals, as those were replaced by the ones in the AsyncTask class. check-in: 5c0fb026ad user: thomas tags: refactor_async_tasks
14:05
ApplicationUpdateCheckTask: Use the ui_hint parameter when reading the available versions from the repository. That makes the application identify one of the progress bars appearing during application start. check-in: 4d11554590 user: thomas tags: refactor_async_tasks
2025-08-02
15:55
AsyncTaskRunner: Merge release_instance() into run() check-in: 27b5c0e83d user: thomas tags: refactor_async_tasks
15:24
Merge class Runnable into AsyncTaskRunner. check-in: aff15175d7 user: thomas tags: refactor_async_tasks
15:17
card_info_downloader.py: Implement an old TODO: Split reading card data from a file into a separate class, and factor out a common interface. check-in: 37afdb5b6e user: thomas tags: refactor_async_tasks
14:26
ApiStreamTask: Implemented a TODO: Emit network_error_occurred when a network error prevents reading the number of available cards. check-in: abbbf30a33 user: thomas tags: refactor_async_tasks
14:21
Merge unused ApiStreamRunner into ApiStreamWorker and rename it to ApiStreamTask. It can now be used as a worker, or as an independent async task that encapsulates the card data download, and uses a queue to send card data batches. check-in: 2dcd8178e6 user: thomas tags: refactor_async_tasks
08:42
AsyncTask.cancel() Also log the error when calling it. check-in: 729bd2e649 user: thomas tags: refactor_async_tasks
08:40
AsyncTask.cancel(): Raise NotImplementedError in the default implementation. check-in: 5bfbe8da04 user: thomas tags: refactor_async_tasks
08:36
AsyncTask: Rename signal begin_task to task_begins, to match task_completed and task_deleted. check-in: d06f1431fd user: thomas tags: refactor_async_tasks
08:04
Merge with trunk check-in: 77a625c12c user: thomas tags: refactor_async_tasks
08:00
MainWindow: Restructured _ask_user_about_update_policy(). Directly convert StandardButton to str using it's .name attribute. check-in: e2633bba05 user: thomas tags: trunk
2025-08-01
20:58
README: Update dependencies section check-in: 5d47d2446c user: thomas tags: trunk
2025-07-31
20:40
Fix style warnings check-in: 3576d8c8b9 user: thomas tags: refactor_async_tasks
20:34
Fixed tests/model/test_document_loader.py check-in: 3770e1b6d4 user: thomas tags: refactor_async_tasks
20:30
PrintingFilterUpdater: run() needs to commit changes made when completing regularly. check-in: a9bdb01dac user: thomas tags: refactor_async_tasks
20:21
Partially fix the unit test suite. It no longer errors out completely. check-in: d3c456fc94 user: thomas tags: refactor_async_tasks
15:10
UI: Re-saved all UI files using Qt Designer 6. This uses the proper Qt enums in definitions, instead of the deprecated aliases within the Qt namespace. check-in: 28a2d5cc50 user: thomas tags: trunk
09:58
Port the PrintCountUpdater to the AsyncTask API. check-in: 5f54c85c0d user: thomas tags: refactor_async_tasks
09:58
Add 2 TODO entries check-in: a50a707283 user: thomas tags: refactor_async_tasks
09:15
Port the update checker to the AsyncTask API. This currently causes untitled progress bars to show up while the task runs. check-in: 6f32667b88 user: thomas tags: refactor_async_tasks
08:39
Port InitOnDiskDataRunner to AsyncTask, but use it synchronously, as that is easier, because the signal to request async execution isn't yet connected in ImageDatabase.__init__() where the runner is used. check-in: 2889e5b50a user: thomas tags: refactor_async_tasks
2025-07-30
20:31
Fix deadlock during card data import, that was caused by the internally used PrintingFilterUpdater acquiring the carddb semaphore a second time. check-in: 1b6d22abde user: thomas tags: refactor_async_tasks
20:15
CardInfoDownloader: Stop using the *download* Qt signals inherited from DownloaderBase, and use the AsyncTask signals instead. check-in: 1f3373283a user: thomas tags: refactor_async_tasks
20:14
Remove unused imports check-in: 94e8a26f48 user: thomas tags: refactor_async_tasks
20:12
PrintingFilterUpdater: Move sequence of SQL statements from _update_cached_data() into a static list, and then iterate over it. This reduces code duplication check-in: 08870f0ae5 user: thomas tags: refactor_async_tasks
19:59
PrintingFilterUpdater: Unconditionally emit begin_task signal. When the class is used as an internal helper, the signal is unconnected and thus calls don't matter. check-in: c523ac41ea user: thomas tags: refactor_async_tasks
19:55
PrintingFilterUpdater: Invert the transaction management: Instead of committing when a database is passed in, skip BEGIN/COMMIT during the execution in that case. When a database is passed in, do not emit the task_begin signal to not overwrite the set progress and ui string check-in: aaeba9acd6 user: thomas tags: refactor_async_tasks
19:54
Fix a typo in a docstring. check-in: 76d4f79e93 user: thomas tags: refactor_async_tasks
15:51
UpdateChecker: Fix warning QObject: Cannot create children for a parent that is in a different thread. Also catch ssl.SSLError errors during update checks and abort in those cases. This helps stabilizing the app in unstable networks. check-in: 09f4f7ded7 user: thomas tags: refactor_async_tasks
15:37
Fix a few type warnings raised by the linter. check-in: 878abf9aca user: thomas tags: trunk
02:39
pyproject.toml: PEP 639 license specification. Remove license classifier. MANIFEST.in: Remove some unused entries. check-in: cc65778636 user: thomas tags: trunk
2025-07-28
18:05
DatabaseImportWorker: Remove the basically unused card_data_updated Qt Signal check-in: edf8db4208 user: thomas tags: refactor_async_tasks
17:59
Fix SyntaxError in the tests caused by the last merge check-in: 2bdbe3afbf user: thomas tags: refactor_async_tasks
17:57
Merge with trunk check-in: 199e85e9aa user: thomas tags: refactor_async_tasks
17:08
Fix typo in pip-tools version specified in create_development_environment.sh. Add pip-tools to the build environment requirements. check-in: 5b2cdc2c10 user: thomas tags: trunk
17:06
Restore compatibility with pip-tools 7 check-in: 1610c32ddc user: thomas tags: trunk
16:54
Modernize the application tech stack: Drop support for outdated libraries and platforms: PyQt5, Pint < 0.22, Windows 7, Python 3.8, 3.9, 3.10. Use modern type hinting style. Remove compatibility workarounds that ensured compatibility with Python 3.8 and Python-3.8-compatible dependencies. check-in: fd347b46df user: thomas tags: trunk
16:49
Further typing.Union[] and typing.Optional[] cleanups, replacing with X|Y and X|None. Closed-Leaf check-in: 421ee33ad3 user: thomas tags: modernize_tech_stack