mirror of
https://github.com/Cockatrice/Cockatrice.git
synced 2026-07-03 12:03:55 -07:00
Add menu option and hotkey to sort hand (#6057)
* Add sort hand shortcut * add function to sort hand by type and name * rig up the sort hand to the player * fix sorting param * use getShortcut instead of getSingleShortcut * use correct method * change default sorting --------- Co-authored-by: Zach H <zahalpern+github@gmail.com>
This commit is contained in:
parent
d6243a2dd2
commit
06738cae93
5 changed files with 26 additions and 2 deletions
|
|
@ -210,6 +210,8 @@ Player::Player(const ServerInfo_User &info, int _id, bool _local, bool _judge, T
|
||||||
connect(aViewLibrary, &QAction::triggered, this, &Player::actViewLibrary);
|
connect(aViewLibrary, &QAction::triggered, this, &Player::actViewLibrary);
|
||||||
aViewHand = new QAction(this);
|
aViewHand = new QAction(this);
|
||||||
connect(aViewHand, &QAction::triggered, this, &Player::actViewHand);
|
connect(aViewHand, &QAction::triggered, this, &Player::actViewHand);
|
||||||
|
aSortHand = new QAction(this);
|
||||||
|
connect(aSortHand, &QAction::triggered, this, &Player::actSortHand);
|
||||||
|
|
||||||
aViewTopCards = new QAction(this);
|
aViewTopCards = new QAction(this);
|
||||||
connect(aViewTopCards, &QAction::triggered, this, &Player::actViewTopCards);
|
connect(aViewTopCards, &QAction::triggered, this, &Player::actViewTopCards);
|
||||||
|
|
@ -298,6 +300,7 @@ Player::Player(const ServerInfo_User &info, int _id, bool _local, bool _judge, T
|
||||||
if (local || judge) {
|
if (local || judge) {
|
||||||
handMenu = playerMenu->addTearOffMenu(QString());
|
handMenu = playerMenu->addTearOffMenu(QString());
|
||||||
handMenu->addAction(aViewHand);
|
handMenu->addAction(aViewHand);
|
||||||
|
handMenu->addAction(aSortHand);
|
||||||
playerLists.append(mRevealHand = handMenu->addMenu(QString()));
|
playerLists.append(mRevealHand = handMenu->addMenu(QString()));
|
||||||
playerLists.append(mRevealRandomHandCard = handMenu->addMenu(QString()));
|
playerLists.append(mRevealRandomHandCard = handMenu->addMenu(QString()));
|
||||||
handMenu->addSeparator();
|
handMenu->addSeparator();
|
||||||
|
|
@ -795,6 +798,7 @@ void Player::retranslateUi()
|
||||||
|
|
||||||
aViewLibrary->setText(tr("&View library"));
|
aViewLibrary->setText(tr("&View library"));
|
||||||
aViewHand->setText(tr("&View hand"));
|
aViewHand->setText(tr("&View hand"));
|
||||||
|
aSortHand->setText(tr("&Sort hand"));
|
||||||
aViewTopCards->setText(tr("View &top cards of library..."));
|
aViewTopCards->setText(tr("View &top cards of library..."));
|
||||||
aViewBottomCards->setText(tr("View bottom cards of library..."));
|
aViewBottomCards->setText(tr("View bottom cards of library..."));
|
||||||
mRevealLibrary->setTitle(tr("Reveal &library to..."));
|
mRevealLibrary->setTitle(tr("Reveal &library to..."));
|
||||||
|
|
@ -959,6 +963,7 @@ void Player::setShortcutsActive()
|
||||||
aMoveToHand->setShortcuts(shortcuts.getShortcut("Player/aMoveToHand"));
|
aMoveToHand->setShortcuts(shortcuts.getShortcut("Player/aMoveToHand"));
|
||||||
aMoveToGraveyard->setShortcuts(shortcuts.getShortcut("Player/aMoveToGraveyard"));
|
aMoveToGraveyard->setShortcuts(shortcuts.getShortcut("Player/aMoveToGraveyard"));
|
||||||
aMoveToExile->setShortcuts(shortcuts.getShortcut("Player/aMoveToExile"));
|
aMoveToExile->setShortcuts(shortcuts.getShortcut("Player/aMoveToExile"));
|
||||||
|
aSortHand->setShortcuts(shortcuts.getShortcut("Player/aSortHand"));
|
||||||
|
|
||||||
aSelectAll->setShortcuts(shortcuts.getShortcut("Player/aSelectAll"));
|
aSelectAll->setShortcuts(shortcuts.getShortcut("Player/aSelectAll"));
|
||||||
aSelectRow->setShortcuts(shortcuts.getShortcut("Player/aSelectRow"));
|
aSelectRow->setShortcuts(shortcuts.getShortcut("Player/aSelectRow"));
|
||||||
|
|
@ -1064,6 +1069,7 @@ void Player::setShortcutsInactive()
|
||||||
aMoveBottomCardToExile->setShortcut(QKeySequence());
|
aMoveBottomCardToExile->setShortcut(QKeySequence());
|
||||||
aMoveBottomCardsToExile->setShortcut(QKeySequence());
|
aMoveBottomCardsToExile->setShortcut(QKeySequence());
|
||||||
aIncrementAllCardCounters->setShortcut(QKeySequence());
|
aIncrementAllCardCounters->setShortcut(QKeySequence());
|
||||||
|
aSortHand->setShortcut(QKeySequence());
|
||||||
|
|
||||||
QMapIterator<int, AbstractCounter *> counterIterator(counters);
|
QMapIterator<int, AbstractCounter *> counterIterator(counters);
|
||||||
while (counterIterator.hasNext()) {
|
while (counterIterator.hasNext()) {
|
||||||
|
|
@ -1134,6 +1140,11 @@ void Player::actViewHand()
|
||||||
static_cast<GameScene *>(scene())->toggleZoneView(this, "hand", -1);
|
static_cast<GameScene *>(scene())->toggleZoneView(this, "hand", -1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Player::actSortHand()
|
||||||
|
{
|
||||||
|
hand->sortHand();
|
||||||
|
}
|
||||||
|
|
||||||
void Player::actViewTopCards()
|
void Player::actViewTopCards()
|
||||||
{
|
{
|
||||||
int deckSize = zones.value("deck")->getCards().size();
|
int deckSize = zones.value("deck")->getCards().size();
|
||||||
|
|
|
||||||
|
|
@ -239,7 +239,7 @@ private slots:
|
||||||
void actSetAnnotation();
|
void actSetAnnotation();
|
||||||
void actReveal(QAction *action);
|
void actReveal(QAction *action);
|
||||||
void refreshShortcuts();
|
void refreshShortcuts();
|
||||||
|
void actSortHand();
|
||||||
void initSayMenu();
|
void initSayMenu();
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
@ -276,7 +276,7 @@ private:
|
||||||
QAction *aPlay, *aPlayFacedown, *aHide, *aTap, *aDoesntUntap, *aAttach, *aUnattach, *aDrawArrow, *aSetPT, *aResetPT,
|
QAction *aPlay, *aPlayFacedown, *aHide, *aTap, *aDoesntUntap, *aAttach, *aUnattach, *aDrawArrow, *aSetPT, *aResetPT,
|
||||||
*aIncP, *aDecP, *aIncT, *aDecT, *aIncPT, *aDecPT, *aFlowP, *aFlowT, *aSetAnnotation, *aFlip, *aPeek, *aClone,
|
*aIncP, *aDecP, *aIncT, *aDecT, *aIncPT, *aDecPT, *aFlowP, *aFlowT, *aSetAnnotation, *aFlip, *aPeek, *aClone,
|
||||||
*aMoveToTopLibrary, *aMoveToBottomLibrary, *aMoveToHand, *aMoveToGraveyard, *aMoveToExile,
|
*aMoveToTopLibrary, *aMoveToBottomLibrary, *aMoveToHand, *aMoveToGraveyard, *aMoveToExile,
|
||||||
*aMoveToXfromTopOfLibrary, *aSelectAll, *aSelectRow, *aSelectColumn, *aIncrementAllCardCounters;
|
*aMoveToXfromTopOfLibrary, *aSelectAll, *aSelectRow, *aSelectColumn, *aSortHand, *aIncrementAllCardCounters;
|
||||||
|
|
||||||
bool movingCardsUntil;
|
bool movingCardsUntil;
|
||||||
QTimer *moveTopCardTimer;
|
QTimer *moveTopCardTimer;
|
||||||
|
|
|
||||||
|
|
@ -127,6 +127,15 @@ void HandZone::reorganizeCards()
|
||||||
update();
|
update();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void HandZone::sortHand()
|
||||||
|
{
|
||||||
|
if (cards.isEmpty()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
cards.sortBy({CardList::SortByMainType, CardList::SortByManaValue, CardList::SortByColorGrouping});
|
||||||
|
reorganizeCards();
|
||||||
|
}
|
||||||
|
|
||||||
void HandZone::setWidth(qreal _width)
|
void HandZone::setWidth(qreal _width)
|
||||||
{
|
{
|
||||||
if (SettingsCache::instance().getHorizontalHand()) {
|
if (SettingsCache::instance().getHorizontalHand()) {
|
||||||
|
|
|
||||||
|
|
@ -19,6 +19,7 @@ public:
|
||||||
QRectF boundingRect() const override;
|
QRectF boundingRect() const override;
|
||||||
void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) override;
|
void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) override;
|
||||||
void reorganizeCards() override;
|
void reorganizeCards() override;
|
||||||
|
void sortHand();
|
||||||
void setWidth(qreal _width);
|
void setWidth(qreal _width);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
|
|
||||||
|
|
@ -556,6 +556,9 @@ private:
|
||||||
ShortcutGroup::Move_selected)},
|
ShortcutGroup::Move_selected)},
|
||||||
{"Player/aViewHand",
|
{"Player/aViewHand",
|
||||||
ShortcutKey(QT_TRANSLATE_NOOP("shortcutsTab", "Hand"), parseSequenceString(""), ShortcutGroup::View)},
|
ShortcutKey(QT_TRANSLATE_NOOP("shortcutsTab", "Hand"), parseSequenceString(""), ShortcutGroup::View)},
|
||||||
|
{"Player/aSortHand", ShortcutKey(QT_TRANSLATE_NOOP("shortcutsTab", "Sort Hand"),
|
||||||
|
parseSequenceString("Ctrl+Shift+H"),
|
||||||
|
ShortcutGroup::View)},
|
||||||
{"Player/aViewGraveyard",
|
{"Player/aViewGraveyard",
|
||||||
ShortcutKey(QT_TRANSLATE_NOOP("shortcutsTab", "Graveyard"), parseSequenceString("F4"), ShortcutGroup::View)},
|
ShortcutKey(QT_TRANSLATE_NOOP("shortcutsTab", "Graveyard"), parseSequenceString("F4"), ShortcutGroup::View)},
|
||||||
{"Player/aViewLibrary",
|
{"Player/aViewLibrary",
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue