* update settingsCache
* implement thing
* add new setting to window
* rename setting
* make it compile on qt5
* fix typo
* somehow changing the order here fixes a bug?
The loaded value was getting clamped to 99
* feat: prefer 'Core' and 'Expansion' sets for prioritization
* rework set prioritization
* clean up priority enum
* formatting
* revert changes to CockatriceXml3Parser
* re-add missing null check
* remove priority fallback ternary from CardSet model
* make defaultSort logic easier to follow
* revert changes to v3 card database xsd
* remove unused invisible priority col from sets dialog
* move draft innovation and duel deck sets to secondary prio
* minor fixes
* change PriorityFallback to 1
* make priority optional in xml
* remove PriorityUndefined and set PriorityFallback to 0
* set priority when not found to PriorityOther
in case a new set type is added it's unlikey we want it sorted first,
it'll probably be a new product so it's probably best to sort it with
the funny things
* simplify sort function
---------
Co-authored-by: tooomm <tooomm@users.noreply.github.com>
Co-authored-by: ebbit1q <ebbit1q@gmail.com>
* fix QComboBox creation order in retranslateUi
* move bottom row creation closer to where it's used
* rename QGraphicsLinearLayout variables
hFilterbox and hPilebox don't make much sense now
* add comment about #5204
- References seem to go to 0 in newer Qt versions(?)
https://doc.qt.io/qt-6/qtime.html
> QTime objects should be passed by value rather than by reference to const; they simply package int.
- QLabel sizes weren't taken into account until the widget is rendered
- Long QLabels can cause exacerbated issues
- Force refresh after 1ms to take QLabels into account
* refactor to allow for sorting by property of choice
* implement thing
* prevent overlapping sort properties
* enable/disable pile view checkbox if groupBy is off
* fix compiler warnings
* check to disable pile view checkbox on init
* Fix builds on Qt5
* Fix builds on Qt5
---------
Co-authored-by: ZeldaZach <zahalpern+github@gmail.com>
* leave some documentation on Zone classes
* small refactor
* undo functional change from refactor and clean up comments
* move variables into if block
`QObject::connect: No such slot UserInterfaceSettingsPage::setNotificationEnabled(Qt::CheckState) in /Users/Ricky/GitHub/Cockatrice/cockatrice/src/dialogs/dlg_settings.cpp:448`
* Cache redirects properly by implementing our own QSettings cache for urls.
* Load and store redirects properly.
* Set the maximum network cache size from settings value on PictureLoaderWorker instantiation.
* Address comments.
* Lint.
* Adjust debug statements to be in line with existing ones.
* Minor Tweaks
* Make redirect cache ttl a user-adjustable setting.
* Fix Build
* Minor Cleanup
* Minor Cleanup
* Build Fix
---------
Co-authored-by: Lukas Brübach <Bruebach.Lukas@bdosecurity.de>
Co-authored-by: ZeldaZach <zahalpern+github@gmail.com>
* refactor to use confirmOpen
* implement extra button in confirmation
* use brackets in one-liner if statements
* refactor save confirmation window into function
* 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>
* Add FlowWidget class with flexible layout and scroll handling
- Implemented FlowWidget class to organize widgets in a flow layout with scrollable options.
- Integrated QScrollArea to handle overflow with configurable horizontal and vertical scroll policies.
- Incorporated dynamic layout selection (FlowLayout, HorizontalFlowLayout, VerticalFlowLayout) based on scroll policy.
* Add OverlapWidget and OverlapLayout for managing overlapping child widgets
- Implemented the OverlapWidget class to manage child widgets in an overlapping manner, supporting configurable overlap percentage, maximum columns, maximum rows, and layout direction.
- Introduced the OverlapLayout class, which arranges widgets with overlapping positions, allowing flexible stacking based on specified parameters.
* Add OverlapControlWidget.
* Delete FlowLayout items later to allow them to finish their event loop.
* Allow OverlapWidgets to adjust their rows/columns on resize.
* Clamp vertical FlowLayout to any available parent scrollAreas.
* Implement margins and spacing for FlowLayouts.
* Adjust/revert some things.
* Address pull request comments (nullptr checks and additional comments, mostly.)
* Reformat code so the linter will stop yelling at me.
* Remove undefined methods from FlowLayouts.
* Fix the build.
* Revert FlowLayout::takeAt to index check.
* Commits will continue until linter morale improves.
* Fix various warnings in FlowLayout.
* Fix various warnings in FlowLayout.h.
* Fix various warnings in the FlowLayout classes.
* Fix [[nodiscard]] warning.
* Fix more warnings.
* Final round of yellow squiggle fixing.
* Linter formatting.
* Refactor column/row calculation to be more readable.
* Code style.
* Address PR comments.
* Combine if-statements.
* Replace std::math functions with Qt equivalents.
* Fix non-consts and QtMath.
---------
Co-authored-by: Lukas Brübach <Bruebach.Lukas@bdosecurity.de>
* Refactor CardInfo Widgets to reside in their appropriate folder and to have a clearer naming structure.
* Add optional HoverToZoom functionality to CardInfoPictureWidget (default: disabled) and utility class to display text over a CardInfoPictureWidget.
* Patch CardInfoWidgets to use the new CardDatabaseManager.
* Add HoverToZoom to CardInfoPictureWithTextOverlayWidget
* Refactors and new signals for CardInfoPictureWidgets.
* Address pull request comments (nullptr checks and additional comments, mostly.)
* Reformat code so the linter will stop yelling at me.
* Linting.
* Fix the build.
* Fix warnings.
* Formatting, const qualifiers.
* Sensibly call the base class's (QWidget) paint event.
* Address PR comments (card picture).
* QT Version check because enterEvent signature changed.
* Linting.
---------
Co-authored-by: Lukas Brübach <Bruebach.Lukas@bdosecurity.de>