Commit graph

54 commits

Author SHA1 Message Date
ebbit1q
18a07274d4
clangify everything with the new header sorting (#3908) 2020-03-18 17:36:02 -04:00
ctrlaltca
6c21855f98
Token dialog fixes (#3711)
* Token dialog fixes

* clangify

* edit custom tokens

* Fix in-game token dialog
2019-05-09 09:37:27 +02:00
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
7bc14b594d Include card name criteria when filtering token database model. 2016-05-11 21:42:52 -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
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
Matt Lowe
95104df589 Reverted back to full punctuation
Reverted back. Right now it feels strange to only have simple search.
Really you would want both simple search AND accurate search on, though
this requires twice the checks for each result.
2015-05-01 22:26:44 +02:00
Fabio Bas
881cea27f4 Rework the way sets selection/importing works; fix #539 (rebased) 2015-04-18 18:47:09 +02:00
ctrlaltca
2f35e86be9 Merge pull request #954 from ctrlaltca/deckeditor_cmc
Minor deck editor fixes
2015-04-16 08:12:53 +02:00
Fabio Bas
eb6d067a21 Speed up deck editor filtering
* card: cache simpleName for each card
 * deck editor: remove double comparation of searched term with card
name when sorting
2015-04-15 23:21:44 +02:00
Matt Lowe
2e5ecd841c Removed check
When searching for a card the line edit will not be empty, so this check
is not needed. The performance when the line edit IS empty will take a
slight hit, but you really want additional performance when searching,
not when the line edit is empty.

Removing will increase performance.
2015-04-15 12:25:06 +02:00
Matt Lowe
778ad8dee1 Simple name searching on by default
Previously would try to match the card name, if nothing is found, then
we would try again with the simple name.

I have now made it only the simple name version. We do not need to
perform the first check. Should help a little with performance.
2015-04-14 23:30:29 +02:00
Fabio Bas
25290227ca Sort Mana cost using CMC 2015-04-12 18:54:00 +02:00
Fabio Bas
0e203b3ac2 CardDatabaseDisplayModel: sort cards by search term only when the current sort column is NameColumn
When the list os sorted using another column, you don’t  need to
compare that column’s value with the searched term
2015-04-12 18:43:45 +02:00
Fabio Bas
013087a4eb CardDatabaseModel: use an enum for columns 2015-04-12 18:42:10 +02:00
Matt Lowe
884579529d Fixed deck tokens showing in token dlg
Tokens from decks will now show in the token dlg window
2015-04-10 00:46:11 +02:00
Matt Lowe
b27854e440 Ignore punctuation in card search
It is awkward to have to use precise punctuation when searching for
cards. Planeswalkers and legendary creatures often have "," in the name
and you have to enter it.

This commit means you no longer need to do that.

+ Can use " " in place of "-" (example: Wilt-Leaf Liege)
+ Can use "" in place of non word chars (Example: Hero's Downfall and
Ajani, Caller of the Pride)
2015-04-08 18:35:27 +02:00
Fabio Bas
757795f7cd Deck editor: skip unnecessary card name comparison when no search term is defined 2015-03-30 15:41:28 +02:00
Matt Lowe
b91bab8356 Re-added some search and filter code
I had previously removed some filtering code that would allow users to
filter cards using our filtering tools. This functionality has now been
re-added.
2015-03-10 21:54:02 +01:00
poixen
cc6b826cad Removed comments 2015-03-03 16:53:48 +01: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
Fabio Bas
2354ed6909 Require Qt4 >=4.8.0; remove some ifdefs on qt version 2014-06-25 16:00:48 +02:00
Fabio Bas
6dbdaafb33 Ported cockatrice 2014-06-24 19:13:47 +02:00
sylvanbasilisk
0770626270 Merge branch 'master' into editor-redesign
Conflicts:
	cockatrice/src/carddatabasemodel.cpp
	cockatrice/src/carddatabasemodel.h
	cockatrice/src/decklistmodel.cpp
	cockatrice/src/decklistmodel.h
	cockatrice/src/tab_deck_editor.cpp
	cockatrice/src/tab_deck_editor.h
2014-03-25 02:10:52 +00:00
sylvanbasilisk
748aac7ee8 whitespace modifications in preparation for merge 2014-03-25 01:13:41 +00:00
Matt Kelly
1bc48a7849 Convert rest of source to 4-space indent 2014-02-11 11:14:19 -05: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
Chris Hansen
b909047a43 Added some paranthases to supress compiler warnings 2013-02-07 12:49:09 -08: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
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
0b98d90337 search function couldn't find colorless cards: fixed 2010-08-27 22:48:35 +02: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
3c8f2b878b improved importer 2009-10-17 17:13:55 +02:00
Max-Wilhelm Bruker
841b91bc89 deck editor improvement 2009-10-12 15:46:45 +02:00
Max-Wilhelm Bruker
b8bf18801f XML card database 2009-07-11 18:25:19 +02:00