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
2f35e86b
Commit
2f35e86b
authored
Apr 16, 2015
by
ctrlaltca
Browse files
Merge pull request #954 from ctrlaltca/deckeditor_cmc
Minor deck editor fixes
parents
997ca873
25290227
Changes
2
Show whitespace changes
Inline
Side-by-side
cockatrice/src/carddatabasemodel.cpp
View file @
2f35e86b
#include
"carddatabasemodel.h"
#include
"filtertree.h"
#define CARDDBMODEL_COLUMNS 5
CardDatabaseModel
::
CardDatabaseModel
(
CardDatabase
*
_db
,
QObject
*
parent
)
:
QAbstractListModel
(
parent
),
db
(
_db
)
{
...
...
@@ -21,31 +23,33 @@ int CardDatabaseModel::rowCount(const QModelIndex &/*parent*/) const
int
CardDatabaseModel
::
columnCount
(
const
QModelIndex
&
/*parent*/
)
const
{
return
5
;
return
CARDDBMODEL_COLUMNS
;
}
QVariant
CardDatabaseModel
::
data
(
const
QModelIndex
&
index
,
int
role
)
const
{
if
(
!
index
.
isValid
())
return
QVariant
();
if
((
index
.
row
()
>=
cardList
.
size
())
||
(
index
.
column
()
>=
5
))
if
((
index
.
row
()
>=
cardList
.
size
())
||
(
index
.
column
()
>=
CARDDBMODEL_COLUMNS
))
return
QVariant
();
if
(
role
!=
Qt
::
DisplayRole
)
if
(
role
!=
Qt
::
DisplayRole
&&
role
!=
SortRole
)
return
QVariant
();
CardInfo
*
card
=
cardList
.
at
(
index
.
row
());
switch
(
index
.
column
()){
case
0
:
return
card
->
getName
();
case
1
:
{
case
NameColumn
:
return
card
->
getName
();
case
SetListColumn
:
{
QStringList
setList
;
const
QList
<
CardSet
*>
&
sets
=
card
->
getSets
();
for
(
int
i
=
0
;
i
<
sets
.
size
();
i
++
)
setList
<<
sets
[
i
]
->
getShortName
();
return
setList
.
join
(
", "
);
}
case
2
:
return
card
->
getManaCost
();
case
3
:
return
card
->
getCardType
();
case
4
:
return
card
->
getPowTough
();
case
ManaCostColumn
:
return
role
==
SortRole
?
QString
(
"%1%2"
).
arg
(
card
->
getCmc
(),
4
,
QChar
(
'0'
)).
arg
(
card
->
getManaCost
())
:
card
->
getManaCost
();
case
CardTypeColumn
:
return
card
->
getCardType
();
case
PTColumn
:
return
card
->
getPowTough
();
default:
return
QVariant
();
}
}
...
...
@@ -57,11 +61,11 @@ QVariant CardDatabaseModel::headerData(int section, Qt::Orientation orientation,
if
(
orientation
!=
Qt
::
Horizontal
)
return
QVariant
();
switch
(
section
)
{
case
0
:
return
QString
(
tr
(
"Name"
));
case
1
:
return
QString
(
tr
(
"Sets"
));
case
2
:
return
QString
(
tr
(
"Mana cost"
));
case
3
:
return
QString
(
tr
(
"Card type"
));
case
4
:
return
QString
(
tr
(
"P/T"
));
case
NameColumn
:
return
QString
(
tr
(
"Name"
));
case
SetListColumn
:
return
QString
(
tr
(
"Sets"
));
case
ManaCostColumn
:
return
QString
(
tr
(
"Mana cost"
));
case
CardTypeColumn
:
return
QString
(
tr
(
"Card type"
));
case
PTColumn
:
return
QString
(
tr
(
"P/T"
));
default:
return
QVariant
();
}
}
...
...
@@ -86,7 +90,7 @@ void CardDatabaseModel::cardInfoChanged(CardInfo *card)
if
(
row
==
-
1
)
return
;
emit
dataChanged
(
index
(
row
,
0
),
index
(
row
,
4
));
emit
dataChanged
(
index
(
row
,
0
),
index
(
row
,
CARDDBMODEL_COLUMNS
-
1
));
}
void
CardDatabaseModel
::
cardAdded
(
CardInfo
*
card
)
...
...
@@ -120,10 +124,10 @@ CardDatabaseDisplayModel::CardDatabaseDisplayModel(QObject *parent)
bool
CardDatabaseDisplayModel
::
lessThan
(
const
QModelIndex
&
left
,
const
QModelIndex
&
right
)
const
{
QString
leftString
=
sourceModel
()
->
data
(
left
).
toString
();
QString
rightString
=
sourceModel
()
->
data
(
right
).
toString
();
QString
leftString
=
sourceModel
()
->
data
(
left
,
CardDatabaseModel
::
SortRole
).
toString
();
QString
rightString
=
sourceModel
()
->
data
(
right
,
CardDatabaseModel
::
SortRole
).
toString
();
if
(
!
cardName
.
isEmpty
())
if
(
!
cardName
.
isEmpty
()
&&
left
.
column
()
==
CardDatabaseModel
::
NameColumn
)
{
bool
isLeftType
=
leftString
.
startsWith
(
cardName
,
Qt
::
CaseInsensitive
);
bool
isRightType
=
rightString
.
startsWith
(
cardName
,
Qt
::
CaseInsensitive
);
...
...
cockatrice/src/carddatabasemodel.h
View file @
2f35e86b
...
...
@@ -12,6 +12,8 @@ class FilterTree;
class
CardDatabaseModel
:
public
QAbstractListModel
{
Q_OBJECT
public:
enum
Columns
{
NameColumn
,
SetListColumn
,
ManaCostColumn
,
CardTypeColumn
,
PTColumn
,
CMCColumn
};
enum
Role
{
SortRole
=
Qt
::
UserRole
};
CardDatabaseModel
(
CardDatabase
*
_db
,
QObject
*
parent
=
0
);
~
CardDatabaseModel
();
int
rowCount
(
const
QModelIndex
&
parent
=
QModelIndex
())
const
;
...
...
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