mirror of
https://github.com/Cockatrice/Cockatrice.git
synced 2026-06-29 10:03:55 -07:00
* Player refactor. Took 1 hour 43 minutes Took 1 minute Took 23 seconds * Tiny lint. Took 3 minutes * Hook up tap logic again. Took 13 minutes * Fix an include. Took 3 minutes * Stuff. Took 6 minutes * Fix typo. Took 7 minutes * Include. Took 1 minute * Reorganize method/variable definitions, remove unused ones. Took 1 hour 8 minutes Took 24 seconds * Clean up some unused imports. Took 6 minutes * Player holds the deck, emits deckChanged(), other elements player->getDeck() to respond to changes. Took 37 minutes * Connect player->openDeckEditor signal directly in the player constructor Took 6 minutes * Emit openDeckEditor signal in player_actions again. Took 3 minutes * Do to-do's Took 3 hours 32 minutes * Lint. Took 3 minutes * Lint again. Took 2 minutes * Fix include. Took 32 minutes * The stack should ensure card visibility. Took 21 minutes * Fine, the game can remember the tab. Took 10 minutes Took 21 seconds Took 9 seconds * zoneId is a dynamic gameplay property and thus belongs in player.cpp Took 11 minutes Took 19 seconds * Signal view removal, addition. Took 5 minutes * Ensure all players are considered local in local game. Took 10 minutes * ENSURE they are. Took 8 minutes * Bounds check data sent by QAction() Took 54 minutes * Move comment. Took 20 seconds * Reimplement logging category for game_event_handler.cpp, remove linebreaks. Took 36 seconds * PlayerGraphicsItem is responsible for retranslateUi, not Player. Took 14 seconds * Set menu for sideboard again, translate some menu titles, reimplement actIncPT action Took 54 seconds * Comment spacing. Took 43 seconds * Change message_log_widget.cpp slots to take CardZoneLogic parameters as emitted by PlayerEventHandler. Took 7 minutes Took 14 seconds * Remove unused player_logger.cpp Took 2 minutes * Query local game state correctly from tab_supervisor again Took 3 minutes * Revert Deck legality checker. Took 3 minutes * Instantiate menu before graphics item. Took 1 hour 5 minutes Took 55 minutes * Differentiate games and replays. Took 9 seconds * Lint. Took 10 minutes --------- Co-authored-by: Lukas Brübach <Bruebach.Lukas@bdosecurity.de>
60 lines
1.6 KiB
C++
60 lines
1.6 KiB
C++
#include "card_zone.h"
|
|
|
|
#include "../board/card_item.h"
|
|
#include "view_zone.h"
|
|
|
|
#include <QGraphicsSceneMouseEvent>
|
|
#include <QMenu>
|
|
|
|
CardZone::CardZone(CardZoneLogic *_logic, QGraphicsItem *parent)
|
|
: AbstractGraphicsItem(parent), menu(nullptr), doubleClickAction(0), logic(_logic)
|
|
{
|
|
connect(logic, &CardZoneLogic::retranslateUi, this, &CardZone::retranslateUi);
|
|
connect(logic, &CardZoneLogic::cardAdded, this, &CardZone::onCardAdded);
|
|
connect(logic, &CardZoneLogic::setGraphicsVisibility, this, [this](bool v) { this->setVisible(v); });
|
|
connect(logic, &CardZoneLogic::updateGraphics, this, [this]() { update(); });
|
|
connect(logic, &CardZoneLogic::reorganizeCards, this, &CardZone::reorganizeCards);
|
|
}
|
|
|
|
void CardZone::onCardAdded(CardItem *addedCard)
|
|
{
|
|
addedCard->setParentItem(this);
|
|
addedCard->update();
|
|
}
|
|
|
|
void CardZone::retranslateUi()
|
|
{
|
|
for (int i = 0; i < getLogic()->getCards().size(); ++i)
|
|
getLogic()->getCards()[i]->retranslateUi();
|
|
}
|
|
|
|
void CardZone::mouseDoubleClickEvent(QGraphicsSceneMouseEvent * /*event*/)
|
|
{
|
|
if (doubleClickAction)
|
|
doubleClickAction->trigger();
|
|
}
|
|
|
|
bool CardZone::showContextMenu(const QPoint &screenPos)
|
|
{
|
|
if (menu) {
|
|
menu->exec(screenPos);
|
|
return true;
|
|
}
|
|
return false;
|
|
}
|
|
|
|
void CardZone::mousePressEvent(QGraphicsSceneMouseEvent *event)
|
|
{
|
|
if (event->button() == Qt::RightButton) {
|
|
if (showContextMenu(event->screenPos()))
|
|
event->accept();
|
|
else
|
|
event->ignore();
|
|
} else
|
|
event->ignore();
|
|
}
|
|
|
|
QPointF CardZone::closestGridPoint(const QPointF &point)
|
|
{
|
|
return point;
|
|
}
|