* 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
* Add option to share decklists on load.
Took 1 hour 58 minutes
Took 9 minutes
Took 39 minutes
* Lint.
Took 14 minutes
Took 2 minutes
* Stuffs
Took 39 minutes
Took 4 seconds
Took 43 minutes
* Process local player first.
Took 45 minutes
* Consider if the setting is set on the game info first.
Took 4 minutes
* Save an indent level.
Took 43 seconds
* Don't commit logging config.
Took 3 minutes
* Remove a debug print.
Took 10 seconds
Took 7 seconds
* Add another optional guard.
Took 5 minutes
* Hide the tab bar if only one (own deck) is visible.
Took 9 minutes
* Rename setting label for clarity
Took 2 minutes
* Capitalization.
Took 3 minutes
---------
Co-authored-by: Lukas Brübach <Bruebach.Lukas@bdosecurity.de>
* extract cardMenu from CardItem
* move cardMenu saving to TabGame
* delete TabGame::updateCardMenu
* move checking to updateCardMenu
* unset activeCard when all cards are unselected
Tokens created through Ctrl + T use the pinned printing, if available.
Tokens created through a related card menu use a token from the same set, if available.
Took 2 hours 25 minutes
Took 10 seconds
Co-authored-by: Lukas Brübach <Bruebach.Lukas@bdosecurity.de>
* Add sort hand shortcut
* add function to sort hand by type and name
* rig up the sort hand to the player
* fix sorting param
* use getShortcut instead of getSingleShortcut
* use correct method
* change default sorting
---------
Co-authored-by: Zach H <zahalpern+github@gmail.com>
* Add the option to load decklists from Archidekt, Deckstats, Moxfield, TappedOut in deck editor and lobby.
Took 3 hours 34 minutes
Took 9 seconds
Took 12 seconds
* Properly set quantities.
Took 11 minutes
* Warnings.
Took 5 minutes
* Static regexes.
Co-authored-by: RickyRister <42636155+RickyRister@users.noreply.github.com>
* Category loggings and better warnings.
Took 18 minutes
Took 42 seconds
* use loadFromStream_Plain instead of manually adding CardNodes to the DeckList.
Took 30 minutes
---------
Co-authored-by: Lukas Brübach <Bruebach.Lukas@bdosecurity.de>
Co-authored-by: RickyRister <42636155+RickyRister@users.noreply.github.com>
* Allow more naming schemes for custom pictures.
Order is cardName_providerId, cardName_setName_collectorNumber, setName-collectorNumber-cardName and then just generically cardName, if the user has decided to override every printing. Most-to-least specific.
Took 2 minutes
Took 8 seconds
* Fixups.
Took 2 minutes
* Even more naming schemes.
Took 6 minutes
* Finally yeet the bug warning in PrintingSelector
Took 3 minutes
* Adjust to PrintingInfo change.
Took 5 minutes
* Don't use suffixes.
Took 7 minutes
Took 9 seconds
* Comments.
Took 2 minutes
---------
Co-authored-by: Lukas Brübach <Bruebach.Lukas@bdosecurity.de>
* Inline getCardFromMap
map.value already returns a default-constructed value if the key is not present
* Use for-each instead of iterator
* Add new method
* clean up method order
* fix build failure
* clean up getPreferredPrinting usage
* early returns
* remove unnecessary consts
* removed unused
* rename class
* rename variables and methods
* rename again
* rename variables again
* rename field
* run formatter
* [PictureLoader] Reduce downtime between load attempts
* rename some stuff
* better comments
* Fix segfault from status bar
Pass just the relevant data through the signals to the status bar, instead of passing the entire Work object.
That way the data is detached from the Work object and we won't segfault when Work self-deletes before status bar tries to use that data.
* Rename method
* [PictureLoader] Properly run reply processing on Work's thread
* emit cachedImageHit first
* Remove unused fields
* Remove unused fields
* Fix double free requests from cache hit
If we hit a cached url, the request already gets to skip the queue.
By sending another free request once the cached request finishes, we're actually sending two free requests on each cache hit.