mirror of
https://github.com/Cockatrice/Cockatrice.git
synced 2026-06-09 15:54:47 -07:00
Add option to share decklists on load. (#6029)
* Add option to share decklists on load. Took 1 hour 58 minutes Took 9 minutes Took 39 minutes * Lint. Took 14 minutes Took 2 minutes * Stuffs Took 39 minutes Took 4 seconds Took 43 minutes * Process local player first. Took 45 minutes * Consider if the setting is set on the game info first. Took 4 minutes * Save an indent level. Took 43 seconds * Don't commit logging config. Took 3 minutes * Remove a debug print. Took 10 seconds Took 7 seconds * Add another optional guard. Took 5 minutes * Hide the tab bar if only one (own deck) is visible. Took 9 minutes * Rename setting label for clarity Took 2 minutes * Capitalization. Took 3 minutes --------- Co-authored-by: Lukas Brübach <Bruebach.Lukas@bdosecurity.de>
This commit is contained in:
parent
881243da6a
commit
09381575a7
26 changed files with 268 additions and 33 deletions
64
cockatrice/src/game/deckview/tabbed_deck_view_container.cpp
Normal file
64
cockatrice/src/game/deckview/tabbed_deck_view_container.cpp
Normal file
|
|
@ -0,0 +1,64 @@
|
|||
#include "tabbed_deck_view_container.h"
|
||||
|
||||
#include "../../client/tabs/tab_game.h"
|
||||
#include "deck_view.h"
|
||||
|
||||
TabbedDeckViewContainer::TabbedDeckViewContainer(int _playerId, TabGame *parent)
|
||||
: QTabWidget(nullptr), playerId(_playerId), parentGame(parent)
|
||||
{
|
||||
setTabsClosable(true);
|
||||
connect(this, &QTabWidget::tabCloseRequested, this, &TabbedDeckViewContainer::closeTab);
|
||||
|
||||
playerDeckView = new DeckViewContainer(playerId, parentGame);
|
||||
int playerTabIndex = addTab(playerDeckView, "Your Deck");
|
||||
tabBar()->setTabButton(playerTabIndex, QTabBar::RightSide, nullptr);
|
||||
updateTabBarVisibility();
|
||||
}
|
||||
|
||||
void TabbedDeckViewContainer::addOpponentDeckView(const DeckList &opponentDeck, int opponentId, QString opponentName)
|
||||
{
|
||||
if (opponentDeckViews.contains(opponentId)) {
|
||||
opponentDeckViews[opponentId]->setDeck(opponentDeck);
|
||||
} else {
|
||||
auto *opponentDeckView = new DeckView(this);
|
||||
opponentDeckView->setDeck(opponentDeck);
|
||||
|
||||
addTab(opponentDeckView, QString("%1's Deck").arg(opponentName));
|
||||
|
||||
opponentDeckViews.insert(opponentId, opponentDeckView);
|
||||
}
|
||||
updateTabBarVisibility();
|
||||
}
|
||||
|
||||
void TabbedDeckViewContainer::closeTab(int index)
|
||||
{
|
||||
QWidget *widgetToClose = widget(index);
|
||||
|
||||
// Prevent removing the player tab
|
||||
if (widgetToClose == playerDeckView) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Remove it from map if it's an opponent
|
||||
auto it = opponentDeckViews.begin();
|
||||
while (it != opponentDeckViews.end()) {
|
||||
if (it.value() == widgetToClose) {
|
||||
it = opponentDeckViews.erase(it);
|
||||
} else {
|
||||
++it;
|
||||
}
|
||||
}
|
||||
|
||||
removeTab(index);
|
||||
widgetToClose->deleteLater();
|
||||
updateTabBarVisibility();
|
||||
}
|
||||
|
||||
void TabbedDeckViewContainer::updateTabBarVisibility()
|
||||
{
|
||||
if (tabBar()->count() <= 1) {
|
||||
tabBar()->hide();
|
||||
} else {
|
||||
tabBar()->show();
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue