Commit Graph
100 Commits
Author SHA1 Message Date
RickyRisterandGitHub 39ddaa0c35 [VDS] Reload deck on hover if file has been modified since last load (#6507)
* add reload to DeckLoader

* [VDS] Reload deck on hover if file has been modified since last load

* fix version incompatibility
2026-01-22 23:31:39 -05:00
RickyRisterandGitHub d9b9c79112 [VDS] Add option to hide color identity (#6533) 2026-01-19 00:38:48 -08:00
RickyRisterandGitHub 485d5a8b48 [DeckListModel] Fix exception precedence in legality check (#6535) 2026-01-19 00:28:13 -08:00
RickyRisterandGitHub f7e71a0868 [DeckList] Add optional restrictToZone param to getZoneNodes (#6534) 2026-01-19 00:27:58 -08:00
RickyRisterandGitHub af2995ba96 [VDS] Ignore tokens when calculating color identity (#6532) 2026-01-18 20:51:57 -05:00
RickyRisterandGitHub 792f077071 [VDE] Use splitter in sample hand widget (#6528)
* [VDE] Use splitter in sample hand widget

* remove unused code
2026-01-16 17:23:41 -08:00
RickyRisterandGitHub 9c07c7a963 [TabGame] Automatically sync view menu actions (#6529) 2026-01-16 17:22:48 -08:00
RickyRisterandGitHub d579c82cb9 [DeckLoader] Make save/load methods static (#6476)
* const

* [DeckLoader] make methods static

* use static methods

* add docs

* add docs
2026-01-16 13:20:36 -05:00
RickyRisterandGitHub c7c7bf550a [TabGame] Don't create replay dock if not replay tab (#6527)
* [TabGame] Don't create replay dock if not replay tab

* use replayDock to determine if replay tab

* null check replayManager in dtor
2026-01-16 09:45:10 -08:00
RickyRisterandGitHub 84483c56d7 [TabDeckEditor] Generalize visibility filter and extract it to a separate file (#6526)
* create class

* use new class in old code
2026-01-16 10:12:46 -05:00
RickyRisterandGitHub 1b71519ec6 [VDE] Make sample hand widget look nicer (#6525) 2026-01-16 10:11:39 -05:00
RickyRisterandGitHub 154b9ace92 [TabDeckEditor] Move cardDatabase dock action to top of menu (#6523) 2026-01-16 10:10:36 -05:00
RickyRisterandGitHub 93f0715d02 [TabDeckEditor] Save cardDatabase dock size in settings (#6524) 2026-01-15 21:54:50 -05:00
RickyRisterandGitHub 57e6c91689 [TabDeckEditor] Automatically sync view menu actions (#6522) 2026-01-15 21:05:19 -05:00
RickyRisterandGitHub c553e15036 [TabDeckEditor] Fix bug in #6499 causing view menu actions to sometimes not work (#6518)
* remove a special case

* fix
2026-01-14 14:20:12 +01:00
RickyRisterandGitHub 47720ff286 [ColorIdentityWidget] Refactor (#6506)
* [ColorIdentityWidget] Refactor and add setter

* rename manaCost field

* nvm, just refactor for now

* use QtUtils

* move clearLayout into populate

* add back cardInfo constructor
2026-01-14 02:41:03 -08:00
RickyRisterandGitHub 21d60ec3f1 Reduce padding in settings popup (#6504)
* Reduce padding in settings popup

* reduce padding in PrintingSelectors settings

* reduce padding in one of the VDD filter settings
2026-01-14 01:49:07 -08:00
RickyRisterandGitHub b19312be70 [TabDeckEditor] Consolidate dockWidget management (#6499) 2026-01-14 09:48:26 +01:00
RickyRisterandGitHub 0deaa9d9b4 [DeckEditor] Don't change widget focus when adding card (#6503) 2026-01-09 18:27:54 -08:00
RickyRisterandGitHub 7c7755b61d [VDE] Fix crash vy adding null check for card in PrintingSelector (#6500) 2026-01-06 22:41:40 -08:00
RickyRisterandGitHub 0a2fdb05ad [VDS] Try to fix memory leak by properly parenting widgets (#6498)
* [VDS] Try to fix memory leak by properly parenting widgets

* format
2026-01-06 11:42:35 +01:00
RickyRisterandGitHub 192dac0396 [DeckListModel] Consolidate methods and signals for card change (#6466) 2026-01-05 18:28:59 +01:00
RickyRisterandGitHub 85c9d8a9ff [DeckEditor] Fix tokens being added to maindeck (#6495) 2026-01-05 01:18:38 -08:00
RickyRisterandGitHub ee2699413c [TabDeckEditor] Make card database a dock widget (#6472)
* [TabDeckEditor] Make card database a dock widget

* delete eventFilter implementation in abstract
2026-01-05 00:06:22 -08:00
RickyRisterandGitHub d50297bbe6 [AnalyticsPanel] Use cogwheel icon for configure button (#6494) 2026-01-05 00:03:22 -08:00
RickyRisterandGitHub 489ce416c3 [VDS] Add search query option for comments (#6477) 2026-01-05 08:31:10 +01:00
RickyRisterandGitHub 731c487ccb [ServerGame] null check participant in getPlayer (#6493) 2026-01-05 01:43:40 -05:00
RickyRisterandGitHub 2d5e8deb75 [Server_AbstractParticipant] Rename bool getters (#6492)
* [Server_AbstractParticipant] Rename bool getters

* reformat
2026-01-05 00:34:32 -05:00
RickyRisterandGitHub 746f2af044 [DeckListModel] optimize by iterating over cardNodes instead of ExactCards (#6485)
* [DeckListModel] optimize by iterating over cardNodes instead of ExactCards

* fix build failure

* another optimization

* fix build failure
2026-01-03 19:19:04 -08:00
RickyRisterandGitHub f16c552d97 [PrintingSelector] Don't refresh display if "bump cards to top" is off (#6486) 2026-01-04 01:08:39 +01:00
RickyRisterandGitHub 4fbb9d9682 [PrintingSelector] optimize amount calculation (#6478) 2026-01-03 01:04:56 -08:00
RickyRisterandGitHub 84aefda486 [DeckListModel] add getCardNodes method (#6484)
* [DeckListModel] add getCardNodes method

* Update one usage
2026-01-02 18:55:27 -08:00
RickyRisterandGitHub bbd8671e6e [DeckDockWidget] Fix VDE crash due to not mapping proxy index (#6479) 2026-01-02 14:32:22 +01:00
RickyRisterandGitHub 84e6907fa9 [DeckList] Store sideboardPlans by value to fix crash (#6475) 2026-01-02 09:10:41 +01:00
RickyRisterandGitHub 93a4647b04 [DeckList] move SideboardPlan into separate file (#6474) 2026-01-01 16:24:47 -08:00
RickyRisterandGitHub 987fe9c9e2 [DeckDockWidget] clean up grouping and format sync (#6467)
* [DeckDockWidget] clean up grouping and format sync

* refresh legalities in rebuildTree

* extract applyActiveGroupCriteria

* Fix build failure
2025-12-31 23:35:43 -08:00
RickyRisterandGitHub b2dd8eed3f [TabDeckEditor] Create class to centralize deck state (#6459)
* create new file

* use QSharedPointer in DeckListModel

* [TabDeckEditor] Create class to centralize deck state

* delete method

* update docs
2025-12-31 17:54:47 +01:00
RickyRisterandGitHub db3bdb586b [CardInfo] clean up signatures (#6462) 2025-12-31 04:13:32 -08:00
RickyRisterandGitHub d722b2569c [DeckListModel] Refactor: general code cleanup (#6460)
* change one usage

* move method

* move format check code

* make group criteria method static

* move method

* make method private

* more comments
2025-12-31 12:01:49 +01:00
RickyRisterandGitHub 968be8a06f Fix bug with next/prev buttons in PrintingSelector (#6453)
* Hacky fix and debug messages

* remove debug

* add todo
2025-12-31 12:00:23 +01:00
RickyRisterandGitHub daa7db7ce3 [DeckDockWidget] Fix tree unexpanding when changing group by (#6458) 2025-12-29 22:43:34 -08:00
RickyRisterandGitHub cb2cf31cec [DeckListModel] Clean up recursive updates (#6457) 2025-12-29 22:13:34 -08:00
RickyRisterandGitHub 296866a675 [DeckListModel] Refactor api for offset count (#6454) 2025-12-29 17:19:03 +01:00
RickyRisterandGitHub 96c82a0377 [Refactor] Clean up some PrintingSelector widgets (#6451)
* remove currentZone from PrintingSelector

* don't store constructor args in fields if they're just passed

* simplify some methods

* refactor

* clean up initializeFormats

* more refactoring in CardAmountWidget
2025-12-29 12:03:44 +01:00
RickyRisterandGitHub ca3f6bba02 [Refactor] Move prev/next card logic out of PrintingSelector (#6450) 2025-12-26 13:29:35 +01:00
RickyRisterandGitHub 70f9982c29 Bump minimum Qt version from 5.8 to 5.15 (#6442)
* Bump minimum Qt version from 5.8 to 5.15

* remove version check

* remove version checks
2025-12-23 09:58:23 -08:00
RickyRisterandGitHub 421d6b334a [DeckDockWidget] Correctly handle auto-expanding tree (#6446)
* move method

* remove expandAll calls

* update recursiveExpand

* Refactor DeckModel access

* [DeckDockWidget] Correctly handle auto-expand
2025-12-23 16:21:47 +01:00
RickyRisterandGitHub 01e8e4d589 [DeckDockWidget] Fix swap not auto-expanding tree (#6443) 2025-12-23 15:45:27 +01:00
RickyRisterandGitHub be17ee1902 [DeckListModel] Refactor to use column num constants (#6441) 2025-12-23 06:07:39 -08:00
RickyRisterandGitHub e80f13b78e [DeckDockWidget] Refactor to move down some methods in AbstractTabDeckEditor (#6444)
* move actSwapCard down

* rename method

* move actAddCard down
2025-12-22 05:48:55 -08:00
RickyRisterandGitHub c12f4e9d2a [DeckListModel] remove more access to underlying decklist for iteration (#6436)
* [DeckListModel] remove more access to underlying decklist for iteration

* remove one last direct iteration of decklist
2025-12-21 16:19:57 -08:00
RickyRisterandGitHub a0f977e80c [DeckList] refactor: pass DeckList by const ref (#6437)
* [DeckList] refactor: pass DeckList by const ref

* Change getDeckList to return a const ref
2025-12-21 16:19:33 -08:00
RickyRisterandGitHub d6db21419c [Refactor] Pass around LoadedDeck instead of DeckLoader (#6422) 2025-12-20 13:39:00 +01:00
RickyRisterandGitHub 367507e054 [DeckListModel] Refactor: Don't access underlying decklist for iteration (#6427)
* [DeckListModel] Refactor: Don't access underlying decklist for iteration

* add docs

* extract method
2025-12-20 13:25:30 +01:00
RickyRisterandGitHub b29909bdbe [DeckList] Refactor: Create class to RAII underlying tree (#6412)
* [DeckList] Create class to RAII underlying tree

* Update usages

* fixes after rebase

* update docs
2025-12-14 15:56:58 -08:00
RickyRisterandGitHub 589e9a15a6 [DeckFilterString] Add search query for format (#6414)
* [DeckFilterString] Rename file search expression

* [DeckFilterString] Add search query for format
2025-12-15 00:14:19 +01:00
RickyRisterandGitHub c218a66bcd [DeckFilterString] Rename file search expression (#6413) 2025-12-15 00:14:11 +01:00
RickyRisterandGitHub 5d9d7d3aa5 [DeckLoader] remove unused private methods (#6417) 2025-12-14 14:26:06 -08:00
RickyRisterandGitHub 2e2682aad4 [DeckList] Refactor and cleanup methods that iterate over nodes (#6407)
* remove helpers

* create getZoneNodes method

* replace direct calls to getRoot and forEachCard

* remove more non-const uses of forEachCard

* make node getter return const lists

* one more usage

* address comment

* address comment again

* fix hash

* fix hashes (for real this time)
2025-12-12 12:37:44 -08:00
RickyRisterandGitHub 2b690f8c87 [DeckLoader] Extract cardNode functions to own file (#6408)
* [DeckLoader] Extract cardNode functions to own file

* update usages
2025-12-08 00:47:24 -08:00
RickyRisterandGitHub c8b419888a [DeckLoader] Extract LoadedDeck struct (#6406)
* [DeckLoader] Extract LoadedDeck struct

* update usages

* Move enum to separate namespace

* format

* format

* format
2025-12-07 15:03:52 +01:00
RickyRisterandGitHub 95c3434205 [TagDisplayWidget] Refactor to just store tags and use signals (#6395) 2025-12-04 10:26:39 -08:00
RickyRisterandGitHub f0be6972cc [TagsDisplayWidget] cleanup refactor (#6394)
* Make fields private

* Move method to static

* clean up code

* move code
2025-12-04 09:40:24 -08:00
RickyRisterandGitHub b4e3f2cba9 [Oracle] Support importing tokens and spoilers from local file (#6387) 2025-12-03 00:19:56 -05:00
RickyRisterandGitHub 658ae83157 [DeckList] Make DeckList not a QObject (#6383) 2025-12-03 00:18:46 -05:00
RickyRisterandGitHub 3ff2df2796 [DeckList] Move metadata into struct (#6380)
* [DeckList] Move metadata into struct

* wipe metadata if preserveMetadata is false
2025-11-30 13:09:09 +01:00
RickyRisterandGitHub d57bec8ec6 [DeckList] Move decklist node classes into new folder (#6381)
* [DeckList] Move decklist node classes into new folder

* reformat

* fix
2025-11-30 13:05:49 +01:00
RickyRisterGitHubBrübach, Lukas <lukas.bruebach@student.fhws.de>
858361e6d3 [DeckLoader] Refactor last load info into struct (#6366)
* [DeckLoader] Refactor last load info into struct

* Use constant

* [[nodiscard]]

* do discard, I guess.

---------

Co-authored-by: Brübach, Lukas <lukas.bruebach@student.fhws.de>
2025-11-28 23:41:11 +01:00
RickyRisterandGitHub c46f6d1178 Support flavorName in PrintingInfo and cache the altNames in CardInfo (#6335)
* Support flavorName property and cache altNames

* update oracleimporter

* update cards.xsd
2025-11-20 14:54:23 +01:00
16392c28c5 [DeckLoader] Refactor to make some methods static (#6336)
* Make forEachCard const

* Make some DeckLoader methods static

* Update usages

* Update method param documentation in deck_loader.cpp

---------

Co-authored-by: BruebachL <44814898+BruebachL@users.noreply.github.com>
2025-11-17 03:49:45 -08:00
RickyRisterandGitHub 9a3104c5ac [CardInfo] refactor some fields into a UiAttributes struct (#6322)
* refactor CardInfo

* refactor everything else
2025-11-16 17:56:57 +01:00
RickyRisterandGitHub 1c1599a9f4 [Oracle] Move page classes to separate file (#6314)
* Move pages to separate file

* Fix shadowing complaint
2025-11-15 11:27:53 +01:00
RickyRisterandGitHub 6dff230e10 [Oracle] Use NoOp setting providers (#6312) 2025-11-15 11:26:39 +01:00
RickyRisterandGitHub 84e0732fb1 Fix crash when changing shortcut in game (#6318) 2025-11-14 15:29:05 +01:00
RickyRisterandGitHub ae123587d7 [Oracle] clean up OracleImporter (#6313)
* Move variable declaration closer to usage

* Leave comments

* inline some constants

* make code easier to understand

* Use structured binding to iterate over maps

* move things around

* static const regex

* remove redundant parens

* Can't use asKeyValueRange because of Qt versions
2025-11-12 16:58:09 +01:00
RickyRisterandGitHub 4d652210dc Support shortcut for hand reveal actions (#6297)
* Support shortcut for hand reveal actions

* add docs
2025-11-09 12:34:09 +01:00
RickyRisterandGitHub 484e8e64a6 Create "Hand" shortcut group (#6296)
* Add new Hand ShortcutGroup

* Move hand shortcuts
2025-11-09 10:16:30 +01:00
RickyRisterandGitHub 757e9f3415 Add more sort options to hand sort (#6279)
* Add more sort options to hand sort


Took 14 minutes

* Move defaultOptions up a level

* Directly pass sort order as param

* fix include

* revert

* fallback expandSortOption
2025-11-08 23:03:44 +01:00
RickyRisterandGitHub 1c209b3320 Fix names in qtlogging.ini (#6265) 2025-11-03 18:55:32 +01:00
RickyRisterandGitHub 8ebfc40de5 Consolidate closeReplay action into leaveGame (#6239) 2025-10-09 18:59:53 -07:00
RickyRisterandGitHub c42e953199 Fix unattach shortcut not working at all in remote games (#6238) 2025-10-09 18:59:10 -07:00
RickyRisterandGitHub 636aa72141 Remove redundant prefix from libcockatrice_card folders (#6237)
Took 28 minutes
2025-10-09 23:09:20 +02:00
RickyRisterandGitHub 9c58e6f90f Don't use vcpkg on local macOS (#6225)
* Don't use vcpkg on local macOS

* fix typo
2025-10-05 13:31:46 +02:00
RickyRisterandGitHub 6187c7268f [Game] Fix double concede in log (#6179) 2025-09-26 19:12:20 +02:00
RickyRisterandGitHub 3501ee9a9d Sort pb cmake and add comments to proto files (#6163)
* sort cmake

* copy over comments

* clean up comments
2025-09-22 01:57:42 +02:00
RickyRisterandGitHub 7ac22a6ce8 Move cards and filters folder out of game (#6145)
* big move

* also move game_specific_terms

* fix imports

* alphabetize cmake

* fix build failure

* create database folder and move files into it

* fix includes

* run formatter
2025-09-16 12:02:57 +02:00
RickyRisterandGitHub f4fbe90a72 Fix segfault when creating token of opponent's card (#6144)
* Fix segfault when creating token of opponent's card

* clean up code
2025-09-15 12:18:51 +02:00
RickyRisterandGitHub a9cbd5a172 Make TabHome a managed tab (#6147)
* Make TabHome a managed tab

* Add shortcut
2025-09-15 12:07:57 +02:00
RickyRisterandGitHub 94ba1c83c6 Removed unused fields in GameMetaInfo and GameState (#6142)
* Removed unused fields in GameMetaInfo and GameState

* revert parent to AbstractGame

* init activePlayer to -1
2025-09-15 10:22:11 +02:00
RickyRisterandGitHub ff7ce39841 Fix hand visible (#6122) 2025-09-12 09:46:38 -04:00
RickyRisterandGitHub 0f05d6bd74 Move doc comments to correct place (#6123)
* Move docs for ViewZone

* Update docs

* move docs for updateCardMenu

* Fix link in doc

* format
2025-09-12 09:46:18 -04:00
RickyRisterandGitHub bca0da6bd4 Fix segfault when drawing arrow (#6116) 2025-09-11 09:49:54 -04:00
RickyRisterandGitHub bd65aae81e Fix Logs tab close button not working (#6104) 2025-09-06 11:04:50 +02:00
RickyRisterandGitHub ab4373d025 Implement replay sharing (#6066)
* new protos

* implement commands on server

* add buttons

* icons

* run formatter

* Message on get replay code failure

* Add new commands to switch statement

* Better failure messages

* Fix permission check query

* Change hash method

* Prevent adding duplicate replays

* Clean up TabReplay ui

* Copy over replay name

* base64 encode the hash

* Shorten hash

* Better failure messages

* change icon back to search icon

* check hash before checking if user already has access

* update share icon

* Update label text
2025-08-24 22:40:44 -04:00
RickyRisterandGitHub d5d9f9bedc Refactor: Remove unused fields in InnerDecklistNode (#6086) 2025-08-22 23:26:16 -04:00
RickyRisterandGitHub f31d30bf84 [PictureLoader] Remove manual multithreading (#6078) 2025-08-16 20:38:49 -04:00
RickyRisterandGitHub 322fdb14de Fix segfault when selecting card in replay (#6077) 2025-08-16 14:27:28 -04:00
RickyRisterandGitHub 881243da6a Refactor TabReplay creation (#6064) 2025-08-15 01:15:02 -04:00
RickyRisterandGitHub 46d65f0b7e Refactor: rename and consolidate getSpectator (#6067) 2025-08-15 01:13:53 -04:00
RickyRisterandGitHub 03bebbe4c2 Rework card menu handling (#6069)
* extract cardMenu from CardItem

* move cardMenu saving to TabGame

* delete TabGame::updateCardMenu

* move checking to updateCardMenu

* unset activeCard when all cards are unselected
2025-08-15 01:13:28 -04:00