Commit graph

42 commits

Author SHA1 Message Date
BruebachL
f73196841a
Multiple Printings per Deck (#5171)
* Refactor CardInfo Widgets to reside in their appropriate folder and to have a clearer naming structure.

* Added Zach's work on storing printing information in the DeckList (#1)

* Change CardInfo's PixmapCacheKey to be the UUID of the preferred set after database loading has finished. Otherwise, and if no UUID of a preferred set is available, default to the card name.

* Refactor CardDatabase *db global variable to singleton CardDatabaseManager.

This commit refactors the global variable CardDatabase *db into a singleton encapsulated by the DatabaseManager class, accessible via DatabaseManager::getInstance(). This change centralizes access to the database instance, improving code modularity and encapsulation, resolving dependencies on main.h for code that requires access to the database instance.

- Added DatabaseManager class with getInstance() method returning a pointer to the singleton CardDatabase.
- Removed global db variable and updated references across the codebase.
 - Thread-safe static initialization for the singleton.

Impact: This refactor should have no functional impact on the application, as it maintains the same interface for accessing the CardDatabase instance. However, the codebase now benefits from improved encapsulation, lifetime management, and thread-safety.

* fixed db issue an renamed sets to set in picture loader

* canibalized zach work and added it to the decklist builder

---------

Co-authored-by: Lukas Brübach <Bruebach.Lukas@bdosecurity.de>

* Reintroduce some changes lost in the merge.

* Introduce UUID attribute to abstract_card_item, card_item, deck_view_card, server_card and serverinfo_card.

* Have various game events respect the new UUID attribute on instantiation.

* Correct some calls to default to preferred printing.

* DeckList now tries to assign reasonable defaults for UUID and collectorNumber if none are found in loaded DeckLists.
Rename overloaded DeckListModel findChild() function to findCardChildByNameAndUUID() for clarity.

* canibalized zach work and added it to the decklist builder

* Change getPreferredPrintingForCard to getPreferredSetForCard to reflect refactor.

* Properly update and set the DeckEditor's CardFrame to fetch by name and UUID if a card was selected from the decklist.

* Mainboard/Sideboard swaps should respect the UUID from the old zone instead of just blindly adding preferredPrinting.

* If the card info is null, there's no point in trying to look for the sets.

* Don't define methods twice.

* Convenience method to fetch a specific CardInfoPerSet instance for a cardName and a UUID.

* Check if the uuid starts with card_ when comparing.

* Address pull request comments (nullptr checks and additional comments, mostly.)

* Reformat code so the linter will stop yelling at me.

* DeckList no longer pre-populates uuids.

* Update Event_MoveCard to include the card UUID.

* Update Player::MoveCard to include the card UUID.

* Set the uuid when we set the cardName, in terms of hidden zones.

* [TEST/RevertMe] Set the uuid everywhere to test.

* Don't inline setUUID and mimic setName for AbstractCardItem.

* Revert blindly setting uuid for testing.

* Address PR comments (AbstractCardItem).

* Combine if-statement.

* Re-order uuid to visually align with its field number.

* Remove unnecessary new uuid field from event_move_card.

* Remove unused imports.

* Include cardName in the PixmapCacheKey in order to not break double-faced cards.

* Refactor setCode to cardUUID and introduce new cardSetShortName field.

* Override

* Refactor UUID to be providerId and change QString comparisons with empty string to isEmpty().

* Update translations.

* Change parent to be the first argument.

* Pull Parent argument up for CardItem.

* Pull Parent argument up for CardItem.

* Linter.

---------

Co-authored-by: Lukas Brübach <Bruebach.Lukas@bdosecurity.de>
Co-authored-by: LunaticCat <39006478+LunyaticCat@users.noreply.github.com>
Co-authored-by: luna <yannbrun1507@outlook.fr>
Co-authored-by: ZeldaZach <zahalpern+github@gmail.com>
2024-11-18 21:56:44 -05:00
Zach H
186f4289e9
Address /W4 compiler warnings for Windows (#4910) 2023-10-15 20:31:13 -04:00
Zach H
4c290aec57
Fix #4706: don't replace ampersands when loading from plain text (#4734)
* Fix #4706: Exit linting early if a card with the exact name is found first

* Remove ampersand conversion

* put back

* Update tests

* Format

* don't use qsizetype

---------

Co-authored-by: ebbit1q <ebbit1q@gmail.com>
2023-01-30 00:37:28 +01:00
ebbit1q
18a07274d4
clangify everything with the new header sorting (#3908) 2020-03-18 17:36:02 -04:00
ctrlaltca
b29bd9e070
Clang-format (#3028)
* 1/3 Add .clang-format file and travis compilation check

* 2/3 Run clang-format

* 3/3 Fix compilation problems due to include reordering

* 3bis/3 AfterControlStatement: false
2018-01-27 10:41:32 +01:00
Zach H
34bec90193
Fix deck loader with spaces (#3007) 2018-01-18 19:23:13 -05:00
Kyle Grammer
5e00faed5d Fix for Aftermath and Split Cards when sending to Tappedout; fix #2942 (#2944) 2017-12-10 17:56:49 -05:00
Zach H
b53cd33eed Smarter Clipboard Pasting/Parsing (#2706) 2017-05-14 14:35:40 -04:00
Zach H
16bc8b764b remove all of pricing 2017-05-04 23:29:43 -04:00
Fabio Bas
36f6907fa3 Improved token loading 2017-05-04 23:28:51 -04:00
Mark McDonald
9cbae8c707 Decklist testing (#2537) 2017-04-01 01:24:16 -04:00
ctrlaltca
7f28a7e844 Fix #601; Fix #725 (#2126)
Analyze deck on tappedout
Fix small bug in deckstats interface
2016-09-02 01:34:56 -04:00
Matt Lowe
319b5d88b2 Removed redundant constructor
Removed constructor that was not needed. Also removes annoying "error"
output when compiling.
2015-03-06 21:09:18 +01:00
Waleed Khan
359882917a Merge remote-tracking branch 'upstream/master'
Some tabs to spaces, and maybe fixed to work with Qt 5.

Conflicts:
	cockatrice/src/deckstats_interface.cpp
	common/decklist.cpp
	common/decklist.h
	oracle/src/oracleimporter.cpp
2014-07-20 14:40:18 -04:00
arxanas
4e8ba699d2 Tabs to spaces. 2014-07-08 22:53:02 -04:00
arxanas
7cbe410172 Fix #45: don't send tokens to deckstats. 2014-06-30 03:08:55 -04:00
Daenyth
4c2a553f03 Have servatrice inform players of sideboard size
Ref #142
2014-06-28 00:36:43 -04:00
Daenyth
68c0932a2f Don't have decklist sort behavior rely on column order 2014-06-22 08:36:35 -04:00
Daenyth
e99c1bbe6d Merge remote-tracking branch 'origin/master' into editor-sorting-v5 2014-06-22 08:10:22 -04:00
Mark Morschhäuser
7c606af63e Fixed warning regarding virtual function overrides. Using C++ standard.
See http://msdn.microsoft.com/en-us/library/bb384874(v=vs.90).aspx
2014-03-12 09:11:01 +01:00
Buce
a62ba91a5d Add different compare methods for sorting
Give DeckList nodes the ability to sort based on name, price, or
number.
2014-02-28 15:38:23 -06:00
Max-Wilhelm Bruker
44d688b1d5 added deckstats.net interface in deck editor, fixing issue #39 2012-05-17 20:11:46 +02:00
Max-Wilhelm Bruker
0eee6d7ab9 fixed issue #49: when editing a remote deck, be able to directly save it there 2012-05-09 21:52:09 +02:00
a b
7faa033855 Mac fixes 2012-01-29 21:17:32 +01:00
Max-Wilhelm Bruker
16541141bd Cleaned up decklist code 2012-01-21 16:41:46 +01:00
Max-Wilhelm Bruker
38e4781624 fixed packet length calculation bug, re-enabled deck selection 2011-12-18 19:10:47 +01:00
Max-Wilhelm Bruker
314f17091d protobuf client->server communication almost working 2011-12-18 18:35:14 +01:00
unknown
0bb4ef8bb8 added deck hashing 2011-10-04 16:55:18 +02:00
Max-Wilhelm Bruker
6226e381de price tag feature by Marcio Ribeiro 2011-06-16 16:43:01 +02:00
brukie
dc0f21cce4 Threaded picture caching 2011-01-19 00:16:41 +01:00
Max-Wilhelm Bruker
714a0eee50 don't waste bandwidth with spaces or default-value items 2011-01-13 15:02:13 +01:00
Max-Wilhelm Bruker
b1d8c7bda0 Made QColor wrapper class so that Servatrice will compile without QtGui 2010-10-09 18:50:06 +02:00
Max-Wilhelm Bruker
a5f678bc3d single player fix 2010-09-08 20:15:34 +02:00
Max-Wilhelm Bruker
579628b4c4 save deck to clipboard 2010-06-06 16:06:38 +02:00
Max-Wilhelm Bruker
ca12aeb5a7 load deck from clipboard; closing feature request 0000019 2010-05-28 16:41:59 +02:00
Max-Wilhelm Bruker
b2f83541e7 Initial commit for sideboarding. It's supposed to be fully functional. 2010-03-06 17:17:54 +01:00
Max-Wilhelm Bruker
207d10d3e2 XML fix 2009-12-01 10:43:46 +01:00
Max-Wilhelm Bruker
694070724c restructured protocol code 2009-11-29 03:07:28 +01:00
Max-Wilhelm Bruker
cf21528a69 almost finished pre-game deck loading 2009-11-22 01:30:16 +01:00
Max-Wilhelm Bruker
8dcf81654e decklist transfer code 2009-11-22 00:34:31 +01:00
Max-Wilhelm Bruker
d3114fafbf decklist transfer code 2009-11-18 19:59:03 +01:00
Max-Wilhelm Bruker
c5bf72b1bf decklist moved to common 2009-11-18 18:15:16 +01:00
Renamed from cockatrice/src/decklist.h (Browse further)