Commit graph

32 commits

Author SHA1 Message Date
Rob Blanckaert
eb60fec8e2 Filter Strings for Deck Editor search (#3582)
* Add MagicCards.info like fitler parser.

* Use FilterString whenever one of [:=<>] is in the edit box.

* Opts

* Opt

* - Capture errors
- Allow querying any property by full name

* clang format

* Update cockatrice/src/filter_string.cpp

Co-Authored-By: basicer <basicer@basicer.com>

* - Some refactoring for clarity
- More filters
- Add filter help

* Clangify

* Add icon

* Fix test name

* Remove stay debug

* - Add Rarity filter
- Make " trigger filter string mode

* You have to pass both filter types

* clangify

* - Allow filtering by legality
- Import legality into card.xml

* Add format filter to filtertree

* More color search options

* RIP extended

* More fixes

* Fix c:m

* set syntax help parent

* Fix warning

* add additional explanations to syntax help

* Allow multiple ands/ors to be chained

* Cleanup and refactor

Signed-off-by: Zach Halpern <ZaHalpern+github@gmail.com>

* Move utility into guards

Signed-off-by: Zach Halpern <ZaHalpern+github@gmail.com>

* I heard you like refactors so I put a refactor inside your refactor (#3594)

* I heard you like refactors so I put a refactor inside your refactor

so you can refactor while you refactor

* clangify

* Update tab_deck_editor.h
2019-03-01 14:30:32 -05:00
ctrlaltca
ed70099e36 Rework of the card database, xml format and oracle parser (#3511)
* CardDB: merge all card properties in a new structure

* Pre Json parser changes

 * Cockatrice: use qt's builtin json support
 * Move qt-json src dir from cockatrice to oracle
 * Add dummy cockatricexml4 parser (yet to be implemented)

* Implement a new parser and xml format

 * cockatricexml4: new xml parser following the "generic properties hash" pattern;
 * oracleimporter: refactor the parsing code to better adapt to cockatricexml4; rewrote split cards parsing
 * carddb: change "colors" from a stringlist to a string
 * carddb: move the getMainCardType() method to the cockatricexml3 parser
 *

* CardInfo: show all properties (stil missing: nice name + translation)

* Rework the "add related card" feature so that it doesn't change the card name in the carddb

Also, fix token count display

* Picture loader: Added support for transform cards

* Fix side information for flip cards

Mtgjson uses side a/b for flip cards, while scryfall doesn't

* Pictureloader: dynamic tag resolution from card properties

Examples old => new
* !cardid! => !set:muid!
* !uuid!   => !set:uuid!
* !collectornumber! => !set:num!
New examples:
 * !prop:type!
 * !prop:manacost!

* Start moving mtg-related property names to a specific file

* Clangify

* Fix tests

* Make gcc an happy puppy

* Revert "Make gcc an happy puppy"

This reverts commit 446ec5f27516c4d3b32dbfc79557f4827c5c5bdf.

* Some gcc fixes

* Share set list between different db parsers, so they won't overwrite one each other

* All glory to the hypnoclangifier!

* Fix test compilation

* Cleanup edited files in the prior PR. (#3519)

* Cleanup edited files in the prior PR.

Signed-off-by: Zach Halpern <ZaHalpern+github@gmail.com>

* Fix includes

Signed-off-by: Zach Halpern <ZaHalpern+github@gmail.com>

* Update carddatabase.h
2019-01-23 18:17:10 -05:00
Henry Lancelle
cf9fdcd09e Translate curly apostrophe to ASCII apostrophe (#3395) (#3401)
* Translate curly apostrophe to ASCII apostrophe (#3395)

Treats the curly apostrophe as a straight apostrophe when searching in
the deck editor search bar.

* Moved logic for handeling translation to CardDatabaseDisplayModel.

This implementation was done with strings instead of characters because
the curly apostrophes and quotes are considered multi-characters.
Thus, the method of iterating through the string and replacing
the characters with the proper translations was difficult to cleanly
implement.

* clang-tidy modifications

* Implemented faster algorithm for string translation.

Optimized the algorithm for string translation, before it would compute
in O(N*M) time where N is the size of the string and M is the size of
the translation table.  Now it will compute in O(N) time where N is the
length of the string.

* Renaming variables and methods.

* Fixed character literal type, was unicode, is now wide.
2018-10-03 09:15:02 +02:00
ctrlaltca
517420cccb Replace CardInfo* and Carset* with smart pointers (#3053)
* Replace CardInfo* and Carset* with smart pointers

* fixes to help memory & c++11 stuff
2018-02-02 12:52:47 -05: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
John Hill
422c899cdb Sorting by P/T numerically (#2901) 2017-11-04 13:11:46 -04:00
ctrlaltca
160d66d890 show tokens all sets (#2646) 2017-04-25 11:32:51 -04:00
Zach H
79fc24769a Colors to list 2016-06-21 00:48:03 -04:00
Mark McDonald
d12c86d89c Separate search's card name matching out from token filter check
* Trying to eventually reuse card name filtering in "create token"
  dialog
2016-05-11 21:42:52 -04:00
Fabio Bas
2a3701b036 fix #1903 2016-04-03 18:33:10 +02:00
ctrlaltca
f217551f5f Merge pull request #1877 from Psithief/patch-2
Prevent PTColumn from being the last column shown.
2016-03-30 22:55:49 +02:00
Psithief
ba3a9f83bc Prevent PTColumn from being the last column shown.
P/T column is really narrow. It should go before Card Type, so Card Type can expand into the remaining space.

Improves #1671, assuming I got this correct.

Untested!
2016-03-19 19:55:57 +08:00
Fabio Bas
1e3fb6c6e1 Rework "paths" settings loading and card database loading
* main.cpp: removed path checking and db loading
 * card database: merge card loading methods into a single one
 * settings cache: take care of returning safe paths for decks,
replays, etc..
 * main window: if db loading fails (eg. first run), propose to run
oracle

NSIS: propose to run cockatrice instead of oracle

Rework card database loading

 * Move carddatabase-related method out of deckeditor tab
 * Load cards in another thread and render them progressively
 * Optimize database reload after enabled sets change

Fix deck editor column width

 * removed the noCard hack.
 * getCard() no more creates cards instead of just returning existing
ones
 * Fix the “edit tokens” dialog.
 * PictureLoader: avoid trying to download twice the same card
 * PictureLoader: correct return of card background
 * AbstractCardItem: avoid recalculating card color at every paint

Use a different file to save custom tokens

Misc required improvements

 * Use nullptr;
 * Refactor CardInfoWidget to use CardInfoPicture and CardInfoText
instead of duplicating code;
 * Added CardInfo::getColorChar()
 * Fixed some potential crashes
 * removed dead code related to CardInfoWidget
 * Don't require a restart after adding a new custom sets file
 * Bump CMake requirements to 3.1
2016-03-15 22:27:55 +01:00
Fabio Bas
fddcbb8296 Lazy loading of card database view => faster startup times 2015-12-28 15:26:10 +01:00
Fabio Bas
3af5804073 Reworked deck editor 2015-06-13 20:37:51 +02:00
Fabio Bas
25290227ca Sort Mana cost using CMC 2015-04-12 18:54:00 +02:00
Fabio Bas
013087a4eb CardDatabaseModel: use an enum for columns 2015-04-12 18:42:10 +02:00
Matt Lowe
b5dd7a42ce Fixed card search
Card search will now order the following way:

1. Exact match at top
2. Exact match with preceding values sorted lexically.
3. Match contained in word sorted lexically
2015-03-03 13:32:51 +01:00
sylvanbasilisk
748aac7ee8 whitespace modifications in preparation for merge 2014-03-25 01:13:41 +00:00
sylvanbasilisk
c786e180c3 reverted back to original deck editor layout but including filtertree
the original layout is actually more space efficient if using CardFrame
instead of CardInfoWidget and reducing the size of the deck editor
toolbar.

this commit also removes the old search feature by removing the search
button and the clear search button. the clear search menu item is left
in place, however it now clears the filtertree.

finally, the stretch factor for the right frame in the main layout was
reduced to zero so that the card database gets priority for extra space.
this makes more sense because the deck editor does not actually need
very much horizontal space.
2014-01-26 23:20:35 +00:00
sylvanbasilisk
16d30fb9e1 miscellaneous code cleanup
renamed filter list modules to filter tree to more accurately reflect
the nature of the data structure.
2014-01-22 20:52:52 +00:00
sylvanbasilisk
3202243ed0 connect filter list functionality to the CardDatabaseDisplayModel class
enable/disable check boxes still not functional
2014-01-21 23:37:22 +00:00
Max-Wilhelm Bruker
60f99818e1 fixed DlgEditTokens crash when removing a token 2012-06-02 18:09:19 +02:00
Max-Wilhelm Bruker
3ba3952604 fixed issue #37: add option to manually add token cards to the database 2012-05-17 18:29:35 +02:00
Max-Wilhelm Bruker
12b5e39440 improved token dialog w/ storage inside the deck list - now we need a reliable online source for token data (preferably with pictures) 2012-04-06 15:16:52 +02:00
Max-Wilhelm Bruker
f553fd7456 some token code 2012-04-05 11:48:13 +02:00
Max-Wilhelm Bruker
e6fc20114e deck editor and picture file name fixes 2011-04-18 02:00:48 +02:00
Max-Wilhelm Bruker
7a7b686e67 fixed crash that occurs when reloading the card database while deck editor or game is running 2011-02-28 18:20:27 +01:00
Max-Wilhelm Bruker
42531d90e9 initial commit for card search dialog 2009-12-20 16:39:26 +01:00
Max-Wilhelm Bruker
324be6b40c reverted card search to initial behaviour 2009-12-20 15:17:45 +01:00
Max-Wilhelm Bruker
841b91bc89 deck editor improvement 2009-10-12 15:46:45 +02:00
Max-Wilhelm Bruker
e6d6162426 started implementing a simple deck editor 2009-04-04 19:51:23 +02:00