mirror of
https://github.com/Cockatrice/Cockatrice.git
synced 2026-06-30 18:43:55 -07:00
Make Visual Deck Storage tab be managed by TabSupervisor (#5453)
* remove closeRequest override * remove visualDeckStorage from WindowMain * manage visual deck storage in TabSupervisor * open on startup * refresh vds on db load finish * open deck editor tab first on startup
This commit is contained in:
parent
883f1a5c11
commit
a417b049da
7 changed files with 39 additions and 38 deletions
|
|
@ -101,8 +101,8 @@ void CloseButton::paintEvent(QPaintEvent * /*event*/)
|
||||||
}
|
}
|
||||||
|
|
||||||
TabSupervisor::TabSupervisor(AbstractClient *_client, QMenu *tabsMenu, QWidget *parent)
|
TabSupervisor::TabSupervisor(AbstractClient *_client, QMenu *tabsMenu, QWidget *parent)
|
||||||
: QTabWidget(parent), userInfo(0), client(_client), tabsMenu(tabsMenu), tabServer(0), tabUserLists(0),
|
: QTabWidget(parent), userInfo(0), client(_client), tabsMenu(tabsMenu), tabVisualDeckStorage(nullptr), tabServer(0),
|
||||||
tabDeckStorage(0), tabReplays(0), tabAdmin(0), tabLog(0)
|
tabUserLists(0), tabDeckStorage(0), tabReplays(0), tabAdmin(0), tabLog(0)
|
||||||
{
|
{
|
||||||
setElideMode(Qt::ElideRight);
|
setElideMode(Qt::ElideRight);
|
||||||
setMovable(true);
|
setMovable(true);
|
||||||
|
|
@ -129,6 +129,10 @@ TabSupervisor::TabSupervisor(AbstractClient *_client, QMenu *tabsMenu, QWidget *
|
||||||
aTabDeckEditor = new QAction(this);
|
aTabDeckEditor = new QAction(this);
|
||||||
connect(aTabDeckEditor, &QAction::triggered, this, [this] { addDeckEditorTab(nullptr); });
|
connect(aTabDeckEditor, &QAction::triggered, this, [this] { addDeckEditorTab(nullptr); });
|
||||||
|
|
||||||
|
aTabVisualDeckStorage = new QAction(this);
|
||||||
|
aTabVisualDeckStorage->setCheckable(true);
|
||||||
|
connect(aTabVisualDeckStorage, &QAction::toggled, this, &TabSupervisor::actTabVisualDeckStorage);
|
||||||
|
|
||||||
aTabServer = new QAction(this);
|
aTabServer = new QAction(this);
|
||||||
aTabServer->setCheckable(true);
|
aTabServer->setCheckable(true);
|
||||||
connect(aTabServer, &QAction::toggled, this, &TabSupervisor::actTabServer);
|
connect(aTabServer, &QAction::toggled, this, &TabSupervisor::actTabServer);
|
||||||
|
|
@ -160,6 +164,11 @@ TabSupervisor::TabSupervisor(AbstractClient *_client, QMenu *tabsMenu, QWidget *
|
||||||
resetTabsMenu();
|
resetTabsMenu();
|
||||||
|
|
||||||
retranslateUi();
|
retranslateUi();
|
||||||
|
|
||||||
|
// open always-available tabs on startup
|
||||||
|
addDeckEditorTab(nullptr);
|
||||||
|
|
||||||
|
aTabVisualDeckStorage->setChecked(SettingsCache::instance().getVisualDeckStorageShowOnLoad());
|
||||||
}
|
}
|
||||||
|
|
||||||
TabSupervisor::~TabSupervisor()
|
TabSupervisor::~TabSupervisor()
|
||||||
|
|
@ -171,6 +180,7 @@ void TabSupervisor::retranslateUi()
|
||||||
{
|
{
|
||||||
// tab menu actions
|
// tab menu actions
|
||||||
aTabDeckEditor->setText(tr("Deck Editor"));
|
aTabDeckEditor->setText(tr("Deck Editor"));
|
||||||
|
aTabVisualDeckStorage->setText(tr("&Visual Deck storage"));
|
||||||
aTabServer->setText(tr("Server"));
|
aTabServer->setText(tr("Server"));
|
||||||
aTabUserLists->setText(tr("Account"));
|
aTabUserLists->setText(tr("Account"));
|
||||||
aTabDeckStorage->setText(tr("Deck storage"));
|
aTabDeckStorage->setText(tr("Deck storage"));
|
||||||
|
|
@ -272,6 +282,8 @@ void TabSupervisor::resetTabsMenu()
|
||||||
{
|
{
|
||||||
tabsMenu->clear();
|
tabsMenu->clear();
|
||||||
tabsMenu->addAction(aTabDeckEditor);
|
tabsMenu->addAction(aTabDeckEditor);
|
||||||
|
tabsMenu->addSeparator();
|
||||||
|
tabsMenu->addAction(aTabVisualDeckStorage);
|
||||||
}
|
}
|
||||||
|
|
||||||
void TabSupervisor::start(const ServerInfo_User &_userInfo)
|
void TabSupervisor::start(const ServerInfo_User &_userInfo)
|
||||||
|
|
@ -387,6 +399,21 @@ void TabSupervisor::stop()
|
||||||
userInfo = 0;
|
userInfo = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void TabSupervisor::actTabVisualDeckStorage(bool checked)
|
||||||
|
{
|
||||||
|
if (checked && !tabVisualDeckStorage) {
|
||||||
|
tabVisualDeckStorage = new TabDeckStorageVisual(this, client);
|
||||||
|
myAddTab(tabVisualDeckStorage);
|
||||||
|
setCurrentWidget(tabVisualDeckStorage);
|
||||||
|
connect(tabVisualDeckStorage, &Tab::closed, this, [this] {
|
||||||
|
tabVisualDeckStorage = nullptr;
|
||||||
|
aTabVisualDeckStorage->setChecked(false);
|
||||||
|
});
|
||||||
|
} else if (!checked && tabVisualDeckStorage) {
|
||||||
|
tabVisualDeckStorage->closeRequest();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void TabSupervisor::actTabServer(bool checked)
|
void TabSupervisor::actTabServer(bool checked)
|
||||||
{
|
{
|
||||||
if (checked && !tabServer) {
|
if (checked && !tabServer) {
|
||||||
|
|
@ -640,14 +667,6 @@ TabDeckEditor *TabSupervisor::addDeckEditorTab(const DeckLoader *deckToOpen)
|
||||||
return tab;
|
return tab;
|
||||||
}
|
}
|
||||||
|
|
||||||
TabDeckStorageVisual *TabSupervisor::addVisualDeckStorageTab()
|
|
||||||
{
|
|
||||||
TabDeckStorageVisual *tab = new TabDeckStorageVisual(this, client);
|
|
||||||
myAddTab(tab);
|
|
||||||
setCurrentWidget(tab);
|
|
||||||
return tab;
|
|
||||||
}
|
|
||||||
|
|
||||||
void TabSupervisor::deckEditorClosed(TabDeckEditor *tab)
|
void TabSupervisor::deckEditorClosed(TabDeckEditor *tab)
|
||||||
{
|
{
|
||||||
if (tab == currentWidget())
|
if (tab == currentWidget())
|
||||||
|
|
|
||||||
|
|
@ -70,6 +70,7 @@ private:
|
||||||
AbstractClient *client;
|
AbstractClient *client;
|
||||||
QList<AbstractClient *> localClients;
|
QList<AbstractClient *> localClients;
|
||||||
QMenu *tabsMenu;
|
QMenu *tabsMenu;
|
||||||
|
TabDeckStorageVisual *tabVisualDeckStorage;
|
||||||
TabServer *tabServer;
|
TabServer *tabServer;
|
||||||
TabUserLists *tabUserLists;
|
TabUserLists *tabUserLists;
|
||||||
TabDeckStorage *tabDeckStorage;
|
TabDeckStorage *tabDeckStorage;
|
||||||
|
|
@ -83,7 +84,8 @@ private:
|
||||||
QList<TabDeckEditor *> deckEditorTabs;
|
QList<TabDeckEditor *> deckEditorTabs;
|
||||||
bool isLocalGame;
|
bool isLocalGame;
|
||||||
|
|
||||||
QAction *aTabDeckEditor, *aTabServer, *aTabUserLists, *aTabDeckStorage, *aTabReplays, *aTabAdmin, *aTabLog;
|
QAction *aTabDeckEditor, *aTabVisualDeckStorage, *aTabServer, *aTabUserLists, *aTabDeckStorage, *aTabReplays,
|
||||||
|
*aTabAdmin, *aTabLog;
|
||||||
|
|
||||||
int myAddTab(Tab *tab);
|
int myAddTab(Tab *tab);
|
||||||
void addCloseButtonToTab(Tab *tab, int tabIndex);
|
void addCloseButtonToTab(Tab *tab, int tabIndex);
|
||||||
|
|
@ -136,12 +138,12 @@ signals:
|
||||||
|
|
||||||
public slots:
|
public slots:
|
||||||
TabDeckEditor *addDeckEditorTab(const DeckLoader *deckToOpen);
|
TabDeckEditor *addDeckEditorTab(const DeckLoader *deckToOpen);
|
||||||
TabDeckStorageVisual *addVisualDeckStorageTab();
|
|
||||||
void openReplay(GameReplay *replay);
|
void openReplay(GameReplay *replay);
|
||||||
void maximizeMainWindow();
|
void maximizeMainWindow();
|
||||||
private slots:
|
private slots:
|
||||||
void refreshShortcuts();
|
void refreshShortcuts();
|
||||||
|
|
||||||
|
void actTabVisualDeckStorage(bool checked);
|
||||||
void actTabServer(bool checked);
|
void actTabServer(bool checked);
|
||||||
void actTabUserLists(bool checked);
|
void actTabUserLists(bool checked);
|
||||||
void actTabDeckStorage(bool checked);
|
void actTabDeckStorage(bool checked);
|
||||||
|
|
|
||||||
|
|
@ -58,11 +58,6 @@ TabDeckStorageVisual::TabDeckStorageVisual(TabSupervisor *_tabSupervisor, Abstra
|
||||||
retranslateUi();
|
retranslateUi();
|
||||||
}
|
}
|
||||||
|
|
||||||
void TabDeckStorageVisual::closeRequest(bool /*forced*/)
|
|
||||||
{
|
|
||||||
this->close();
|
|
||||||
}
|
|
||||||
|
|
||||||
void TabDeckStorageVisual::retranslateUi()
|
void TabDeckStorageVisual::retranslateUi()
|
||||||
{
|
{
|
||||||
aOpenLocalDeck->setText(tr("Open in deck editor"));
|
aOpenLocalDeck->setText(tr("Open in deck editor"));
|
||||||
|
|
|
||||||
|
|
@ -33,7 +33,6 @@ public:
|
||||||
}
|
}
|
||||||
public slots:
|
public slots:
|
||||||
void cardUpdateFinished(int exitCode, QProcess::ExitStatus exitStatus);
|
void cardUpdateFinished(int exitCode, QProcess::ExitStatus exitStatus);
|
||||||
void closeRequest(bool forced) override;
|
|
||||||
void actOpenLocalDeck(QMouseEvent *event, DeckPreviewWidget *instance);
|
void actOpenLocalDeck(QMouseEvent *event, DeckPreviewWidget *instance);
|
||||||
void actDeleteLocalDeck();
|
void actDeleteLocalDeck();
|
||||||
signals:
|
signals:
|
||||||
|
|
|
||||||
|
|
@ -39,6 +39,9 @@ VisualDeckStorageWidget::VisualDeckStorageWidget(QWidget *parent) : QWidget(pare
|
||||||
|
|
||||||
cardSizeWidget = new CardSizeWidget(this, flowWidget, SettingsCache::instance().getVisualDeckStorageCardSize());
|
cardSizeWidget = new CardSizeWidget(this, flowWidget, SettingsCache::instance().getVisualDeckStorageCardSize());
|
||||||
layout->addWidget(cardSizeWidget);
|
layout->addWidget(cardSizeWidget);
|
||||||
|
|
||||||
|
connect(CardDatabaseManager::getInstance(), &CardDatabase::cardDatabaseLoadingFinished, this,
|
||||||
|
&VisualDeckStorageWidget::refreshBannerCards);
|
||||||
}
|
}
|
||||||
|
|
||||||
void VisualDeckStorageWidget::showEvent(QShowEvent *event)
|
void VisualDeckStorageWidget::showEvent(QShowEvent *event)
|
||||||
|
|
|
||||||
|
|
@ -290,11 +290,6 @@ void MainWindow::localGameEnded()
|
||||||
aSinglePlayer->setEnabled(true);
|
aSinglePlayer->setEnabled(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
void MainWindow::actVisualDeckStorage()
|
|
||||||
{
|
|
||||||
tabSupervisor->addVisualDeckStorageTab();
|
|
||||||
}
|
|
||||||
|
|
||||||
void MainWindow::actFullScreen(bool checked)
|
void MainWindow::actFullScreen(bool checked)
|
||||||
{
|
{
|
||||||
if (checked)
|
if (checked)
|
||||||
|
|
@ -664,7 +659,6 @@ void MainWindow::retranslateUi()
|
||||||
aDisconnect->setText(tr("&Disconnect"));
|
aDisconnect->setText(tr("&Disconnect"));
|
||||||
aSinglePlayer->setText(tr("Start &local game..."));
|
aSinglePlayer->setText(tr("Start &local game..."));
|
||||||
aWatchReplay->setText(tr("&Watch replay..."));
|
aWatchReplay->setText(tr("&Watch replay..."));
|
||||||
aVisualDeckStorage->setText(tr("&Visual Deck storage"));
|
|
||||||
aFullScreen->setText(tr("&Full screen"));
|
aFullScreen->setText(tr("&Full screen"));
|
||||||
aRegister->setText(tr("&Register to server..."));
|
aRegister->setText(tr("&Register to server..."));
|
||||||
aForgotPassword->setText(tr("&Restore password..."));
|
aForgotPassword->setText(tr("&Restore password..."));
|
||||||
|
|
@ -712,8 +706,6 @@ void MainWindow::createActions()
|
||||||
connect(aSinglePlayer, &QAction::triggered, this, &MainWindow::actSinglePlayer);
|
connect(aSinglePlayer, &QAction::triggered, this, &MainWindow::actSinglePlayer);
|
||||||
aWatchReplay = new QAction(this);
|
aWatchReplay = new QAction(this);
|
||||||
connect(aWatchReplay, &QAction::triggered, this, &MainWindow::actWatchReplay);
|
connect(aWatchReplay, &QAction::triggered, this, &MainWindow::actWatchReplay);
|
||||||
aVisualDeckStorage = new QAction(this);
|
|
||||||
connect(aVisualDeckStorage, &QAction::triggered, this, &MainWindow::actVisualDeckStorage);
|
|
||||||
aFullScreen = new QAction(this);
|
aFullScreen = new QAction(this);
|
||||||
aFullScreen->setCheckable(true);
|
aFullScreen->setCheckable(true);
|
||||||
connect(aFullScreen, &QAction::toggled, this, &MainWindow::actFullScreen);
|
connect(aFullScreen, &QAction::toggled, this, &MainWindow::actFullScreen);
|
||||||
|
|
@ -800,8 +792,6 @@ void MainWindow::createMenus()
|
||||||
cockatriceMenu->addAction(aSinglePlayer);
|
cockatriceMenu->addAction(aSinglePlayer);
|
||||||
cockatriceMenu->addAction(aWatchReplay);
|
cockatriceMenu->addAction(aWatchReplay);
|
||||||
cockatriceMenu->addSeparator();
|
cockatriceMenu->addSeparator();
|
||||||
cockatriceMenu->addAction(aVisualDeckStorage);
|
|
||||||
cockatriceMenu->addSeparator();
|
|
||||||
cockatriceMenu->addAction(aFullScreen);
|
cockatriceMenu->addAction(aFullScreen);
|
||||||
cockatriceMenu->addSeparator();
|
cockatriceMenu->addSeparator();
|
||||||
cockatriceMenu->addAction(aSettings);
|
cockatriceMenu->addAction(aSettings);
|
||||||
|
|
@ -870,7 +860,6 @@ MainWindow::MainWindow(QWidget *parent)
|
||||||
connect(tabSupervisor, &TabSupervisor::setMenu, this, &MainWindow::updateTabMenu);
|
connect(tabSupervisor, &TabSupervisor::setMenu, this, &MainWindow::updateTabMenu);
|
||||||
connect(tabSupervisor, &TabSupervisor::localGameEnded, this, &MainWindow::localGameEnded);
|
connect(tabSupervisor, &TabSupervisor::localGameEnded, this, &MainWindow::localGameEnded);
|
||||||
connect(tabSupervisor, &TabSupervisor::showWindowIfHidden, this, &MainWindow::showWindowIfHidden);
|
connect(tabSupervisor, &TabSupervisor::showWindowIfHidden, this, &MainWindow::showWindowIfHidden);
|
||||||
tabSupervisor->addDeckEditorTab(nullptr);
|
|
||||||
|
|
||||||
setCentralWidget(tabSupervisor);
|
setCentralWidget(tabSupervisor);
|
||||||
|
|
||||||
|
|
@ -889,10 +878,6 @@ MainWindow::MainWindow(QWidget *parent)
|
||||||
&MainWindow::refreshShortcuts);
|
&MainWindow::refreshShortcuts);
|
||||||
refreshShortcuts();
|
refreshShortcuts();
|
||||||
|
|
||||||
if (SettingsCache::instance().getVisualDeckStorageShowOnLoad()) {
|
|
||||||
connect(CardDatabaseManager::getInstance(), &CardDatabase::cardDatabaseLoadingFinished, tabSupervisor,
|
|
||||||
&TabSupervisor::addVisualDeckStorageTab);
|
|
||||||
}
|
|
||||||
connect(CardDatabaseManager::getInstance(), &CardDatabase::cardDatabaseLoadingFailed, this,
|
connect(CardDatabaseManager::getInstance(), &CardDatabase::cardDatabaseLoadingFailed, this,
|
||||||
&MainWindow::cardDatabaseLoadingFailed);
|
&MainWindow::cardDatabaseLoadingFailed);
|
||||||
connect(CardDatabaseManager::getInstance(), &CardDatabase::cardDatabaseNewSetsFound, this,
|
connect(CardDatabaseManager::getInstance(), &CardDatabase::cardDatabaseNewSetsFound, this,
|
||||||
|
|
|
||||||
|
|
@ -73,7 +73,6 @@ private slots:
|
||||||
void actDisconnect();
|
void actDisconnect();
|
||||||
void actSinglePlayer();
|
void actSinglePlayer();
|
||||||
void actWatchReplay();
|
void actWatchReplay();
|
||||||
void actVisualDeckStorage();
|
|
||||||
void actFullScreen(bool checked);
|
void actFullScreen(bool checked);
|
||||||
void actRegister();
|
void actRegister();
|
||||||
void actSettings();
|
void actSettings();
|
||||||
|
|
@ -131,10 +130,9 @@ private:
|
||||||
|
|
||||||
QList<QMenu *> tabMenus;
|
QList<QMenu *> tabMenus;
|
||||||
QMenu *cockatriceMenu, *dbMenu, *tabsMenu, *helpMenu, *trayIconMenu;
|
QMenu *cockatriceMenu, *dbMenu, *tabsMenu, *helpMenu, *trayIconMenu;
|
||||||
QAction *aConnect, *aDisconnect, *aSinglePlayer, *aWatchReplay, *aVisualDeckStorage, *aFullScreen, *aSettings,
|
QAction *aConnect, *aDisconnect, *aSinglePlayer, *aWatchReplay, *aFullScreen, *aSettings, *aExit, *aAbout, *aTips,
|
||||||
*aExit, *aAbout, *aTips, *aCheckCardUpdates, *aRegister, *aForgotPassword, *aUpdate, *aViewLog, *aManageSets,
|
*aCheckCardUpdates, *aRegister, *aForgotPassword, *aUpdate, *aViewLog, *aManageSets, *aEditTokens,
|
||||||
*aEditTokens, *aOpenCustomFolder, *aOpenCustomsetsFolder, *aAddCustomSet, *aReloadCardDatabase, *aShow,
|
*aOpenCustomFolder, *aOpenCustomsetsFolder, *aAddCustomSet, *aReloadCardDatabase, *aShow, *aOpenSettingsFolder;
|
||||||
*aOpenSettingsFolder;
|
|
||||||
|
|
||||||
TabSupervisor *tabSupervisor;
|
TabSupervisor *tabSupervisor;
|
||||||
WndSets *wndSets;
|
WndSets *wndSets;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue