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
21daf9db
Commit
21daf9db
authored
Jun 06, 2009
by
Max-Wilhelm Bruker
Browse files
foo
parent
e7e51f5f
Changes
4
Show whitespace changes
Inline
Side-by-side
cockatrice/src/decklist.h
View file @
21daf9db
...
@@ -15,6 +15,7 @@ protected:
...
@@ -15,6 +15,7 @@ protected:
InnerDecklistNode
*
parent
;
InnerDecklistNode
*
parent
;
public:
public:
AbstractDecklistNode
(
InnerDecklistNode
*
_parent
=
0
);
AbstractDecklistNode
(
InnerDecklistNode
*
_parent
=
0
);
virtual
~
AbstractDecklistNode
()
{
}
virtual
QString
getName
()
const
=
0
;
virtual
QString
getName
()
const
=
0
;
InnerDecklistNode
*
getParent
()
const
{
return
parent
;
}
InnerDecklistNode
*
getParent
()
const
{
return
parent
;
}
int
depth
()
const
;
int
depth
()
const
;
...
...
cockatrice/src/decklistmodel.cpp
View file @
21daf9db
...
@@ -170,14 +170,20 @@ Qt::ItemFlags DeckListModel::flags(const QModelIndex &index) const
...
@@ -170,14 +170,20 @@ Qt::ItemFlags DeckListModel::flags(const QModelIndex &index) const
return
0
;
return
0
;
Qt
::
ItemFlags
result
=
Qt
::
ItemIsEnabled
;
Qt
::
ItemFlags
result
=
Qt
::
ItemIsEnabled
;
if
(
getNode
<
DecklistModelCardNode
*>
(
index
))
{
if
(
getNode
<
DecklistModelCardNode
*>
(
index
))
result
|=
Qt
::
ItemIsSelectable
;
result
|=
Qt
::
ItemIsSelectable
;
if
(
index
.
column
()
==
0
)
result
|=
Qt
::
ItemIsEditable
;
}
return
result
;
return
result
;
}
}
void
DeckListModel
::
emitRecursiveUpdates
(
const
QModelIndex
&
index
)
{
if
(
!
index
.
isValid
())
return
;
emit
dataChanged
(
index
,
index
);
emitRecursiveUpdates
(
index
.
parent
());
}
bool
DeckListModel
::
setData
(
const
QModelIndex
&
index
,
const
QVariant
&
value
,
int
role
)
bool
DeckListModel
::
setData
(
const
QModelIndex
&
index
,
const
QVariant
&
value
,
int
role
)
{
{
DecklistModelCardNode
*
node
=
getNode
<
DecklistModelCardNode
*>
(
index
);
DecklistModelCardNode
*
node
=
getNode
<
DecklistModelCardNode
*>
(
index
);
...
@@ -189,7 +195,7 @@ bool DeckListModel::setData(const QModelIndex &index, const QVariant &value, int
...
@@ -189,7 +195,7 @@ bool DeckListModel::setData(const QModelIndex &index, const QVariant &value, int
case
1
:
node
->
setName
(
value
.
toString
());
break
;
case
1
:
node
->
setName
(
value
.
toString
());
break
;
default:
return
false
;
default:
return
false
;
}
}
emit
dataChanged
(
index
,
index
);
emit
RecursiveUpdates
(
index
);
return
true
;
return
true
;
}
}
...
@@ -213,6 +219,8 @@ bool DeckListModel::removeRows(int row, int count, const QModelIndex &parent)
...
@@ -213,6 +219,8 @@ bool DeckListModel::removeRows(int row, int count, const QModelIndex &parent)
if
(
!
node
->
size
()
&&
(
node
!=
root
))
if
(
!
node
->
size
()
&&
(
node
!=
root
))
removeRows
(
parent
.
row
(),
1
,
parent
.
parent
());
removeRows
(
parent
.
row
(),
1
,
parent
.
parent
());
else
emitRecursiveUpdates
(
parent
);
return
true
;
return
true
;
}
}
...
@@ -239,15 +247,17 @@ QModelIndex DeckListModel::addCard(const QString &cardName, const QString &zoneN
...
@@ -239,15 +247,17 @@ QModelIndex DeckListModel::addCard(const QString &cardName, const QString &zoneN
DecklistModelCardNode
*
cardNode
=
dynamic_cast
<
DecklistModelCardNode
*>
(
cardTypeNode
->
findChild
(
cardName
));
DecklistModelCardNode
*
cardNode
=
dynamic_cast
<
DecklistModelCardNode
*>
(
cardTypeNode
->
findChild
(
cardName
));
if
(
!
cardNode
)
{
if
(
!
cardNode
)
{
DecklistCardNode
*
decklistCard
=
deckList
->
addCard
(
cardName
,
zoneName
);
DecklistCardNode
*
decklistCard
=
deckList
->
addCard
(
cardName
,
zoneName
);
beginInsertRows
(
nodeToIndex
(
cardTypeNode
),
cardTypeNode
->
size
(),
cardTypeNode
->
size
());
QModelIndex
parentIndex
=
nodeToIndex
(
cardTypeNode
);
beginInsertRows
(
parentIndex
,
cardTypeNode
->
size
(),
cardTypeNode
->
size
());
cardNode
=
new
DecklistModelCardNode
(
decklistCard
,
cardTypeNode
);
cardNode
=
new
DecklistModelCardNode
(
decklistCard
,
cardTypeNode
);
endInsertRows
();
endInsertRows
();
sort
(
1
);
sort
(
1
);
emitRecursiveUpdates
(
parentIndex
);
return
nodeToIndex
(
cardNode
);
return
nodeToIndex
(
cardNode
);
}
else
{
}
else
{
cardNode
->
setNumber
(
cardNode
->
getNumber
()
+
1
);
cardNode
->
setNumber
(
cardNode
->
getNumber
()
+
1
);
QModelIndex
ind
=
nodeToIndex
(
cardNode
);
QModelIndex
ind
=
nodeToIndex
(
cardNode
);
emit
dataChanged
(
ind
,
ind
);
emit
RecursiveUpdates
(
ind
);
return
ind
;
return
ind
;
}
}
}
}
...
...
cockatrice/src/decklistmodel.h
View file @
21daf9db
...
@@ -45,6 +45,7 @@ private:
...
@@ -45,6 +45,7 @@ private:
InnerDecklistNode
*
root
;
InnerDecklistNode
*
root
;
InnerDecklistNode
*
createNodeIfNeeded
(
const
QString
&
name
,
InnerDecklistNode
*
parent
);
InnerDecklistNode
*
createNodeIfNeeded
(
const
QString
&
name
,
InnerDecklistNode
*
parent
);
QModelIndex
nodeToIndex
(
AbstractDecklistNode
*
node
)
const
;
QModelIndex
nodeToIndex
(
AbstractDecklistNode
*
node
)
const
;
void
emitRecursiveUpdates
(
const
QModelIndex
&
index
);
void
debugIndexInfo
(
const
QString
&
func
,
const
QModelIndex
&
index
)
const
;
void
debugIndexInfo
(
const
QString
&
func
,
const
QModelIndex
&
index
)
const
;
void
debugShowTree
(
InnerDecklistNode
*
node
,
int
depth
)
const
;
void
debugShowTree
(
InnerDecklistNode
*
node
,
int
depth
)
const
;
...
...
cockatrice/src/window_deckeditor.cpp
View file @
21daf9db
...
@@ -243,6 +243,7 @@ void WndDeckEditor::addCardHelper(const QString &zoneName)
...
@@ -243,6 +243,7 @@ void WndDeckEditor::addCardHelper(const QString &zoneName)
QModelIndex
newCardIndex
=
deckModel
->
addCard
(
cardName
,
zoneName
);
QModelIndex
newCardIndex
=
deckModel
->
addCard
(
cardName
,
zoneName
);
recursiveExpand
(
newCardIndex
);
recursiveExpand
(
newCardIndex
);
deckView
->
setCurrentIndex
(
newCardIndex
);
setWindowModified
(
true
);
setWindowModified
(
true
);
}
}
...
@@ -273,6 +274,7 @@ void WndDeckEditor::actIncrement()
...
@@ -273,6 +274,7 @@ void WndDeckEditor::actIncrement()
return
;
return
;
const
QModelIndex
numberIndex
=
currentIndex
.
sibling
(
currentIndex
.
row
(),
0
);
const
QModelIndex
numberIndex
=
currentIndex
.
sibling
(
currentIndex
.
row
(),
0
);
const
int
count
=
deckModel
->
data
(
numberIndex
,
Qt
::
EditRole
).
toInt
();
const
int
count
=
deckModel
->
data
(
numberIndex
,
Qt
::
EditRole
).
toInt
();
deckView
->
setCurrentIndex
(
numberIndex
);
deckModel
->
setData
(
numberIndex
,
count
+
1
,
Qt
::
EditRole
);
deckModel
->
setData
(
numberIndex
,
count
+
1
,
Qt
::
EditRole
);
setWindowModified
(
true
);
setWindowModified
(
true
);
}
}
...
@@ -284,6 +286,7 @@ void WndDeckEditor::actDecrement()
...
@@ -284,6 +286,7 @@ void WndDeckEditor::actDecrement()
return
;
return
;
const
QModelIndex
numberIndex
=
currentIndex
.
sibling
(
currentIndex
.
row
(),
0
);
const
QModelIndex
numberIndex
=
currentIndex
.
sibling
(
currentIndex
.
row
(),
0
);
const
int
count
=
deckModel
->
data
(
numberIndex
,
Qt
::
EditRole
).
toInt
();
const
int
count
=
deckModel
->
data
(
numberIndex
,
Qt
::
EditRole
).
toInt
();
deckView
->
setCurrentIndex
(
numberIndex
);
if
(
count
==
1
)
if
(
count
==
1
)
deckModel
->
removeRow
(
currentIndex
.
row
(),
currentIndex
.
parent
());
deckModel
->
removeRow
(
currentIndex
.
row
(),
currentIndex
.
parent
());
else
else
...
...
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