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
6e567d5b
Commit
6e567d5b
authored
Dec 01, 2010
by
Max-Wilhelm Bruker
Browse files
crash fix
parent
8bd8b621
Changes
6
Hide whitespace changes
Inline
Side-by-side
cockatrice/src/abstractcarditem.cpp
View file @
6e567d5b
...
...
@@ -176,6 +176,8 @@ void AbstractCardItem::setHovered(bool _hovered)
if
(
isHovered
==
_hovered
)
return
;
if
(
_hovered
)
processHoverEvent
();
isHovered
=
_hovered
;
setZValue
(
_hovered
?
2000000004
:
realZValue
);
update
();
...
...
@@ -226,19 +228,6 @@ void AbstractCardItem::processHoverEvent()
emit
hovered
(
this
);
}
void
AbstractCardItem
::
hoverEnterEvent
(
QGraphicsSceneHoverEvent
*
event
)
{
processHoverEvent
();
isHovered
=
true
;
QGraphicsItem
::
hoverEnterEvent
(
event
);
}
void
AbstractCardItem
::
hoverLeaveEvent
(
QGraphicsSceneHoverEvent
*
event
)
{
isHovered
=
false
;
QGraphicsItem
::
hoverLeaveEvent
(
event
);
}
QVariant
AbstractCardItem
::
itemChange
(
QGraphicsItem
::
GraphicsItemChange
change
,
const
QVariant
&
value
)
{
if
(
change
==
ItemSelectedHasChanged
)
{
...
...
cockatrice/src/abstractcarditem.h
View file @
6e567d5b
...
...
@@ -55,8 +55,6 @@ protected:
void
transformPainter
(
QPainter
*
painter
,
const
QSizeF
&
translatedSize
,
int
angle
);
void
mousePressEvent
(
QGraphicsSceneMouseEvent
*
event
);
void
mouseReleaseEvent
(
QGraphicsSceneMouseEvent
*
event
);
void
hoverEnterEvent
(
QGraphicsSceneHoverEvent
*
event
);
void
hoverLeaveEvent
(
QGraphicsSceneHoverEvent
*
event
);
QVariant
itemChange
(
QGraphicsItem
::
GraphicsItemChange
change
,
const
QVariant
&
value
);
};
...
...
cockatrice/src/carditem.cpp
View file @
6e567d5b
...
...
@@ -106,19 +106,35 @@ CardItem::CardItem(Player *_owner, const QString &_name, int _cardid, QGraphicsI
CardItem
::~
CardItem
()
{
if
(
owner
->
getCardMenu
()
==
cardMenu
)
owner
->
setCardMenu
(
0
);
prepareDelete
();
deleteDragItem
();
}
void
CardItem
::
prepareDelete
()
{
if
(
owner
)
{
if
(
owner
->
getCardMenu
()
==
cardMenu
)
owner
->
setCardMenu
(
0
);
owner
=
0
;
}
delete
cardMenu
;
cardMenu
=
0
;
while
(
!
attachedCards
.
isEmpty
())
{
attachedCards
.
first
()
->
setZone
(
0
);
// so that it won't try to call reorganizeCards()
attachedCards
.
first
()
->
setAttachedTo
(
0
);
}
if
(
attachedTo
)
if
(
attachedTo
)
{
attachedTo
->
removeAttachedCard
(
this
);
attachedTo
=
0
;
}
}
deleteDragItem
();
void
CardItem
::
deleteLater
()
{
prepareDelete
();
AbstractCardItem
::
deleteLater
();
}
void
CardItem
::
retranslateUi
()
...
...
@@ -236,10 +252,12 @@ void CardItem::setAttachedTo(CardItem *_attachedTo)
gridPoint
.
setX
(
-
1
);
attachedTo
=
_attachedTo
;
if
(
attachedTo
)
{
setParentItem
(
attachedTo
->
getZone
());
attachedTo
->
addAttachedCard
(
this
);
if
(
zone
!=
attachedTo
->
getZone
())
attachedTo
->
getZone
()
->
reorganizeCards
();
}
}
else
setParentItem
(
zone
);
if
(
zone
)
zone
->
reorganizeCards
();
...
...
cockatrice/src/carditem.h
View file @
6e567d5b
...
...
@@ -35,6 +35,9 @@ private:
QMenu
*
cardMenu
,
*
moveMenu
;
void
playCard
(
QGraphicsSceneMouseEvent
*
event
);
void
prepareDelete
();
public
slots
:
void
deleteLater
();
public:
enum
{
Type
=
typeCard
};
int
type
()
const
{
return
Type
;
}
...
...
cockatrice/src/gamescene.cpp
View file @
6e567d5b
...
...
@@ -170,8 +170,12 @@ bool GameScene::event(QEvent *event)
CardItem
*
card
=
qgraphicsitem_cast
<
CardItem
*>
(
itemList
[
i
]);
if
(
!
card
)
continue
;
if
(
card
->
getZone
()
!=
zone
)
if
(
card
->
getAttachedTo
())
{
if
(
card
->
getAttachedTo
()
->
getZone
()
!=
zone
)
continue
;
}
else
if
(
card
->
getZone
()
!=
zone
)
continue
;
if
(
card
->
getRealZValue
()
>
maxZ
)
{
maxZ
=
card
->
getRealZValue
();
maxZCard
=
card
;
...
...
cockatrice/src/player.cpp
View file @
6e567d5b
...
...
@@ -252,7 +252,7 @@ Player::Player(ServerInfo_User *info, int _id, bool _local, TabGame *_parent)
Player
::~
Player
()
{
qDebug
(
"Player destructor
"
);
qDebug
(
)
<<
"Player destructor
:"
<<
getName
(
);
static_cast
<
GameScene
*>
(
scene
())
->
removePlayer
(
this
);
...
...
@@ -889,10 +889,6 @@ void Player::eventAttachCard(Event_AttachCard *event)
CardItem
*
oldParent
=
startCard
->
getAttachedTo
();
if
(
targetZone
)
startCard
->
setParentItem
(
targetZone
);
else
startCard
->
setParentItem
(
startZone
);
startCard
->
setAttachedTo
(
targetCard
);
startZone
->
reorganizeCards
();
...
...
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