MTGProxyPrinter

Timeline
Login

Timeline

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

50 most recent check-ins

2026-05-04
17:23
Add changelog entry Leaf check-in: 92c93df50f user: thomas tags: refactor_card_database_schema
17:23
Document: Show the MTG set symbols in the Set column check-in: 8dca7dd2c4 user: thomas tags: refactor_card_database_schema
17:21
Keep the MTG set symbol aspect ratio check-in: a0d86c9476 user: thomas tags: refactor_card_database_schema
17:07
Implement showing MTG set symbols in the UI where appropriate. Fetch the icons from the Scryfall CDN during card data imports. Implements [2e40cfd0ff8baee0]. check-in: ae0bbaa8c8 user: thomas tags: refactor_card_database_schema
17:04
SetEditorDelegate: Show set symbols in the set choice dropdown editor Closed-Leaf check-in: 682ccfd6bb user: thomas tags: show_set_icons
16:56
CardListModel: Show the set symbol in the Set column check-in: d6e5097a08 user: thomas tags: show_set_icons
16:45
Fix CardDatabase.find_sets_matching() with back face names check-in: f6114901fa user: thomas tags: show_set_icons
16:28
Database schema: Store set icon SVGs as blobs. The Qt API expects them as bytes, so never decode to utf-8, and always keep them as bytes/BLOB. check-in: c867bd68fa user: thomas tags: show_set_icons
15:16
Fix SetIconImportTask integration. It now properly fetches missing set icons. check-in: 526afe852b user: thomas tags: show_set_icons
14:05
Run the SetIconImportTask as part of the card database update check-in: 4ef3837f98 user: thomas tags: show_set_icons
13:35
SetIconImportTask: Extend logic with progress reporting check-in: 99a6753255 user: thomas tags: show_set_icons
13:28
Implement class SetIconImportTask(DownloaderBase), implementing the task for fetching the MTG set SVG icons from the Scryfall CDN. check-in: 32435ebeba user: thomas tags: show_set_icons
11:40
Implement an SVG icon engine, and use it to render the MTG set symbol as a QIcon check-in: 1a3a07d274 user: thomas tags: show_set_icons
11:05
Update some outdated copyright headers check-in: fbac4160a1 user: thomas tags: refactor_card_database_schema
11:05
CardDatabase: Fix match statement in get_oracle_id(). check-in: d661cf243a user: thomas tags: refactor_card_database_schema
08:26
Merge fork on trunk Leaf check-in: 3b08fdfa49 user: thomas tags: trunk
2026-04-30
12:08
Fix packaging environments: Fix environment name mismatch. Add the Windows build cleanup script to the allowed external commands check-in: 483891acf5 user: thomas tags: trunk
2026-04-14
20:34
MeteredSeekableHTTPFile: Refactorings. Fix parameter defaults not matching the base API. Refactored _urlopen() to not access the file attribute directly, getting rid of the file attribute being Optional[]. Replaced deprecated calls to file.info(). check-in: 0c1fd638ce user: thomas tags: trunk
2026-04-11
12:33
DatabaseImportTask: Insert or update the Card.english_name column during data imports check-in: 6e3b5afb58 user: thomas tags: refactor_card_database_schema
00:01
CardDatabase migrations: Fix migration script to v35. Card.english_name computation was broken, causing exceptions check-in: a635ee0e24 user: thomas tags: refactor_card_database_schema
2026-04-10
12:48
Database schema: Sync documentation and implementation. Add Card.english_name column, which holds the canonical English card name. This helps card translations, because some non-English cards use the English name as a fallback, and those need to be filtered out. check-in: 5b452a1f54 user: thomas tags: refactor_card_database_schema
12:42
CardDatabase: Extend translate_cards() to also accept a list of target languages, and do an element-wise translation if such a list is passed in. check-in: 9ed61bcf64 user: thomas tags: refactor_card_database_schema
2026-03-31
11:48
WIP started rewriting the CSV deck list parsers to use a multi-step process. Implemented is conversion into CardIdentificationData instances. This will be used to batch individual operations to reduce number of card database calls. check-in: f5b3b7ca34 user: thomas tags: refactor_card_database_schema
2026-03-30
22:32
CacheCleanupWizard: Refactor CardFilterPage.initializePage() and add_row() to batch the card translations into the preferred language. All translations are now performed in a single query, using the new batch-processing capability of the CardDatabase.translate_card_names() method. This brings down the translation runtime from ~8s to 0.3s for a moderate number of cards on the system. check-in: 642f1d9740 user: thomas tags: refactor_card_database_schema
19:30
Fix card database migrations. Recreate the FilterAppliesTo table to update the foreign key references. Otherwise using a migrated database crashes during use. check-in: e7250081d4 user: thomas tags: refactor_card_database_schema
19:29
Improve a comment check-in: 1a355223c8 user: thomas tags: refactor_card_database_schema
2026-03-29
19:24
CardDatabase: Refactored translate_card_name() to work with lists. Renamed to translate_card_names() to indicate the change. check-in: addc87915b user: thomas tags: refactor_card_database_schema
18:34
CardDatabase: Refactored translate_card_name() SQL code. All parameters except for the target language are now passed via a table expression at the top. The source_context now carries a row number column that is passed through. Runtime increases to ~110ms-150ms/translation. This design allows easy extension to pull the data from a temporary table and perform multiple translations in one step. check-in: 0b269e0168 user: thomas tags: refactor_card_database_schema
12:59
CardDatabase: Further optimizations for card name translations. By JOINing only the required parts, the runtime is down to ~70ms/translation. This is still potentially 7+ seconds for a Commander deck, but better than the previous 100+ seconds. check-in: be1c58afe6 user: thomas tags: refactor_card_database_schema
11:58
Optimize card name translation, reducing runtime by 90%, from ~1500ms/translation to ~150ms/translation. In a query SELECT a FROM foo GROUP BY a LIMIT 1, the group by clause has no effect. Dropping it allows for a more efficient query plan without sacrificing correctness. check-in: be62b00e75 user: thomas tags: refactor_card_database_schema
11:55
Fixed ImageKey quality formatting and parameter use check-in: b384ccb8a0 user: thomas tags: refactor_card_database_schema
11:54
Tests: Fixed SQL error in _assert_printing_face_contains() check-in: 89a4804064 user: thomas tags: refactor_card_database_schema
11:33
CardDatabase: Fixed use of outdated % wildcards. Add tests for previously untested find_sets_matching(). check-in: 41260e50e4 user: thomas tags: refactor_card_database_schema
10:14
Fix missing ; in the database schema check-in: 4fb95f447a user: thomas tags: refactor_card_database_schema
10:12
Add a database index speeding up card lookup by name. Switch from ASCII-case-insensitive LIKE matching to GLOB. This updates the wildcard character to *. Case sensitive LIKE is deprecated, but sensitivity allows using the same index for both GLOB matches and equality (=) matches. check-in: ce0f9979c8 user: thomas tags: refactor_card_database_schema
2026-03-28
21:12
CardDatabase: Refactor SQL generation in get_cards_from_data() check-in: cdd682128e user: thomas tags: refactor_card_database_schema
21:07
CardDatabase: Deprecate a method used to partition the image database content. check-in: ef61dec8b8 user: thomas tags: refactor_card_database_schema
21:04
Fixed failing tests check-in: c72ae9d1bc user: thomas tags: refactor_card_database_schema
20:28
Database schema: Fixed inconsistencies in the migration from v34. Also reformat table definitions for better readability. check-in: ee70bc8254 user: thomas tags: refactor_card_database_schema
19:20
ProgressBarManager: Connect request_register_subtask() to add_task() via a blocking connection. This ensures that the UI logic actually runs, even if the thread calling hogs 100% of the CPU time on GIL-enabled interpreters check-in: 6c615877dc user: thomas tags: refactor_card_database_schema
13:42
Fixed database migration to v35. The migration no longer drops all data. Refactored MigrationScript, adding optional boolean parameter disable_foreign_keys. Migrations that need disabled checks now use this, instead of putting the 3 required PRAGMA statements into the statement list. check-in: 7ec210f394 user: thomas tags: refactor_card_database_schema
12:58
Merged in refactor_card_database_schema branch. This feature branch will be the base for incorporating the printing preference configuration. The list holding the printing filter booleans can also hold the preference values as an additional column. Leaf check-in: bc8f4c5367 user: thomas tags: refactor_print_hiding_ui
12:50
Synced with trunk check-in: 52c39d5018 user: thomas tags: refactor_print_hiding_ui
10:35
Implement the static part of migrations for version 34 to 35. This still needs additional semantic work, like fetching the set scryfall id from the API. check-in: b8bea7ed27 user: thomas tags: refactor_card_database_schema
10:33
Database schema: Declare MigratedPrintings.performed_at as an INTEGER_TIMESTAMP. check-in: 942eb56ce8 user: thomas tags: refactor_card_database_schema
2026-03-27
19:53
Database schema: Replace boolean PrintingFace.currently_downloaded with download_status. By not restricting to a pure boolean, the column can hold additional data, like the image resolution, or if there is a custom card override in place. check-in: 3adb7e9e52 user: thomas tags: refactor_card_database_schema
13:22
Fixed test isolation. Shared Card instances contaminated other tests, because they got mutated. check-in: 9afe7276b2 user: thomas tags: refactor_card_database_schema
12:56
Fixed test test_get_replacement_card_for_unknown_printing by removing now-invalid test cases check-in: bc460cc147 user: thomas tags: refactor_card_database_schema
12:50
Fixed broken test test_get_cards_from_data_order_by_print_count_enabled check-in: 976650cdab user: thomas tags: refactor_card_database_schema
11:49
Tests: Add tests for the DatabaseImportTask, directly testing the correctness of the RemovedPrinting data. check-in: a826ab6a90 user: thomas tags: refactor_card_database_schema