mirror of
https://github.com/Cockatrice/Cockatrice.git
synced 2026-07-18 00:12:15 -07:00
Make TabHome a managed tab
This commit is contained in:
parent
94ba1c83c6
commit
53bb43c1fb
2 changed files with 34 additions and 13 deletions
|
|
@ -141,6 +141,10 @@ TabSupervisor::TabSupervisor(AbstractClient *_client, QMenu *tabsMenu, QWidget *
|
||||||
aTabEdhRec = new QAction(this);
|
aTabEdhRec = new QAction(this);
|
||||||
connect(aTabEdhRec, &QAction::triggered, this, [this] { addEdhrecMainTab(); });
|
connect(aTabEdhRec, &QAction::triggered, this, [this] { addEdhrecMainTab(); });
|
||||||
|
|
||||||
|
aTabHome = new QAction(this);
|
||||||
|
aTabHome->setCheckable(true);
|
||||||
|
connect(aTabHome, &QAction::triggered, this, &TabSupervisor::actTabHome);
|
||||||
|
|
||||||
aTabVisualDeckStorage = new QAction(this);
|
aTabVisualDeckStorage = new QAction(this);
|
||||||
aTabVisualDeckStorage->setCheckable(true);
|
aTabVisualDeckStorage->setCheckable(true);
|
||||||
connect(aTabVisualDeckStorage, &QAction::triggered, this, &TabSupervisor::actTabVisualDeckStorage);
|
connect(aTabVisualDeckStorage, &QAction::triggered, this, &TabSupervisor::actTabVisualDeckStorage);
|
||||||
|
|
@ -201,6 +205,7 @@ void TabSupervisor::retranslateUi()
|
||||||
aTabDeckEditor->setText(tr("Deck Editor"));
|
aTabDeckEditor->setText(tr("Deck Editor"));
|
||||||
aTabVisualDeckEditor->setText(tr("Visual Deck Editor"));
|
aTabVisualDeckEditor->setText(tr("Visual Deck Editor"));
|
||||||
aTabEdhRec->setText(tr("EDHRec"));
|
aTabEdhRec->setText(tr("EDHRec"));
|
||||||
|
aTabHome->setText(tr("Home"));
|
||||||
aTabVisualDeckStorage->setText(tr("&Visual Deck Storage"));
|
aTabVisualDeckStorage->setText(tr("&Visual Deck Storage"));
|
||||||
aTabVisualDatabaseDisplay->setText(tr("Visual Database Display"));
|
aTabVisualDatabaseDisplay->setText(tr("Visual Database Display"));
|
||||||
aTabServer->setText(tr("Server"));
|
aTabServer->setText(tr("Server"));
|
||||||
|
|
@ -313,8 +318,8 @@ static void checkAndTrigger(QAction *checkableAction, bool checked)
|
||||||
*/
|
*/
|
||||||
void TabSupervisor::initStartupTabs()
|
void TabSupervisor::initStartupTabs()
|
||||||
{
|
{
|
||||||
auto homeTab = addHomeTab();
|
openTabHome();
|
||||||
setCurrentWidget(homeTab);
|
setCurrentWidget(tabHome);
|
||||||
|
|
||||||
if (SettingsCache::instance().getTabVisualDeckStorageOpen()) {
|
if (SettingsCache::instance().getTabVisualDeckStorageOpen()) {
|
||||||
openTabVisualDeckStorage();
|
openTabVisualDeckStorage();
|
||||||
|
|
@ -381,6 +386,7 @@ void TabSupervisor::resetTabsMenu()
|
||||||
tabsMenu->addAction(aTabVisualDeckEditor);
|
tabsMenu->addAction(aTabVisualDeckEditor);
|
||||||
tabsMenu->addAction(aTabEdhRec);
|
tabsMenu->addAction(aTabEdhRec);
|
||||||
tabsMenu->addSeparator();
|
tabsMenu->addSeparator();
|
||||||
|
tabsMenu->addAction(aTabHome);
|
||||||
tabsMenu->addAction(aTabVisualDeckStorage);
|
tabsMenu->addAction(aTabVisualDeckStorage);
|
||||||
tabsMenu->addAction(aTabVisualDatabaseDisplay);
|
tabsMenu->addAction(aTabVisualDatabaseDisplay);
|
||||||
tabsMenu->addAction(aTabDeckStorage);
|
tabsMenu->addAction(aTabDeckStorage);
|
||||||
|
|
@ -497,6 +503,27 @@ void TabSupervisor::stop()
|
||||||
userInfo = nullptr;
|
userInfo = nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void TabSupervisor::actTabHome(bool checked)
|
||||||
|
{
|
||||||
|
if (checked && !tabHome) {
|
||||||
|
openTabHome();
|
||||||
|
setCurrentWidget(tabHome);
|
||||||
|
} else if (!checked && tabHome) {
|
||||||
|
tabHome->closeRequest();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void TabSupervisor::openTabHome()
|
||||||
|
{
|
||||||
|
tabHome = new TabHome(this, client);
|
||||||
|
myAddTab(tabHome, aTabHome);
|
||||||
|
connect(tabHome, &QObject::destroyed, this, [this] {
|
||||||
|
tabHome = nullptr;
|
||||||
|
aTabHome->setChecked(false);
|
||||||
|
});
|
||||||
|
aTabHome->setChecked(true);
|
||||||
|
}
|
||||||
|
|
||||||
void TabSupervisor::actTabVisualDeckStorage(bool checked)
|
void TabSupervisor::actTabVisualDeckStorage(bool checked)
|
||||||
{
|
{
|
||||||
SettingsCache::instance().setTabVisualDeckStorageOpen(checked);
|
SettingsCache::instance().setTabVisualDeckStorageOpen(checked);
|
||||||
|
|
@ -813,14 +840,6 @@ void TabSupervisor::talkLeft(TabMessage *tab)
|
||||||
removeTab(indexOf(tab));
|
removeTab(indexOf(tab));
|
||||||
}
|
}
|
||||||
|
|
||||||
TabHome *TabSupervisor::addHomeTab()
|
|
||||||
{
|
|
||||||
auto *tab = new TabHome(this, client);
|
|
||||||
myAddTab(tab);
|
|
||||||
setCurrentWidget(tab);
|
|
||||||
return tab;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Creates a new deck editor tab and loads the deck into it.
|
* Creates a new deck editor tab and loads the deck into it.
|
||||||
* Creates either a classic or visual deck editor tab depending on settings
|
* Creates either a classic or visual deck editor tab depending on settings
|
||||||
|
|
|
||||||
|
|
@ -90,6 +90,7 @@ private:
|
||||||
UserListManager *userListManager;
|
UserListManager *userListManager;
|
||||||
QList<AbstractClient *> localClients;
|
QList<AbstractClient *> localClients;
|
||||||
QMenu *tabsMenu;
|
QMenu *tabsMenu;
|
||||||
|
TabHome *tabHome;
|
||||||
TabDeckStorageVisual *tabVisualDeckStorage;
|
TabDeckStorageVisual *tabVisualDeckStorage;
|
||||||
TabServer *tabServer;
|
TabServer *tabServer;
|
||||||
TabAccount *tabAccount;
|
TabAccount *tabAccount;
|
||||||
|
|
@ -104,8 +105,8 @@ private:
|
||||||
QList<AbstractTabDeckEditor *> deckEditorTabs;
|
QList<AbstractTabDeckEditor *> deckEditorTabs;
|
||||||
bool isLocalGame;
|
bool isLocalGame;
|
||||||
|
|
||||||
QAction *aTabDeckEditor, *aTabVisualDeckEditor, *aTabEdhRec, *aTabVisualDeckStorage, *aTabVisualDatabaseDisplay,
|
QAction *aTabHome, *aTabDeckEditor, *aTabVisualDeckEditor, *aTabEdhRec, *aTabVisualDeckStorage,
|
||||||
*aTabServer, *aTabAccount, *aTabDeckStorage, *aTabReplays, *aTabAdmin, *aTabLog;
|
*aTabVisualDatabaseDisplay, *aTabServer, *aTabAccount, *aTabDeckStorage, *aTabReplays, *aTabAdmin, *aTabLog;
|
||||||
|
|
||||||
int myAddTab(Tab *tab, QAction *manager = nullptr);
|
int myAddTab(Tab *tab, QAction *manager = nullptr);
|
||||||
void addCloseButtonToTab(Tab *tab, int tabIndex, QAction *manager);
|
void addCloseButtonToTab(Tab *tab, int tabIndex, QAction *manager);
|
||||||
|
|
@ -175,6 +176,7 @@ public slots:
|
||||||
private slots:
|
private slots:
|
||||||
void refreshShortcuts();
|
void refreshShortcuts();
|
||||||
|
|
||||||
|
void actTabHome(bool checked);
|
||||||
void actTabServer(bool checked);
|
void actTabServer(bool checked);
|
||||||
void actTabAccount(bool checked);
|
void actTabAccount(bool checked);
|
||||||
void actTabDeckStorage(bool checked);
|
void actTabDeckStorage(bool checked);
|
||||||
|
|
@ -182,6 +184,7 @@ private slots:
|
||||||
void actTabLog(bool checked);
|
void actTabLog(bool checked);
|
||||||
|
|
||||||
void openTabVisualDeckStorage();
|
void openTabVisualDeckStorage();
|
||||||
|
void openTabHome();
|
||||||
void openTabServer();
|
void openTabServer();
|
||||||
void openTabAccount();
|
void openTabAccount();
|
||||||
void openTabDeckStorage();
|
void openTabDeckStorage();
|
||||||
|
|
@ -201,7 +204,6 @@ private slots:
|
||||||
void processUserLeft(const QString &userName);
|
void processUserLeft(const QString &userName);
|
||||||
void processUserJoined(const ServerInfo_User &userInfo);
|
void processUserJoined(const ServerInfo_User &userInfo);
|
||||||
void talkLeft(TabMessage *tab);
|
void talkLeft(TabMessage *tab);
|
||||||
TabHome *addHomeTab();
|
|
||||||
void deckEditorClosed(AbstractTabDeckEditor *tab);
|
void deckEditorClosed(AbstractTabDeckEditor *tab);
|
||||||
void tabUserEvent(bool globalEvent);
|
void tabUserEvent(bool globalEvent);
|
||||||
void updateTabText(Tab *tab, const QString &newTabText);
|
void updateTabText(Tab *tab, const QString &newTabText);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue