Home tab to replace generic deck editor on startup (#6114)

This commit is contained in:
BruebachL 2025-09-11 21:36:34 +02:00 committed by GitHub
parent 22c8268f02
commit 93c15c8151
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
26 changed files with 751 additions and 8 deletions

View file

@ -21,6 +21,7 @@
#include "tab_deck_editor.h"
#include "tab_deck_storage.h"
#include "tab_game.h"
#include "tab_home.h"
#include "tab_logs.h"
#include "tab_message.h"
#include "tab_replays.h"
@ -312,7 +313,9 @@ static void checkAndTrigger(QAction *checkableAction, bool checked)
*/
void TabSupervisor::initStartupTabs()
{
auto homeTab = addHomeTab();
addDeckEditorTab(nullptr);
setCurrentWidget(homeTab);
if (SettingsCache::instance().getTabVisualDeckStorageOpen()) {
openTabVisualDeckStorage();
@ -501,6 +504,8 @@ void TabSupervisor::actTabVisualDeckStorage(bool checked)
if (checked && !tabVisualDeckStorage) {
openTabVisualDeckStorage();
setCurrentWidget(tabVisualDeckStorage);
} else if (checked && tabVisualDeckStorage) {
setCurrentWidget(tabVisualDeckStorage);
} else if (!checked && tabVisualDeckStorage) {
tabVisualDeckStorage->closeRequest();
}
@ -735,6 +740,17 @@ void TabSupervisor::roomLeft(TabRoom *tab)
removeTab(indexOf(tab));
}
void TabSupervisor::switchToFirstAvailableNetworkTab()
{
if (!roomTabs.isEmpty()) {
setCurrentWidget(roomTabs.first());
} else if (tabServer) {
setCurrentWidget(tabServer);
} else {
openTabServer();
}
}
void TabSupervisor::openReplay(GameReplay *replay)
{
auto *replayTab = new TabGame(this, replay);
@ -796,6 +812,14 @@ void TabSupervisor::talkLeft(TabMessage *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 either a classic or visual deck editor tab depending on settings