Skip to content
GitLab
Menu
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Donald Haase
Cockatrice
Commits
f553fd74
Commit
f553fd74
authored
Apr 05, 2012
by
Max-Wilhelm Bruker
Browse files
some token code
parent
1cd63375
Changes
15
Hide whitespace changes
Inline
Side-by-side
cockatrice/src/carddatabase.cpp
View file @
f553fd74
...
...
@@ -234,6 +234,7 @@ void PictureLoader::setPicDownload(bool _picDownload)
CardInfo
::
CardInfo
(
CardDatabase
*
_db
,
const
QString
&
_name
,
bool
_isToken
,
const
QString
&
_manacost
,
const
QString
&
_cardtype
,
const
QString
&
_powtough
,
...
...
@@ -248,6 +249,7 @@ CardInfo::CardInfo(CardDatabase *_db,
const
QMap
<
QString
,
QString
>
&
_picURLsSt
)
:
db
(
_db
),
name
(
_name
),
isToken
(
_isToken
),
sets
(
_sets
),
manacost
(
_manacost
),
cardtype
(
_cardtype
),
...
...
@@ -426,6 +428,8 @@ QXmlStreamWriter &operator<<(QXmlStreamWriter &xml, const CardInfo *info)
xml
.
writeTextElement
(
"loyalty"
,
QString
::
number
(
info
->
getLoyalty
()));
if
(
info
->
getCipt
())
xml
.
writeTextElement
(
"cipt"
,
"1"
);
if
(
info
->
getIsToken
())
xml
.
writeTextElement
(
"token"
,
"1"
);
xml
.
writeEndElement
();
// card
return
xml
;
...
...
@@ -469,7 +473,7 @@ void CardDatabase::clear()
delete
setIt
.
value
();
}
setHash
.
clear
();
QHashIterator
<
QString
,
CardInfo
*>
i
(
cardHash
);
while
(
i
.
hasNext
())
{
i
.
next
();
...
...
@@ -485,7 +489,7 @@ CardInfo *CardDatabase::getCard(const QString &cardName)
else
if
(
cardHash
.
contains
(
cardName
))
return
cardHash
.
value
(
cardName
);
else
{
CardInfo
*
newCard
=
new
CardInfo
(
this
,
cardName
);
CardInfo
*
newCard
=
new
CardInfo
(
this
,
cardName
,
true
);
newCard
->
addToSet
(
getSet
(
"TK"
));
cardHash
.
insert
(
cardName
,
newCard
);
return
newCard
;
...
...
@@ -558,6 +562,7 @@ void CardDatabase::loadCardsFromXml(QXmlStreamReader &xml)
int
tableRow
=
0
;
int
loyalty
=
0
;
bool
cipt
=
false
;
bool
isToken
=
false
;
while
(
!
xml
.
atEnd
())
{
if
(
xml
.
readNext
()
==
QXmlStreamReader
::
EndElement
)
break
;
...
...
@@ -588,8 +593,10 @@ void CardDatabase::loadCardsFromXml(QXmlStreamReader &xml)
cipt
=
(
xml
.
readElementText
()
==
"1"
);
else
if
(
xml
.
name
()
==
"loyalty"
)
loyalty
=
xml
.
readElementText
().
toInt
();
else
if
(
xml
.
name
()
==
"token"
)
isToken
=
xml
.
readElementText
().
toInt
();
}
cardHash
.
insert
(
name
,
new
CardInfo
(
this
,
name
,
manacost
,
type
,
pt
,
text
,
colors
,
loyalty
,
cipt
,
tableRow
,
sets
,
picURLs
,
picURLsHq
,
picURLsSt
));
cardHash
.
insert
(
name
,
new
CardInfo
(
this
,
name
,
isToken
,
manacost
,
type
,
pt
,
text
,
colors
,
loyalty
,
cipt
,
tableRow
,
sets
,
picURLs
,
picURLsHq
,
picURLsSt
));
}
}
}
...
...
cockatrice/src/carddatabase.h
View file @
f553fd74
...
...
@@ -91,6 +91,7 @@ private:
CardDatabase
*
db
;
QString
name
;
bool
isToken
;
SetList
sets
;
QString
manacost
;
QString
cardtype
;
...
...
@@ -106,6 +107,7 @@ private:
public:
CardInfo
(
CardDatabase
*
_db
,
const
QString
&
_name
=
QString
(),
bool
_isToken
=
false
,
const
QString
&
_manacost
=
QString
(),
const
QString
&
_cardtype
=
QString
(),
const
QString
&
_powtough
=
QString
(),
...
...
@@ -120,6 +122,7 @@ public:
const
QStringMap
&
_picURLsSt
=
QStringMap
());
~
CardInfo
();
const
QString
&
getName
()
const
{
return
name
;
}
bool
getIsToken
()
const
{
return
isToken
;
}
const
SetList
&
getSets
()
const
{
return
sets
;
}
const
QString
&
getManaCost
()
const
{
return
manacost
;
}
const
QString
&
getCardType
()
const
{
return
cardtype
;
}
...
...
cockatrice/src/carddatabasemodel.cpp
View file @
f553fd74
...
...
@@ -71,7 +71,8 @@ void CardDatabaseModel::updateCardList()
}
CardDatabaseDisplayModel
::
CardDatabaseDisplayModel
(
QObject
*
parent
)
:
QSortFilterProxyModel
(
parent
)
:
QSortFilterProxyModel
(
parent
),
isToken
(
ShowAll
)
{
setFilterCaseSensitivity
(
Qt
::
CaseInsensitive
);
setSortCaseSensitivity
(
Qt
::
CaseInsensitive
);
...
...
@@ -81,10 +82,13 @@ bool CardDatabaseDisplayModel::filterAcceptsRow(int sourceRow, const QModelIndex
{
CardInfo
*
info
=
static_cast
<
CardDatabaseModel
*>
(
sourceModel
())
->
getCard
(
sourceRow
);
if
(((
isToken
==
ShowTrue
)
&&
!
info
->
getIsToken
())
||
(
isToken
==
ShowFalse
)
&&
info
->
getIsToken
())
return
false
;
if
(
!
cardNameBeginning
.
isEmpty
())
if
(
!
info
->
getName
().
startsWith
(
cardNameBeginning
,
Qt
::
CaseInsensitive
))
return
false
;
if
(
!
cardName
.
isEmpty
())
if
(
!
info
->
getName
().
contains
(
cardName
,
Qt
::
CaseInsensitive
))
return
false
;
...
...
@@ -96,7 +100,7 @@ bool CardDatabaseDisplayModel::filterAcceptsRow(int sourceRow, const QModelIndex
if
(
!
cardColors
.
isEmpty
())
if
(
QSet
<
QString
>::
fromList
(
info
->
getColors
()).
intersect
(
cardColors
).
isEmpty
()
&&
!
(
info
->
getColors
().
isEmpty
()
&&
cardColors
.
contains
(
"X"
)))
return
false
;
if
(
!
cardTypes
.
isEmpty
())
if
(
!
cardTypes
.
contains
(
info
->
getMainCardType
()))
return
false
;
...
...
cockatrice/src/carddatabasemodel.h
View file @
f553fd74
...
...
@@ -26,11 +26,15 @@ private slots:
class
CardDatabaseDisplayModel
:
public
QSortFilterProxyModel
{
Q_OBJECT
public:
enum
FilterBool
{
ShowTrue
,
ShowFalse
,
ShowAll
};
private:
FilterBool
isToken
;
QString
cardNameBeginning
,
cardName
,
cardText
;
QSet
<
QString
>
cardTypes
,
cardColors
;
public:
CardDatabaseDisplayModel
(
QObject
*
parent
=
0
);
void
setIsToken
(
FilterBool
_isToken
)
{
isToken
=
_isToken
;
invalidate
();
}
void
setCardNameBeginning
(
const
QString
&
_beginning
)
{
cardNameBeginning
=
_beginning
;
invalidate
();
}
void
setCardName
(
const
QString
&
_cardName
)
{
cardName
=
_cardName
;
invalidate
();
}
void
setCardText
(
const
QString
&
_cardText
)
{
cardText
=
_cardText
;
invalidate
();
}
...
...
cockatrice/src/deckview.cpp
View file @
f553fd74
...
...
@@ -274,6 +274,7 @@ DeckViewScene::DeckViewScene(QObject *parent)
DeckViewScene
::~
DeckViewScene
()
{
clearContents
();
delete
deck
;
}
void
DeckViewScene
::
clearContents
()
...
...
cockatrice/src/dlg_create_token.cpp
View file @
f553fd74
...
...
@@ -6,9 +6,15 @@
#include
<QHBoxLayout>
#include
<QVBoxLayout>
#include
<QDialogButtonBox>
#include
<QGroupBox>
#include
<QTreeView>
#include
<QRadioButton>
#include
"decklist.h"
#include
"dlg_create_token.h"
#include
"carddatabasemodel.h"
#include
"main.h"
DlgCreateToken
::
DlgCreateToken
(
QWidget
*
parent
)
DlgCreateToken
::
DlgCreateToken
(
DeckList
*
_deck
,
QWidget
*
parent
)
:
QDialog
(
parent
)
{
nameLabel
=
new
QLabel
(
tr
(
"&Name:"
));
...
...
@@ -49,12 +55,37 @@ DlgCreateToken::DlgCreateToken(QWidget *parent)
grid
->
addWidget
(
annotationEdit
,
3
,
1
);
grid
->
addWidget
(
destroyCheckBox
,
4
,
0
,
1
,
2
);
QGroupBox
*
tokenDataGroupBox
=
new
QGroupBox
(
tr
(
"Token data"
));
tokenDataGroupBox
->
setLayout
(
grid
);
cardDatabaseModel
=
new
CardDatabaseModel
(
db
,
this
);
cardDatabaseDisplayModel
=
new
CardDatabaseDisplayModel
(
this
);
cardDatabaseDisplayModel
->
setSourceModel
(
cardDatabaseModel
);
cardDatabaseDisplayModel
->
setIsToken
(
CardDatabaseDisplayModel
::
ShowTrue
);
QRadioButton
*
chooseTokenFromAllRadioButton
=
new
QRadioButton
(
tr
(
"Show &all tokens"
));
QRadioButton
*
chooseTokenFromDeckRadioButton
=
new
QRadioButton
(
tr
(
"Show tokens from this &deck"
));
QTreeView
*
chooseTokenView
=
new
QTreeView
;
chooseTokenView
->
setModel
(
cardDatabaseDisplayModel
);
QVBoxLayout
*
tokenChooseLayout
=
new
QVBoxLayout
;
tokenChooseLayout
->
addWidget
(
chooseTokenFromAllRadioButton
);
tokenChooseLayout
->
addWidget
(
chooseTokenFromDeckRadioButton
);
tokenChooseLayout
->
addWidget
(
chooseTokenView
);
QGroupBox
*
tokenChooseGroupBox
=
new
QGroupBox
(
tr
(
"Choose token from list"
));
tokenChooseGroupBox
->
setLayout
(
tokenChooseLayout
);
QHBoxLayout
*
hbox
=
new
QHBoxLayout
;
hbox
->
addWidget
(
tokenDataGroupBox
);
hbox
->
addWidget
(
tokenChooseGroupBox
);
QDialogButtonBox
*
buttonBox
=
new
QDialogButtonBox
(
QDialogButtonBox
::
Ok
|
QDialogButtonBox
::
Cancel
);
connect
(
buttonBox
,
SIGNAL
(
accepted
()),
this
,
SLOT
(
actOk
()));
connect
(
buttonBox
,
SIGNAL
(
rejected
()),
this
,
SLOT
(
reject
()));
QVBoxLayout
*
mainLayout
=
new
QVBoxLayout
;
mainLayout
->
addLayout
(
grid
);
mainLayout
->
addLayout
(
hbox
);
mainLayout
->
addWidget
(
buttonBox
);
setLayout
(
mainLayout
);
...
...
cockatrice/src/dlg_create_token.h
View file @
f553fd74
...
...
@@ -8,11 +8,14 @@ class QLabel;
class
QComboBox
;
class
QCheckBox
;
class
QPushButton
;
class
DeckList
;
class
CardDatabaseModel
;
class
CardDatabaseDisplayModel
;
class
DlgCreateToken
:
public
QDialog
{
Q_OBJECT
public:
DlgCreateToken
(
QWidget
*
parent
=
0
);
DlgCreateToken
(
DeckList
*
_deck
,
QWidget
*
parent
=
0
);
QString
getName
()
const
;
QString
getColor
()
const
;
QString
getPT
()
const
;
...
...
@@ -21,6 +24,8 @@ public:
private
slots
:
void
actOk
();
private:
CardDatabaseModel
*
cardDatabaseModel
;
CardDatabaseDisplayModel
*
cardDatabaseDisplayModel
;
QLabel
*
nameLabel
,
*
colorLabel
,
*
ptLabel
,
*
annotationLabel
;
QComboBox
*
colorEdit
;
QLineEdit
*
nameEdit
,
*
ptEdit
,
*
annotationEdit
;
...
...
cockatrice/src/player.cpp
View file @
f553fd74
...
...
@@ -95,7 +95,19 @@ void PlayerArea::setSize(qreal width, qreal height)
}
Player
::
Player
(
const
ServerInfo_User
&
info
,
int
_id
,
bool
_local
,
TabGame
*
_parent
)
:
QObject
(
_parent
),
game
(
_parent
),
shortcutsActive
(
false
),
defaultNumberTopCards
(
3
),
lastTokenDestroy
(
true
),
id
(
_id
),
active
(
false
),
local
(
_local
),
mirrored
(
false
),
handVisible
(
false
),
conceded
(
false
),
dialogSemaphore
(
false
)
:
QObject
(
_parent
),
game
(
_parent
),
shortcutsActive
(
false
),
defaultNumberTopCards
(
3
),
lastTokenDestroy
(
true
),
id
(
_id
),
active
(
false
),
local
(
_local
),
mirrored
(
false
),
handVisible
(
false
),
conceded
(
false
),
dialogSemaphore
(
false
),
deck
(
0
)
{
userInfo
=
new
ServerInfo_User
;
userInfo
->
CopyFrom
(
info
);
...
...
@@ -876,7 +888,7 @@ void Player::actRollDie()
void
Player
::
actCreateToken
()
{
DlgCreateToken
dlg
;
DlgCreateToken
dlg
(
deck
)
;
if
(
!
dlg
.
exec
())
return
;
...
...
cockatrice/src/player.h
View file @
f553fd74
...
...
@@ -10,6 +10,7 @@
namespace
google
{
namespace
protobuf
{
class
Message
;
}
}
class
CardDatabase
;
class
DeckList
;
class
QMenu
;
class
QAction
;
class
ZoneViewZone
;
...
...
@@ -187,6 +188,7 @@ private:
bool
clearCardsToDelete
();
QList
<
CardItem
*>
cardsToDelete
;
DeckList
*
deck
;
PlayerArea
*
playerArea
;
QMap
<
QString
,
CardZone
*>
zones
;
StackZone
*
stack
;
...
...
@@ -256,6 +258,8 @@ public:
void
retranslateUi
();
void
clear
();
TabGame
*
getGame
()
const
{
return
game
;
}
DeckList
*
getDeck
()
const
{
return
deck
;
}
void
setDeck
(
DeckList
*
_deck
)
{
deck
=
_deck
;
}
QMenu
*
getPlayerMenu
()
const
{
return
playerMenu
;
}
int
getId
()
const
{
return
id
;
}
QString
getName
()
const
;
...
...
cockatrice/src/window_deckeditor.cpp
View file @
f553fd74
...
...
@@ -437,13 +437,17 @@ void WndDeckEditor::recursiveExpand(const QModelIndex &index)
deckView
->
expand
(
index
);
}
void
WndDeckEditor
::
addCardHelper
(
const
QString
&
zoneName
)
void
WndDeckEditor
::
addCardHelper
(
QString
zoneName
)
{
const
QModelIndex
currentIndex
=
databaseView
->
selectionModel
()
->
currentIndex
();
if
(
!
currentIndex
.
isValid
())
return
;
const
QString
cardName
=
currentIndex
.
sibling
(
currentIndex
.
row
(),
0
).
data
().
toString
();
CardInfo
*
info
=
db
->
getCard
(
cardName
);
if
(
info
->
getIsToken
())
zoneName
=
"tokens"
;
QModelIndex
newCardIndex
=
deckModel
->
addCard
(
cardName
,
zoneName
);
recursiveExpand
(
newCardIndex
);
deckView
->
setCurrentIndex
(
newCardIndex
);
...
...
cockatrice/src/window_deckeditor.h
View file @
f553fd74
...
...
@@ -58,7 +58,7 @@ private slots:
void
finishedUpdatingPrices
();
private:
void
addCardHelper
(
const
QString
&
zoneName
);
void
addCardHelper
(
QString
zoneName
);
void
recursiveExpand
(
const
QModelIndex
&
index
);
bool
confirmClose
();
...
...
common/decklist.cpp
View file @
f553fd74
...
...
@@ -98,6 +98,8 @@ QString InnerDecklistNode::visibleNameFromName(const QString &_name)
return
QObject
::
tr
(
"Maindeck"
);
else
if
(
_name
==
"side"
)
return
QObject
::
tr
(
"Sideboard"
);
else
if
(
_name
==
"tokens"
)
return
QObject
::
tr
(
"Tokens"
);
else
return
_name
;
}
...
...
oracle/src/oracleimporter.cpp
View file @
f553fd74
...
...
@@ -75,6 +75,7 @@ bool OracleImporter::readSetsFromXml(QXmlStreamReader &xml)
CardInfo
*
OracleImporter
::
addCard
(
const
QString
&
setName
,
QString
cardName
,
bool
isToken
,
int
cardId
,
const
QString
&
cardCost
,
const
QString
&
cardType
,
...
...
@@ -125,7 +126,7 @@ CardInfo *OracleImporter::addCard(const QString &setName,
bool
cipt
=
(
cardText
.
contains
(
cardName
+
" enters the battlefield tapped."
));
card
=
new
CardInfo
(
this
,
cardName
,
cardCost
,
cardType
,
cardPT
,
fullCardText
,
colors
,
cardLoyalty
,
cipt
);
card
=
new
CardInfo
(
this
,
cardName
,
isToken
,
cardCost
,
cardType
,
cardPT
,
fullCardText
,
colors
,
cardLoyalty
,
cipt
);
int
tableRow
=
1
;
QString
mainCardType
=
card
->
getMainCardType
();
if
((
mainCardType
==
"Land"
)
||
mArtifact
)
...
...
@@ -183,7 +184,7 @@ int OracleImporter::importTextSpoiler(CardSet *set, const QByteArray &data)
for
(
int
i
=
0
;
i
<
cardTextSplit
.
size
();
++
i
)
cardTextSplit
[
i
]
=
cardTextSplit
[
i
].
trimmed
();
CardInfo
*
card
=
addCard
(
set
->
getShortName
(),
cardName
,
cardId
,
cardCost
,
cardType
,
cardPT
,
cardLoyalty
,
cardTextSplit
);
CardInfo
*
card
=
addCard
(
set
->
getShortName
(),
cardName
,
false
,
cardId
,
cardCost
,
cardType
,
cardPT
,
cardLoyalty
,
cardTextSplit
);
if
(
!
set
->
contains
(
card
))
{
card
->
addToSet
(
set
);
cards
++
;
...
...
oracle/src/oracleimporter.h
View file @
f553fd74
...
...
@@ -35,7 +35,7 @@ private:
void
downloadNextFile
();
bool
readSetsFromXml
(
QXmlStreamReader
&
xml
);
CardInfo
*
addCard
(
const
QString
&
setName
,
QString
cardName
,
int
cardId
,
const
QString
&
cardCost
,
const
QString
&
cardType
,
const
QString
&
cardPT
,
int
cardLoyalty
,
const
QStringList
&
cardText
);
CardInfo
*
addCard
(
const
QString
&
setName
,
QString
cardName
,
bool
isToken
,
int
cardId
,
const
QString
&
cardCost
,
const
QString
&
cardType
,
const
QString
&
cardPT
,
int
cardLoyalty
,
const
QStringList
&
cardText
);
private
slots
:
void
httpRequestFinished
(
int
requestId
,
bool
error
);
void
readResponseHeader
(
const
QHttpResponseHeader
&
responseHeader
);
...
...
servatrice/src/servatrice.cpp
View file @
f553fd74
...
...
@@ -80,11 +80,11 @@ Servatrice::Servatrice(QSettings *_settings, QObject *parent)
else
databaseType
=
DatabaseNone
;
dbPrefix
=
settings
->
value
(
"database/prefix"
).
toString
();
if
(
databaseType
!=
DatabaseNone
)
if
(
databaseType
!=
DatabaseNone
)
{
openDatabase
();
updateServerList
();
clearSessionTables
();
updateServerList
();
clearSessionTables
();
}
const
QString
roomMethod
=
settings
->
value
(
"rooms/method"
).
toString
();
if
(
roomMethod
==
"sql"
)
{
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment