Commit graph

4134 commits

Author SHA1 Message Date
Christian Daniel Jensen
ce1c5d1d1e Complete standalone Linux URI and data import defaults 2026-11-02 03:05:33 -07:00
Christian Daniel Jensen
3d3e18b7e7 Complete standalone Linux URI and data import defaults 2026-11-02 03:05:28 -07:00
Christian Daniel Jensen
bacc30c248 Disable upstream MTG onboarding/importer and bootstrap Continuumatrice card data 2026-11-02 03:04:28 -07:00
Christian Daniel Jensen
dddefd0cae Disable upstream MTG onboarding/importer and bootstrap Continuumatrice card data 2026-11-02 03:04:26 -07:00
Christian Daniel Jensen
c0ba0db6ec Disable upstream MTG onboarding/importer and bootstrap Continuumatrice card data 2026-11-02 03:04:24 -07:00
Christian Daniel Jensen
19f18d82bc Ship a safe empty Continuumatrice XML v4 database instead of importing MTG 2026-11-02 03:03:56 -07:00
Christian Daniel Jensen
786e73c3bf Isolate Continuumatrice URLs, updates, and card artwork sources 2026-11-02 03:03:28 -07:00
Christian Daniel Jensen
96a3eac7d1 Isolate Continuumatrice URLs, updates, and card artwork sources 2026-11-02 03:03:26 -07:00
Christian Daniel Jensen
1e8839d565 Isolate Continuumatrice URLs, updates, and card artwork sources 2026-11-02 03:03:21 -07:00
Christian Daniel Jensen
121c6fe005 Isolate Continuumatrice URLs, updates, and card artwork sources 2026-11-02 03:03:18 -07:00
Christian Daniel Jensen
04e2fef170 Isolate Continuumatrice URLs, updates, and card artwork sources 2026-11-02 03:03:16 -07:00
Christian Daniel Jensen
0dbec26603 Isolate Continuumatrice URLs, updates, and card artwork sources 2026-11-02 03:03:13 -07:00
Christian Daniel Jensen
bd6477a28a Isolate Continuumatrice URLs, updates, and card artwork sources 2026-11-02 03:03:09 -07:00
Christian Daniel Jensen
7e8aa42d63 Add original Continuumatrice identity SVG for app and desktop launcher 2026-11-02 03:02:15 -07:00
Christian Daniel Jensen
3b7c7ad9e8 Rebrand Continuumatrice as an independent client target and product identity 2026-11-02 03:01:39 -07:00
Christian Daniel Jensen
3349ba13c7 Rebrand Continuumatrice as an independent client target and product identity 2026-11-02 03:01:37 -07:00
Christian Daniel Jensen
7182da69d9 Rebrand Continuumatrice as an independent client target and product identity 2026-11-02 03:01:34 -07:00
Christian Daniel Jensen
f40040a584 Rebrand Continuumatrice as an independent client target and product identity 2026-11-02 03:01:31 -07:00
Christian Daniel Jensen
11de6a1c53 Rebrand Continuumatrice as an independent client target and product identity 2026-11-02 03:01:28 -07:00
Christian Daniel Jensen
e3c92b779a Continuumatrice: add independent Linux desktop launcher 2026-11-02 02:32:55 -07:00
Christian Daniel Jensen
d9bc828f21 Continuumatrice: isolate Linux executable and desktop identity (theme_manager.cpp) 2026-11-02 02:32:15 -07:00
Christian Daniel Jensen
a786c6a2a3 Continuumatrice: isolate Linux executable and desktop identity (window_main.cpp) 2026-11-02 02:32:07 -07:00
Christian Daniel Jensen
08642072c0 Continuumatrice: isolate Linux executable and desktop identity (main.cpp) 2026-11-02 02:32:03 -07:00
Christian Daniel Jensen
37f26010c3 Continuumatrice: isolate Linux executable and desktop identity (CMakeLists.txt) 2026-11-02 02:32:00 -07:00
Christian Daniel Jensen
dd9aca8668 Add fallback oblivion pile SVG icon 2026-11-02 01:58:35 -07:00
Christian Daniel Jensen
453ef05334 Add fallback refuge pile SVG icon 2026-11-02 01:58:31 -07:00
Christian Daniel Jensen
09e6b54869 Add fallback limbo pile SVG icon 2026-11-02 01:58:29 -07:00
Christian Daniel Jensen
71398ac33c Continuumatrice: adjust extra pile geometry and add built-in icon resources 2026-11-02 01:58:27 -07:00
Christian Daniel Jensen
dbb044771b Continuumatrice: adjust extra pile geometry and add built-in icon resources 2026-11-02 01:57:32 -07:00
Christian Daniel Jensen
3df441195d Continuumatrice: adjust extra pile geometry and add built-in icon resources 2026-11-02 01:57:29 -07:00
Christian Daniel Jensen
21f574ca7c Continuumatrice: render interactive public piles with themed icons 2026-11-02 01:56:37 -07:00
Christian Daniel Jensen
f964b6b24f Continuumatrice: render interactive public piles with themed icons 2026-11-02 01:56:35 -07:00
Christian Daniel Jensen
2afbd86ad1 Continuumatrice: render interactive public piles with themed icons 2026-11-02 01:56:32 -07:00
Christian Daniel Jensen
f9f0901f09 Continuumatrice: render interactive public piles with themed icons 2026-11-02 01:56:29 -07:00
Christian Daniel Jensen
29dd239cd2 Continuumatrice: render interactive public piles with themed icons 2026-11-02 01:56:27 -07:00
Christian Daniel Jensen
d6070c5c96 Continuumatrice: render interactive public piles with themed icons 2026-11-02 01:55:24 -07:00
Christian Daniel Jensen
f87b4eeeac Continuumatrice: add Limbo Refuge Oblivion support to card_menu.cpp 2026-11-02 01:52:40 -07:00
Christian Daniel Jensen
abf9750333 Continuumatrice: add Limbo Refuge Oblivion support to move_menu.cpp 2026-11-02 01:52:26 -07:00
Christian Daniel Jensen
384a3dc036 Continuumatrice: add Limbo Refuge Oblivion support to move_menu.h 2026-11-02 01:52:24 -07:00
Christian Daniel Jensen
f54dcc3e54 Isolate Continuumatrice single-instance socket from Cockatrice 2026-11-02 01:41:05 -07:00
Christian Daniel Jensen
2dab3d0f40 Give Continuumatrice its own Qt profile and data/cache namespace 2026-11-02 01:41:03 -07:00
Christian Daniel Jensen
4e2229be98 Orient Front and Command labels toward the opponent 2026-11-02 01:30:30 -07:00
Christian Daniel Jensen
5d871dcf28 Fix QFileInfo instance method call in battlefield font loader 2026-11-02 00:58:27 -07:00
Christian Daniel Jensen
61659a566a Paint Front Support Command zone bands with optional theme colors and font 2026-11-01 23:52:47 -07:00
Christian Daniel Jensen
62b7088807 Reserve row label space and add battlefield zone appearance state 2026-11-01 23:52:42 -07:00
BruebachL
94e6281d87
[Logs] Browse room history without filters with paginated infinite scroll (#7531)
* [Logs] Browse room history without filters with paginated infinite scroll

* [Logs] Continue pagination when switching log tabs

---------

Co-authored-by: Lukas Brübach <Bruebach.Lukas@bdosecurity.de>
2026-11-02 07:36:49 +01:00
BruebachL
5134e72eb4
[Settings] Store server profiles with QSettings arrays (#7629)
The server list used hand-numbered saveName%1/server%1 keys and an O(n)
shift loop to delete entries. Store the profiles with beginReadArray and
beginWriteArray instead, and migrate the legacy keys once in the
constructor so existing profiles and saved passwords survive.

SettingsManager::batchWrite no longer disables atomic sync, so a batch is
still written through QSettings' atomic save. Add tests for add, update,
remove, password updates and the legacy migration.

Co-authored-by: Lukas Brübach <Bruebach.Lukas@bdosecurity.de>
2026-11-02 07:30:29 +01:00
BruebachL
ce543896f5
[Tests] Use QtTest for model contracts and signal spies (#7630)
Qt6::Test was linked into every test but never used. Add a small RAII
QAbstractItemModelTester helper and apply it to the deck list model, the card
database model and display proxy, and the sets model. Add QSignalSpy coverage
for the card-added and download-settings signals, and assert explicitly that a
card row is a leaf with no child columns (the tester does not check that).

The contract checker immediately found four model bugs, fixed here:
- DeckListModel allowed children below non-zero columns.
- CardDatabaseModel reported every card as a child of every card row.
- CardDatabaseModel reported six columns for a valid (leaf) card index.
- CardDatabaseDisplayModel claimed more rows were fetchable while rowCount
  already exposed them all, so fetchMore() inserted duplicates.

Co-authored-by: Lukas Brübach <Bruebach.Lukas@bdosecurity.de>
2026-11-02 07:27:43 +01:00
BruebachL
50a2ae9cc8
[Server/Client] Enforce and complete the forced password change at login (#7680)
checkUserPassword ignored force_password_change on the challenge-response
path, so a reset password stayed valid. Returning PasswordChangeRequired
was not enough on its own: the session was dropped and the client told the
user to ask the administrator for the temporary password they had just used.

The pending session now keeps its identity without registering a user
session or announcing a join, may only ping and change its password, and
the client completes the change in-session before reconnecting.

Co-authored-by: Lukas Brübach <Bruebach.Lukas@bdosecurity.de>
2026-11-02 07:01:29 +01:00
BruebachL
ff393b8990
[Game] Connect zone dump response before sending the request (#7711)
ZoneViewZone::initializeCards() connected PendingCommand::finished only after ZoneViewZoneLogic::requestZoneDump() had already sent the command. Local games process the dump synchronously, so finished was emitted before the view connected and the library/sideboard view stayed empty.

Split requestZoneDump() into prepareZoneDump() and sendZoneDump(), and connect before sending, matching the TabRoom prepare/send convention.

Co-authored-by: Lukas Brübach <Bruebach.Lukas@bdosecurity.de>
2026-11-01 12:49:35 +01:00